Jump to content

Recommended Posts

Posted

Hi. I'm been following the Generic mod tutorial for 1.6.2, but when I got to block and item texturing, I followed the tutorial, but the texture didn't apply. Could anybody tell me what's going on?

 

Here's my base mod file:

package tutorial.basic;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.FurnaceRecipes;
import net.minecraftforge.common.MinecraftForge;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;

@Mod(modid = BasicInfo.ID, name = BasicInfo.NAME, version = BasicInfo.VERS)
@NetworkMod(clientSideRequired = true, serverSideRequired = false)
public class Basic {

public final static Block genericDirt = new GenericBlock(500, Material.ground).setHardness(0.5f).setStepSound(Block.soundGravelFootstep).setUnlocalizedName("genericDirt").setCreativeTab(CreativeTabs.tabBlock);

public final static Block genericOre = new GenericOre(501, Material.rock);

private final static Item genericItem = new GenericItem(5000);

private final static Item genericIngot = new GenericItem(5001).setMaxStackSize(16).setCreativeTab(CreativeTabs.tabMisc).setUnlocalizedName("genericIngot");

//The instance of your mod that Forge uses.
@Instance("Basic")
public static Basic instance;

//Says where the client and server 'proxy' code is loaded.
@SidedProxy(clientSide = BasicInfo.CLIENTPROXY + "ClientProxy", serverSide = BasicInfo.COMMONPROXY + "CommonProxy")
public static CommonProxy proxy;

@EventHandler
public void preInit(FMLPreInitializationEvent event) {
	//Stub method
}

@EventHandler
public void load(FMLInitializationEvent event) {
	proxy.registerRenderers();

	ItemStack dirtStack = new ItemStack(Block.dirt);
	ItemStack diamondStack = new ItemStack(Item.diamond, 64);
	ItemStack blackWoolStack = new ItemStack(Block.cloth, 10, 15);
	ItemStack stoneStack = new ItemStack(1, 32, 0);
	ItemStack saddleStack = new ItemStack(Item.saddle);
	ItemStack stringStack = new ItemStack(Item.silk, 1);
	ItemStack gravelStack = new ItemStack(Block.gravel);
	ItemStack whiteWoolStack = new ItemStack(Block.cloth, 1, 0);

	GameRegistry.addShapelessRecipe(diamondStack, dirtStack);
	GameRegistry.addShapelessRecipe(stoneStack, dirtStack, diamondStack);
	GameRegistry.addRecipe(diamondStack, "xy", "yx", 'x', dirtStack, 'y', stoneStack);
	GameRegistry.addRecipe(gravelStack, "xyx", "y y", "xyx", 'x', dirtStack, 'y', diamondStack);
	GameRegistry.addSmelting(Block.dirt.blockID, diamondStack, 0.1f);
	GameRegistry.registerBlock(genericDirt, "genericDirt");
	GameRegistry.registerBlock(genericOre, "genericOre");

	FurnaceRecipes.smelting().addSmelting(Block.cloth.blockID, 15, whiteWoolStack, 1.0f);

	LanguageRegistry.addName(genericDirt, "Generic Dirt");
	LanguageRegistry.addName(genericOre, "Generic Ore");

	MinecraftForge.setBlockHarvestLevel(genericDirt, "shovel", 1);
	MinecraftForge.setBlockHarvestLevel(genericOre, "pickaxe", 3); //0 = wood, 1 = stone, 2 = iron, 3 = diamond
}

@EventHandler
public void postInit(FMLPostInitializationEvent event) {
	//Stub method
}
}

 

Here's the block file:

package tutorial.basic;

import java.util.Random;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;

public class GenericOre extends Block {

public GenericOre(int id, Material material) {
	super(id, material);

	setHardness(4.0f);
	setStepSound(Block.soundStoneFootstep);
	setUnlocalizedName("genericOre");
	setCreativeTab(CreativeTabs.tabBlock);
	func_111022_d(BasicInfo.NAME.toLowerCase() + ":iron_ore");
}

public int idDropped(int metadata, Random random, int fortune) {
	return Item.ingotIron.itemID;
}
}

 

Here's the item file:

package tutorial.basic;

import java.util.Random;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;

public class GenericOre extends Block {

public GenericOre(int id, Material material) {
	super(id, material);

	setHardness(4.0f);
	setStepSound(Block.soundStoneFootstep);
	setUnlocalizedName("genericOre");
	setCreativeTab(CreativeTabs.tabBlock);
	func_111022_d(BasicInfo.NAME.toLowerCase() + ":iron_ore");
}

public int idDropped(int metadata, Random random, int fortune) {
	return Item.ingotIron.itemID;
}
}

 

And just in case you're wondering, here's the BasicInfo file:

package tutorial.basic;

public class BasicInfo {

public static final String ID = "Basic";
public static final String NAME = "Basic";
public static final String VERS = "0.0.0";
public static final String CLIENTPROXY = "tutorial.basic.client.";
public static final String COMMONPROXY = "tutorial.basic.";

}

Posted

where did you put the png file ?

it should be in :

forge/mcp/src/minecraft/assets/basic/textures/blocks/iron_ore.png

 

Actually that's where it SHOULD NOT be.

 

And one thing you're not doing, that you should be, is overriding RegisterIcon:

 

public void registerIcons(IconRegister par1IconRegister)
    {
        this.blockIcon = par1IconRegister.registerIcon("mymodid:myblock");
    }

 

Then the texture goes in src/minecraft/assets/mymodid/textures/blocks/myblock.png

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

@Draco: You don't need to override registerIcons for that. Just use

setTextureName("mymodid:mytexture")

.

 

That one's new to me, thanks :)

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.

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

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