Jump to content

[1.7.2][solved] block texture won't load in hot bar


Recommended Posts

Posted

I have a block that changes its textures depending on the tile entity data it has. I already know how to tell it to switch textures and that is not the problem. When placed down in the world the block has the assigned default texture but when it is in your hot bar it doesn't have a texture. I have tried figuring out why it isn't assigning the texture but am stumped.

 

width=800 height=449sE3rhhw.png?1 [/img]

 

Here is my code...

 

Block Class

 

import java.util.Random;

import com.gavincraft.main.GavinCraft;
import com.gavincraft.tileentity.TileEntitySemiSolidFloor;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.server.MinecraftServer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;

public class SemiSolidFloor extends BlockContainer {
protected Item camoflagedItem = new Item();
protected IIcon normal;
public SemiSolidFloor() {
	super(Material.wood);
	this.setStepSound(soundTypeWood);
	this.setBlockBounds(0F ,0F ,0F ,1F ,1F ,1F);
}
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int something,  float playerx, float playery, float playerz){
	if (!player.isSneaking()){
		TileEntitySemiSolidFloor tileEntity = (TileEntitySemiSolidFloor) world.getTileEntity(x, y, z);
		if (player.getCurrentEquippedItem()!=null) 
			tileEntity.Blockid=Block.getIdFromBlock(Block.getBlockFromItem(player.getCurrentEquippedItem().getItem()));
		else
			tileEntity.Blockid=-1;
		world.markBlockForUpdate(x, y, z);
		world.notifyBlocksOfNeighborChange(x, y, z, GavinCraft.semi_solid_floor);
		return true;
	}
	return false;
}
public int tickRate(World world){
	return 1;
}
public void registerBlockIcons(IIconRegister register)
{
	normal = register.registerIcon("gavincraft:semisolidfloor");
}

public IIcon getIcon(IBlockAccess block, int x, int y, int z, int side)
{
	TileEntitySemiSolidFloor tileEntity = (TileEntitySemiSolidFloor) MinecraftServer.getServer().getEntityWorld().getTileEntity(x, y, z);
	if(tileEntity == null || tileEntity.Blockid == -1 || tileEntity.Blockid == 0){
		return normal;
	}else{
		System.out.println(tileEntity.Blockid);
		return Block.getBlockById(tileEntity.Blockid).getBlockTextureFromSide(side);

	}
}
public boolean isOpaqueCube(){
	return false;
}
    public TileEntity createNewTileEntity(World world, int metadata) {
            return new TileEntitySemiSolidFloor();
    }
}

 

 

Main Class

 

package com.gavincraft.main;

import net.minecraft.block.Block;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;

import com.gavincraft.blocks.BigSpring;
import com.gavincraft.blocks.CamoflageCore;
import com.gavincraft.blocks.Casing;
import com.gavincraft.blocks.Catapult;
import com.gavincraft.blocks.Coil;
import com.gavincraft.blocks.Core;
import com.gavincraft.blocks.EnderShard;
import com.gavincraft.blocks.OpenBook;
import com.gavincraft.blocks.ReinforcedCasing;
import com.gavincraft.blocks.SemiSolidFloor;
import com.gavincraft.blocks.ShockAbsorber;
import com.gavincraft.blocks.Spring;
import com.gavincraft.blocks.TeleportCore;
import com.gavincraft.creativeTabs.GavinCraftTab;
import com.gavincraft.tileentity.TileEntityOpenBook;
import com.gavincraft.tileentity.TileEntitySemiSolidFloor;

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.registry.GameRegistry;

@Mod(modid = GavinCraft.MODID, version = GavinCraft.VERSION)
public class GavinCraft
{
@Instance("GavinCraft")
    public static GavinCraft instance;
@SidedProxy(clientSide="com.gavincraft.main.ClientProxy", serverSide="com.gavincraft.main.ServerProxy")
public static ServerProxy proxy;
public static CreativeTabs gavinCraftTab = new GavinCraftTab(CreativeTabs.getNextID(), "Gavin Craft");

