aboutsummaryrefslogtreecommitdiff
path: root/src/client/java/dev/isxander/yacl/api/OptionFlag.java
diff options
context:
space:
mode:
authorXander <xander@isxander.dev>2022-12-09 16:31:25 +0000
committerGitHub <noreply@github.com>2022-12-09 16:31:25 +0000
commite4856a17133b0567d09cb6db3821674491d57e64 (patch)
tree0c59597708b3ea9f402ba119490537b5c18fdb93 /src/client/java/dev/isxander/yacl/api/OptionFlag.java
parente1f6d190d862dd86c251fdd5726efe99f8ec1baf (diff)
parent49ff470de36e719d5b963de405de891eca2b69d1 (diff)
downloadYetAnotherConfigLib-e4856a17133b0567d09cb6db3821674491d57e64.tar.gz
YetAnotherConfigLib-e4856a17133b0567d09cb6db3821674491d57e64.tar.bz2
YetAnotherConfigLib-e4856a17133b0567d09cb6db3821674491d57e64.zip
Merge pull request #38 from isXander/update/1.19.3
Diffstat (limited to 'src/client/java/dev/isxander/yacl/api/OptionFlag.java')
-rw-r--r--src/client/java/dev/isxander/yacl/api/OptionFlag.java23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/client/java/dev/isxander/yacl/api/OptionFlag.java b/src/client/java/dev/isxander/yacl/api/OptionFlag.java
new file mode 100644
index 0000000..7a5c23f
--- /dev/null
+++ b/src/client/java/dev/isxander/yacl/api/OptionFlag.java
@@ -0,0 +1,23 @@
+package dev.isxander.yacl.api;
+
+import dev.isxander.yacl.gui.RequireRestartScreen;
+import net.minecraft.client.MinecraftClient;
+
+import java.util.function.Consumer;
+
+/**
+ * Code that is executed upon certain options being applied.
+ * Each flag is executed only once per save, no matter the amount of options with the flag.
+ */
+@FunctionalInterface
+public interface OptionFlag extends Consumer<MinecraftClient> {
+ /** Warns the user that a game restart is required for the changes to take effect */
+ OptionFlag GAME_RESTART = client -> client.setScreen(new RequireRestartScreen(client.currentScreen));
+
+ /** Reloads chunks upon applying (F3+A) */
+ OptionFlag RELOAD_CHUNKS = client -> client.worldRenderer.reload();
+
+ OptionFlag WORLD_RENDER_UPDATE = client -> client.worldRenderer.scheduleTerrainUpdate();
+
+ OptionFlag ASSET_RELOAD = MinecraftClient::reloadResourcesConcurrently;
+}