Résolu [1.9] Problème Rendu inventaire
-
Rebonjour,
Suite au problème de rendus dans mon ancien poste. J’ai voulu dire que j’ai reussi à le faire avec un code assez farfelue mais maintenant, l’item qui est dans la barre d’inventaire est en 2D mais pas en 3D comme les autres:
Main:
package fr.yohannlog.main; import fr.yohannlog.main.proxies.CommonProxy; import net.minecraft.init.Blocks; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventHandler; import net.minecraftforge.fml.common.Mod.Instance; import net.minecraftforge.fml.common.SidedProxy; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; @Mod(modid = Main.MODID, version = Main.VERSION, name = Main.MODNAME) public class Main { public static final String MODID = "minecraftmore"; public static final String VERSION = "1.0"; public static final String MODNAME = "Reg"; @Instance public static Main instance = new Main(); @SidedProxy(clientSide="fr.yohannlog.main.proxies.ClientProxy", serverSide="fr.yohannlog.main.proxies.CommonProxy") public static CommonProxy proxy; @EventHandler public void preInit(FMLPreInitializationEvent e) { proxy.preInit(e); } @EventHandler public void init(FMLInitializationEvent e) { proxy.init(e); } @EventHandler public void postInit(FMLPostInitializationEvent e) { proxy.postInit(e); } }
ClientProxy:
package fr.yohannlog.main.proxies; import fr.yohannlog.blocks.ModBlocks; import fr.yohannlog.blocks.render.BlockRenderRegister; import fr.yohannlog.main.Main; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; public class ClientProxy extends CommonProxy { @Override public void preInit(FMLPreInitializationEvent e) { super.preInit(e); } @Override public void init(FMLInitializationEvent e) { super.init(e); BlockRenderRegister.registerBlockRenderer(); } @Override public void postInit(FMLPostInitializationEvent e) { super.postInit(e); } }
CommonProxy:
package fr.yohannlog.main.proxies; import fr.yohannlog.blocks.ModBlocks; import fr.yohannlog.main.Main; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; public class CommonProxy { public void preInit(FMLPreInitializationEvent e) { ModBlocks.createBlocks(); } public void init(FMLInitializationEvent e) { } public void postInit(FMLPostInitializationEvent e) { } }
BlockRenderRegister:
package fr.yohannlog.blocks.render; import fr.yohannlog.blocks.ModBlocks; import fr.yohannlog.main.Main; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.item.Item; public class BlockRenderRegister { public static void registerBlockRenderer() { reg(ModBlocks.table); } public static String modid = Main.MODID; public static void reg(Block block) { Item item = Item.getItemFromBlock(block); Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(modid + ":" + item.getUnlocalizedName().substring(5), "inventory")); } }
Table:
package fr.yohannlog.blocks; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.util.BlockRenderLayer; import net.minecraft.util.EnumBlockRenderType; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; public class Table extends Block { public Table(String unlocalizedName, Material material, float hardness, float resistance){ super(material); this.setUnlocalizedName(unlocalizedName); this.setCreativeTab(CreativeTabs.tabBlock); this.setHardness(hardness); this.setResistance(resistance); } public Table(String unlocalizedName, float hardness, float resistance) { this(unlocalizedName, Material.rock, hardness, resistance); } public Table(String unlocalizedName) { this(unlocalizedName, 2.0f, 10.0f); } public boolean isOpaqueCube(IBlockState state) { return false; } public boolean isFullCube() { return false; } public EnumBlockRenderType getRenderType(IBlockState state) { return EnumBlockRenderType.MODEL; } @SideOnly(Side.CLIENT) public BlockRenderLayer getBlockLayer() { return BlockRenderLayer.CUTOUT; } }
ModBlocks:
package fr.yohannlog.blocks; import net.minecraft.block.Block; import net.minecraftforge.fml.common.registry.GameRegistry; public class ModBlocks { public static Block table; public static void createBlocks() { GameRegistry.registerBlock(table = new Table("table").setLightLevel(1.0f), "table"); } }
Models.Item.Table.json (JsonFile):
{ "parent": "minecraftmore:block/table", "display": { "thirdperson": { "rotation": [ 0, 90, -90 ], "translation": [ 0, 0, -4 ], "scale": [ 0.5, 0.5, 0.5 ] }, "firstperson": { "rotation": [ 0, 225, 0 ] }, "gui": { "rotation": [ 0, -65, 0 ], "translation": [ 0, -3, 0 ], "scale": [ 0.85, 0.85, 0.85 ] } } }
Voilà, voilà
Yohann
PS: je précise que la code est super mal foutu donc je ferai des modifs un peu plus tard
-
Aucune suggestion ?
-
Je ne comprends pas le problème : tu as des images du problème ?
-
Son bloc s’affiche en 2D au lieu d’être en 3D dans l’inventaire.
-
Exactement –> Voici l’image ci-dessous
(je voulais mettre l’image directement, mais il y a eu quelques problèmes donc je le met en lien)
Ne faîtes pas attention aux posistions trop basse des items, je sais d’ou ca vient et j’ai pas eu le temps de les remettre correctement.
Merci
Yohann
-
Une simple rotation dans le Gui ne suffit pas ?
-
Bonjour,
J’ai tenté de modifier le “gui” dans le .json mais rien n’y fais, toujours le même problème de rendu 2D.
{ "parent": "minecraftmore:block/table_acacia", "display": { "thirdperson": { "rotation": [ 0, 90, -90 ], "translation": [ 0, 0, -4 ], "scale": [ 0.5, 0.5, 0.5 ] }, "firstperson": { "rotation": [ 0, 225, 0 ] }, "gui": { "rotation": [ 0, 180, 0 ], "translation": [ 0, -3, 0 ], "scale": [ 0.85, 0.85, 0.85 ] } } }
-
La tu effectue une rotation de 180° sur l’axe y, c’est pour ça que le résultat est identique.
Fais plutôt une rotation de 35° sur l’axe x ou z. -
C’est bon: Ca marche parfaitement
Merci