Fixed ISpecialMob#setSpecialPathfindingMalus conflicting with method in LivingEntity

This commit is contained in:
Sarinsa 2022-08-15 23:17:24 +02:00 committed by Sarinsa
parent 32b6df59af
commit 11eb7f61da
17 changed files with 98 additions and 15 deletions

View file

@ -3,9 +3,9 @@
org.gradle.jvmargs=-Xmx3G org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false org.gradle.daemon=false
# Mod version (mc_version-mod_version) # Mod version (mc_version-mod_version)
mod_version=1.0.0 mod_version=1.0.1
mc_version=1.16.5 mc_version=1.16.5
# Dependencies # Dependencies
forge_version=36.2.34 forge_version=36.2.35
jei_version=7.7.0.106 jei_version=7.7.0.106
top_version=1.16:1.16-3.1.4-22 top_version=1.16:1.16-3.1.4-22

View file

@ -25,7 +25,7 @@ public interface ISpecialMob<T extends LivingEntity & ISpecialMob<T>> {
void setExperience( int xp ); void setExperience( int xp );
/** Sets the entity's pathfinding malus for a particular node type; negative value is un-walkable. */ /** Sets the entity's pathfinding malus for a particular node type; negative value is un-walkable. */
void setPathfindingMalus( PathNodeType nodeType, float malus ); void setSpecialPathfindingMalus( PathNodeType nodeType, float malus );
/** Called on spawn to initialize properties based on the world, difficulty, and the group it spawns with. */ /** Called on spawn to initialize properties based on the world, difficulty, and the group it spawns with. */
void finalizeSpecialSpawn( IServerWorld world, DifficultyInstance difficulty, @Nullable SpawnReason spawnReason, void finalizeSpecialSpawn( IServerWorld world, DifficultyInstance difficulty, @Nullable SpawnReason spawnReason,

View file

@ -311,14 +311,14 @@ public class SpecialMobData<T extends LivingEntity & ISpecialMob<T>> {
private void setImmuneToFire( boolean value ) { private void setImmuneToFire( boolean value ) {
isImmuneToFire = value; isImmuneToFire = value;
if( value ) { if( value ) {
theEntity.setPathfindingMalus( PathNodeType.LAVA, PathNodeType.WATER.getMalus() ); theEntity.setSpecialPathfindingMalus( PathNodeType.LAVA, PathNodeType.WATER.getMalus() );
theEntity.setPathfindingMalus( PathNodeType.DANGER_FIRE, PathNodeType.OPEN.getMalus() ); theEntity.setSpecialPathfindingMalus( PathNodeType.DANGER_FIRE, PathNodeType.OPEN.getMalus() );
theEntity.setPathfindingMalus( PathNodeType.DAMAGE_FIRE, PathNodeType.OPEN.getMalus() ); theEntity.setSpecialPathfindingMalus( PathNodeType.DAMAGE_FIRE, PathNodeType.OPEN.getMalus() );
} }
else { else {
theEntity.setPathfindingMalus( PathNodeType.LAVA, PathNodeType.LAVA.getMalus() ); theEntity.setSpecialPathfindingMalus( PathNodeType.LAVA, PathNodeType.LAVA.getMalus() );
theEntity.setPathfindingMalus( PathNodeType.DANGER_FIRE, PathNodeType.DANGER_FIRE.getMalus() ); theEntity.setSpecialPathfindingMalus( PathNodeType.DANGER_FIRE, PathNodeType.DANGER_FIRE.getMalus() );
theEntity.setPathfindingMalus( PathNodeType.DAMAGE_FIRE, PathNodeType.DAMAGE_FIRE.getMalus() ); theEntity.setSpecialPathfindingMalus( PathNodeType.DAMAGE_FIRE, PathNodeType.DAMAGE_FIRE.getMalus() );
} }
} }
@ -328,12 +328,12 @@ public class SpecialMobData<T extends LivingEntity & ISpecialMob<T>> {
theEntity.clearFire(); theEntity.clearFire();
isImmuneToBurning = value; isImmuneToBurning = value;
if( value ) { if( value ) {
theEntity.setPathfindingMalus( PathNodeType.DANGER_FIRE, PathNodeType.OPEN.getMalus() ); theEntity.setSpecialPathfindingMalus( PathNodeType.DANGER_FIRE, PathNodeType.OPEN.getMalus() );
theEntity.setPathfindingMalus( PathNodeType.DAMAGE_FIRE, PathNodeType.DANGER_FIRE.getMalus() ); theEntity.setSpecialPathfindingMalus( PathNodeType.DAMAGE_FIRE, PathNodeType.DANGER_FIRE.getMalus() );
} }
else { else {
theEntity.setPathfindingMalus( PathNodeType.DANGER_FIRE, PathNodeType.DANGER_FIRE.getMalus() ); theEntity.setSpecialPathfindingMalus( PathNodeType.DANGER_FIRE, PathNodeType.DANGER_FIRE.getMalus() );
theEntity.setPathfindingMalus( PathNodeType.DAMAGE_FIRE, PathNodeType.DAMAGE_FIRE.getMalus() ); theEntity.setSpecialPathfindingMalus( PathNodeType.DAMAGE_FIRE, PathNodeType.DAMAGE_FIRE.getMalus() );
} }
} }
@ -357,7 +357,7 @@ public class SpecialMobData<T extends LivingEntity & ISpecialMob<T>> {
private void setDamagedByWater( boolean value ) { private void setDamagedByWater( boolean value ) {
isDamagedByWater = value; isDamagedByWater = value;
theEntity.setPathfindingMalus( PathNodeType.WATER, value ? PathNodeType.LAVA.getMalus() : PathNodeType.WATER.getMalus() ); theEntity.setSpecialPathfindingMalus( PathNodeType.WATER, value ? PathNodeType.LAVA.getMalus() : PathNodeType.WATER.getMalus() );
} }
/** /**

View file

@ -24,6 +24,7 @@ import net.minecraft.nbt.CompoundNBT;
import net.minecraft.network.datasync.DataParameter; import net.minecraft.network.datasync.DataParameter;
import net.minecraft.network.datasync.DataSerializers; import net.minecraft.network.datasync.DataSerializers;
import net.minecraft.network.datasync.EntityDataManager; import net.minecraft.network.datasync.EntityDataManager;
import net.minecraft.pathfinding.PathNodeType;
import net.minecraft.potion.EffectInstance; import net.minecraft.potion.EffectInstance;
import net.minecraft.util.DamageSource; import net.minecraft.util.DamageSource;
import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.MathHelper;
@ -196,6 +197,11 @@ public class _SpecialBlazeEntity extends BlazeEntity implements IRangedAttackMob
finalizeVariantSpawn( world, difficulty, spawnReason, groupData ); finalizeVariantSpawn( world, difficulty, spawnReason, groupData );
} }
@Override
public void setSpecialPathfindingMalus(PathNodeType nodeType, float malus) {
this.setPathfindingMalus(nodeType, malus);
}
//--------------- SpecialMobData Hooks ---------------- //--------------- SpecialMobData Hooks ----------------

View file

@ -22,6 +22,7 @@ import net.minecraft.nbt.CompoundNBT;
import net.minecraft.network.datasync.DataParameter; import net.minecraft.network.datasync.DataParameter;
import net.minecraft.network.datasync.DataSerializers; import net.minecraft.network.datasync.DataSerializers;
import net.minecraft.network.datasync.EntityDataManager; import net.minecraft.network.datasync.EntityDataManager;
import net.minecraft.pathfinding.PathNodeType;
import net.minecraft.potion.EffectInstance; import net.minecraft.potion.EffectInstance;
import net.minecraft.potion.Effects; import net.minecraft.potion.Effects;
import net.minecraft.util.DamageSource; import net.minecraft.util.DamageSource;
@ -175,6 +176,11 @@ public class _SpecialCaveSpiderEntity extends CaveSpiderEntity implements IRange
super.finalizeSpawn( world, difficulty, spawnReason, groupData, eggTag ) ); super.finalizeSpawn( world, difficulty, spawnReason, groupData, eggTag ) );
} }
@Override
public void setSpecialPathfindingMalus(PathNodeType nodeType, float malus) {
this.setPathfindingMalus(nodeType, malus);
}
/** Called on spawn to set starting equipment. */ /** Called on spawn to set starting equipment. */
@Override // Seal method to force spawn equipment changes through ISpecialMob @Override // Seal method to force spawn equipment changes through ISpecialMob
protected final void populateDefaultEquipmentSlots( DifficultyInstance difficulty ) { super.populateDefaultEquipmentSlots( difficulty ); } protected final void populateDefaultEquipmentSlots( DifficultyInstance difficulty ) { super.populateDefaultEquipmentSlots( difficulty ); }

View file

@ -316,6 +316,11 @@ public class _SpecialCreeperEntity extends CreeperEntity implements IExplodingMo
@Override @Override
public final void setExperience( int xp ) { xpReward = xp; } public final void setExperience( int xp ) { xpReward = xp; }
@Override
public void setSpecialPathfindingMalus(PathNodeType nodeType, float malus) {
this.setPathfindingMalus(nodeType, malus);
}
/** Called on spawn to initialize properties based on the world, difficulty, and the group it spawns with. */ /** Called on spawn to initialize properties based on the world, difficulty, and the group it spawns with. */
@Nullable @Nullable
@Override @Override

View file

@ -17,6 +17,7 @@ import net.minecraft.nbt.CompoundNBT;
import net.minecraft.network.datasync.DataParameter; import net.minecraft.network.datasync.DataParameter;
import net.minecraft.network.datasync.DataSerializers; import net.minecraft.network.datasync.DataSerializers;
import net.minecraft.network.datasync.EntityDataManager; import net.minecraft.network.datasync.EntityDataManager;
import net.minecraft.pathfinding.PathNodeType;
import net.minecraft.potion.EffectInstance; import net.minecraft.potion.EffectInstance;
import net.minecraft.util.math.vector.Vector3d; import net.minecraft.util.math.vector.Vector3d;
import net.minecraft.world.DifficultyInstance; import net.minecraft.world.DifficultyInstance;
@ -140,6 +141,11 @@ public class _SpecialEndermanEntity extends EndermanEntity implements ISpecialMo
super.finalizeSpawn( world, difficulty, spawnReason, groupData, eggTag ) ); super.finalizeSpawn( world, difficulty, spawnReason, groupData, eggTag ) );
} }
@Override
public void setSpecialPathfindingMalus(PathNodeType nodeType, float malus) {
this.setPathfindingMalus(nodeType, malus);
}
/** Called on spawn to set starting equipment. */ /** Called on spawn to set starting equipment. */
@Override // Seal method to force spawn equipment changes through ISpecialMob @Override // Seal method to force spawn equipment changes through ISpecialMob
protected final void populateDefaultEquipmentSlots( DifficultyInstance difficulty ) { super.populateDefaultEquipmentSlots( difficulty ); } protected final void populateDefaultEquipmentSlots( DifficultyInstance difficulty ) { super.populateDefaultEquipmentSlots( difficulty ); }