    public static final String MODID = "gavincraft";
    public static final String VERSION = "0.0.0";
    public static Block catapult = new Catapult(false).setCreativeTab(gavinCraftTab).setBlockName("Catapult");
    public static Block active_catapult = new Catapult(true).setBlockName("Catapult");
    public static Item spring = new Spring().setCreativeTab(gavinCraftTab).setUnlocalizedName("Spring").setTextureName("gavincraft:spring");
    public static Item coil = new Coil().setCreativeTab(gavinCraftTab).setUnlocalizedName("Coil").setTextureName("gavincraft:coil");
    public static Block casing = new Casing().setCreativeTab(gavinCraftTab).setBlockName("Casing").setBlockTextureName("gavincraft:casing");
    public static Item big_spring = new BigSpring().setUnlocalizedName("Big_Spring").setCreativeTab(gavinCraftTab).setTextureName("gavincraft:big spring");
    public static Block reinforced_casing = new ReinforcedCasing().setBlockName("Reinforced_Casing").setCreativeTab(gavinCraftTab).setBlockTextureName("gavincraft:reinforced casing");
    public static Block shock_absorber = new ShockAbsorber().setBlockName("Shock_Absorber").setCreativeTab(gavinCraftTab).setBlockTextureName("gavincraft:shockabsorber");
    public static Item teleport_core = new TeleportCore().setUnlocalizedName("Teleport_Core").setCreativeTab(gavinCraftTab).setTextureName("gavincraft:teleport core");
    public static Block open_book = new OpenBook().setBlockName("Open_Book").setCreativeTab(gavinCraftTab);
    public static Block semi_solid_floor = new SemiSolidFloor().setBlockName("Semi-Solid_Floor").setCreativeTab(gavinCraftTab).setBlockTextureName("gavincraft:semisolidfloor");
    public static Item ender_shard = new EnderShard().setUnlocalizedName("Ender_Shard").setCreativeTab(gavinCraftTab).setTextureName("gavincraft:ender shard");
    public static Item core = new Core().setUnlocalizedName("Core").setCreativeTab(gavinCraftTab).setTextureName("gavincraft:core");
    public static Item camoflage_core = new CamoflageCore().setUnlocalizedName("Camoflage_Core").setCreativeTab(gavinCraftTab).setTextureName("gavincraft:camoflage core");
    
