mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-21 07:09:21 +08:00
459987d69f
improved the water code so that immunity wont trigger if the entity has the water pathfinder system active, so this improves support for all entities that know how to behave in water. Merged 2 EAR patches together, and removed an MCUtil method that doesnt have a purpose anymore
46 lines
2.0 KiB
Diff
46 lines
2.0 KiB
Diff
From d3dc554ffad4b9665f26bc93ad2b45efa06bba9a Mon Sep 17 00:00:00 2001
|
|
From: Zach Brown <zach.brown@destroystokyo.com>
|
|
Date: Sat, 18 Feb 2017 19:29:58 -0600
|
|
Subject: [PATCH] Do not let armorstands drown
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/EntityArmorStand.java b/src/main/java/net/minecraft/server/EntityArmorStand.java
|
|
index 00a46129b8..6628af7778 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityArmorStand.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityArmorStand.java
|
|
@@ -766,5 +766,10 @@ public class EntityArmorStand extends EntityLiving {
|
|
super.move(moveType, x, y, z);
|
|
}
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public boolean canBreatheUnderwater() { // Skips a bit of damage handling code, probably a micro-optimization
|
|
+ return true;
|
|
+ }
|
|
// Paper end
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
|
|
index d926cbb247..b9227f7a7f 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityLiving.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
|
|
@@ -202,6 +202,7 @@ public abstract class EntityLiving extends Entity {
|
|
super.a(d0, flag, iblockdata, blockposition);
|
|
}
|
|
|
|
+ public boolean canBreatheUnderwater() { return this.ca(); } // Paper - OBFHELPER
|
|
public boolean ca() {
|
|
return this.getMonsterType() == EnumMonsterType.UNDEAD;
|
|
}
|
|
@@ -236,7 +237,7 @@ public abstract class EntityLiving extends Entity {
|
|
|
|
if (this.isAlive()) {
|
|
if (this.a(TagsFluid.WATER) && this.world.getType(new BlockPosition(this.locX, this.locY + (double) this.getHeadHeight(), this.locZ)).getBlock() != Blocks.BUBBLE_COLUMN) {
|
|
- if (!this.ca() && !MobEffectUtil.c(this) && !flag1) {
|
|
+ if (!this.canBreatheUnderwater() && !MobEffectUtil.c(this) && !flag1) { // Paper - use OBFHELPER so it can be overridden
|
|
this.setAirTicks(this.k(this.getAirTicks()));
|
|
if (this.getAirTicks() == -20) {
|
|
this.setAirTicks(0);
|
|
--
|
|
2.19.0
|
|
|