View file

@ -27,6 +27,7 @@ import net.minecraft.nbt.CompoundNBT;
import net.minecraft.network.datasync.DataParameter; import net.minecraft.network.datasync.DataParameter;
import net.minecraft.network.datasync.DataSerializers; import net.minecraft.network.datasync.DataSerializers;
import net.minecraft.network.datasync.EntityDataManager; import net.minecraft.network.datasync.EntityDataManager;
import net.minecraft.pathfinding.PathNodeType;
import net.minecraft.potion.EffectInstance; import net.minecraft.potion.EffectInstance;
import net.minecraft.util.DamageSource; import net.minecraft.util.DamageSource;
import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.MathHelper;
@ -209,6 +210,11 @@ public class _SpecialGhastEntity extends GhastEntity implements IRangedAttackMob
super.finalizeSpawn( world, difficulty, spawnReason, groupData, eggTag ) ); super.finalizeSpawn( world, difficulty, spawnReason, groupData, eggTag ) );
} }
@Override
public void setSpecialPathfindingMalus(PathNodeType nodeType, float malus) {
this.setPathfindingMalus(nodeType, malus);
}
/** Called on spawn to set starting equipment. */ /** Called on spawn to set starting equipment. */
@Override // Seal method to force spawn equipment changes through ISpecialMob @Override // Seal method to force spawn equipment changes through ISpecialMob
protected final void populateDefaultEquipmentSlots( DifficultyInstance difficulty ) { super.populateDefaultEquipmentSlots( difficulty ); } protected final void populateDefaultEquipmentSlots( DifficultyInstance difficulty ) { super.populateDefaultEquipmentSlots( difficulty ); }

