In 1.8.9, i am attempting to create a custom squid, but unfortunately something in my code doesn't allow my custom entity to apply its texture. i have tried a few things and nothing has worked if you need any additional information let me know
EntityFile:
public class EntityKraken extends EntitySquid
{
private float randomMotionVecZ;
private float randomMotionVecX;
private float randomMotionVecY;
public EntityKraken(World worldIn) {
super(worldIn);
this.setSize(0.95F, 0.95F);
this.tasks.addTask(0, new EntityKraken.AIMoveRandom(this));
}
public void func_175568_b(float randomMotionVecXIn, float randomMotionVecYIn, float randomMotionVecZIn)
{
this.randomMotionVecX = randomMotionVecXIn;
this.randomMotionVecY = randomMotionVecYIn;
this.randomMotionVecZ = randomMotionVecZIn;
}
public boolean func_175567_n()
{
return this.randomMotionVecX != 0.0F || this.randomMotionVecY != 0.0F || this.randomMotionVecZ != 0.0F;
}
static class AIMoveRandom extends EntityAIBase
{
private EntityKraken squid;
public AIMoveRandom(EntityKraken entityKraken)
{
this.squid = entityKraken;
}
/**
* Returns whether the EntityAIBase should begin execution.
*/
public boolean shouldExecute()
{
return true;
}
/**
* Updates the task
*/
public void updateTask()
{
int i = this.squid.getAge();
if (i > 100)
{
this.squid.func_175568_b(0.0F, 0.0F, 0.0F);
}
else if (this.squid.getRNG().nextInt(50) == 0 || !this.squid.inWater || !this.squid.func_175567_n())
{
float f = this.squid.getRNG().nextFloat() * (float)Math.PI * 2.0F;
float f1 = MathHelper.cos(f) * 0.2F;
float f2 = -0.1F + this.squid.getRNG().nextFloat() * 2.0F;
float f3 = MathHelper.sin(f) * 0.2F;
this.squid.func_175568_b(f1, f2, f3);
}
}
}
}
RenderFile:
public class RenderKraken extends RenderLiving<EntityKraken>{
protected ResourceLocation SquidTextures = new ResourceLocation(Main.MODID,"textures/entity/EntityKraken.png");
public RenderKraken(RenderManager renderManager,ModelBase modelBaseIn, float shadowSizeIn)
{
super(renderManager,modelBaseIn,shadowSizeIn);
}
@Override
protected ResourceLocation getEntityTexture(EntityKraken entity)
{
return SquidTextures;
}
}
IRenderFactoryFile:
public class RenderFactory implements IRenderFactory<EntityKraken>{
public static final RenderFactory INSTANCE = new RenderFactory();
public RenderKraken createRenderFor(RenderManager manager) {
return new RenderKraken(manager, new ModelSquid(), 1.0f);
}
}
EntityRegistryFile:
public class EntityRegister {
public static void mainRegistry(){
register();
}
private static void register() {
createEntity(EntityKraken.class, "Kraken", 0x2de5ec, 0x8e54c8, 1053);
}
private static void createEntity(Class EntityClass, String EntityName, int pcolor, int scolor, int id) {
EntityRegistry.registerModEntity(EntityClass, EntityName, id, Main.modInstance, 64, 1, true);
createEgg(EntityClass,pcolor,scolor);
// TODO Auto-generated method stub
}
private static void createEgg(Class id, int pcolor, int scolor) {
EntityRegistry.registerEgg(id, pcolor, scolor);
}
}
ClientProxy:
public class ClientProxy extends Commonproxy{
@Override
public void preInit(FMLPreInitializationEvent e){
super.preInit(e);
}
@Override
public void init(FMLInitializationEvent e){
super.init(e);
ItemRender.registerItem();
BlockRender.registerItem();
EntityRegister.mainRegistry();
}
@Override
public void postInit(FMLPostInitializationEvent e){
super.postInit(e);
}
@Override
public void registerEntityRenderers(){
RenderingRegistry.registerEntityRenderingHandler(EntityKraken.class, RenderFactory.INSTANCE);
}
}