add foxes, temp textures

This commit is contained in:
Sen 2025-06-15 01:06:10 +02:00
parent cdf8db1b50
commit ad930fcbdc
Signed by: sen
GPG key ID: 3AC50A6F47D1B722
6 changed files with 150 additions and 8 deletions

View file

@ -0,0 +1,115 @@
package common.entity.animal;
import common.ai.EntityAIAttackOnCollide;
import common.ai.EntityAIHurtByTarget;
import common.ai.EntityAILeapAtTarget;
import common.ai.EntityAILookIdle;
import common.ai.EntityAIMate;
import common.ai.EntityAISwimming;
import common.ai.EntityAIWander;
import common.ai.EntityAIWatchClosest;
import common.attributes.Attribute;
import common.entity.DamageSource;
import common.entity.Entity;
import common.entity.npc.Alignment;
import common.entity.types.EntityAnimal;
import common.entity.types.EntityLiving;
import common.init.Items;
import common.init.SoundEvent;
import common.item.Item;
import common.item.ItemStack;
import common.pathfinding.PathNavigateGround;
import common.vars.Vars;
import common.world.World;
public class EntityFox extends EntityAnimal
{
public EntityFox(World worldIn)
{
super(worldIn);
this.setSize(0.6F, 0.8F);
((PathNavigateGround)this.getNavigator()).setAvoidsWater(true);
this.tasks.addTask(1, new EntityAISwimming(this));
this.tasks.addTask(3, new EntityAILeapAtTarget(this, 0.4F));
this.tasks.addTask(4, new EntityAIAttackOnCollide(this, 1.0D, true));
this.tasks.addTask(6, new EntityAIMate(this, 1.0D));
this.tasks.addTask(7, new EntityAIWander(this, 1.0D));
this.tasks.addTask(9, new EntityAIWatchClosest(this, null, 8.0F));
this.tasks.addTask(9, new EntityAILookIdle(this));
this.targets.addTask(3, new EntityAIHurtByTarget(this, true));
// this.targets.addTask(5, new EntityAINearestAttackableTarget(this, EntityUndead.class, false));
}
protected void applyEntityAttributes()
{
super.applyEntityAttributes();
this.getEntityAttribute(Attribute.MOVEMENT_SPEED).setBaseValue(0.35D);
this.setMaxHealth(6);
this.getAttributeMap().registerAttribute(Attribute.ATTACK_DAMAGE);
this.getEntityAttribute(Attribute.ATTACK_DAMAGE).setBaseValue(2.0D);
}
protected SoundEvent getHurtSound()
{
return SoundEvent.WOLF_HURT;
}
protected SoundEvent getDeathSound()
{
return SoundEvent.WOLF_DEATH;
}
protected float getSoundVolume()
{
return 0.4F;
}
protected Item getDropItem()
{
return null;
}
public float getEyeHeight()
{
return this.height * 0.8F;
}
public boolean attackEntityAsMob(Entity entityIn)
{
if(!this.worldObj.client && !Vars.damageMobs)
return false;
boolean flag = entityIn.attackEntityFrom(DamageSource.causeMobDamage(this), ((int)this.getEntityAttribute(Attribute.ATTACK_DAMAGE).getAttributeValue()));
if (flag)
{
this.applyEnchantments(this, entityIn);
}
return flag;
}
public boolean isBreedingItem(ItemStack stack)
{
return stack != null && stack.getItem() == Items.apple;
}
public int getMaxChunkSpawns()
{
return 6;
}
public EntityFox createChild(EntityLiving ageable)
{
return new EntityFox(this.worldObj);
}
public int getColor() {
return 0xc35d00;
}
public Alignment getAlignment() {
return Alignment.LAWFUL;
}
}

View file

@ -9,6 +9,7 @@ import common.entity.animal.EntityBat;
import common.entity.animal.EntityChicken;
import common.entity.animal.EntityCow;
import common.entity.animal.EntityDragon;
import common.entity.animal.EntityFox;
import common.entity.animal.EntityHorse;
import common.entity.animal.EntityMooshroom;
import common.entity.animal.EntityMouse;
@ -262,6 +263,7 @@ public abstract class EntityRegistry {
registerEntity("Horse", EntityHorse.class, "terra", "Pferd", 12623485, 15656192);
registerEntity("Rabbit", EntityRabbit.class, "terra", "Kaninchen", 10051392, 7555121);
registerEntity("Mouse", EntityMouse.class, "terra", "Maus", 0x606060, 0xb0b0b0);
registerEntity("Fox", EntityFox.class, "terra", "Fuchs", 0xae5300, 0x622f00);
for(int z = 0; z < SpeciesRegistry.SPECIMEN.size(); z++) {
SpeciesInfo info = SpeciesRegistry.SPECIMEN.get(z);