View file

@ -20,6 +20,7 @@ import net.minecraft.nbt.ListNBT;
import net.minecraft.network.datasync.DataParameter; import net.minecraft.network.datasync.DataParameter;
import net.minecraft.network.datasync.DataSerializers; import net.minecraft.network.datasync.DataSerializers;
import net.minecraft.network.datasync.EntityDataManager; import net.minecraft.network.datasync.EntityDataManager;
import net.minecraft.pathfinding.PathNodeType;
import net.minecraft.potion.EffectInstance; import net.minecraft.potion.EffectInstance;
import net.minecraft.util.DamageSource; import net.minecraft.util.DamageSource;
import net.minecraft.util.math.vector.Vector3d; import net.minecraft.util.math.vector.Vector3d;
@ -172,6 +173,11 @@ public class _SpecialMagmaCubeEntity extends MagmaCubeEntity implements ISpecial
super.finalizeSpawn( world, difficulty, spawnReason, groupData, eggTag ) ); super.finalizeSpawn( world, difficulty, spawnReason, groupData, eggTag ) );
} }
@Override
public void setSpecialPathfindingMalus(PathNodeType nodeType, float malus) {
this.setPathfindingMalus(nodeType, malus);
}
/** Called on spawn to set starting equipment. */ /** Called on spawn to set starting equipment. */
@Override // Seal method to force spawn equipment changes through ISpecialMob @Override // Seal method to force spawn equipment changes through ISpecialMob
protected final void populateDefaultEquipmentSlots( DifficultyInstance difficulty ) { super.populateDefaultEquipmentSlots( difficulty ); } protected final void populateDefaultEquipmentSlots( DifficultyInstance difficulty ) { super.populateDefaultEquipmentSlots( difficulty ); }

