Bonjour,
Je ne connais pas grand chose en java et j'essaye de créer un petit mod avec MCreator.
Le problème c'est que je n'arrive pas à rendre le mob montable, j'utilise EntityPlayer.mountEntity(this); mais le EntityPlayer est un fichié non-static alors j'ai un message d'erreur et je suis bloqué la dessus depuis un moment.
Message d'erreur : >C:\Pylo\MCreator149\forge\build\sources\java\mcreator_dragodinde.java:226: non-static method mountEntity(net.minecraft.entity.Entity) cannot be referenced from a static context
> EntityPlayer.mountEntity(this);
Quelqu'un aurait-il une solution ?
Je ne connais pas grand chose en java et j'essaye de créer un petit mod avec MCreator.
Le problème c'est que je n'arrive pas à rendre le mob montable, j'utilise EntityPlayer.mountEntity(this); mais le EntityPlayer est un fichié non-static alors j'ai un message d'erreur et je suis bloqué la dessus depuis un moment.
Message d'erreur : >C:\Pylo\MCreator149\forge\build\sources\java\mcreator_dragodinde.java:226: non-static method mountEntity(net.minecraft.entity.Entity) cannot be referenced from a static context
> EntityPlayer.mountEntity(this);
Quelqu'un aurait-il une solution ?
Code:
package net.minecraft.src;
import net.minecraft.entity.player.EntityPlayer;
import cpw.mods.fml.client.*;
import cpw.mods.fml.client.registry.*;
import cpw.mods.fml.common.*;
import cpw.mods.fml.common.asm.*;
import cpw.mods.fml.common.asm.transformers.*;
import cpw.mods.fml.common.discovery.*;
import cpw.mods.fml.common.discovery.asm.*;
import cpw.mods.fml.common.event.*;
import cpw.mods.fml.common.functions.*;
import cpw.mods.fml.common.network.*;
import cpw.mods.fml.common.registry.*;
import cpw.mods.fml.common.toposort.*;
import cpw.mods.fml.common.versioning.*;
import cpw.mods.fml.relauncher.*;
import cpw.mods.fml.server.*;
import net.minecraft.block.*;
import net.minecraft.block.material.*;
import net.minecraft.client.*;
import net.minecraft.client.audio.*;
import net.minecraft.client.entity.*;
import net.minecraft.client.gui.*;
import net.minecraft.client.gui.achievement.*;
import net.minecraft.client.gui.inventory.*;
import net.minecraft.client.model.*;
import net.minecraft.client.multiplayer.*;
import net.minecraft.client.particle.*;
import net.minecraft.client.renderer.*;
import net.minecraft.client.renderer.culling.*;
import net.minecraft.client.renderer.entity.*;
import net.minecraft.client.renderer.tileentity.*;
import net.minecraft.client.settings.*;
import net.minecraft.command.*;
import net.minecraft.crash.*;
import net.minecraft.creativetab.*;
import net.minecraft.dispenser.*;
import net.minecraft.enchantment.*;
import net.minecraft.entity.*;
import net.minecraft.entity.Entity.*;
import net.minecraft.entity.player.*;
import net.minecraft.entity.ai.*;
import net.minecraft.entity.boss.*;
import net.minecraft.entity.effect.*;
import net.minecraft.entity.item.*;
import net.minecraft.entity.monster.*;
import net.minecraft.entity.passive.*;
import net.minecraft.entity.projectile.*;
import net.minecraft.inventory.*;
import net.minecraft.item.*;
import net.minecraft.item.crafting.*;
import net.minecraft.nbt.*;
import net.minecraft.network.*;
import net.minecraft.network.rcon.*;
import net.minecraft.pathfinding.*;
import net.minecraft.potion.*;
import net.minecraft.profiler.*;
import net.minecraft.server.*;
import net.minecraft.server.dedicated.*;
import net.minecraft.server.gui.*;
import net.minecraft.server.integrated.*;
import net.minecraft.server.management.*;
import net.minecraft.src.*;
import net.minecraft.stats.*;
import net.minecraft.tileentity.*;
import net.minecraft.util.*;
import net.minecraft.village.*;
import net.minecraft.world.*;
import net.minecraft.world.biome.*;
import net.minecraft.world.chunk.*;
import net.minecraft.world.chunk.storage.*;
import net.minecraft.world.demo.*;
import net.minecraft.world.gen.*;
import net.minecraft.world.gen.feature.*;
import net.minecraft.world.gen.layer.*;
import net.minecraft.world.gen.structure.*;
import net.minecraft.world.storage.*;
import net.minecraftforge.classloading.*;
import net.minecraftforge.client.*;
import net.minecraftforge.client.event.*;
import net.minecraftforge.client.event.sound.*;
import net.minecraftforge.common.*;
import net.minecraftforge.event.*;
import net.minecraftforge.event.entity.*;
import net.minecraftforge.event.entity.item.*;
import net.minecraftforge.event.entity.living.*;
import net.minecraftforge.event.entity.minecart.*;
import net.minecraftforge.event.entity.player.*;
import net.minecraftforge.event.terraingen.*;
import net.minecraftforge.event.world.*;
import net.minecraftforge.oredict.*;
import net.minecraftforge.transformers.*;
import net.minecraft.init.*;
import java.util.Random;
@SuppressWarnings("unchecked")
public class mcreator_dragodinde {
public static int mobid = 0;
public Object instance;
public void load(){}
public void generateNether(World world, Random random, int chunkX, int chunkZ){}
public void generateSurface(World world, Random random, int chunkX, int chunkZ){}
public int addFuel(ItemStack fuel){
return 0;
}
public void registerRenderers(){
RenderingRegistry.registerEntityRenderingHandler(mcreator_dragodinde.Entitydragodinde.class, new RenderLiving(new mcreator_dragodinde.Modelbouftou(), 0){protected ResourceLocation getEntityTexture(Entity par1Entity){return new ResourceLocation("bouftou2.png");}});
}
public void serverLoad(FMLServerStartingEvent event){}
public void preInit(FMLPreInitializationEvent event){
int entityID = EntityRegistry.findGlobalUniqueEntityId();
mobid = entityID;
EntityRegistry.registerGlobalEntityID(mcreator_dragodinde.Entitydragodinde.class, "dragodinde", entityID);
EntityRegistry.registerModEntity(mcreator_dragodinde.Entitydragodinde.class, "dragodinde", entityID, instance, 64, 1, true);
EntityList.entityEggs.put(Integer.valueOf(entityID), new EntityList.EntityEggInfo(entityID, (255 << 16) + (255 << 8) + 255, (255 << 16) + (255 << 8) + 255));
}
public static class Entitydragodinde extends EntityHorse
{
World world = null;
public Entitydragodinde(World var1)
{
super(var1);
world = var1;
experienceValue = 5;
this.isImmuneToFire = false;
addRandomArmor();
}
protected void addRandomArmor(){
}
public boolean isAIEnabled()
{
return false;
}
/**
* Drop 0-2 items of this living's type
*/
protected void dropFewItems(boolean var1, int var2)
{
this.entityDropItem(new ItemStack(Items.milk_bucket), 0.0F);
}
/**
* Returns the sound this mob makes while it's alive.
*/
protected String getLivingSound()
{
return "";
}
/**
* Returns the sound this mob makes when it is hurt.
*/
protected String getHurtSound()
{
return "";
}
/**
* Returns the sound this mob makes on death.
*/
protected String getDeathSound()
{
return "";
}
public void onStruckByLightning(EntityLightningBolt entityLightningBolt){
int i = (int)this.posX;
int j = (int)this.posY;
int k = (int)this.posZ;
}
protected void fall(float l){
int i = (int)this.posX;
int j = (int)this.posY;
int k = (int)this.posZ;
super.fall(l);
}
public void onCriticalHit(Entity entity) {
int i = (int)this.posX;
int j = (int)this.posY;
int k = (int)this.posZ;
}
public void onKillEntity(EntityLiving entityLiving){
int i = (int)this.posX;
int j = (int)this.posY;
int k = (int)this.posZ;
}
@Override
public boolean interact(EntityPlayer entity)
{
if (FMLCommonHandler.instance().getSide().isServer())
{
if (this.riddenByEntity == null)
{
EntityPlayer.mountEntity(this);
return true;
}
else
{
return false;
}
}
return true;
}
public void moveEntity(double d, double d1, double d2)
{
if (riddenByEntity != null)
{
this.prevRotationYaw = this.rotationYaw = this.riddenByEntity.rotationYaw;
this.rotationPitch = this.riddenByEntity.rotationPitch * 0.5F;
this.setRotation(this.rotationYaw, this.rotationPitch);
this.rotationYawHead = this.renderYawOffset = this.rotationYaw;
motionX += riddenByEntity.motionX * 10; // * 0.20000000000000001D;
motionZ += riddenByEntity.motionZ * 10; // * 0.20000000000000001D;
if (isCollidedHorizontally)
{
isJumping = true;
}
else
{
isJumping = false;
}
super.moveEntity(motionX, motionY, motionZ);
}
else
{
super.moveEntity(d, d1, d2);
}
}
public void onUpdate()
{
super.onUpdate();
if (riddenByEntity != null) //check if there is a rider
{
//currentTarget = this;
this.randomYawVelocity = 0; //try not to let the horse control where to look.
this.rotationYaw = riddenByEntity.rotationYaw;
}
}
public String getEntityName(){
return "dragodinde";
}
}
// Date: 17/08/2014 12:32:17
// Template version 1.1
// Java generated by Techne
// Keep in mind that you still need to fill in some blanks
// - ZeuX
public static class Modelbouftou extends ModelBase
{
//fields
ModelRenderer corneGB;
ModelRenderer corneDB;
ModelRenderer corneDH;
ModelRenderer corneGH;
ModelRenderer head;
ModelRenderer body;
ModelRenderer leg1;
ModelRenderer leg2;
ModelRenderer leg3;
ModelRenderer leg4;
public Modelbouftou()
{
textureWidth = 64;
textureHeight = 32;
corneGB = new ModelRenderer(this, 0, 27);
corneGB.addBox(0F, 0F, 0F, 4, 2, 2);
corneGB.setRotationPoint(3F, 10F, -11F);
corneGB.setTextureSize(64, 32);
corneGB.mirror = true;
setRotation(corneGB, 0F, 0F, 0F);
corneDB = new ModelRenderer(this, 0, 27);
corneDB.addBox(0F, 0F, 0F, 4, 2, 2);
corneDB.setRotationPoint(-7F, 10F, -11F);
corneDB.setTextureSize(64, 32);
corneDB.mirror = true;
setRotation(corneDB, 0F, 0F, 0F);
corneDH = new ModelRenderer(this, 15, 27);
corneDH.addBox(0F, 0F, 0F, 1, 3, 2);
corneDH.setRotationPoint(-6.5F, 9F, -12.5F);
corneDH.setTextureSize(64, 32);
corneDH.mirror = true;
setRotation(corneDH, 0.5205006F, 0F, 0F);
corneGH = new ModelRenderer(this, 15, 27);
corneGH.addBox(0F, 0F, 0F, 1, 3, 2);
corneGH.setRotationPoint(5.5F, 9F, -12.5F);
corneGH.setTextureSize(64, 32);
corneGH.mirror = true;
setRotation(corneGH, 0.5205006F, 0F, 0F);
head = new ModelRenderer(this, 0, 0);
head.addBox(-4F, -4F, -8F, 8, 7, 8);
head.setRotationPoint(0F, 12F, -6F);
head.setTextureSize(64, 32);
head.mirror = true;
setRotation(head, 0F, 0F, 0F);
body = new ModelRenderer(this, 28, 10);
body.addBox(-5F, -10F, -7F, 10, 14, 8);
body.setRotationPoint(0F, 11F, 3F);
body.setTextureSize(64, 32);
body.mirror = true;
setRotation(body, 1.570796F, 0F, 0F);
leg1 = new ModelRenderer(this, 0, 16);
leg1.addBox(-2F, 0F, -2F, 4, 6, 4);
leg1.setRotationPoint(-3F, 18F, 5F);
leg1.setTextureSize(64, 32);
leg1.mirror = true;
setRotation(leg1, 0F, 0F, 0F);
leg2 = new ModelRenderer(this, 0, 16);
leg2.addBox(-2F, 0F, -2F, 4, 6, 4);
leg2.setRotationPoint(3F, 18F, 5F);
leg2.setTextureSize(64, 32);
leg2.mirror = true;
setRotation(leg2, 0F, 0F, 0F);
leg3 = new ModelRenderer(this, 0, 16);
leg3.addBox(-2F, 18F, -2F, 4, 6, 4);
leg3.setRotationPoint(-3F, 0F, -5F);
leg3.setTextureSize(64, 32);
leg3.mirror = true;
setRotation(leg3, 0F, 0F, 0F);
leg4 = new ModelRenderer(this, 0, 16);
leg4.addBox(-2F, 0F, -2F, 4, 6, 4);
leg4.setRotationPoint(3F, 18F, -5F);
leg4.setTextureSize(64, 32);
leg4.mirror = true;
setRotation(leg4, 0F, 0F, 0F);
}
public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
{
super.render(entity, f, f1, f2, f3, f4, f5);
setRotationAngles(f, f1, f2, f3, f4, f5, entity);
corneGB.render(f5);
corneDB.render(f5);
corneDH.render(f5);
corneGH.render(f5);
head.render(f5);
body.render(f5);
leg1.render(f5);
leg2.render(f5);
leg3.render(f5);
leg4.render(f5);
}
private void setRotation(ModelRenderer model, float x, float y, float z)
{
model.rotateAngleX = x;
model.rotateAngleY = y;
model.rotateAngleZ = z;
}
public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity e)
{
super.setRotationAngles(f, f1, f2, f3, f4, f5, e);
}
}
}