Posted July 30, 201510 yr Hi I recently started modding with forge and until now everything works fine. However, I encountered a problem when i tried to add a specific block. This block should have the ability to be placed in the direction which the player is facing (like a furnace or door). I already added several blocks but none of them has multiple textures. I tryed to copy all the .json files from the furnace and edit them like this: atmospheric_extractor.json in blockstates { "variants": { "facing=north": { "model": "lifecraft:atmospheric_extractor" }, "facing=south": { "model": "lifecraft:atmospheric_extractor", "y": 180 }, "facing=west": { "model": "lifecraft:atmospheric_extractor", "y": 270 }, "facing=east": { "model": "lifecraft:atmospheric_extractor", "y": 90 } } } atmospheric_extractor.json in models/block { "parent": "block/orientable", "textures": { "top": "lifecraft:blocks/machine_top", "front": "lifecraft:blocks/atmospheric_extractor_off", "side": "lifecraft:blocks/aluminium_block" } } atmospheric_extractor.json in models/items { "parent": "lifecraft:block/atmospheric_extractor", "display": { "thirdperson": { "rotation": [ 10, -45, 170 ], "translation": [ 0, 1.5, -2.75 ], "scale": [ 0.375, 0.375, 0.375 ] } } } When I start up the game the block renders just with the standard texture. I don't expect the block to rotate to a specific orientation with my code but i can't even get it rendered. I would be happy if someone could help me with my project. Here are some of the .java files: (If you need further information feel free to ask and i will post it.) Lifecraft.java: package com.flup52.lifecraft; import com.flup52.lifecraft.generation.OreGenerator; import com.flup52.lifecraft.init.LifeCraftBlocks; import com.flup52.lifecraft.init.LifeCraftItems; import com.flup52.lifecraft.init.LifeCraftRecipes; import com.flup52.lifecraft.proxy.CommonProxy; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventHandler; 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; import net.minecraftforge.fml.common.registry.GameRegistry; @Mod(modid = Reference.MODID, name = Reference.MOD_NAME, version = Reference.VERSION) public class Lifecraft { @SidedProxy(clientSide = Reference.CLIENT_PROXY_CLASS, serverSide = Reference.SERVER_PROXY_CLASS) public static CommonProxy proxy; public static final LifeCraftTab tabLifeCraft = new LifeCraftTab("tabLifeCraft"); @EventHandler public void preInit(FMLPreInitializationEvent event) { LifeCraftBlocks.Init(); LifeCraftBlocks.Register(); LifeCraftItems.Init(); LifeCraftItems.Register(); GameRegistry.registerWorldGenerator(new OreGenerator(), 0); } @EventHandler public void init(FMLInitializationEvent event) { proxy.RegisterRenders(); LifeCraftRecipes.RegisterRecipes(); } @EventHandler public void postInit(FMLPostInitializationEvent event) { } } LifeCraftBlocks.java package com.flup52.lifecraft.init; import com.flup52.lifecraft.Lifecraft; import com.flup52.lifecraft.Reference; import com.flup52.lifecraft.blocks.LifeCraftBlock; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.item.Item; import net.minecraftforge.fml.common.registry.GameRegistry; public class LifeCraftBlocks { public static Block atmospheric_extractor; public static Block aluminium_ore; public static Block aluminium_block; public static void Init() { atmospheric_extractor = new LifeCraftBlock(Material.iron, 5F, 30F, "pickaxe", 1).setUnlocalizedName("atmospheric_extractor").setCreativeTab(Lifecraft.tabLifeCraft); aluminium_ore = new LifeCraftBlock(Material.rock, 3F, 15F, "pickaxe", 1).setUnlocalizedName("aluminium_ore").setCreativeTab(Lifecraft.tabLifeCraft); aluminium_block = new LifeCraftBlock(Material.iron, 5F, 30F, "pickaxe", 1).setUnlocalizedName("aluminium_block").setCreativeTab(Lifecraft.tabLifeCraft); } public static void Register() { //Also creative tab sorting! GameRegistry.registerBlock(atmospheric_extractor, atmospheric_extractor.getUnlocalizedName().substring(5)); GameRegistry.registerBlock(aluminium_ore, aluminium_ore.getUnlocalizedName().substring(5)); GameRegistry.registerBlock(aluminium_block, aluminium_block.getUnlocalizedName().substring(5)); } public static void RegisterRenders() { RegisterRender(atmospheric_extractor); RegisterRender(aluminium_ore); RegisterRender(aluminium_block); } public static void RegisterRender(Block block) { Item item = Item.getItemFromBlock(block); Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Reference.MODID + ":" + item.getUnlocalizedName().substring(5), "inventory")); } } LifeCraftBlock.java package com.flup52.lifecraft.blocks; import net.minecraft.block.Block; import net.minecraft.block.material.Material; public class LifeCraftBlock extends Block{ public LifeCraftBlock(Material materialIn, float hardness, float resistance, String toolClass, int harvestLevel) { super(materialIn); setHardness(hardness); setResistance(resistance); setHarvestLevel(toolClass, harvestLevel); } }
July 30, 201510 yr Hi A lot of necessary stuff is missing from your code. This tutorial project has an example of blocks which can be placed facing different directions https://github.com/TheGreyGhost/MinecraftByExample (see MBE03) -TGG
July 30, 201510 yr Author @TheGreyGhost Hi A lot of necessary stuff is missing from your code. This tutorial project has an example of blocks which can be placed facing different directions https://github.com/TheGreyGhost/MinecraftByExample (see MBE03) -TGG Thanks very much it works! I even found the reason why it wasn't rendering: I forgot the .json ending!
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.