View file

@ -26,6 +26,7 @@ import net.minecraft.nbt.CompoundNBT;
import net.minecraft.network.datasync.DataParameter; import net.minecraft.network.datasync.DataParameter;
import net.minecraft.network.datasync.DataSerializers; import net.minecraft.network.datasync.DataSerializers;
import net.minecraft.network.datasync.EntityDataManager; import net.minecraft.network.datasync.EntityDataManager;
import net.minecraft.pathfinding.PathNodeType;
import net.minecraft.potion.EffectInstance; import net.minecraft.potion.EffectInstance;
import net.minecraft.util.DamageSource; import net.minecraft.util.DamageSource;
import net.minecraft.util.SoundEvents; import net.minecraft.util.SoundEvents;
@ -180,6 +181,11 @@ public class _SpecialSilverfishEntity extends SilverfishEntity implements IRange
super.finalizeSpawn( world, difficulty, spawnReason, groupData, eggTag ) ); super.finalizeSpawn( world, difficulty, spawnReason, groupData, eggTag ) );
} }
@Override
public void setSpecialPathfindingMalus(PathNodeType nodeType, float malus) {
this.setPathfindingMalus(nodeType, malus);
}
/** Called on spawn to set starting equipment. */ /** Called on spawn to set starting equipment. */
@Override // Seal method to force spawn equipment changes through ISpecialMob @Override // Seal method to force spawn equipment changes through ISpecialMob
protected final void populateDefaultEquipmentSlots( DifficultyInstance difficulty ) { super.populateDefaultEquipmentSlots( difficulty ); } protected final void populateDefaultEquipmentSlots( DifficultyInstance difficulty ) { super.populateDefaultEquipmentSlots( difficulty ); }

