Créations de plantations.
-
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