mirror of
https://github.com/Samsuik/Sakura.git
synced 2026-01-06 15:41:49 +00:00
Combine loads-chunks into a single config option
This commit is contained in:
@@ -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..703c030f4d8afbbec985a87d291b434dd5a3d270
|
||||
index 0000000000000000000000000000000000000000..b9c016cca8cd6485f4554485a34a6f19c71e9acd
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/me/samsuik/sakura/configuration/SakuraConfigurations.java
|
||||
@@ -0,0 +1,254 @@
|
||||
@@ -0,0 +1,256 @@
|
||||
+package me.samsuik.sakura.configuration;
|
||||
+
|
||||
+import com.google.common.collect.Table;
|
||||
@@ -418,6 +418,7 @@ index 0000000000000000000000000000000000000000..703c030f4d8afbbec985a87d291b434d
|
||||
+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;
|
||||
@@ -582,6 +583,7 @@ index 0000000000000000000000000000000000000000..703c030f4d8afbbec985a87d291b434d
|
||||
+ 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);
|
||||
+ }
|
||||
@@ -648,10 +650,10 @@ index 0000000000000000000000000000000000000000..703c030f4d8afbbec985a87d291b434d
|
||||
+}
|
||||
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;
|
||||
@@ -683,7 +685,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) {
|
||||
@@ -706,16 +708,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;
|
||||
+
|
||||
@@ -968,6 +969,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
|
||||
|
||||
@@ -99,26 +99,26 @@ index 9aebb8f4c98eec7ece2eed012971d417062f76d0..495d8b5606457e9bfbe63199855dcd21
|
||||
|
||||
public boolean mayInteract(Level world, BlockPos pos) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
|
||||
index 7da6420aed597ee1bf544059c79a063512adcd40..d9668a752b06b560730973ebc82251d2cb8b7123 100644
|
||||
index 7da6420aed597ee1bf544059c79a063512adcd40..b6a4753252b748c06a62b7faa6b05c1fb904d62e 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
|
||||
@@ -75,6 +75,7 @@ public class FallingBlockEntity extends Entity {
|
||||
this.dropItem = true;
|
||||
this.fallDamageMax = 40;
|
||||
this.isFallingBlock = true; // Sakura
|
||||
+ this.loadChunks = world.sakuraConfig().cannons.sand.loadsChunks; // Sakura - load chunks
|
||||
+ this.loadChunks = world.sakuraConfig().cannons.loadChunks; // Sakura - falling blocks load chunks
|
||||
}
|
||||
|
||||
public FallingBlockEntity(Level world, double x, double y, double z, BlockState block) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
|
||||
index bbf6b4f705b3e9b289a7fdf82a78ef02f777297d..431b02599b7e3f2730841c8136460177aca37f3b 100644
|
||||
index bbf6b4f705b3e9b289a7fdf82a78ef02f777297d..09f09a8fbf0eee62295001ce5b7ed5329445d2b0 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
|
||||
@@ -38,6 +38,7 @@ public class PrimedTnt extends Entity implements TraceableEntity {
|
||||
super(type, world);
|
||||
this.blocksBuilding = true;
|
||||
this.isPrimedTNT = true; // Sakura
|
||||
+ this.loadChunks = world.sakuraConfig().cannons.tnt.loadsChunks; // Sakura - load chunks
|
||||
+ this.loadChunks = world.sakuraConfig().cannons.loadChunks; // Sakura - tnt load chunks
|
||||
}
|
||||
|
||||
public PrimedTnt(Level world, double x, double y, double z, @Nullable LivingEntity igniter) {
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Cannon Mechanics
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
|
||||
index ee38d2a82f9f0056ebb6579868df8c4709cd7b41..fe21305f66cc60e2036d2023f5f49e4a23e014dc 100644
|
||||
index eec86ec7088079f31a5348089f47f29e7a1adaa8..755c620be47f3f93852ac5e916b14d3c94167f27 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
|
||||
@@ -68,6 +68,7 @@ public class FallingBlockEntity extends Entity {
|
||||
@@ -19,7 +19,7 @@ index ee38d2a82f9f0056ebb6579868df8c4709cd7b41..fe21305f66cc60e2036d2023f5f49e4a
|
||||
@@ -76,6 +77,7 @@ public class FallingBlockEntity extends Entity {
|
||||
this.fallDamageMax = 40;
|
||||
this.isFallingBlock = true; // Sakura
|
||||
this.loadChunks = world.sakuraConfig().cannons.sand.loadsChunks; // Sakura - load chunks
|
||||
this.loadChunks = world.sakuraConfig().cannons.loadChunks; // Sakura - falling blocks load chunks
|
||||
+ this.heightParity = world.sakuraConfig().cannons.mechanics.fallingBlockParity; // Sakura - configure cannon mechanics
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ index ee38d2a82f9f0056ebb6579868df8c4709cd7b41..fe21305f66cc60e2036d2023f5f49e4a
|
||||
@Override
|
||||
protected double getDefaultGravity() {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
|
||||
index 85b2cfd067c71eed3a5a8007ed6e933e9609f94d..469bc508416ae44546c655a23d9bc2572078ccb5 100644
|
||||
index d3073a058e4d200b0146d7b72ef3cd56a6a1d8d8..8760cfe061e33ac257c5fcf9c0833ba5b470d95b 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
|
||||
@@ -52,6 +52,12 @@ public class PrimedTnt extends Entity implements TraceableEntity {
|
||||
|
||||
Reference in New Issue
Block a user