View file

@ -33,6 +33,7 @@ import net.minecraft.nbt.CompoundNBT;
import net.minecraft.network.datasync.DataParameter; import net.minecraft.network.datasync.DataParameter;
import net.minecraft.network.datasync.DataSerializers; import net.minecraft.network.datasync.DataSerializers;
import net.minecraft.network.datasync.EntityDataManager; import net.minecraft.network.datasync.EntityDataManager;
import net.minecraft.pathfinding.PathNodeType;
import net.minecraft.potion.EffectInstance; import net.minecraft.potion.EffectInstance;
import net.minecraft.util.DamageSource; import net.minecraft.util.DamageSource;
import net.minecraft.util.SoundEvent; import net.minecraft.util.SoundEvent;
@ -311,6 +312,11 @@ public class _SpecialSkeletonEntity extends AbstractSkeletonEntity implements IS
super.finalizeSpawn( world, difficulty, spawnReason, groupData, eggTag ) ); super.finalizeSpawn( world, difficulty, spawnReason, groupData, eggTag ) );
} }
@Override
public void setSpecialPathfindingMalus(PathNodeType nodeType, float malus) {
this.setPathfindingMalus(nodeType, malus);
}
/** Called on spawn to set starting equipment. */ /** Called on spawn to set starting equipment. */
@Override // Seal method to force spawn equipment changes through ISpecialMob @Override // Seal method to force spawn equipment changes through ISpecialMob
protected final void populateDefaultEquipmentSlots( DifficultyInstance difficulty ) { super.populateDefaultEquipmentSlots( difficulty ); } protected final void populateDefaultEquipmentSlots( DifficultyInstance difficulty ) { super.populateDefaultEquipmentSlots( difficulty ); }

View file

@ -21,6 +21,7 @@ import net.minecraft.nbt.ListNBT;
import net.minecraft.network.datasync.DataParameter; import net.minecraft.network.datasync.DataParameter;
import net.minecraft.network.datasync.DataSerializers; import net.minecraft.network.datasync.DataSerializers;
import net.minecraft.network.datasync.EntityDataManager; import net.minecraft.network.datasync.EntityDataManager;
import net.minecraft.pathfinding.PathNodeType;
import net.minecraft.potion.EffectInstance; import net.minecraft.potion.EffectInstance;
import net.minecraft.util.DamageSource; import net.minecraft.util.DamageSource;
import net.minecraft.util.math.vector.Vector3d; import net.minecraft.util.math.vector.Vector3d;
@ -179,6 +180,11 @@ public class _SpecialSlimeEntity extends SlimeEntity implements ISpecialMob<_Spe
super.finalizeSpawn( world, difficulty, spawnReason, groupData, eggTag ) ); super.finalizeSpawn( world, difficulty, spawnReason, groupData, eggTag ) );
} }
@Override
public void setSpecialPathfindingMalus(PathNodeType nodeType, float malus) {
this.setPathfindingMalus(nodeType, malus);
}
/** Called on spawn to set starting equipment. */ /** Called on spawn to set starting equipment. */
@Override // Seal method to force spawn equipment changes through ISpecialMob @Override // Seal method to force spawn equipment changes through ISpecialMob
protected final void populateDefaultEquipmentSlots( DifficultyInstance difficulty ) { super.populateDefaultEquipmentSlots( difficulty ); } protected final void populateDefaultEquipmentSlots( DifficultyInstance difficulty ) { super.populateDefaultEquipmentSlots( difficulty ); }

View file

