Jump to content

Recommended Posts

Posted

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

Posted

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

Posted

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.

Posted

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

Posted

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.

Posted

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

Posted

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.

Posted

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.

Posted

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.

Posted

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

Posted

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.

Posted

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

Guest
This topic is now closed to further replies.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.