mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
MC-238526 - Fix spawner not spawning water animals correctly
This commit is contained in:
@@ -1,33 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: BillyGalbreath <Blake.Galbreath@Gmail.com>
|
|
||||||
Date: Sun, 30 Jan 2022 02:03:34 -0600
|
|
||||||
Subject: [PATCH] MC-238526 - Fix spawner not spawning water animals correctly
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/entity/animal/WaterAnimal.java b/net/minecraft/world/entity/animal/WaterAnimal.java
|
|
||||||
index 8c4532a250f8679d729a35c17e9b5bd339264450..2b8336bd88641cfb29e94c8f01abfbdb39938bf3 100644
|
|
||||||
--- a/net/minecraft/world/entity/animal/WaterAnimal.java
|
|
||||||
+++ b/net/minecraft/world/entity/animal/WaterAnimal.java
|
|
||||||
@@ -74,6 +74,6 @@ public abstract class WaterAnimal extends PathfinderMob {
|
|
||||||
i = world.getMinecraftWorld().paperConfig().entities.spawning.wateranimalSpawnHeight.maximum.or(i);
|
|
||||||
j = world.getMinecraftWorld().paperConfig().entities.spawning.wateranimalSpawnHeight.minimum.or(j);
|
|
||||||
// Paper end - Make water animal spawn height configurable
|
|
||||||
- return pos.getY() >= j && pos.getY() <= i && world.getFluidState(pos.below()).is(FluidTags.WATER) && world.getBlockState(pos.above()).is(Blocks.WATER);
|
|
||||||
+ return ((reason == EntitySpawnReason.SPAWNER && world.getMinecraftWorld().purpurConfig.spawnerFixMC238526) || (pos.getY() >= j && pos.getY() <= i)) && world.getFluidState(pos.below()).is(FluidTags.WATER) && world.getBlockState(pos.above()).is(Blocks.WATER); // Purpur
|
|
||||||
}
|
|
||||||
}
|
|
||||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
|
||||||
index b5b0a603c8c6c3e71e1540012227500276022263..6572bbaf5d5548b1d2d6c224a9dcbbfe31f34339 100644
|
|
||||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
|
||||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
|
||||||
@@ -1030,8 +1030,10 @@ public class PurpurWorldConfig {
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean spawnerDeactivateByRedstone = false;
|
|
||||||
+ public boolean spawnerFixMC238526 = false;
|
|
||||||
private void spawnerSettings() {
|
|
||||||
spawnerDeactivateByRedstone = getBoolean("blocks.spawner.deactivate-by-redstone", spawnerDeactivateByRedstone);
|
|
||||||
+ spawnerFixMC238526 = getBoolean("blocks.spawner.fix-mc-238526", spawnerFixMC238526);
|
|
||||||
}
|
|
||||||
|
|
||||||
public int spongeAbsorptionArea = 65;
|
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
--- a/net/minecraft/world/entity/animal/WaterAnimal.java
|
||||||
|
+++ b/net/minecraft/world/entity/animal/WaterAnimal.java
|
||||||
|
@@ -74,8 +_,7 @@
|
||||||
|
seaLevel = level.getMinecraftWorld().paperConfig().entities.spawning.wateranimalSpawnHeight.maximum.or(seaLevel);
|
||||||
|
i = level.getMinecraftWorld().paperConfig().entities.spawning.wateranimalSpawnHeight.minimum.or(i);
|
||||||
|
// Paper end - Make water animal spawn height configurable
|
||||||
|
- return pos.getY() >= i
|
||||||
|
- && pos.getY() <= seaLevel
|
||||||
|
+ return ((spawnReason == EntitySpawnReason.SPAWNER && level.getMinecraftWorld().purpurConfig.spawnerFixMC238526) || (pos.getY() >= i && pos.getY() <= seaLevel)) // Purpur - MC-238526 - Fix spawner not spawning water animals correctly
|
||||||
|
&& level.getFluidState(pos.below()).is(FluidTags.WATER)
|
||||||
|
&& level.getBlockState(pos.above()).is(Blocks.WATER);
|
||||||
|
}
|
||||||
@@ -1029,8 +1029,10 @@ public class PurpurWorldConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean spawnerDeactivateByRedstone = false;
|
public boolean spawnerDeactivateByRedstone = false;
|
||||||
|
public boolean spawnerFixMC238526 = false;
|
||||||
private void spawnerSettings() {
|
private void spawnerSettings() {
|
||||||
spawnerDeactivateByRedstone = getBoolean("blocks.spawner.deactivate-by-redstone", spawnerDeactivateByRedstone);
|
spawnerDeactivateByRedstone = getBoolean("blocks.spawner.deactivate-by-redstone", spawnerDeactivateByRedstone);
|
||||||
|
spawnerFixMC238526 = getBoolean("blocks.spawner.fix-mc-238526", spawnerFixMC238526);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int spongeAbsorptionArea = 65;
|
public int spongeAbsorptionArea = 65;
|
||||||
|
|||||||
Reference in New Issue
Block a user