mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-22 02:47:43 +01:00
Upstream has released updates that appear to apply and compile correctly Paper Changes:415f7ca165Updated Upstream (Bukkit/CraftBukkit)37df95b189refactor: do not import List; use FQN5c65546f5crebasefdef125b19Expose EntityType#getTranslationKey4d9b14efa4Use AsyncAppender instead of AsyncLoggerContextSelector to keep loggging IO off main thread (#6381)8c2adf8e9eAdd warning to getOfflinePlayers (#6365)370b60de14Optimize indirect passenger iteration (#6366)80836709e7Fix block drops position losing precision millions of blocks out (#6387)e942509e73Updated Upstream (Bukkit/CraftBukkit/Spigot) (#6379)ce43ce8265Make EntityUnleashEvent cancellable (#4993)591cac3685Configurable item frame map cursor interval (#6385)e9aa9ce66bAdd config migration for named entity death logging option (#6390)c2f47a76aeImplement Translatable in appropriate places (#6248)f12a7f57e1Clear bucket NBT after dispense (#6391)4dd33cb8b6[ci skip] Drop "Fix CME on adding a passenger in CreatureSpawnEvent" (#6384)565cd3306c[ci skip] Add some helper methods to the ObfHelper util class (#6374) Tuinity Changes:6fd7e2b376Update paper
82 lines
4.0 KiB
Diff
82 lines
4.0 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
|
Date: Thu, 13 Aug 2020 04:00:26 -0500
|
|
Subject: [PATCH] Stop squids floating on top of water
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
|
index ed2401f46f1ba021c4236c23c655786afd8c36b0..6661ad7943a11e3e938e99c2da03b99346603898 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
|
@@ -3844,11 +3844,17 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n
|
|
this.yRotO = this.getYRot();
|
|
}
|
|
|
|
+ // Purpur start
|
|
+ public AABB getAxisForFluidCheck() {
|
|
+ return this.getBoundingBox().deflate(0.001D);
|
|
+ }
|
|
+ // Purpur end
|
|
+
|
|
public boolean updateFluidHeightAndDoFluidPushing(Tag<Fluid> tag, double d0) {
|
|
if (this.touchingUnloadedChunk()) {
|
|
return false;
|
|
} else {
|
|
- AABB axisalignedbb = this.getBoundingBox().deflate(0.001D);
|
|
+ AABB axisalignedbb = getAxisForFluidCheck(); // Purpur
|
|
int i = Mth.floor(axisalignedbb.minX);
|
|
int j = Mth.ceil(axisalignedbb.maxX);
|
|
int k = Mth.floor(axisalignedbb.minY);
|
|
diff --git a/src/main/java/net/minecraft/world/entity/animal/Squid.java b/src/main/java/net/minecraft/world/entity/animal/Squid.java
|
|
index f96def2ebdf114823c322c2d4318d039e20eab97..2affff346a7fe81480e86cb61996039df0569853 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/animal/Squid.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/animal/Squid.java
|
|
@@ -79,6 +79,12 @@ public class Squid extends WaterAnimal {
|
|
public void initAttributes() {
|
|
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.squidMaxHealth);
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public net.minecraft.world.phys.AABB getAxisForFluidCheck() {
|
|
+ // Stops squids from floating just over the water
|
|
+ return this.getBoundingBox().deflate(0.001D).offsetY(level.purpurConfig.squidOffsetWaterCheck);
|
|
+ }
|
|
// Purpur end
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/world/phys/AABB.java b/src/main/java/net/minecraft/world/phys/AABB.java
|
|
index 6f7e6429c35eea346517cbf08cf223fc6d838a8c..6a77112180556675af38cb1b3ce0b38a42ce9525 100644
|
|
--- a/src/main/java/net/minecraft/world/phys/AABB.java
|
|
+++ b/src/main/java/net/minecraft/world/phys/AABB.java
|
|
@@ -367,4 +367,10 @@ public class AABB {
|
|
public static AABB ofSize(Vec3 center, double dx, double dy, double dz) {
|
|
return new AABB(center.x - dx / 2.0D, center.y - dy / 2.0D, center.z - dz / 2.0D, center.x + dx / 2.0D, center.y + dy / 2.0D, center.z + dz / 2.0D);
|
|
}
|
|
+
|
|
+ // Purpur - tuinity added method
|
|
+ public final AABB offsetY(double dy) {
|
|
+ return new AABB(this.minX, this.minY + dy, this.minZ, this.maxX, this.maxY + dy, this.maxZ);
|
|
+ }
|
|
+ // Purpur
|
|
}
|
|
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
index de55bed5b04d18562c250568d61338be38015b2c..0ff8d202030da6e7f776619101db70afb2f5243e 100644
|
|
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
@@ -1314,6 +1314,7 @@ public class PurpurWorldConfig {
|
|
public boolean squidRidable = false;
|
|
public double squidMaxHealth = 10.0D;
|
|
public boolean squidImmuneToEAR = true;
|
|
+ public double squidOffsetWaterCheck = 0.0D;
|
|
private void squidSettings() {
|
|
squidRidable = getBoolean("mobs.squid.ridable", squidRidable);
|
|
if (PurpurConfig.version < 10) {
|
|
@@ -1323,6 +1324,7 @@ public class PurpurWorldConfig {
|
|
}
|
|
squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth);
|
|
squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR);
|
|
+ squidOffsetWaterCheck = getDouble("mobs.squid.water-offset-check", squidOffsetWaterCheck);
|
|
}
|
|
|
|
public boolean spiderRidable = false;
|