Hide zombie particles properly

This commit is contained in:
Electroblob77
2020-05-31 17:31:31 +01:00
parent cfdda5716d
commit dd12d2ebcb
2 changed files with 16 additions and 3 deletions
@@ -38,7 +38,7 @@ public class EntityZombieSpawner extends EntityMagicConstruct {
damageMultiplier - 1, Operations.MULTIPLY_CUMULATIVE)); damageMultiplier - 1, Operations.MULTIPLY_CUMULATIVE));
zombie.setHealth(zombie.getMaxHealth()); // Need to set this because we may have just modified the value zombie.setHealth(zombie.getMaxHealth()); // Need to set this because we may have just modified the value
zombie.hurtResistantTime = 30; // Prevent fall damage zombie.hurtResistantTime = 30; // Prevent fall damage
zombie.showSpawnParticles = false; // Hide spawn particles or they pop out the top of the hidden box zombie.hideParticles(); // Hide spawn particles or they pop out the top of the hidden box
world.spawnEntity(zombie); world.spawnEntity(zombie);
} }
@@ -11,6 +11,9 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.datasync.DataParameter;
import net.minecraft.network.datasync.DataSerializers;
import net.minecraft.network.datasync.EntityDataManager;
import net.minecraft.util.EnumHand; import net.minecraft.util.EnumHand;
import net.minecraft.util.EnumParticleTypes; import net.minecraft.util.EnumParticleTypes;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
@@ -24,7 +27,7 @@ import java.util.UUID;
public class EntityZombieMinion extends EntityZombie implements ISummonedCreature { public class EntityZombieMinion extends EntityZombie implements ISummonedCreature {
public boolean showSpawnParticles = true; private static final DataParameter<Boolean> SPAWN_PARTICLES = EntityDataManager.createKey(EntityZombieMinion.class, DataSerializers.BOOLEAN);
// Field implementations // Field implementations
private int lifetime = -1; private int lifetime = -1;
@@ -42,6 +45,12 @@ public class EntityZombieMinion extends EntityZombie implements ISummonedCreatur
this.experienceValue = 0; this.experienceValue = 0;
} }
@Override
protected void entityInit(){
super.entityInit();
this.dataManager.register(SPAWN_PARTICLES, true);
}
// EntityZombie overrides (EntityZombie is a complex class so there are lots of these) // EntityZombie overrides (EntityZombie is a complex class so there are lots of these)
@Override @Override
@@ -74,7 +83,7 @@ public class EntityZombieMinion extends EntityZombie implements ISummonedCreatur
@Override @Override
public void onSpawn(){ public void onSpawn(){
if(showSpawnParticles) this.spawnParticleEffect(); if(this.dataManager.get(SPAWN_PARTICLES)) this.spawnParticleEffect();
} }
@Override @Override
@@ -96,6 +105,10 @@ public class EntityZombieMinion extends EntityZombie implements ISummonedCreatur
return true; return true;
} }
public void hideParticles(){
this.dataManager.set(SPAWN_PARTICLES, false);
}
@Override @Override
protected boolean processInteract(EntityPlayer player, EnumHand hand){ protected boolean processInteract(EntityPlayer player, EnumHand hand){
// In this case, the delegate method determines whether super is called. // In this case, the delegate method determines whether super is called.