add sand-into-glass option

This commit is contained in:
granny 2023-09-03 21:36:03 -07:00
parent f17c090c5a
commit 31ed7115dc
No known key found for this signature in database

View File

@ -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 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 --- a/src/main/java/net/minecraft/world/entity/LightningBolt.java
+++ b/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 + // Purpur start
+ private void transformBlocks() { + private void transformBlocks() {
+ if (!level().purpurConfig.lightningTransformsBlocks) return;
+
+ BlockPos blockposition = this.getStrikePosition(); + BlockPos blockposition = this.getStrikePosition();
+ BlockState iblockdata = this.level().getBlockState(blockposition); + BlockState iblockdata = this.level().getBlockState(blockposition);
+ BlockPos blockposition2; + BlockPos blockposition2;
@ -27,13 +29,13 @@ index a01a8ba27534d2b0d544423bc2c48fd29d0a6d64..0f708a1f0a141cc088ba860023d5ce91
+ blockposition2 = blockposition; + 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); + level().setBlock(blockposition2, Blocks.GLASS.defaultBlockState(), 2);
+ } else if (level().purpurConfig.lightningTurnsStoneIntoObsidian && iblockdata2.is(Blocks.STONE)) { + } else if (level().purpurConfig.lightningTurnsStoneIntoObsidian && iblockdata2.is(Blocks.STONE)) {
+ level().setBlock(blockposition2, Blocks.OBSIDIAN.defaultBlockState(), 2); + level().setBlock(blockposition2, Blocks.OBSIDIAN.defaultBlockState(), 2);
+ } else if (level().purpurConfig.lightningTurnsWaterIntoStone && iblockdata2.is(Blocks.WATER)) { + } else if (level().purpurConfig.lightningTurnsWaterIntoStone && iblockdata2.is(Blocks.WATER)) {
+ level().setBlock(blockposition2, Blocks.STONE.defaultBlockState(), 2); + level().setBlock(blockposition2, Blocks.STONE.defaultBlockState(), 2);
+ } else { + } else if (!level().purpurConfig.lightningTurnsNearbySandIntoGlass) {
+ return; + return;
+ } + }
+ +
@ -58,7 +60,7 @@ index a01a8ba27534d2b0d544423bc2c48fd29d0a6d64..0f708a1f0a141cc088ba860023d5ce91
@Override @Override
public void tick() { public void tick() {
super.tick(); super.tick();
@@ -98,6 +141,7 @@ public class LightningBolt extends Entity { @@ -98,6 +143,7 @@ public class LightningBolt extends Entity {
} }
this.powerLightningRod(); this.powerLightningRod();
@ -116,10 +118,10 @@ index 2276fed1feb4fea59b5bd49b5e4586d49478b3cc..bd1edc58a863673491a2935af4dc9299
for (CraftBlockState block : blocks) { for (CraftBlockState block : blocks) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java 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 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/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 rainStopsAfterSleep = true;
public boolean thunderStopsAfterSleep = true; public boolean thunderStopsAfterSleep = true;
public int mobLastHurtByPlayerTime = 100; public int mobLastHurtByPlayerTime = 100;
@ -127,12 +129,13 @@ index 078102e636803f38facc049952813ff2f8b63594..eed225bc3e0568a2b0a5c3370f81d1f1
+ public boolean lightningTurnsNearbySandIntoGlass = true; + public boolean lightningTurnsNearbySandIntoGlass = true;
+ public int lightningTurnsNearbySandIntoGlassMaxDepth = 3; + public int lightningTurnsNearbySandIntoGlassMaxDepth = 3;
+ public int lightningTurnsNearbySandIntoGlassMaxIterations = 6; + public int lightningTurnsNearbySandIntoGlassMaxIterations = 6;
+ public boolean lightningTurnsSandIntoGlass = true;
+ public boolean lightningTurnsWaterIntoStone = true; + public boolean lightningTurnsWaterIntoStone = true;
+ public boolean lightningTurnsStoneIntoObsidian = true; + public boolean lightningTurnsStoneIntoObsidian = true;
private void miscGameplayMechanicsSettings() { private void miscGameplayMechanicsSettings() {
useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending);
mendingMultiplier = getDouble("gameplay-mechanics.mending-multiplier", mendingMultiplier); 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); rainStopsAfterSleep = getBoolean("gameplay-mechanics.rain-stops-after-sleep", rainStopsAfterSleep);
thunderStopsAfterSleep = getBoolean("gameplay-mechanics.thunder-stops-after-sleep", thunderStopsAfterSleep); thunderStopsAfterSleep = getBoolean("gameplay-mechanics.thunder-stops-after-sleep", thunderStopsAfterSleep);
mobLastHurtByPlayerTime = getInt("gameplay-mechanics.mob-last-hurt-by-player-time", mobLastHurtByPlayerTime); 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); + 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); + 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); + 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); + lightningTurnsWaterIntoStone = getBoolean("gameplay-mechanics.lightning-transforms-blocks.water-into-stone", lightningTurnsWaterIntoStone);
+ lightningTurnsStoneIntoObsidian = getBoolean("gameplay-mechanics.lightning-transforms-blocks.stone-into-obsidian", lightningTurnsStoneIntoObsidian); + lightningTurnsStoneIntoObsidian = getBoolean("gameplay-mechanics.lightning-transforms-blocks.stone-into-obsidian", lightningTurnsStoneIntoObsidian);
} }