From 1ffee543ad5361c38a5f4e616c119f63cbdcc01c Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 12 Jan 2025 15:08:15 -0800 Subject: [PATCH] Add config for snow on blue ice --- ...0241-Add-config-for-snow-on-blue-ice.patch | 39 ------------------- .../level/block/SnowLayerBlock.java.patch | 10 +++++ .../purpurmc/purpur/PurpurWorldConfig.java | 2 + 3 files changed, 12 insertions(+), 39 deletions(-) delete mode 100644 patches/server/0241-Add-config-for-snow-on-blue-ice.patch create mode 100644 purpur-server/minecraft-patches/sources/net/minecraft/world/level/block/SnowLayerBlock.java.patch diff --git a/patches/server/0241-Add-config-for-snow-on-blue-ice.patch b/patches/server/0241-Add-config-for-snow-on-blue-ice.patch deleted file mode 100644 index add2a8517..000000000 --- a/patches/server/0241-Add-config-for-snow-on-blue-ice.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: William Blake Galbreath -Date: Wed, 8 Jun 2022 15:19:41 -0400 -Subject: [PATCH] Add config for snow on blue ice - - -diff --git a/net/minecraft/world/level/block/SnowLayerBlock.java b/net/minecraft/world/level/block/SnowLayerBlock.java -index 9908a0b5b1fec5f9de518a733f7abbbff7e1a9f9..0ad444cf7f798f63e9140a42c5d5d8cab0fcf14f 100644 ---- a/net/minecraft/world/level/block/SnowLayerBlock.java -+++ b/net/minecraft/world/level/block/SnowLayerBlock.java -@@ -88,6 +88,12 @@ public class SnowLayerBlock extends Block { - protected boolean canSurvive(BlockState state, LevelReader world, BlockPos pos) { - BlockState iblockdata1 = world.getBlockState(pos.below()); - -+ // Purpur start -+ if (iblockdata1.is(Blocks.BLUE_ICE) && !world.getWorldBorder().world.purpurConfig.snowOnBlueIce) { -+ return false; -+ } -+ // Purpur end -+ - return iblockdata1.is(BlockTags.SNOW_LAYER_CANNOT_SURVIVE_ON) ? false : (iblockdata1.is(BlockTags.SNOW_LAYER_CAN_SURVIVE_ON) ? true : Block.isFaceFull(iblockdata1.getCollisionShape(world, pos.below()), Direction.UP) || iblockdata1.is((Block) this) && (Integer) iblockdata1.getValue(SnowLayerBlock.LAYERS) == 8); - } - -diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 18ea922e71dc9de3e9eccac2d30c5f2776928a0b..cbf26d5f0a3d615883b17c65709d078c72c46bbf 100644 ---- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -975,9 +975,11 @@ public class PurpurWorldConfig { - - public boolean mobsSpawnOnPackedIce = true; - public boolean mobsSpawnOnBlueIce = true; -+ public boolean snowOnBlueIce = true; - private void iceSettings() { - mobsSpawnOnPackedIce = getBoolean("blocks.packed_ice.allow-mob-spawns", mobsSpawnOnPackedIce); - mobsSpawnOnBlueIce = getBoolean("blocks.blue_ice.allow-mob-spawns", mobsSpawnOnBlueIce); -+ snowOnBlueIce = getBoolean("blocks.blue_ice.allow-snow-formation", snowOnBlueIce); - } - - public int lavaInfiniteRequiredSources = 2; diff --git a/purpur-server/minecraft-patches/sources/net/minecraft/world/level/block/SnowLayerBlock.java.patch b/purpur-server/minecraft-patches/sources/net/minecraft/world/level/block/SnowLayerBlock.java.patch new file mode 100644 index 000000000..f6406d510 --- /dev/null +++ b/purpur-server/minecraft-patches/sources/net/minecraft/world/level/block/SnowLayerBlock.java.patch @@ -0,0 +1,10 @@ +--- a/net/minecraft/world/level/block/SnowLayerBlock.java ++++ b/net/minecraft/world/level/block/SnowLayerBlock.java +@@ -96,6 +_,7 @@ + @Override + protected boolean canSurvive(BlockState state, LevelReader level, BlockPos pos) { + BlockState blockState = level.getBlockState(pos.below()); ++ if (blockState.is(Blocks.BLUE_ICE) && !level.getWorldBorder().world.purpurConfig.snowOnBlueIce) return false; // Purpur - Add config for snow on blue ice + return !blockState.is(BlockTags.SNOW_LAYER_CANNOT_SURVIVE_ON) + && ( + blockState.is(BlockTags.SNOW_LAYER_CAN_SURVIVE_ON) diff --git a/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java index ce9b3eecf..3375064f0 100644 --- a/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -974,9 +974,11 @@ public class PurpurWorldConfig { public boolean mobsSpawnOnPackedIce = true; public boolean mobsSpawnOnBlueIce = true; + public boolean snowOnBlueIce = true; private void iceSettings() { mobsSpawnOnPackedIce = getBoolean("blocks.packed_ice.allow-mob-spawns", mobsSpawnOnPackedIce); mobsSpawnOnBlueIce = getBoolean("blocks.blue_ice.allow-mob-spawns", mobsSpawnOnBlueIce); + snowOnBlueIce = getBoolean("blocks.blue_ice.allow-snow-formation", snowOnBlueIce); } public int lavaInfiniteRequiredSources = 2;