mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-27 23:10:16 +01:00
SPIGOT-4526: Add conversion time API for Zombie & subclasses
This commit is contained in:
parent
c64fe5080c
commit
6ec8ea5cf4
5 changed files with 93 additions and 7 deletions
|
@ -16,8 +16,17 @@
|
||||||
public class EntityZombie extends EntityMonster {
|
public class EntityZombie extends EntityMonster {
|
||||||
|
|
||||||
protected static final IAttribute c = (new AttributeRanged((IAttribute) null, "zombie.spawnReinforcements", 0.0D, 0.0D, 1.0D)).a("Spawn Reinforcements Chance");
|
protected static final IAttribute c = (new AttributeRanged((IAttribute) null, "zombie.spawnReinforcements", 0.0D, 0.0D, 1.0D)).a("Spawn Reinforcements Chance");
|
||||||
@@ -21,6 +30,7 @@
|
@@ -14,13 +23,14 @@
|
||||||
private int drownedConversionTime;
|
private static final DataWatcherObject<Boolean> bC = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.i);
|
||||||
|
private static final DataWatcherObject<Integer> bD = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.b);
|
||||||
|
private static final DataWatcherObject<Boolean> bE = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.i);
|
||||||
|
- private static final DataWatcherObject<Boolean> bF = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.i);
|
||||||
|
+ public static final DataWatcherObject<Boolean> bF = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.i); // PAIL
|
||||||
|
private final PathfinderGoalBreakDoor bG;
|
||||||
|
private boolean bH;
|
||||||
|
private int bI;
|
||||||
|
- private int drownedConversionTime;
|
||||||
|
+ public int drownedConversionTime; // PAIL
|
||||||
private float bK;
|
private float bK;
|
||||||
private float bL;
|
private float bL;
|
||||||
+ private int lastTick = MinecraftServer.currentTick; // CraftBukkit - add field
|
+ private int lastTick = MinecraftServer.currentTick; // CraftBukkit - add field
|
||||||
|
@ -39,7 +48,7 @@
|
||||||
if (this.drownedConversionTime < 0) {
|
if (this.drownedConversionTime < 0) {
|
||||||
this.dE();
|
this.dE();
|
||||||
}
|
}
|
||||||
@@ -182,7 +196,14 @@
|
@@ -182,14 +196,21 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flag) {
|
if (flag) {
|
||||||
|
@ -55,6 +64,14 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
super.movementTick();
|
||||||
|
}
|
||||||
|
|
||||||
|
- private void a(int i) {
|
||||||
|
+ public void a(int i) { // PAIL
|
||||||
|
this.drownedConversionTime = i;
|
||||||
|
this.getDataWatcher().set(EntityZombie.bF, true);
|
||||||
|
}
|
||||||
@@ -221,7 +242,12 @@
|
@@ -221,7 +242,12 @@
|
||||||
entityzombie.setCustomNameVisible(this.getCustomNameVisible());
|
entityzombie.setCustomNameVisible(this.getCustomNameVisible());
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/net/minecraft/server/EntityZombieVillager.java
|
--- a/net/minecraft/server/EntityZombieVillager.java
|
||||||
+++ b/net/minecraft/server/EntityZombieVillager.java
|
+++ b/net/minecraft/server/EntityZombieVillager.java
|
||||||
@@ -2,6 +2,10 @@
|
@@ -2,13 +2,18 @@
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
@ -11,9 +11,11 @@
|
||||||
|
|
||||||
public class EntityZombieVillager extends EntityZombie {
|
public class EntityZombieVillager extends EntityZombie {
|
||||||
|
|
||||||
@@ -9,6 +13,7 @@
|
- private static final DataWatcherObject<Boolean> a = DataWatcher.a(EntityZombieVillager.class, DataWatcherRegistry.i);
|
||||||
|
+ public static final DataWatcherObject<Boolean> a = DataWatcher.a(EntityZombieVillager.class, DataWatcherRegistry.i); // PAIL
|
||||||
private static final DataWatcherObject<Integer> b = DataWatcher.a(EntityZombieVillager.class, DataWatcherRegistry.b);
|
private static final DataWatcherObject<Integer> b = DataWatcher.a(EntityZombieVillager.class, DataWatcherRegistry.b);
|
||||||
private int conversionTime;
|
- private int conversionTime;
|
||||||
|
+ public int conversionTime; // PAIL
|
||||||
private UUID bD;
|
private UUID bD;
|
||||||
+ private int lastTick = MinecraftServer.currentTick; // CraftBukkit - add field
|
+ private int lastTick = MinecraftServer.currentTick; // CraftBukkit - add field
|
||||||
|
|
||||||
|
@ -34,7 +36,12 @@
|
||||||
|
|
||||||
this.conversionTime -= i;
|
this.conversionTime -= i;
|
||||||
if (this.conversionTime <= 0) {
|
if (this.conversionTime <= 0) {
|
||||||
@@ -100,8 +110,10 @@
|
@@ -96,12 +106,14 @@
|
||||||
|
return (Boolean) this.getDataWatcher().get(EntityZombieVillager.a);
|
||||||
|
}
|
||||||
|
|
||||||
|
- protected void a(@Nullable UUID uuid, int i) {
|
||||||
|
+ public void a(@Nullable UUID uuid, int i) { // PAIL
|
||||||
this.bD = uuid;
|
this.bD = uuid;
|
||||||
this.conversionTime = i;
|
this.conversionTime = i;
|
||||||
this.getDataWatcher().set(EntityZombieVillager.a, true);
|
this.getDataWatcher().set(EntityZombieVillager.a, true);
|
||||||
|
|
|
@ -41,4 +41,19 @@ public class CraftPigZombie extends CraftZombie implements PigZombie {
|
||||||
public EntityType getType() {
|
public EntityType getType() {
|
||||||
return EntityType.PIG_ZOMBIE;
|
return EntityType.PIG_ZOMBIE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isConverting() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getConversionTime() {
|
||||||
|
throw new UnsupportedOperationException("Not supported by this Entity.");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setConversionTime(int time) {
|
||||||
|
throw new UnsupportedOperationException("Not supported by this Entity.");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package org.bukkit.craftbukkit.entity;
|
package org.bukkit.craftbukkit.entity;
|
||||||
|
|
||||||
|
import com.google.common.base.Preconditions;
|
||||||
|
import java.util.UUID;
|
||||||
import net.minecraft.server.EntityZombieVillager;
|
import net.minecraft.server.EntityZombieVillager;
|
||||||
import org.bukkit.craftbukkit.CraftServer;
|
import org.bukkit.craftbukkit.CraftServer;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
|
@ -36,4 +38,26 @@ public class CraftVillagerZombie extends CraftZombie implements ZombieVillager {
|
||||||
public void setVillagerProfession(Villager.Profession profession) {
|
public void setVillagerProfession(Villager.Profession profession) {
|
||||||
getHandle().setProfession(profession == null ? 0 : profession.ordinal() - Villager.Profession.FARMER.ordinal());
|
getHandle().setProfession(profession == null ? 0 : profession.ordinal() - Villager.Profession.FARMER.ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isConverting() {
|
||||||
|
return getHandle().isConverting();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getConversionTime() {
|
||||||
|
Preconditions.checkState(isConverting(), "Entity not converting");
|
||||||
|
|
||||||
|
return getHandle().conversionTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setConversionTime(int time) {
|
||||||
|
if (time < 0) {
|
||||||
|
getHandle().conversionTime = -1;
|
||||||
|
getHandle().getDataWatcher().set(EntityZombieVillager.a, false);
|
||||||
|
} else {
|
||||||
|
getHandle().a((UUID) null, time);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package org.bukkit.craftbukkit.entity;
|
package org.bukkit.craftbukkit.entity;
|
||||||
|
|
||||||
|
import com.google.common.base.Preconditions;
|
||||||
import net.minecraft.server.EntityZombie;
|
import net.minecraft.server.EntityZombie;
|
||||||
import net.minecraft.server.EntityZombieVillager;
|
import net.minecraft.server.EntityZombieVillager;
|
||||||
|
|
||||||
|
@ -54,4 +55,26 @@ public class CraftZombie extends CraftMonster implements Zombie {
|
||||||
public Villager.Profession getVillagerProfession() {
|
public Villager.Profession getVillagerProfession() {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isConverting() {
|
||||||
|
return getHandle().isDrownConverting();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getConversionTime() {
|
||||||
|
Preconditions.checkState(isConverting(), "Entity not converting");
|
||||||
|
|
||||||
|
return getHandle().drownedConversionTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setConversionTime(int time) {
|
||||||
|
if (time < 0) {
|
||||||
|
getHandle().drownedConversionTime = -1;
|
||||||
|
getHandle().getDataWatcher().set(EntityZombie.bF, false);
|
||||||
|
} else {
|
||||||
|
getHandle().a(time);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue