9
0
mirror of https://github.com/Samsuik/Sakura.git synced 2025-12-30 12:19:08 +00:00

Combine loads-chunks into a single config option

This commit is contained in:
Samsuik
2024-05-26 18:13:35 +01:00
parent 46e1e7f538
commit 28fccff6c4
3 changed files with 65 additions and 14 deletions

View File

@@ -388,10 +388,10 @@ index 0000000000000000000000000000000000000000..5296d4e0a1041932e36562f42fbf3e1d
+}
diff --git a/src/main/java/me/samsuik/sakura/configuration/SakuraConfigurations.java b/src/main/java/me/samsuik/sakura/configuration/SakuraConfigurations.java
new file mode 100644
index 0000000000000000000000000000000000000000..f8770f97e3ad6c2746bc436b2b2c895cecd43996
index 0000000000000000000000000000000000000000..b5c2471a2982f5a5ab64620e906766460498095c
--- /dev/null
+++ b/src/main/java/me/samsuik/sakura/configuration/SakuraConfigurations.java
@@ -0,0 +1,253 @@
@@ -0,0 +1,255 @@
+package me.samsuik.sakura.configuration;
+
+import com.google.common.collect.Table;
@@ -418,6 +418,7 @@ index 0000000000000000000000000000000000000000..f8770f97e3ad6c2746bc436b2b2c895c
+import me.samsuik.sakura.configuration.transformation.world.V3_RenameKnockback;
+import me.samsuik.sakura.configuration.transformation.world.V2_VerticalKnockbackUseDefault;
+import me.samsuik.sakura.configuration.transformation.world.V4_RenameNonStrictMergeLevel;
+import me.samsuik.sakura.configuration.transformation.world.V5_CombineLoadChunksOptions;
+import net.minecraft.core.RegistryAccess;
+import net.minecraft.core.registries.Registries;
+import net.minecraft.resources.ResourceLocation;
@@ -581,6 +582,7 @@ index 0000000000000000000000000000000000000000..f8770f97e3ad6c2746bc436b2b2c895c
+ V2_VerticalKnockbackUseDefault.apply(versionedBuilder);
+ V3_RenameKnockback.apply(versionedBuilder);
+ V4_RenameNonStrictMergeLevel.apply(versionedBuilder);
+ V5_CombineLoadChunksOptions.apply(versionedBuilder);
+ // ADD FUTURE VERSIONED TRANSFORMS TO versionedBuilder HERE
+ versionedBuilder.build().apply(node);
+ }
@@ -647,10 +649,10 @@ index 0000000000000000000000000000000000000000..f8770f97e3ad6c2746bc436b2b2c895c
+}
diff --git a/src/main/java/me/samsuik/sakura/configuration/WorldConfiguration.java b/src/main/java/me/samsuik/sakura/configuration/WorldConfiguration.java
new file mode 100644
index 0000000000000000000000000000000000000000..33ead866ae736fd191ed97ed8e9b8e30292e6fe6
index 0000000000000000000000000000000000000000..f9fe1024c3e5681abe9823d71582d83b50d3c6b0
--- /dev/null
+++ b/src/main/java/me/samsuik/sakura/configuration/WorldConfiguration.java
@@ -0,0 +1,205 @@
@@ -0,0 +1,204 @@
+package me.samsuik.sakura.configuration;
+
+import com.mojang.logging.LogUtils;
@@ -682,7 +684,7 @@ index 0000000000000000000000000000000000000000..33ead866ae736fd191ed97ed8e9b8e30
+public class WorldConfiguration extends ConfigurationPart {
+
+ private static final Logger LOGGER = LogUtils.getClassLogger();
+ static final int CURRENT_VERSION = 4; // (when you change the version, change the comment, so it conflicts on rebases): rename filter bad nbt from spawn eggs
+ static final int CURRENT_VERSION = 5; // (when you change the version, change the comment, so it conflicts on rebases): rename filter bad nbt from spawn eggs
+
+ private transient final ResourceLocation worldKey;
+ WorldConfiguration(ResourceLocation worldKey) {
@@ -705,16 +707,15 @@ index 0000000000000000000000000000000000000000..33ead866ae736fd191ed97ed8e9b8e30
+ public boolean treatAllBlocksAsFullWhenMoving = false;
+ @NestedSetting({"treat-collidable-blocks-as-full", "moving-faster-than"})
+ public double treatAllBlocksAsFullWhenMovingFasterThan = 64.0;
+ public boolean loadChunks = false;
+
+ public Tnt tnt = new Tnt();
+ public class Tnt extends ConfigurationPart {
+ public boolean loadsChunks;
+ public boolean forcePositionUpdates;
+ }
+
+ public Sand sand = new Sand();
+ public class Sand extends ConfigurationPart {
+ public boolean loadsChunks;
+ public boolean despawnInsideMovingPistons = true;
+ public boolean concreteSolidifyInWater = true;
+
@@ -967,6 +968,56 @@ index 0000000000000000000000000000000000000000..198eb5f030ec5def4d93dec51dde3522
+ return null;
+ }
+}
diff --git a/src/main/java/me/samsuik/sakura/configuration/transformation/world/V5_CombineLoadChunksOptions.java b/src/main/java/me/samsuik/sakura/configuration/transformation/world/V5_CombineLoadChunksOptions.java
new file mode 100644
index 0000000000000000000000000000000000000000..3d647a3db0862232f158d823da9a797d4e0d5608
--- /dev/null
+++ b/src/main/java/me/samsuik/sakura/configuration/transformation/world/V5_CombineLoadChunksOptions.java
@@ -0,0 +1,44 @@
+package me.samsuik.sakura.configuration.transformation.world;
+
+import org.checkerframework.checker.nullness.qual.Nullable;
+import org.spongepowered.configurate.ConfigurateException;
+import org.spongepowered.configurate.ConfigurationNode;
+import org.spongepowered.configurate.NodePath;
+import org.spongepowered.configurate.transformation.ConfigurationTransformation;
+import org.spongepowered.configurate.transformation.TransformAction;
+
+import java.util.List;
+
+import static org.spongepowered.configurate.NodePath.path;
+
+public final class V5_CombineLoadChunksOptions implements TransformAction {
+ private static final int VERSION = 5;
+ private static final List<String> ENTITY_PATHS = List.of("tnt", "sand");
+ private static final String OLD_NAME = "loads-chunks";
+ private static final String NAME = "load-chunks";
+ private static final NodePath PATH = path("cannons");
+ private static final V5_CombineLoadChunksOptions INSTANCE = new V5_CombineLoadChunksOptions();
+
+ private V5_CombineLoadChunksOptions() {}
+
+ public static void apply(ConfigurationTransformation.VersionedBuilder builder) {
+ builder.addVersion(VERSION, ConfigurationTransformation.builder().addAction(PATH, INSTANCE).build());
+ }
+
+ @Override
+ public Object @Nullable [] visitPath(NodePath path, ConfigurationNode value) throws ConfigurateException {
+ boolean shouldLoadChunks = false;
+
+ for (String entity : ENTITY_PATHS) {
+ NodePath entityPath = NodePath.path(entity, OLD_NAME);
+ if (value.hasChild(entityPath)) {
+ ConfigurationNode node = value.node(entityPath);
+ shouldLoadChunks |= node.getBoolean();
+ node.raw(null);
+ }
+ }
+
+ value.node(NAME).set(shouldLoadChunks);
+ return null;
+ }
+}
diff --git a/src/main/java/me/samsuik/sakura/explosion/durable/DurableMaterial.java b/src/main/java/me/samsuik/sakura/explosion/durable/DurableMaterial.java
new file mode 100644
index 0000000000000000000000000000000000000000..4024f9738e039ffffd560a07a2210f758879d3c0