Jump to content

Textures again...


rcboy147

Recommended Posts

Hello people,

 

I would like to start off saying that I love forge, I give all my thanks to people that support the community.

 

But the sad part is that my textures have been broken for a while but I thought maybe I was doing something wrong, but I have rewritten my code and it still dosen't work.. I am using a modified version of pahimars dev enviroment (for 1.6.2)

 

I have been trying to work this out for 2 weeks, I apologize if I did something stupid :P

Here is my code, if you need more ask me please

(Main class)

package michael.stainingwood.main;

import michael.stainingwood.*;
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.minecraftforge.common.MinecraftForge;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLLoadEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.event.FMLServerStartingEvent;
import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

@Mod(modid= stainingWood.modID , name="Staining Wood", version="0.1.84")
@NetworkMod(clientSideRequired=true, serverSideRequired=false)
public class stainingWood {

public final static String modID = "stainingwood";

//Creative Tab
	public static CreativeTabs tabStainingWood = new CreativeTabs("tabStainingWood") {
        public ItemStack getIconItemStack() {
                return new ItemStack(Block.blockDiamond);
        }
	};

//Block Sections
//StainBlock
public final static Block StainBlock =
		new michael.stainingwood.Stain.StainBlock(501, Material.rock)
.setHardness(1.0F)
.setStepSound(Block.soundStoneFootstep)
.setUnlocalizedName("Stain_Block")
.setCreativeTab(tabStainingWood)
.setHardness(2.0F)
    .setResistance(5.0F)
    .func_111022_d(stainingWood.modID + ":" + "stainerblock");

//Item Sections
//Staining Cloth
public final static Item StainingCloth =
		new michael.stainingwood.Stain.StainingCloth(502)
.setMaxStackSize(1)
.setUnlocalizedName("Staining_Cloth")
.setCreativeTab(tabStainingWood);

//Instance of Mod
public static stainingWood instance;

@EventHandler
public void preInit(FMLPreInitializationEvent event){

	System.out.println("[staining Wood] PreInitialization");
	//Creative Tab Registering
	//Staining Wood tab
	LanguageRegistry.instance().addStringLocalization("itemGroup.tabStainingWood", "en_US", "Staining Wood");

	// Block Registering
	//Block Stainblock
	LanguageRegistry.addName(StainBlock,"Stain Mixer");
	GameRegistry.registerBlock(StainBlock, "stainBlock");
	MinecraftForge.setBlockHarvestLevel(Block.stone, "pickaxe", 2);

	// Item Registering
	//Staining Cloth
	LanguageRegistry.addName(StainingCloth, "Staining Cloth");
	GameRegistry.registerItem(StainingCloth, "stainingcloth");

	//Recipe Registering
	//Stain Block Crafting
	//Shapeless Recipe
	GameRegistry.addShapelessRecipe(new ItemStack(StainBlock, 1), new ItemStack(Block.dirt));
	//Shaped Recipe
	GameRegistry.addShapedRecipe(new ItemStack(StainBlock)
			,"yyy","xdx","yyy",
			'x', new ItemStack(Item.ingotIron), 
			'y', new ItemStack(Block.stone),
			'd', new ItemStack(Item.diamond));
	//Stain Cloth Recipe
	GameRegistry.addShapedRecipe(new ItemStack(StainingCloth),
			"s", "p", "t",
			's', new ItemStack(Item.silk), 
			'p', new ItemStack(Item.paper),
			't', new ItemStack(Item.stick));
	//World Generator
	GameRegistry.registerWorldGenerator(new WorldGeneration());
}



@EventHandler
public void load(FMLLoadEvent event){

}
@EventHandler
public void postInit(FMLPostInitializationEvent event) {
	//Event's
	MinecraftForge.EVENT_BUS.register(new EventReciver());
}
@EventHandler
public void ServerStart(FMLServerStartingEvent event){

}
}

Block Class

package michael.stainingwood.Stain;

import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.util.Random;

import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.relauncher.Side;
import michael.stainingwood.main.stainingWood;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.entity.EntityClientPlayerMP;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.network.packet.Packet250CustomPayload;
import net.minecraft.world.World;


public class StainBlock extends Block {

//Block Stainblock
public StainBlock(int par1, Material par2Material) {
	super(par1, par2Material);
}

//Texture Register	
//@Override
//public void registerIcons(IconRegister r){
//	 this.blockIcon = r.registerIcon(stainingWood.modID + ":" + "stainerblock");
//}

}

 

As you can see I have tryed 2 ways, I have tryed registerIcons within the class and .func_111022_d

And yes my textures are in "forge/mcp/src/minecraft/assets/%modid%/blocks" and "forge/mcp/src/minecraft/assets/%modid%/items"

Link to comment
Share on other sites

Hello

 

I have looked at your code and I have managed to make your block display a texture.

 

First of all, there are some things you need to remove from your code:

 

//Block Sections
//StainBlock
public final static Block StainBlock =
		new michael.stainingwood.Stain.StainBlock(501, Material.rock)
.setHardness(1.0F)
.setStepSound(Block.soundStoneFootstep)
.setUnlocalizedName("Stain_Block")
.setCreativeTab(tabStainingWood)
.setHardness(2.0F)
    .setResistance(5.0F)
    .func_111022_d(stainingWood.modID + ":" + "stainerblock");

 

the last line ".func_111022..." is no longer required, you can delete that.

 

Now, I have added some other code:

 

@Instance("StainingWood")
public static StainingWood instance;

 

Add the @Instance line.

I don't know if this is mandatory, but it is cleaner if you add it.

 

 

@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IconRegister r){
	 this.blockIcon = r.registerIcon(StainingWood.modID + ":" + "stainerblock");
}

 

You have to uncomment this whole part first. then add the @SideOnly line.

 

Lastly, your textures have to be at:

forge/mcp/src/minecraft/assets/%modID%/textures/blocks

forge/mcp/src/minecraft/assets/%modID%/textures/items

 

I hope this works for you.

 

 

 

Link to comment
Share on other sites

The texture directory was right, but I typed it wrong on the post.. I did what you said and its still not working, Im guessing It has to be how I setup my dev environment? Because I have 2 different projects one with the default mcp minecraft project and my mod project, I run my project with a dependency on the Minecraft project. Would this affect anything?

 

-Thanks for your time though.

Link to comment
Share on other sites

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.