darkalpha Posted August 19, 2016 Share Posted August 19, 2016 EDIT: This was "half-solved"... I'm gonna post a new topic with the new problem. I'm making my first mod, and I already have some items, etc.... But now I'm stuck in adding a block with 2 different textures. 1 for the top side and the another to the rest. I followed every tutorials i found, but no one works... How do i do this? Rodrigo Gameiro, 2016 Link to comment Share on other sites More sharing options...
Animefan8888 Posted August 19, 2016 Share Posted August 19, 2016 Look at the craftingTable JSON that minecraft uses it is in the minecraft jar file under assets/minecraft/models/block/crafting_table.json VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator. Link to comment Share on other sites More sharing options...
darkalpha Posted August 19, 2016 Author Share Posted August 19, 2016 I copied everything, changed it to correct file localizations, but nothing is happening. Still the same... Block code(class name is Duplicator.java) package dark.smth.mod.block; 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; import dark.smth.mod.base.Reference; import dark.smth.mod.base.SMTHMain; public class Duplicator extends Block { public static Block duplicator; public Duplicator(Material materialIn) { super(materialIn); } public static void init (Material material) { duplicator = new Block(material).setUnlocalizedName("duplicator").setCreativeTab(SMTHMain.creativeTab); duplicator.setHardness(2.0F); duplicator.setHarvestLevel("pickaxe", 2); duplicator.setStepSound(soundTypeMetal); } public static void register () { GameRegistry.registerBlock(duplicator, duplicator.getUnlocalizedName().substring(5)); } public static void registerRenders () { registerRender(duplicator); } public static void registerRender (Block block) { Item item = Item.getItemFromBlock(block); Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Reference.MOD_ID + ":" + item.getUnlocalizedName().substring(5), "inventory")); } } JSON files models/block { "parent": "block/cube", "textures": { "particle": "smth:blocks/duplicator_top", "down": "blocks/iron_block", "up": "smth:blocks/duplicator_top", "north": smth:blocks/duplicator_side", "east": "smth:blocks/duplicator_side", "south": "smth:blocks/duplicator_side", "west": "smth:blocks/duplicator_side" } } models/item { "parent": "block/crafting_table", "display": { "thirdperson": { "rotation": [ 10, -45, 170 ], "translation": [ 0, 1.5, -2.75 ], "scale": [ 0.375, 0.375, 0.375 ] } } } Rodrigo Gameiro, 2016 Link to comment Share on other sites More sharing options...
Animefan8888 Posted August 19, 2016 Share Posted August 19, 2016 First I never said copy "north": smth:blocks/duplicator_side", is missing a " and your item model should not be parent block/crafting_table it should be your modid:block_model_name. Also it's not working is not a good description of what is happening. VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator. Link to comment Share on other sites More sharing options...
darkalpha Posted August 19, 2016 Author Share Posted August 19, 2016 What did you want for me to say instead it's not working?... It's not showing any texture? And what do you mean by "block_model_name"? If i understand correctly, i need to put one model there, but what model? This block is gonna have 2 different textures. Please explain, I'm new at modding... Rodrigo Gameiro, 2016 Link to comment Share on other sites More sharing options...
Animefan8888 Posted August 19, 2016 Share Posted August 19, 2016 I would have preferred "It is showing the error texture." or something similar. The problem you had was that the block model wasn't a correct JSON it had errors. Like I said you were missing a ". What I meant by "block_model_name" was the name of your block model JSON. Also instead of Minecraft.getMinecratf.getItemModelMesher in registerRender you should use something like public void registerRender(Block block) { ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(block), 0, new ModelResourceLocation(modid, getUnlocalizedName().substring(5), "normal")); } VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator. Link to comment Share on other sites More sharing options...
darkalpha Posted August 19, 2016 Author Share Posted August 19, 2016 By the way, I already need to thank you, the problem is half solved. The block has finnaly his textures, the only thing isn't solved is the icon of the block on the inventory. Block class (Duplicator.java) package dark.smth.mod.block; 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.client.model.ModelLoader; import net.minecraftforge.fml.common.registry.GameRegistry; import dark.smth.mod.base.Reference; import dark.smth.mod.base.SMTHMain; public class Duplicator extends Block { public static Block duplicator; public Duplicator(Material materialIn) { super(materialIn); } public static void init (Material material) { duplicator = new Block(material).setUnlocalizedName("duplicator").setCreativeTab(SMTHMain.creativeTab); duplicator.setHardness(6.0F); duplicator.setHarvestLevel("pickaxe", 2); duplicator.setStepSound(soundTypeMetal); } public static void register () { GameRegistry.registerBlock(duplicator, duplicator.getUnlocalizedName().substring(5)); } public static void registerRenders () { registerRender(duplicator); } public static void registerRender (Block block) { Item item = Item.getItemFromBlock(block); //Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Reference.MOD_ID + ":" + item.getUnlocalizedName().substring(5), "inventory")); ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(block), 0, new ModelResourceLocation(Reference.MOD_ID + ":" + item.getUnlocalizedName().substring(5), "normal")); } } JSON files models/item { "parent": "smth:block/duplicator", "display": { "thirdperson": { "rotation": [ 10, -45, 170 ], "translation": [ 0, 1.5, -2.75 ], "scale": [ 0.375, 0.375, 0.375 ] } } } models/block { "parent": "block/cube", "textures": { "particle": "smth:blocks/duplicator_top", "down": "blocks/iron_block", "up": "smth:blocks/duplicator_top", "north": "smth:blocks/duplicator_side", "east": "smth:blocks/duplicator_side", "south": "smth:blocks/duplicator_side", "west": "smth:blocks/duplicator_side" } } blockstates { "variants": { "normal": { "model": "blocks/iron_block" } } } Rodrigo Gameiro, 2016 Link to comment Share on other sites More sharing options...
Animefan8888 Posted August 19, 2016 Share Posted August 19, 2016 First thing I noticed (Blockstate) "variants": { "normal": { "model": "blocks/iron_block" } } "blocks/iron_block"? Second thing (Item Model) "display": { "thirdperson": { "rotation": [ 10, -45, 170 ], "translation": [ 0, 1.5, -2.75 ], "scale": [ 0.375, 0.375, 0.375 ] } } This is not needed. VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator. Link to comment Share on other sites More sharing options...
darkalpha Posted August 19, 2016 Author Share Posted August 19, 2016 So, I don't need that 2 files? I tried to delete and now its the same thing, error texture... Rodrigo Gameiro, 2016 Link to comment Share on other sites More sharing options...
Animefan8888 Posted August 19, 2016 Share Posted August 19, 2016 No you need those files, what I was saying was that part of the item model is not necessary and might be causing the error. The blockstate is pointing to "blocks/iron_block" which shouldn't exist. It should point to something like this for an Iron Block "iron_block" for one from your mod "modid:model_file_name". VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator. Link to comment Share on other sites More sharing options...
Draco18s Posted August 19, 2016 Share Posted August 19, 2016 Or you can point it at block/cube, block/cube_all, or block/block Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given. Link to comment Share on other sites More sharing options...
darkalpha Posted August 19, 2016 Author Share Posted August 19, 2016 No you need those files, what I was saying was that part of the item model is not necessary and might be causing the error. The blockstate is pointing to "blocks/iron_block" which shouldn't exist. It should point to something like this for an Iron Block "iron_block" for one from your mod "modid:model_file_name". Or you can point it at block/cube, block/cube_all, or block/block I tried all, but no one worked Rodrigo Gameiro, 2016 Link to comment Share on other sites More sharing options...
Draco18s Posted August 19, 2016 Share Posted August 19, 2016 That's because you have "blocks/block" Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given. Link to comment Share on other sites More sharing options...
darkalpha Posted August 21, 2016 Author Share Posted August 21, 2016 Where is that? I didn't find that error.. Block class: package dark.smth.mod.block; 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.client.model.ModelLoader; import net.minecraftforge.fml.common.registry.GameRegistry; import dark.smth.mod.base.Reference; import dark.smth.mod.base.SMTHMain; public class Duplicator extends Block { public static Block duplicator; public Duplicator(Material materialIn) { super(materialIn); } public static void init (Material material) { duplicator = new Block(material).setUnlocalizedName("duplicator").setCreativeTab(SMTHMain.creative_Tab); duplicator.setHardness(6.0F); duplicator.setHarvestLevel("pickaxe", 2); duplicator.setStepSound(soundTypeMetal); } public static void register () { GameRegistry.registerBlock(duplicator, duplicator.getUnlocalizedName().substring(5)); } public static void registerRenders () { registerRender(duplicator); } public static void registerRender (Block block) { Item item = Item.getItemFromBlock(block); //Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Reference.MOD_ID + ":" + item.getUnlocalizedName().substring(5), "inventory")); ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(block), 0, new ModelResourceLocation(Reference.MOD_ID + ":" + item.getUnlocalizedName().substring(5), "normal")); } } JSON files models/block { "parent": "block/cube", "textures": { "particle": "smth:blocks/duplicator_top", "down": "blocks/iron_block", "up": "smth:blocks/duplicator_top", "north": "smth:blocks/duplicator_side", "east": "smth:blocks/duplicator_side", "south": "smth:blocks/duplicator_side", "west": "smth:blocks/duplicator_side" } } models/item { "parent": "smth:block/duplicator", "display": { "thirdperson": { "rotation": [ 10, -45, 170 ], "translation": [ 0, 1.5, -2.75 ], "scale": [ 0.375, 0.375, 0.375 ] } } } blockstates { "variants": { "normal": { "model": "smth:block/duplicator" } } } Rodrigo Gameiro, 2016 Link to comment Share on other sites More sharing options...
Recommended Posts