@ -22,6 +22,7 @@ import net.minecraft.nbt.CompoundNBT;
import net.minecraft.network.datasync.DataParameter; import net.minecraft.network.datasync.DataParameter;
import net.minecraft.network.datasync.DataSerializers; import net.minecraft.network.datasync.DataSerializers;
import net.minecraft.network.datasync.EntityDataManager; import net.minecraft.network.datasync.EntityDataManager;
import net.minecraft.pathfinding.PathNodeType;
import net.minecraft.potion.EffectInstance; import net.minecraft.potion.EffectInstance;
import net.minecraft.potion.Effects; import net.minecraft.potion.Effects;
import net.minecraft.util.DamageSource; import net.minecraft.util.DamageSource;
@ -175,6 +176,11 @@ public class _SpecialSpiderEntity extends SpiderEntity implements IRangedAttackM
super.finalizeSpawn( world, difficulty, spawnReason, groupData, eggTag ) ); super.finalizeSpawn( world, difficulty, spawnReason, groupData, eggTag ) );
} }
@Override
public void setSpecialPathfindingMalus(PathNodeType nodeType, float malus) {
this.setPathfindingMalus(nodeType, malus);
}
/** Called on spawn to set starting equipment. */ /** Called on spawn to set starting equipment. */
@Override // Seal method to force spawn equipment changes through ISpecialMob @Override // Seal method to force spawn equipment changes through ISpecialMob
protected final void populateDefaultEquipmentSlots( DifficultyInstance difficulty ) { super.populateDefaultEquipmentSlots( difficulty ); } protected final void populateDefaultEquipmentSlots( DifficultyInstance difficulty ) { super.populateDefaultEquipmentSlots( difficulty ); }

View file

@ -29,6 +29,7 @@ import net.minecraft.nbt.CompoundNBT;
import net.minecraft.network.datasync.DataParameter; import net.minecraft.network.datasync.DataParameter;
import net.minecraft.network.datasync.DataSerializers; import net.minecraft.network.datasync.DataSerializers;
import net.minecraft.network.datasync.EntityDataManager; import net.minecraft.network.datasync.EntityDataManager;
import net.minecraft.pathfinding.PathNodeType;
import net.minecraft.potion.*; import net.minecraft.potion.*;
import net.minecraft.tags.FluidTags; import net.minecraft.tags.FluidTags;
import net.minecraft.util.DamageSource; import net.minecraft.util.DamageSource;
@ -400,6 +401,11 @@ public class _SpecialWitchEntity extends WitchEntity implements ISpecialMob<_Spe
super.finalizeSpawn( world, difficulty, spawnReason, groupData, eggTag ) ); super.finalizeSpawn( world, difficulty, spawnReason, groupData, eggTag ) );
} }
@Override
public void setSpecialPathfindingMalus(PathNodeType nodeType, float malus) {
this.setPathfindingMalus(nodeType, malus);
}
/** Called on spawn to set starting equipment. */ /** Called on spawn to set starting equipment. */
@Override // Seal method to force spawn equipment changes through ISpecialMob @Override // Seal method to force spawn equipment changes through ISpecialMob
protected final void populateDefaultEquipmentSlots( DifficultyInstance difficulty ) { super.populateDefaultEquipmentSlots( difficulty ); } protected final void populateDefaultEquipmentSlots( DifficultyInstance difficulty ) { super.populateDefaultEquipmentSlots( difficulty ); }

View file

@ -31,6 +31,7 @@ import net.minecraft.nbt.CompoundNBT;
import net.minecraft.network.datasync.DataParameter; import net.minecraft.network.datasync.DataParameter;
import net.minecraft.network.datasync.DataSerializers; import net.minecraft.network.datasync.DataSerializers;
import net.minecraft.network.datasync.EntityDataManager; import net.minecraft.network.datasync.EntityDataManager;
import net.minecraft.pathfinding.PathNodeType;
import net.minecraft.potion.EffectInstance; import net.minecraft.potion.EffectInstance;
import net.minecraft.util.DamageSource; import net.minecraft.util.DamageSource;
import net.minecraft.util.SoundEvents; import net.minecraft.util.SoundEvents;
@ -274,6 +275,11 @@ public class _SpecialWitherSkeletonEntity extends WitherSkeletonEntity implement
super.finalizeSpawn( world, difficulty, spawnReason, groupData, eggTag ) ); super.finalizeSpawn( world, difficulty, spawnReason, groupData, eggTag ) );
} }
@Override
public void setSpecialPathfindingMalus(PathNodeType nodeType, float malus) {
this.setPathfindingMalus(nodeType, malus);
}
/** Called on spawn to set starting equipment. */ /** Called on spawn to set starting equipment. */
@Override // Seal method to force spawn equipment changes through ISpecialMob @Override // Seal method to force spawn equipment changes through ISpecialMob
protected final void populateDefaultEquipmentSlots( DifficultyInstance difficulty ) { super.populateDefaultEquipmentSlots( difficulty ); } protected final void populateDefaultEquipmentSlots( DifficultyInstance difficulty ) { super.populateDefaultEquipmentSlots( difficulty ); }

