add foxes, temp textures
This commit is contained in:
parent
cdf8db1b50
commit
ad930fcbdc
6 changed files with 150 additions and 8 deletions
|
@ -21,6 +21,7 @@ import client.renderer.entity.RenderFallingBlock;
|
|||
import client.renderer.entity.RenderFireball;
|
||||
import client.renderer.entity.RenderFish;
|
||||
import client.renderer.entity.RenderFlyingBox;
|
||||
import client.renderer.entity.RenderFox;
|
||||
import client.renderer.entity.RenderHorse;
|
||||
import client.renderer.entity.RenderHumanoid;
|
||||
import client.renderer.entity.RenderItem;
|
||||
|
@ -68,6 +69,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;
|
||||
|
@ -116,6 +118,7 @@ public abstract class RenderRegistry {
|
|||
map.put(EntityCow.class, new RenderCow(mgr, new ModelCow()));
|
||||
map.put(EntityMooshroom.class, new RenderMooshroom(mgr, new ModelCow()));
|
||||
map.put(EntityWolf.class, new RenderWolf(mgr, new ModelWolf()));
|
||||
map.put(EntityFox.class, new RenderFox(mgr, new ModelWolf()));
|
||||
map.put(EntityChicken.class, new RenderChicken(mgr, new ModelChicken()));
|
||||
map.put(EntityOcelot.class, new RenderOcelot(mgr, new ModelOcelot()));
|
||||
map.put(EntityRabbit.class, new RenderRabbit(mgr, new ModelRabbit()));
|
||||
|
|
20
client/src/main/java/client/renderer/entity/RenderFox.java
Normal file
20
client/src/main/java/client/renderer/entity/RenderFox.java
Normal file
|
@ -0,0 +1,20 @@
|
|||
package client.renderer.entity;
|
||||
|
||||
import client.renderer.model.ModelBase;
|
||||
import common.entity.animal.EntityFox;
|
||||
|
||||
public class RenderFox extends RenderLiving<EntityFox> {
|
||||
private static final String FOX_TEXTURE = "textures/entity/fox.png";
|
||||
|
||||
public RenderFox(RenderManager renderManagerIn, ModelBase modelBaseIn) {
|
||||
super(renderManagerIn, modelBaseIn);
|
||||
}
|
||||
|
||||
protected float handleRotationFloat(EntityFox livingBase, float partialTicks) {
|
||||
return (float)Math.PI / 5F;
|
||||
}
|
||||
|
||||
protected String getEntityTexture(EntityFox entity) {
|
||||
return FOX_TEXTURE;
|
||||
}
|
||||
}
|
|
@ -110,11 +110,11 @@ public class ModelWolf extends ModelBase
|
|||
* Used for easily adding entity-dependent animations. The second and third float params here are the same second
|
||||
* and third as in the setRotationAngles method.
|
||||
*/
|
||||
public void setLivingAnimations(EntityLiving entitylivingbaseIn, float p_78086_2_, float p_78086_3_, float partialTickTime)
|
||||
public void setLivingAnimations(EntityLiving living, float p_78086_2_, float p_78086_3_, float partialTickTime)
|
||||
{
|
||||
EntityWolf entitywolf = (EntityWolf)entitylivingbaseIn;
|
||||
EntityWolf wolf = living instanceof EntityWolf ? (EntityWolf)living : null;
|
||||
|
||||
if (entitywolf.isAngry())
|
||||
if (wolf != null && wolf.isAngry())
|
||||
{
|
||||
this.wolfTail.rotateAngleY = 0.0F;
|
||||
}
|
||||
|
@ -123,7 +123,7 @@ public class ModelWolf extends ModelBase
|
|||
this.wolfTail.rotateAngleY = ExtMath.cos(p_78086_2_ * 0.6662F) * 1.4F * p_78086_3_;
|
||||
}
|
||||
|
||||
if (entitywolf.isSitting())
|
||||
if (wolf != null && wolf.isSitting())
|
||||
{
|
||||
this.wolfMane.setRotationPoint(-1.0F, 16.0F, -3.0F);
|
||||
this.wolfMane.rotateAngleX = ((float)Math.PI * 2F / 5F);
|
||||
|
@ -157,10 +157,12 @@ public class ModelWolf extends ModelBase
|
|||
this.wolfLeg4.rotateAngleX = ExtMath.cos(p_78086_2_ * 0.6662F) * 1.4F * p_78086_3_;
|
||||
}
|
||||
|
||||
this.wolfHeadMain.rotateAngleZ = entitywolf.getInterestedAngle(partialTickTime) + entitywolf.getShakeAngle(partialTickTime, 0.0F);
|
||||
this.wolfMane.rotateAngleZ = entitywolf.getShakeAngle(partialTickTime, -0.08F);
|
||||
this.wolfBody.rotateAngleZ = entitywolf.getShakeAngle(partialTickTime, -0.16F);
|
||||
this.wolfTail.rotateAngleZ = entitywolf.getShakeAngle(partialTickTime, -0.2F);
|
||||
if(wolf != null) {
|
||||
this.wolfHeadMain.rotateAngleZ = wolf.getInterestedAngle(partialTickTime) + wolf.getShakeAngle(partialTickTime, 0.0F);
|
||||
this.wolfMane.rotateAngleZ = wolf.getShakeAngle(partialTickTime, -0.08F);
|
||||
this.wolfBody.rotateAngleZ = wolf.getShakeAngle(partialTickTime, -0.16F);
|
||||
this.wolfTail.rotateAngleZ = wolf.getShakeAngle(partialTickTime, -0.2F);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
BIN
client/src/main/resources/textures/entity/fox.png
Executable file
BIN
client/src/main/resources/textures/entity/fox.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
115
common/src/main/java/common/entity/animal/EntityFox.java
Normal file
115
common/src/main/java/common/entity/animal/EntityFox.java
Normal 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;
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue