Créations de plantations.
-
Désolé de ma réponse tardive mais j’ai eu des soucis IRL. Donc avec ou sans le @Override cela ne change rien, ma plante pousse bien mais l’image du stage ne change pas, quand je la fait pousser avec de la poudre d’os de temps en temps elle prend la texture d’un des stage au hasard(exemple: je met une poudre elle passe a la texture du stage 4 j’en remet une elle repasse à la texture du stage 1). Je comprends pas d’où cela peut venir.
-
@‘Degraduck’:
Désolé de ma réponse tardive mais j’ai eu des soucis IRL. Donc avec ou sans le @Override cela ne change rien, ma plante pousse bien mais l’image du stage ne change pas, quand je la fait pousser avec de la poudre d’os de temps en temps elle prend la texture d’un des stage au hasard(exemple: je met une poudre elle passe a la texture du stage 4 j’en remet une elle repasse à la texture du stage 1). Je comprends pas d’où cela peut venir.
Repost tes classes entières après les mises à jour que tu as fait aux classes.
-
Voilà:
@Mod(modid = "exodiamod", name = "Mod Exodia", version = "1.0.0") public class ExodiaMod { @Instance("exodiamod") public static ExodiaMod instance; public static final String MODID = "exodiamod"; @SidedProxy(clientSide = "com.google.degraduck.exodiamod.proxy.ClientProxy", serverSide = "com.google.degraduck.exodiamod.proxy.CommonProxy") public static CommonProxy proxy; public static Item exodium_ingot, exodium_seed, exodium_nugget; public static Item exodia_helmet, exodia_chestplate, exodia_leggings, exodia_boots, exodia_sword; public static Block exodium_block, exodium_ore, exodium_culture; //creative tab public static CreativeTabs exodiaCreativeTabs = new ExodiaCreativeTabs("exodiacreativetabs"); //génération de minerai WorldGeneration worldgeneration = new WorldGeneration(); //materiel de l'armure public static ArmorMaterial armorExodia = EnumHelper.addArmorMaterial("armorExodia", 33, new int[] {3, 8, 6, 3}, 10); //material de l'arme public static ToolMaterial toolExodia = EnumHelper.addToolMaterial("toolExodia", 3, 1999, 12.0F, 3.5F, 10); @EventHandler public void preInit(FMLPreInitializationEvent event) { //génération du minerai GameRegistry.registerWorldGenerator(worldgeneration, 0); //blocks exodium_block = new Exodium_block(Material.rock).setBlockName("exodium_block").setBlockTextureName("ExodiaMod:exodium_block").setCreativeTab(this.exodiaCreativeTabs); exodium_ore = new Exodium_ore(Material.rock) .setHardness(4.0F).setBlockName("exodium_ore").setHardness(3.0F).setResistance(5.0F).setStepSound(Block.soundTypeStone).setBlockTextureName("ExodiaMod:exodium_ore").setCreativeTab(this.exodiaCreativeTabs); exodium_culture = new Exodium_culture().setBlockName("exodium_culture").setCreativeTab(this.exodiaCreativeTabs); GameRegistry.registerBlock(exodium_block, "exodium_block"); GameRegistry.registerBlock(exodium_ore, "exodium_ore"); GameRegistry.registerBlock(exodium_culture, "exodium_culture"); //items exodium_ingot = new Exodium_ingot().setUnlocalizedName("exodium_ingot").setTextureName(ExodiaMod.MODID + ":exodium_ingot").setCreativeTab(this.exodiaCreativeTabs); exodium_nugget = new Exodium_nugget().setUnlocalizedName("exodium_nugget").setTextureName(ExodiaMod.MODID + ":exodium_nugget").setCreativeTab(this.exodiaCreativeTabs); exodium_seed = new ItemSeeds(exodium_culture, Blocks.farmland).setUnlocalizedName("exodium_seed").setTextureName(ExodiaMod.MODID + ":exodium_seed").setCreativeTab(this.exodiaCreativeTabs); GameRegistry.registerItem(exodium_ingot, "exodium_ingot"); GameRegistry.registerItem(exodium_seed, "exodium_seed"); GameRegistry.registerItem(exodium_nugget, "exodium_nugget"); //armure exodia_helmet = new ItemExodiaArmor(armorExodia, 0).setUnlocalizedName("exodia_helmet").setTextureName(MODID + ":exodia_helmet").setCreativeTab(this.exodiaCreativeTabs); exodia_chestplate = new ItemExodiaArmor(armorExodia, 1).setUnlocalizedName("exodia_chestplate").setTextureName(MODID + ":exodia_chestplate").setCreativeTab(this.exodiaCreativeTabs); exodia_leggings = new ItemExodiaArmor(armorExodia, 2).setUnlocalizedName("exodia_leggings").setTextureName(MODID + ":exodia_leggings").setCreativeTab(this.exodiaCreativeTabs); exodia_boots = new ItemExodiaArmor(armorExodia, 3).setUnlocalizedName("exodia_boots").setTextureName(MODID + ":exodia_boots").setCreativeTab(this.exodiaCreativeTabs); GameRegistry.registerItem(exodia_helmet, "exodia_helmet"); GameRegistry.registerItem(exodia_chestplate, "exodia_chestplate"); GameRegistry.registerItem(exodia_leggings, "exodia_leggings"); GameRegistry.registerItem(exodia_boots, "exodia_boots"); //épée exodia_sword = new ItemExodiaSword(toolExodia).setUnlocalizedName("exodia_sword").setTextureName(MODID + "exodia_sword").setCreativeTab(this.exodiaCreativeTabs); GameRegistry.registerItem(exodia_sword, "exodia_sword"); } @EventHandler public void init(FMLInitializationEvent event) { proxy.registerRender(); } @EventHandler public void postInit(FMLPostInitializationEvent event) { } }public class Exodium_culture extends BlockCarrot { public static String[] type = new String[]{"exodium_stage_0", "exodium_stage_1", "exodium_stage_2", "exodium_stage_3"}; private IIcon[] IconArray; public Exodium_culture () { super(); } @Override public IIcon getIcon(int side, int metadata) { return (IIcon) (metadata < type.length && metadata >= 0 ? IconArray[metadata] : IconArray[0]); } public void registerBlockIcons(IIconRegister iconregister) { IconArray = new IIcon[type.length]; for(int i = 0; i < type.length; i++) { IconArray* = (IIcon) iconregister.registerIcon("ExodiaMod:" + type*); } } protected Item func_149866_i() { return ExodiaMod.exodium_seed; } protected Item func_149865_P() { return ExodiaMod.exodium_nugget; } public int damageDropped(int metadata) { return metadata; } } -
Ce code marche :
package fr.scarex.st17.block; import net.minecraft.block.BlockCrops; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.util.ChatComponentText; import net.minecraft.util.IIcon; import net.minecraft.world.World; import cpw.mods.fml.common.registry.GameRegistry; import fr.scarex.st17.ST17; import fr.scarex.st17.item.ST17Items; public class BlackCarrot extends BlockCrops { public static final String name = "black_carrot"; private IIcon[] textures; public BlackCarrot() { setBlockName(name); setBlockTextureName(ST17.MODID + ":" + name); setCreativeTab(CreativeTabs.tabBlock); GameRegistry.registerBlock(this, name); } @Override public IIcon getIcon(int side, int meta) { if (meta < 7) { if (meta == 6) { meta = 5; } return this.textures[meta >> 1]; } else { return this.textures[3]; } } @Override protected Item func_149866_i() { //ici c'est l'item pour les graines (ex : wheat_seeds) return Items.diamond; } @Override protected Item func_149865_P() { //et ici l'Item droppé (ex : wheat) return Items.apple; } @Override public void registerBlockIcons(IIconRegister p_149651_1_) { this.textures = new IIcon[4]; for (int i = 0; i < this.textures.length; ++i) { this.textures* = p_149651_1_.registerIcon(ST17.MODID + ":" + this.getTextureName() + "_stage_" + i); } } @Override //Juste pour debuger public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int meta, float p_149727_7_, float p_149727_8_, float p_149727_9_) { if (!world.isRemote) { player.addChatMessage(new ChatComponentText("Metadata : " + world.getBlockMetadata(x, y, z))); player.addChatMessage(new ChatComponentText("Texture : " + this.getIcon(0, world.getBlockMetadata(x, y, z)))); } return true; } } -
D’accord et bien je vais tout simplement extends ma classe en blockcrops au lieu de blockcarrot, m’aider de ton code et je repasse vous voir pour donner des nouvelles merci bien.
EDIT: je n’arrives toujours pas à avoir mes textures, voici mon nouveau code:
(mes textures ont le nom: Exodium_culture_stage_0/1/2… et sont dans assets/exodiamod/textures/block)package com.google.degraduck.exodiamod.common; import net.minecraft.block.BlockCrops; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.util.ChatComponentText; import net.minecraft.util.IIcon; import net.minecraft.world.World; import cpw.mods.fml.common.registry.GameRegistry; public class Exodium_culture extends BlockCrops { public static final String name = "Exodium_culture"; private IIcon[] textures; public Exodium_culture() { setBlockName(name); setBlockTextureName(ExodiaMod.MODID + ":" + name); GameRegistry.registerBlock(this, name); } @Override public IIcon getIcon(int side, int meta) { if (meta < 7) { if (meta == 6) { meta = 5; } return this.textures[meta >> 1]; } else { return this.textures[3]; } } @Override protected Item func_149866_i() { //ici c'est l'item pour les graines (ex : wheat_seeds) return ExodiaMod.exodium_seed; } @Override protected Item func_149865_P() { //et ici l'Item droppé (ex : wheat) return ExodiaMod.exodium_nugget; } @Override public void registerBlockIcons(IIconRegister p_149651_1_) { this.textures = new IIcon[4]; for (int i = 0; i < this.textures.length; ++i) { this.textures* = p_149651_1_.registerIcon(ExodiaMod.MODID + ":" + this.getTextureName() + "_stage_" + i); } } @Override //Juste pour debuger public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int meta, float p_149727_7_, float p_149727_8_, float p_149727_9_) { if (!world.isRemote) { player.addChatMessage(new ChatComponentText("Metadata : " + world.getBlockMetadata(x, y, z))); player.addChatMessage(new ChatComponentText("Texture : " + this.getIcon(0, world.getBlockMetadata(x, y, z)))); } return true; } } -
@‘Degraduck’:
D’accord et bien je vais tout simplement extends ma classe en blockcrops au lieu de blockcarrot, m’aider de ton code et je repasse vous voir pour donner des nouvelles merci bien.
EDIT: je n’arrives toujours pas à avoir mes textures, voici mon nouveau code:
(mes textures ont le nom: Exodium_culture_stage_0/1/2… et sont dans assets/exodiamod/textures/block)package com.google.degraduck.exodiamod.common; import net.minecraft.block.BlockCrops; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.util.ChatComponentText; import net.minecraft.util.IIcon; import net.minecraft.world.World; import cpw.mods.fml.common.registry.GameRegistry; public class Exodium_culture extends BlockCrops { public static final String name = "Exodium_culture"; private IIcon[] textures; public Exodium_culture() { setBlockName(name); setBlockTextureName(ExodiaMod.MODID + ":" + name); GameRegistry.registerBlock(this, name); } @Override public IIcon getIcon(int side, int meta) { if (meta < 7) { if (meta == 6) { meta = 5; } return this.textures[meta >> 1]; } else { return this.textures[3]; } } @Override protected Item func_149866_i() { //ici c'est l'item pour les graines (ex : wheat_seeds) return ExodiaMod.exodium_seed; } @Override protected Item func_149865_P() { //et ici l'Item droppé (ex : wheat) return ExodiaMod.exodium_nugget; } @Override public void registerBlockIcons(IIconRegister p_149651_1_) { this.textures = new IIcon[4]; for (int i = 0; i < this.textures.length; ++i) { this.textures* = p_149651_1_.registerIcon(ExodiaMod.MODID + ":" + this.getTextureName() + "_stage_" + i); } } @Override //Juste pour debuger public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int meta, float p_149727_7_, float p_149727_8_, float p_149727_9_) { if (!world.isRemote) { player.addChatMessage(new ChatComponentText("Metadata : " + world.getBlockMetadata(x, y, z))); player.addChatMessage(new ChatComponentText("Texture : " + this.getIcon(0, world.getBlockMetadata(x, y, z)))); } return true; } }Lorsque tu lance le jeu, il est censé t’indiquer quelles textures n’ont pas été trouvées, regarde dans les logs au lancement.
-
J’ai ceci, pour chaque stage que faire?:
:::
[19:52:43] [Client thread/ERROR]: Using missing texture, unable to load exodiamod:textures/blocks/exodiamod:Exodium_culture_stage_0.png
java.io.FileNotFoundException: exodiamod:textures/blocks/exodiamod:Exodium_culture_stage_0.png
at net.minecraft.client.resources.FallbackResourceManager.getResource(FallbackResourceManager.java:65) ~[FallbackResourceManager.class:?]
at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:67) ~[SimpleReloadableResourceManager.class:?]
at net.minecraft.client.renderer.texture.TextureMap.loadTextureAtlas(TextureMap.java:126) [TextureMap.class:?]
at net.minecraft.client.renderer.texture.TextureMap.loadTexture(TextureMap.java:91) [TextureMap.class:?]
at net.minecraft.client.renderer.texture.TextureManager.loadTexture(TextureManager.java:89) [TextureManager.class:?]
at net.minecraft.client.renderer.texture.TextureManager.loadTickableTexture(TextureManager.java:71) [TextureManager.class:?]
at net.minecraft.client.renderer.texture.TextureManager.loadTextureMap(TextureManager.java:58) [TextureManager.class:?]
at net.minecraft.client.Minecraft.startGame(Minecraft.java:582) [Minecraft.class:?]
at net.minecraft.client.Minecraft.run(Minecraft.java:931) [Minecraft.class:?]
at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_40]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_40]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_40]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_40]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.11.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.11.jar:?]
at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?]
at GradleStart.main(Unknown Source) [start/:?]
::: -
@‘Degraduck’:
J’ai ceci, pour chaque stage que faire?:
:::
[19:52:43] [Client thread/ERROR]: Using missing texture, unable to load exodiamod:textures/blocks/exodiamod:Exodium_culture_stage_0.png
java.io.FileNotFoundException: exodiamod:textures/blocks/exodiamod:Exodium_culture_stage_0.png
at net.minecraft.client.resources.FallbackResourceManager.getResource(FallbackResourceManager.java:65) ~[FallbackResourceManager.class:?]
at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:67) ~[SimpleReloadableResourceManager.class:?]
at net.minecraft.client.renderer.texture.TextureMap.loadTextureAtlas(TextureMap.java:126) [TextureMap.class:?]
at net.minecraft.client.renderer.texture.TextureMap.loadTexture(TextureMap.java:91) [TextureMap.class:?]
at net.minecraft.client.renderer.texture.TextureManager.loadTexture(TextureManager.java:89) [TextureManager.class:?]
at net.minecraft.client.renderer.texture.TextureManager.loadTickableTexture(TextureManager.java:71) [TextureManager.class:?]
at net.minecraft.client.renderer.texture.TextureManager.loadTextureMap(TextureManager.java:58) [TextureManager.class:?]
at net.minecraft.client.Minecraft.startGame(Minecraft.java:582) [Minecraft.class:?]
at net.minecraft.client.Minecraft.run(Minecraft.java:931) [Minecraft.class:?]
at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_40]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_40]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_40]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_40]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.11.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.11.jar:?]
at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?]
at GradleStart.main(Unknown Source) [start/:?]
:::Change cette ligne :
this.textures* = p_149651_1_.registerIcon(ExodiaMod.MODID + ":" + this.getTextureName() + "_stage_" + i);et remplace là avec celle-ci :
this.textures* = p_149651_1_.registerIcon(this.getTextureName() + "_stage_" + i); -
Cela fonctionne mais je ne peut faire que 4 stages je fais comment si j’en veux plus comme le blé?
-
@‘Degraduck’:
Cela fonctionne mais je ne peut faire que 4 stages je fais comment si j’en veux plus comme le blé?
Combien de stage veux-tu ?
-
7 comme le blé. et je voudrais aussi que la poudre d’os ne soit pas utilisable sur ma culture si possible.
-
package fr.scarex.st17.block; import java.util.Random; import net.minecraft.block.BlockCrops; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.util.ChatComponentText; import net.minecraft.util.IIcon; import net.minecraft.world.World; import cpw.mods.fml.common.registry.GameRegistry; import fr.scarex.st17.ST17; public class BlackCarrot extends BlockCrops { public static final String name = "black_carrot"; private IIcon[] textures; public BlackCarrot() { setBlockName(name); setBlockTextureName(ST17.MODID + ":" + name); setCreativeTab(CreativeTabs.tabBlock); GameRegistry.registerBlock(this, name); } @Override public IIcon getIcon(int side, int meta) { if (meta < 0 || meta > 7) { meta = 7; } return this.textures[meta]; } @Override protected Item func_149866_i() { return Items.diamond; } @Override protected Item func_149865_P() { return Items.apple; } @Override public void registerBlockIcons(IIconRegister p_149651_1_) { this.textures = new IIcon[8]; for (int i = 0; i < this.textures.length; ++i) { this.textures* = p_149651_1_.registerIcon(ST17.MODID + ":" + this.getTextureName() + "_stage_" + i); } } @Override public boolean func_149851_a(World p_149851_1_, int p_149851_2_, int p_149851_3_, int p_149851_4_, boolean p_149851_5_) { return false; } @Override public boolean func_149852_a(World p_149852_1_, Random p_149852_2_, int p_149852_3_, int p_149852_4_, int p_149852_5_) { return false; } @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int meta, float p_149727_7_, float p_149727_8_, float p_149727_9_) { if (!world.isRemote) { player.addChatMessage(new ChatComponentText("Metadata : " + world.getBlockMetadata(x, y, z))); player.addChatMessage(new ChatComponentText("Texture : " + this.getIcon(0, world.getBlockMetadata(x, y, z)).getIconName())); } return true; } } -
Merci