View file

@ -32,6 +32,7 @@ import net.minecraft.nbt.CompoundNBT;
import net.minecraft.network.datasync.DataParameter; import net.minecraft.network.datasync.DataParameter;
import net.minecraft.network.datasync.DataSerializers; import net.minecraft.network.datasync.DataSerializers;
import net.minecraft.network.datasync.EntityDataManager; import net.minecraft.network.datasync.EntityDataManager;
import net.minecraft.pathfinding.PathNodeType;
import net.minecraft.potion.EffectInstance; import net.minecraft.potion.EffectInstance;
import net.minecraft.util.DamageSource; import net.minecraft.util.DamageSource;
import net.minecraft.util.SoundEvents; import net.minecraft.util.SoundEvents;
@ -238,6 +239,11 @@ public class _SpecialZombieEntity extends ZombieEntity implements IRangedAttackM
super.finalizeSpawn( world, difficulty, spawnReason, groupData, eggTag ) ); super.finalizeSpawn( world, difficulty, spawnReason, groupData, eggTag ) );
} }
@Override
public void setSpecialPathfindingMalus(PathNodeType nodeType, float malus) {
this.setPathfindingMalus(nodeType, malus);
}
/** Called on spawn to set starting equipment. */ /** Called on spawn to set starting equipment. */
@Override // Seal method to force spawn equipment changes through ISpecialMob @Override // Seal method to force spawn equipment changes through ISpecialMob
protected final void populateDefaultEquipmentSlots( DifficultyInstance difficulty ) { super.populateDefaultEquipmentSlots( difficulty ); } protected final void populateDefaultEquipmentSlots( DifficultyInstance difficulty ) { super.populateDefaultEquipmentSlots( difficulty ); }

View file

@ -31,6 +31,7 @@ import net.minecraft.nbt.CompoundNBT;
import net.minecraft.network.datasync.DataParameter; import net.minecraft.network.datasync.DataParameter;
import net.minecraft.network.datasync.DataSerializers; import net.minecraft.network.datasync.DataSerializers;
import net.minecraft.network.datasync.EntityDataManager; import net.minecraft.network.datasync.EntityDataManager;
import net.minecraft.pathfinding.PathNodeType;
import net.minecraft.potion.EffectInstance; import net.minecraft.potion.EffectInstance;
import net.minecraft.util.DamageSource; import net.minecraft.util.DamageSource;
import net.minecraft.util.SoundEvents; import net.minecraft.util.SoundEvents;
@ -236,6 +237,11 @@ public class _SpecialZombifiedPiglinEntity extends ZombifiedPiglinEntity impleme
super.finalizeSpawn( world, difficulty, spawnReason, groupData, eggTag ) ); super.finalizeSpawn( world, difficulty, spawnReason, groupData, eggTag ) );
} }
@Override
public void setSpecialPathfindingMalus(PathNodeType nodeType, float malus) {
this.setPathfindingMalus(nodeType, malus);
}
/** Called on spawn to set starting equipment. */ /** Called on spawn to set starting equipment. */
@Override // Seal method to force spawn equipment changes through ISpecialMob @Override // Seal method to force spawn equipment changes through ISpecialMob
protected final void populateDefaultEquipmentSlots( DifficultyInstance difficulty ) { super.populateDefaultEquipmentSlots( difficulty ); } protected final void populateDefaultEquipmentSlots( DifficultyInstance difficulty ) { super.populateDefaultEquipmentSlots( difficulty ); }