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