Aide mob aquatique
-
Dans le addSpawn il me semble qu’il y a WATER_CREATURE (ou similaire) à mettre au lieu de CREATURE.
-
Bon, j’ai suivie chacun de vos conseils mais cela ne change rien, le mob ne spawn toujours pas dans l’océan, le deep océan et les rivières
Voici mes classes :Classe principale :
@Mod(modid = Reference.MOD_ID, name = Reference.MOD_NAME, version = Reference.VERSION) public class ModSurvivant { @SidedProxy(clientSide = Reference.CLIENT_PROXY_CLASS, serverSide = Reference.SERVER_PROXY_CLASS) public static CommonProxy proxy; @Instance(Reference.MOD_ID) public static ModSurvivant instance; public static CreativeTabs tabSurvivant = new CreativeTabs("tabSurvivant") { @SideOnly(Side.CLIENT) public Item getTabIconItem() { return Item.getItemFromBlock(BlockMod.blockTotem); } }; @EventHandler public void preInit (FMLPreInitializationEvent event) { ItemMod.init(); ItemMod.register(); BlockMod.init(); BlockMod.register(); } @EventHandler public void init (FMLInitializationEvent event) { proxy.registerRenders(); MinecraftForge.EVENT_BUS.register(new SurvivantBlockEvent()); EntityHandler.RegisterFish(EntityFish.class, "Fish"); } @EventHandler public void postInit (FMLPostInitializationEvent event) { } }La classe du client proxy :
ublic class ClientProxy extends CommonProxy { @Override public void registerRenders() { ItemMod.registerRenders(); BlockMod.registerRenders(); RenderingRegistry.registerEntityRenderingHandler(EntityFish.class, new RenderFish(Minecraft.getMinecraft().getRenderManager(), new ModelFish(), 0.5F)); } }La classe de l’entité :
public class EntityFish extends EntityWaterMob { public EntityFish(World worldIn) { super(worldIn); this.setSize(0.6F, 0.5F); } protected void applyEntityAttributes() { super.applyEntityAttributes(); this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(10.0D); } public boolean getCanSpawnHere() { return this.posY > 45.0D && this.posY < (double)this.worldObj.getSeaLevel() && super.getCanSpawnHere(); } }La classe du model de l’entité :
public class ModelFish extends ModelBase { //fields ModelRenderer corps; ModelRenderer queue1; ModelRenderer queue2; public ModelFish() { textureWidth = 64; textureHeight = 32; corps = new ModelRenderer(this, 6, 9); corps.addBox(0F, 0F, 0F, 7, 4, 3); corps.setRotationPoint(-3F, 17F, 0F); corps.setTextureSize(64, 32); corps.mirror = true; setRotation(corps, 0F, 0F, 0F); queue1 = new ModelRenderer(this, 27, 16); queue1.addBox(0F, 0F, 0F, 1, 3, 1); queue1.setRotationPoint(3F, 19F, 1F); queue1.setTextureSize(64, 32); queue1.mirror = true; setRotation(queue1, 0F, 0F, -1.07818F); queue2 = new ModelRenderer(this, 27, 9); queue2.addBox(0F, 0F, 0F, 1, 3, 1); queue2.setRotationPoint(3F, 19F, 1F); queue2.setTextureSize(64, 32); queue2.mirror = true; setRotation(queue2, 0F, 0F, -1.891668F); } 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); corps.render(f5); queue1.render(f5); queue2.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 entity) { super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); } }La classe du render de l’entité :
public class RenderFish extends RenderLiving { private ResourceLocation texture = new ResourceLocation(Reference.MOD_ID + ":textures/mobs/Fish.png"); public RenderFish(RenderManager render, ModelBase model, float x) { super(render, model, x); } public void renderFish(EntityFish entity, double x, double y, double z, float v, float b) { super.doRender(entity, x, y, z, v, b); } public void doRenderLiving(EntityLiving entity, double x, double y, double z, float v, float b) { renderFish((EntityFish) entity, x, y, z, v, b); } public void doRendering(Entity entity, double x, double y, double z, float v, float b) { renderFish((EntityFish) entity, x, y, z, v, b); } @Override protected ResourceLocation getEntityTexture(Entity entity) { return texture; } }La classe EntityHandler :
public class EntityHandler { public static void RegisterFish(Class entityClass, String name) { int entityID = EntityRegistry.findGlobalUniqueEntityId(); int mainColor = new Color(0, 0, 100).getRGB(); int subColor = new Color(0, 100, 0).getRGB(); EntityRegistry.registerGlobalEntityID(entityClass, name, entityID); EntityRegistry.addSpawn(entityClass, 30, 5, 15, EnumCreatureType.WATER_CREATURE, BiomeGenBase.ocean, BiomeGenBase.deepOcean, BiomeGenBase.river); EntityRegistry.registerModEntity(entityClass, name, entityID, ModSurvivant.instance, 25, 1, true); EntityList.entityEggs.put(Integer.valueOf(entityID), new EntityList.EntityEggInfo(entityID, mainColor, subColor)); } }Merci, pour l’aide
-
Alors, toujours pas d’idée……

-
Est-ce qu’il spawn avec l’oeuf ?
-
Oui avec l’oeuf aucun problème
-
Aucune idée pourquoi ça ne marche pas, au pire essaye de voir le moment où les mobs spawnent pourquoi ton mob n’est pas choisit avec le debugger
-
Alors j’ai trouvé

Il faut que tu rajoutes ça où tu enregistres ton entité :EntitySpawnPlacementRegistry.setPlacementType(TonEntityé.class, EntityLiving.SpawnPlacementType.IN_WATER);Après ça normalement ça marche.
-
Merci, les poissons spawnent dans l’eau des océan, deep océan et rivière, du coup ma classe EntityHandler ressemble à ça maintenant :
public class EntityHandler { public static void RegisterFish(Class entityClass, String name) { int entityID = EntityRegistry.findGlobalUniqueEntityId(); int mainColor = new Color(0, 0, 100).getRGB(); int subColor = new Color(0, 100, 0).getRGB(); EntityRegistry.registerGlobalEntityID(entityClass, name, entityID); EntityRegistry.addSpawn(entityClass, 90, 20, 50, EnumCreatureType.WATER_CREATURE, BiomeGenBase.ocean, BiomeGenBase.deepOcean, BiomeGenBase.river); EntityRegistry.registerModEntity(entityClass, name, entityID, ModSurvivant.instance, 25, 1, true); EntityList.entityEggs.put(Integer.valueOf(entityID), new EntityList.EntityEggInfo(entityID, mainColor, subColor)); EntitySpawnPlacementRegistry.setPlacementType(EntityFish.class, EntityLiving.SpawnPlacementType.IN_WATER); } }Plus qu’à faire les AI du mob, merci

-
Ça en fait des lignes rien que pour l’enregistrer ^^
Si t’as un problème avec l’ai hésite pas à redemander
-
J’ai mis l’AI du poulpe pour le moment