Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

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"

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.

 

 

 

  • Author

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.

Move assets to inside the src folder of your mod project, refresh and it should work

If you guys dont get it.. then well ya.. try harder...

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...

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.