From 31ed7115dcc9267397dcea519a4e856cc0578145 Mon Sep 17 00:00:00 2001 From: granny Date: Sun, 3 Sep 2023 21:36:03 -0700 Subject: [PATCH] add sand-into-glass option --- .../0309-lightning-transforms-blocks.patch | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/patches/server/0309-lightning-transforms-blocks.patch b/patches/server/0309-lightning-transforms-blocks.patch index 20f447c7f..322312975 100644 --- a/patches/server/0309-lightning-transforms-blocks.patch +++ b/patches/server/0309-lightning-transforms-blocks.patch @@ -5,15 +5,17 @@ Subject: [PATCH] lightning transforms blocks diff --git a/src/main/java/net/minecraft/world/entity/LightningBolt.java b/src/main/java/net/minecraft/world/entity/LightningBolt.java -index a01a8ba27534d2b0d544423bc2c48fd29d0a6d64..0f708a1f0a141cc088ba860023d5ce9114ded9e5 100644 +index a01a8ba27534d2b0d544423bc2c48fd29d0a6d64..6036a6fba66bec97ac46f2984356e2d1d6d94994 100644 --- a/src/main/java/net/minecraft/world/entity/LightningBolt.java +++ b/src/main/java/net/minecraft/world/entity/LightningBolt.java -@@ -83,6 +83,49 @@ public class LightningBolt extends Entity { +@@ -83,6 +83,51 @@ public class LightningBolt extends Entity { } + // Purpur start + private void transformBlocks() { ++ if (!level().purpurConfig.lightningTransformsBlocks) return; ++ + BlockPos blockposition = this.getStrikePosition(); + BlockState iblockdata = this.level().getBlockState(blockposition); + BlockPos blockposition2; @@ -27,13 +29,13 @@ index a01a8ba27534d2b0d544423bc2c48fd29d0a6d64..0f708a1f0a141cc088ba860023d5ce91 + blockposition2 = blockposition; + } + -+ if (level().purpurConfig.lightningTurnsNearbySandIntoGlass && iblockdata2.is(Blocks.SAND)) { ++ if (level().purpurConfig.lightningTurnsSandIntoGlass && iblockdata2.is(Blocks.SAND)) { + level().setBlock(blockposition2, Blocks.GLASS.defaultBlockState(), 2); + } else if (level().purpurConfig.lightningTurnsStoneIntoObsidian && iblockdata2.is(Blocks.STONE)) { + level().setBlock(blockposition2, Blocks.OBSIDIAN.defaultBlockState(), 2); + } else if (level().purpurConfig.lightningTurnsWaterIntoStone && iblockdata2.is(Blocks.WATER)) { + level().setBlock(blockposition2, Blocks.STONE.defaultBlockState(), 2); -+ } else { ++ } else if (!level().purpurConfig.lightningTurnsNearbySandIntoGlass) { + return; + } + @@ -58,7 +60,7 @@ index a01a8ba27534d2b0d544423bc2c48fd29d0a6d64..0f708a1f0a141cc088ba860023d5ce91 @Override public void tick() { super.tick(); -@@ -98,6 +141,7 @@ public class LightningBolt extends Entity { +@@ -98,6 +143,7 @@ public class LightningBolt extends Entity { } this.powerLightningRod(); @@ -116,10 +118,10 @@ index 2276fed1feb4fea59b5bd49b5e4586d49478b3cc..bd1edc58a863673491a2935af4dc9299 for (CraftBlockState block : blocks) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 078102e636803f38facc049952813ff2f8b63594..eed225bc3e0568a2b0a5c3370f81d1f1235334b6 100644 +index 078102e636803f38facc049952813ff2f8b63594..36ec3a3d830aab562bfe9e8d657fa3232360f0cb 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -145,6 +145,12 @@ public class PurpurWorldConfig { +@@ -145,6 +145,13 @@ public class PurpurWorldConfig { public boolean rainStopsAfterSleep = true; public boolean thunderStopsAfterSleep = true; public int mobLastHurtByPlayerTime = 100; @@ -127,12 +129,13 @@ index 078102e636803f38facc049952813ff2f8b63594..eed225bc3e0568a2b0a5c3370f81d1f1 + public boolean lightningTurnsNearbySandIntoGlass = true; + public int lightningTurnsNearbySandIntoGlassMaxDepth = 3; + public int lightningTurnsNearbySandIntoGlassMaxIterations = 6; ++ public boolean lightningTurnsSandIntoGlass = true; + public boolean lightningTurnsWaterIntoStone = true; + public boolean lightningTurnsStoneIntoObsidian = true; private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); mendingMultiplier = getDouble("gameplay-mechanics.mending-multiplier", mendingMultiplier); -@@ -173,6 +179,12 @@ public class PurpurWorldConfig { +@@ -173,6 +180,13 @@ public class PurpurWorldConfig { rainStopsAfterSleep = getBoolean("gameplay-mechanics.rain-stops-after-sleep", rainStopsAfterSleep); thunderStopsAfterSleep = getBoolean("gameplay-mechanics.thunder-stops-after-sleep", thunderStopsAfterSleep); mobLastHurtByPlayerTime = getInt("gameplay-mechanics.mob-last-hurt-by-player-time", mobLastHurtByPlayerTime); @@ -140,6 +143,7 @@ index 078102e636803f38facc049952813ff2f8b63594..eed225bc3e0568a2b0a5c3370f81d1f1 + lightningTurnsNearbySandIntoGlass = getBoolean("gameplay-mechanics.lightning-transforms-blocks.nearby-sand-into-glass.enabled", lightningTurnsNearbySandIntoGlass); + lightningTurnsNearbySandIntoGlassMaxDepth = getInt("gameplay-mechanics.lightning-transforms-blocks.nearby-sand-into-glass.max-depth", lightningTurnsNearbySandIntoGlassMaxDepth); + lightningTurnsNearbySandIntoGlassMaxIterations = getInt("gameplay-mechanics.lightning-transforms-blocks.nearby-sand-into-glass.max-iteration", lightningTurnsNearbySandIntoGlassMaxIterations); ++ lightningTurnsSandIntoGlass = getBoolean("gameplay-mechanics.lightning-transforms-blocks.sand-into-glass", lightningTurnsSandIntoGlass); + lightningTurnsWaterIntoStone = getBoolean("gameplay-mechanics.lightning-transforms-blocks.water-into-stone", lightningTurnsWaterIntoStone); + lightningTurnsStoneIntoObsidian = getBoolean("gameplay-mechanics.lightning-transforms-blocks.stone-into-obsidian", lightningTurnsStoneIntoObsidian); }