    @EventHandler
    public void preInit(FMLPreInitializationEvent event){
    	proxy.registerRenderThings();
    	GameRegistry.registerBlock(catapult, "catapult");
    	GameRegistry.registerItem(spring, "Spring");
    	GameRegistry.registerItem(coil, "Coil");
    	GameRegistry.registerBlock(casing, "Casing");
    	GameRegistry.registerItem(big_spring, "Big_Spring");
    	GameRegistry.registerBlock(reinforced_casing, "Reinforced_Casing");
    	GameRegistry.registerBlock(shock_absorber, "Shock_Absorber");
    	GameRegistry.registerItem(teleport_core, "Teleport_Core");
    	GameRegistry.registerBlock(open_book, "Open Book");
    	GameRegistry.registerBlock(semi_solid_floor, "Semi-Solid_Floor");
    	GameRegistry.registerTileEntity(TileEntityOpenBook.class, "Open_Book");
    	GameRegistry.registerBlock(active_catapult, "Active_Catapult");
    	GameRegistry.registerItem(ender_shard, "Ender_Shard");
    	GameRegistry.registerItem(core, "Core");
    	GameRegistry.registerItem(camoflage_core, "Camoflage_Core");
    	
    	
    	GameRegistry.addRecipe(new ItemStack(Blocks.vine), new Object[]{
    		"xxx",
    		"xyx",
    		"xxx",
    		'x', Items.wheat, 'y', Blocks.dirt});
    	GameRegistry.addRecipe(new ItemStack(GavinCraft.coil, 9), new Object[]{
    		"xxx",
    		"x x",
    		"xxx",
    		'x', Items.iron_ingot});
    	GameRegistry.addRecipe(new ItemStack(GavinCraft.spring), new Object[]{
    		"xxx",
    		'x', GavinCraft.coil});
    	GameRegistry.addRecipe(new ItemStack(GavinCraft.casing, 2), new Object[]{
    		"xxx",
    		"xyx",
    		"xxx",
    		'x', Blocks.stone, 'y', Items.iron_ingot});
    	GameRegistry.addRecipe(new ItemStack(GavinCraft.catapult), new Object[]{
    		"xxx",
    		"yzy",
    		"ywy",
    		'x', Blocks.piston, 'y', GavinCraft.casing, 'z', GavinCraft.spring, 'w', Items.redstone});
    	GameRegistry.addRecipe(new ItemStack(GavinCraft.big_spring, 2), new Object[]{
    		"xxx",
    		"yyy",
    		"xxx",
    		'x', Items.gold_ingot,'y', GavinCraft.spring});
    	GameRegistry.addRecipe(new ItemStack(GavinCraft.reinforced_casing, 2), new Object[]{
    		"yxy",
    		"x x",
    		"yxy",
    		'x', GavinCraft.casing, 'y', Blocks.obsidian});
    	GameRegistry.addRecipe(new ItemStack(GavinCraft.shock_absorber), new Object[]{
    		"xxx",
    		"yyy",
    		"xxx",
    		'x', Blocks.wool, 'y', GavinCraft.spring});
    	GameRegistry.addRecipe(new ItemStack(GavinCraft.teleport_core, 1), new Object[]{
    		"xyx",
    		"yzy",
    		"xyx",
    		'x', Items.glowstone_dust, 'y', GavinCraft.casing, 'z', GavinCraft.core});
    	GameRegistry.addRecipe(new ItemStack(GavinCraft.semi_solid_floor, 1), new Object[]{
    		"xwx",
    		"zuz",
    		"xyx",
    		'x', GavinCraft.casing, 'y', GavinCraft.teleport_core, 'z', Items.iron_ingot, 'w', GavinCraft.shock_absorber, 'u', GavinCraft.camoflage_core});
    	GameRegistry.addRecipe(new ItemStack(GavinCraft.ender_shard, , new Object[]{
    		"x",
    		'x', Items.ender_pearl
    	});
    	GameRegistry.addRecipe(new ItemStack(GavinCraft.core, 1), new Object[]{
    		"xyx",
    		"yzy",
    		"xyx",
    		'x', Items.redstone, 'y', GavinCraft.ender_shard, 'z', GavinCraft.casing
    	});
    	GameRegistry.addRecipe(new ItemStack(GavinCraft.camoflage_core, 1), new Object[]{
    		" x ",
    		"yzw",
    		" u ",
    		'x',new ItemStack(Items.dye, 1, 1), 'y', new ItemStack(Items.dye, 1, 2), 'z', GavinCraft.core, 'w', new ItemStack(Items.dye, 1, 4), 'u', new ItemStack(Items.dye, 1, 0)
    	});
    }
    
    @EventHandler
    public void load(FMLInitializationEvent event){
    	GameRegistry.registerTileEntity(com.gavincraft.tileentity.TileEntitySemiSolidFloor.class, "Semi_Solid_Floor_Tile_Entity");
    	GameRegistry.registerTileEntity(com.gavincraft.tileentity.TileEntityCatapult.class, "Catapult_Tile_Entity");
    }
    @EventHandler
    public void postinit(FMLPostInitializationEvent event){
    }
}

 

Posted

Thank you so much. Adding the other getIcon method allowed the textures to go through but the other one was still used for the blocks in place. Can't believe that I didn't think of that before posting on the forums.

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.