Jump to content

[1.7.2] Problems with subtypes


Recommended Posts

So here I am again. Stuck with a problem. OK, so I want to place a block, then the tile entity and then set a subtype (an Integer) to the tile entity which I did. The problems are:

1) Every time I destroy a block, the subtype gets removed from all surrounding blocks

2) Every time I place a different block (example: grass block), the subtype gets removed from all surrounding blocks

3) Every time I place the same blocks that has to set another subtype, it changes all surrounding blocks' subtypes (example: I placed 8 blocks with a subtype of 1, I want to place a block with subtype 8, all blocks convert to the subtype 8, instead of the only one)

 

Again the code is nowhere near finished or something like that. If I made a mistake with something basic, please tell me. Any help is appreciated :)

Here's the code:

 

Traffic Stuff Mod.java

package net.theTrollguy.trafficStuffMod;

import net.minecraft.block.Block;
import net.minecraft.tileentity.TileEntity;

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.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.registry.GameRegistry;

@Mod(modid = "trafficstuffmod", name = "Traffic Stuff Mod", version = "indev")
public class TrafficStuffMod
{
@SidedProxy(clientSide="net.theTrollguy.trafficStuffMod.TrafficStuffClientProxy", serverSide="net.theTrollguy.trafficStuffMod.TrafficStuffCommonProxy")
public static TrafficStuffClientProxy proxy;

public static BlocksOfAsphalt_Yellow_0 blocksOfAsphalt_Yellow_0;
public static final TileEntity BOA_Yellow_0 = new TileEntityBOA_Yellow_0();

@EventHandler
public void preInit(FMLPreInitializationEvent event)
{
	blocksOfAsphalt_Yellow_0 = new BlocksOfAsphalt_Yellow_0();
	GameRegistry.registerBlock(blocksOfAsphalt_Yellow_0, ItemBlocksOfAsphalt_Yellow_0.class, "blocksOfAsphalt_Yellow_0");
	GameRegistry.registerTileEntity(TileEntityBOA_Yellow_0.class, "tileEntityBLocksOfAsphalt_Yellow_0");
	proxy.registerRenderers();
}

@EventHandler
public void init(FMLInitializationEvent event)
{

}

@EventHandler
public void postInit(FMLPostInitializationEvent event)
{

}
}

 

TrafficStuffClientProxy.java

package net.theTrollguy.trafficStuffMod;

import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import cpw.mods.fml.client.registry.ClientRegistry;
import cpw.mods.fml.client.registry.RenderingRegistry;

public class TrafficStuffClientProxy extends TrafficStuffCommonProxy
{
public static int renderPass;
public static int BOA_Yellow_0_ID;

    @Override
    public void registerRenderers()
    {
    	RendererBOA_Yellow_0 renderBOA_Yellow_0 = new RendererBOA_Yellow_0();
    	BOA_Yellow_0_ID = RenderingRegistry.getNextAvailableRenderId();
    	RenderingRegistry.registerBlockHandler(BOA_Yellow_0_ID, new RendererBOA_Yellow_0());
    }
}

 

BlocksOfAsphalt_Yellow_0.java

package net.theTrollguy.trafficStuffMod;

import java.util.List;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityFurnace;
import net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;

public class BlocksOfAsphalt_Yellow_0 extends Block
{
@SideOnly(Side.CLIENT) IIcon asphalt;
@SideOnly(Side.CLIENT) IIcon AY_1_s;
@SideOnly(Side.CLIENT) IIcon AY_1_d;
@SideOnly(Side.CLIENT) IIcon AY_2_s;
@SideOnly(Side.CLIENT) IIcon AY_2_d;
@SideOnly(Side.CLIENT) IIcon AY_3_s;
@SideOnly(Side.CLIENT) IIcon AY_3_d;
@SideOnly(Side.CLIENT) IIcon AY_4_s;
@SideOnly(Side.CLIENT) IIcon AY_4_d;
@SideOnly(Side.CLIENT) IIcon AY_5_s;
@SideOnly(Side.CLIENT) IIcon AY_5_d;
@SideOnly(Side.CLIENT) IIcon AY_6_s;
@SideOnly(Side.CLIENT) IIcon AY_6_d;
@SideOnly(Side.CLIENT) IIcon AY_7_s;
@SideOnly(Side.CLIENT) IIcon AY_7_d;
@SideOnly(Side.CLIENT) IIcon AY_8_s;
@SideOnly(Side.CLIENT) IIcon AY_8_d;
@SideOnly(Side.CLIENT) IIcon AY_9_s;
@SideOnly(Side.CLIENT) IIcon AY_9_d;
@SideOnly(Side.CLIENT) IIcon AY_10_s;
@SideOnly(Side.CLIENT) IIcon AY_10_d;
@SideOnly(Side.CLIENT) IIcon AY_11_s;
@SideOnly(Side.CLIENT) IIcon AY_11_d;
@SideOnly(Side.CLIENT) IIcon AY_12_s;
@SideOnly(Side.CLIENT) IIcon AY_12_d;
@SideOnly(Side.CLIENT) IIcon AY_13_s;
@SideOnly(Side.CLIENT) IIcon AY_13_d;
@SideOnly(Side.CLIENT) IIcon AY_14_s;
@SideOnly(Side.CLIENT) IIcon AY_14_d;
@SideOnly(Side.CLIENT) IIcon AY_15_s;
@SideOnly(Side.CLIENT) IIcon AY_15_d;

public BlocksOfAsphalt_Yellow_0()
{
	super(Material.rock);
	this.setCreativeTab(CreativeTabs.tabBlock);
	this.setStepSound(Block.soundTypeStone);
	float F = 0.000000000000000001F;
	this.setBlockBounds(0.0F + F, 0.0F + F, 0.0F + F, 1.0F - F, 1.0F - F, 1.0F - F);
	this.useNeighborBrightness = true;
}

public TileEntity createNewTileEntity(World world)
{
	return new TileEntityBOA_Yellow_0();
}

@Override
public boolean hasTileEntity(int metadata)
{
	return true;
}

@Override
public void onBlockPlacedBy(World world, int X, int Y, int Z, EntityLivingBase enbtityLivingBase, ItemStack itemStack)
    {
        world.setTileEntity(X, Y, Z, TrafficStuffMod.BOA_Yellow_0);
    }

@Override
public void breakBlock(World world, int X, int Y, int Z, Block block, int metadata)
{
	world.removeTileEntity(X, Y, Z);
    super.breakBlock(world, X, Y, Z, block, metadata); 
}

@Override
    public boolean renderAsNormalBlock()
{
	return false;
}

@Override
    public boolean isOpaqueCube()
{
	return true;
}

@Override
    public int getRenderType()
{
	return RendererBOA_Yellow_0.renderID;
}

@SideOnly(Side.CLIENT)
    public IIcon getBlockTexture(IBlockAccess IBlockAccess, int X, int Y, int Z, int side)
    {
	return this.asphalt;
    }

@Override
public IIcon getIcon(int side, int meta)
{
	return this.asphalt;
}

@SideOnly(Side.CLIENT)
    public void registerBlockIcons(IIconRegister IIconRegister)
    {
	asphalt = IIconRegister.registerIcon("trafficStuffMod:asphalt");
        AY_1_s = IIconRegister.registerIcon("trafficStuffMod:asphaltYellow_1_straight");
        AY_1_d = IIconRegister.registerIcon("trafficStuffMod:asphaltYellow_1_diagonal");
        AY_2_s = IIconRegister.registerIcon("trafficStuffMod:asphaltYellow_2_straight");
        AY_2_d = IIconRegister.registerIcon("trafficStuffMod:asphaltYellow_2_diagonal");
        AY_3_s = IIconRegister.registerIcon("trafficStuffMod:asphaltYellow_3_straight");
        AY_3_d = IIconRegister.registerIcon("trafficStuffMod:asphaltYellow_3_diagonal");
        AY_4_s = IIconRegister.registerIcon("trafficStuffMod:asphaltYellow_4_straight");
        AY_4_d = IIconRegister.registerIcon("trafficStuffMod:asphaltYellow_4_diagonal");
        AY_5_s = IIconRegister.registerIcon("trafficStuffMod:asphaltYellow_5_straight");
        AY_5_d = IIconRegister.registerIcon("trafficStuffMod:asphaltYellow_5_diagonal");
        AY_6_s = IIconRegister.registerIcon("trafficStuffMod:asphaltYellow_6_straight");
        AY_6_d = IIconRegister.registerIcon("trafficStuffMod:asphaltYellow_6_diagonal");
        AY_7_s = IIconRegister.registerIcon("trafficStuffMod:asphaltYellow_7_straight");
        AY_7_d = IIconRegister.registerIcon("trafficStuffMod:asphaltYellow_7_diagonal");
        AY_8_s = IIconRegister.registerIcon("trafficStuffMod:asphaltYellow_8_straight");
        AY_8_d = IIconRegister.registerIcon("trafficStuffMod:asphaltYellow_8_diagonal");
        AY_9_s = IIconRegister.registerIcon("trafficStuffMod:asphaltYellow_9_straight");
        AY_9_d = IIconRegister.registerIcon("trafficStuffMod:asphaltYellow_9_diagonal");
        AY_10_s = IIconRegister.registerIcon("trafficStuffMod:asphaltYellow_10_straight");
        AY_10_d = IIconRegister.registerIcon("trafficStuffMod:asphaltYellow_10_diagonal");
        AY_11_s = IIconRegister.registerIcon("trafficStuffMod:asphaltYellow_11_straight");
        AY_11_d = IIconRegister.registerIcon("trafficStuffMod:asphaltYellow_11_diagonal");
        AY_12_s = IIconRegister.registerIcon("trafficStuffMod:asphaltYellow_12_straight");
        AY_12_d = IIconRegister.registerIcon("trafficStuffMod:asphaltYellow_12_diagonal");
        AY_13_s = IIconRegister.registerIcon("trafficStuffMod:asphaltYellow_13_straight");
        AY_13_d = IIconRegister.registerIcon("trafficStuffMod:asphaltYellow_13_diagonal");
        AY_14_s = IIconRegister.registerIcon("trafficStuffMod:asphaltYellow_14_straight");
        AY_14_d = IIconRegister.registerIcon("trafficStuffMod:asphaltYellow_14_diagonal");
        AY_15_s = IIconRegister.registerIcon("trafficStuffMod:asphaltYellow_15_straight");
        AY_15_d = IIconRegister.registerIcon("trafficStuffMod:asphaltYellow_15_diagonal");
    }

protected boolean canSilkHarvest()
{
	return false;
}

    @SideOnly(Side.CLIENT) @Override
    public void getSubBlocks(Item item, CreativeTabs creativeTabs, List list)
    {
	list.add(new ItemStack(item, 1, 1));
	list.add(new ItemStack(item, 1, 9));
	list.add(new ItemStack(item, 1, 17));
	list.add(new ItemStack(item, 1, 25));
	list.add(new ItemStack(item, 1, 33));
	list.add(new ItemStack(item, 1, 41));
	list.add(new ItemStack(item, 1, 49));
	list.add(new ItemStack(item, 1, 57));
	list.add(new ItemStack(item, 1, 65));
	list.add(new ItemStack(item, 1, 73));
	list.add(new ItemStack(item, 1, 81));
	list.add(new ItemStack(item, 1, 89));
	list.add(new ItemStack(item, 1, 97));
	list.add(new ItemStack(item, 1, 105));
	list.add(new ItemStack(item, 1, 113));
    }

@SideOnly(Side.CLIENT)
public Item getItem(World world, int X, int Y, int Z)
{
	return Item.getItemFromBlock(TrafficStuffMod.blocksOfAsphalt_Yellow_0);
}
}

 

ItemBlocksOfAsphalt_Yellow_0.java

package net.theTrollguy.trafficStuffMod;

import java.util.List;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

import net.minecraft.block.Block;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;

public class ItemBlocksOfAsphalt_Yellow_0 extends ItemBlock
{
public ItemBlocksOfAsphalt_Yellow_0(Block block)
{
	super(block);
	this.setHasSubtypes(true);
}

@Override
public void addInformation(ItemStack itemStack, EntityPlayer entityPlayer, List list, boolean something)
    {
    	int subtype = itemStack.getItemDamage();
    	if (subtype == 1)   { list.add("§e§lArrow to Straight ");          										   list.add("§fADDED IN: 1.3.0"); }
    	if (subtype == 9)   { list.add("§e§lArrow to Left"); 	           list.add("§e§land a Part to Straight"); list.add("§fADDED IN: 1.3.0"); }
    	if (subtype == 17)  { list.add("§e§lArrow to Left"); 	  	       										   list.add("§fADDED IN: 1.3.0"); }
    	if (subtype == 25)  { list.add("§e§lArrow to Right"); 	           list.add("§e§land a Part to Straight"); list.add("§fADDED IN: 1.3.0"); }
    	if (subtype == 33)  { list.add("§e§lArrow to Right");              										   list.add("§fADDED IN: 1.3.0"); }
    	if (subtype == 41)  { list.add("§e§lArrow to Left, Right");        list.add("§e§land a Part to Straight"); list.add("§fADDED IN: 1.3.0"); }
    	if (subtype == 49)  { list.add("§e§lArrow to Left and Right");     										   list.add("§fADDED IN: 1.3.0"); }
    	if (subtype == 57)  { list.add("§e§lArrow to Straight");                                                   list.add("§fADDED IN: 1.1.0"); }
    	if (subtype == 65)  { list.add("§e§lArrow to Straight and Left");  										   list.add("§fADDED IN: 1.1.0"); }
    	if (subtype == 73)  { list.add("§e§lArrow to Left"); 			   										   list.add("§fADDED IN: 1.1.0"); }
    	if (subtype == 81)  { list.add("§e§lArrow to Straight and Right"); 										   list.add("§fADDED IN: 1.1.0"); }
    	if (subtype == 89)  { list.add("§e§lArrow to Right"); 			   										   list.add("§fADDED IN: 1.1.0"); }
    	if (subtype == 97)  { list.add("§e§lArrow to Straight, Left");     list.add("§e§land Right"); 			   list.add("§fADDED IN: 1.1.0"); }
    	if (subtype == 105) { list.add("§e§lArrow to Left and Right"); 	   										   list.add("§fADDED IN: 1.3.0"); }
    	if (subtype == 113) { list.add("§e§lArrow to Straight"); 		   										   list.add("§fADDED IN: 1.0.0"); }
    }


public boolean onItemUse(ItemStack itemStack, EntityPlayer entityPlayer, World world, int X, int Y, int Z, int side, float hitX, float hitY, float hitZ)
{	
	/**
	 * Determines all main direction(2 = NORTH, 3 = EAST, 0 = SOUTH, 1 = WEST).
	 **/
	int direction_90 = MathHelper.floor_double((double)(entityPlayer.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
	/**
	 * Determines all main and sub directions(4 = NORTH, 5 = NORTH-EAST, 6 = EAST, 7 = SOUTH-EAST, 0 = SOUTH, 1 = SOUTH-WEST
	 * 2 = WEST, 3 = NORTH-WEST).
	 **/
	int direction_45 = MathHelper.floor_double((double)(entityPlayer.rotationYaw * 8.0F / 360.0F) + 0.5D) & 7;

	Block block = world.getBlock(X, Y, Z);

        if (block == Blocks.snow_layer && (world.getBlockMetadata(X, Y, Z) & 7) < 1)
        {
            side = 1;
        }
        if (block != Blocks.vine && block != Blocks.tallgrass && block != Blocks.deadbush && !block.isReplaceable(world, X, Y, Z))
        {
            if (side == 0)
            {
                --Y;
            }

            if (side == 1)
            {
                ++Y;
            }

            if (side == 2)
            {
                --Z;
            }

            if (side == 3)
            {
                ++Z;
            }

            if (side == 4)
            {
                --X;
            }

            if (side == 5)
            {
                ++X;
            }
        
        if(itemStack.stackSize == 0)
		{
			return false;
		}
		else if (!entityPlayer.canPlayerEdit(X, Y, Z, side, itemStack))
		{
			return false;
		}
		else if (Y == 255 && this.field_150939_a.getMaterial().isSolid())
		{
			return false;
		}
        else if (world.canPlaceEntityOnSide(this.field_150939_a, X, Y, Z, false, side, entityPlayer, itemStack))
        {
            int metadata = this.getMetadata(itemStack.getItemDamage());
            int j1 = this.field_150939_a.onBlockPlaced(world, X, Y, Z, side, hitX, hitY, hitZ, metadata);

            if (placeBlockAt(itemStack, entityPlayer, world, X, Y, Z, side, hitX, hitY, hitZ, j1))
            {
            	TileEntity tileEntity = world.getTileEntity(X, Y, Z);
    			int subtype = itemStack.getItemDamage();
    			
    			if (tileEntity != null && tileEntity instanceof TileEntityBOA_Yellow_0)
    			{
    				switch (subtype)
    				{
    					// ARROW TO STRAIGHT
    					case 1: switch (direction_45)
    					{
	    					case 0:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(5); break;
    		    			case 1:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(6); break;
    		    			case 2:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(7); break;
    		    			case 3:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(; break;
    		        		case 4:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(1); break;
    		        		case 5:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(2); break;
    		        		case 6:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(3); break;
    		        		case 7:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(4); break;
    					} break;
    					// ARROW TO LEFT AND A PART TO STRAIGHT
    					case 9: switch (direction_45)
    					{
	    					case 0:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(13); break;
    		    			case 1:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(14); break;
    		    			case 2:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(15); break;
    		    			case 3:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(16); break;
    		        		case 4:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(9); break;
    		        		case 5:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(10); break;
    		        		case 6:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(11); break;
    		        		case 7:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(12); break;
    					} break;
    					// ARROW TO LEFT
    					case 17: switch (direction_45)
    					{
	    					case 0:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(21); break;
    		    			case 1:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(22); break;
    		    			case 2:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(23); break;
    		    			case 3:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(24); break;
    		        		case 4:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(17); break;
    		        		case 5:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(18); break;
    		        		case 6:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(19); break;
    		        		case 7:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(20); break;
    					} break;
    					// ARROW TO RIGHT AND A PART TO STRAIGHT
    					case 25: switch (direction_45)
    					{
	    					case 0:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(29); break;
    		    			case 1:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(30); break;
    		    			case 2:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(31); break;
    		    			case 3:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(32); break;
    		        		case 4:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(25); break;
    		        		case 5:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(26); break;
    		        		case 6:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(27); break;
    		        		case 7:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(28); break;
    					} break;
    					// ARROW TO RIGHT
    					case 33: switch (direction_45)
    					{
	    					case 0:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(37); break;
    		    			case 1:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(38); break;
    		    			case 2:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(39); break;
    		    			case 3:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(40); break;
    		        		case 4:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(33); break;
    		        		case 5:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(34); break;
    		        		case 6:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(35); break;
    		        		case 7:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(36); break;
    					} break;
    					// ARROW TO LEFT, RIGHT AND A PART TO STRAIGHT
    					case 41: switch (direction_45)
    					{
	    					case 0:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(45); break;
    		    			case 1:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(46); break;
    		    			case 2:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(47); break;
    		    			case 3:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(48); break;
    		        		case 4:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(41); break;
    		        		case 5:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(42); break;
    		        		case 6:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(43); break;
    		        		case 7:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(44); break;
    					} break;
    					// ARROW TO LEFT AND RIGHT
    					case 49: switch (direction_45)
    					{
	    					case 0:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(53); break;
    		    			case 1:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(54); break;
    		    			case 2:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(55); break;
    		    			case 3:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(56); break;
    		        		case 4:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(49); break;
    		        		case 5:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(50); break;
    		        		case 6:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(51); break;
    		        		case 7:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(52); break;
    					} break;
    					// ARROW TO STRAIGHT
    					case 57: switch (direction_45)
    					{
	    					case 0:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(61); break;
    		    			case 1:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(62); break;
    		    			case 2:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(63); break;
    		    			case 3:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(64); break;
    		        		case 4:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(57); break;
    		        		case 5:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(58); break;
    		        		case 6:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(59); break;
    		        		case 7:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(60); break;
    					} break;
    					// ARROW TO STRAIGHT AND LEFT
    					case 65: switch (direction_45)
    					{
	    					case 0:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(69); break;
    		    			case 1:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(70); break;
    		    			case 2:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(71); break;
    		    			case 3:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(72); break;
    		        		case 4:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(65); break;
    		        		case 5:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(66); break;
    		        		case 6:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(67); break;
    		        		case 7:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(68); break;
    					} break;
    					// ARROW TO STRAIGHT AND LEFT
    					case 73: switch (direction_45)
    					{
	    					case 0:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(77); break;
    		    			case 1:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(78); break;
    		    			case 2:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(79); break;
    		    			case 3:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(80); break;
    		        		case 4:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(73); break;
    		        		case 5:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(74); break;
    		        		case 6:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(75); break;
    		        		case 7:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(76); break;
    					}
    					// ARROW TO LEFT
    					case 81: switch (direction_45)
    		        	{
    		    			case 0:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(85); break;
    		    			case 1:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(86); break;
    		    			case 2:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(87); break;
    		    			case 3:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(88); break;
    		        		case 4:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(81); break;
    		        		case 5:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(82); break;
    		        		case 6:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(83); break;
    		        		case 7:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(84); break;
    		        	}
    					// ARROW TO STRAIGHT AND RIGHT
    					case 89: switch (direction_45)
    		        	{
    		    			case 0:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(93); break;
    		    			case 1:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(94); break;
    		    			case 2:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(95); break;
    		    			case 3:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(96); break;
    		        		case 4:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(89); break;
    		        		case 5:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(90); break;
    		        		case 6:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(91); break;
    		        		case 7:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(92); break;
    		        	}
    					// ARROW TO RIGHT
    					case 97: switch (direction_45)
    		        	{
    		    			case 0:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(101); break;
    		    			case 1:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(102); break;
    		    			case 2:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(103); break;
    		    			case 3:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(104); break;
    		        		case 4:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(97); break;
    		        		case 5:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(98); break;
    		        		case 6:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(99); break;
    		        		case 7:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(100); break;
    		        	} break;
    					// ARROW TO STRAIGHT, LEFT AND RIGHT
    					case 105: switch (direction_45)
    		        	{
    		    			case 0:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(109); break;
    		    			case 1:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(110); break;
    		    			case 2:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(111); break;
    		    			case 3:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(112); break;
    		        		case 4:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(105); break;
    		        		case 5:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(106); break;
    		        		case 6:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(107); break;
    		        		case 7:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(108); break;
    		        	} break;
    					// ARROW TO STRAIGHT, LEFT AND RIGHT
    					case 113: switch (direction_45)
    		        	{
    		    			case 0:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(117); break;
    		    			case 1:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(118); break;
    		    			case 2:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(119); break;
    		    			case 3:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(120); break;
    		        		case 4:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(113); break;
    		        		case 5:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(114); break;
    		        		case 6:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(115); break;
    		        		case 7:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(116); break;
    		        	} break;    
    				}
    			}
            }
        }
        world.playSoundEffect((double)((float)X + 0.5F), (double)((float)Y + 0.5F), (double)((float)Z + 0.5F), this.field_150939_a.stepSound.func_150496_b(), (this.field_150939_a.stepSound.getVolume() + 1.0F) / 2.0F, this.field_150939_a.stepSound.getPitch() * 0.8F);
            --itemStack.stackSize;
        return true;
        }
        else
        {
        	return false;
        }
}

public String getUnlocalizedName(ItemStack itemStack)
{
	return "blocksOfAsphalt_Yellow_0";
}

@SideOnly(Side.CLIENT)
    public void getSubItems(Item item, CreativeTabs creativeTabs, List list)
    {
	list.add(new ItemStack(item, 1, 1));
	list.add(new ItemStack(item, 1, 9));
	list.add(new ItemStack(item, 1, 17));
	list.add(new ItemStack(item, 1, 25));
	list.add(new ItemStack(item, 1, 33));
	list.add(new ItemStack(item, 1, 41));
	list.add(new ItemStack(item, 1, 49));
	list.add(new ItemStack(item, 1, 57));
	list.add(new ItemStack(item, 1, 65));
	list.add(new ItemStack(item, 1, 73));
	list.add(new ItemStack(item, 1, 81));
	list.add(new ItemStack(item, 1, 89));
	list.add(new ItemStack(item, 1, 97));
	list.add(new ItemStack(item, 1, 105));
	list.add(new ItemStack(item, 1, 113));
    }
}

 

TileEntityBOA_Yellow_0.java

package net.theTrollguy.trafficStuffMod;

import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.NetworkManager;
import net.minecraft.network.Packet;
import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
import net.minecraft.tileentity.TileEntity;

public class TileEntityBOA_Yellow_0 extends TileEntity
{
public int subtype;

public TileEntityBOA_Yellow_0() {}

public int getSubtype(int X, int Y, int Z)
{
	X = this.xCoord;
	Y = this.yCoord;
	Z = this.zCoord;
	return subtype;
}

public void setSubtype(int subTypes)
{
	this.subtype = subTypes;
	NBTTagCompound NBT = new NBTTagCompound();
	super.writeToNBT(NBT);	
	Packet packet = this.getDescriptionPacket();
}

public void removeSubtype()
{
	this.setSubtype(0);
}

@Override
public void onChunkUnload()
{
	NBTTagCompound NBT = new NBTTagCompound();
	super.writeToNBT(NBT);
}

@Override
public void readFromNBT(NBTTagCompound NBT)
{
	super.readFromNBT(NBT);
	this.subtype = NBT.getInteger("subtype");
	getDescriptionPacket();
}

@Override
public void writeToNBT(NBTTagCompound NBT)
{
	super.writeToNBT(NBT);
	NBT.setInteger("subtype", subtype);

}

public Packet getDescriptionPacket()
    {
        NBTTagCompound NBTTagCompound = new NBTTagCompound();
        this.writeToNBT(NBTTagCompound);
        return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 4, NBTTagCompound);
    }

@Override
public void onDataPacket(NetworkManager networkManager, S35PacketUpdateTileEntity packet)
    {
	NBTTagCompound NBTTagCompound = new NBTTagCompound();
	this.readFromNBT(NBTTagCompound);
    }
}

 

RendererBOA_Yellow_0

package net.theTrollguy.trafficStuffMod;

import org.lwjgl.opengl.GL11;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.IBlockAccess;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import cpw.mods.fml.client.registry.RenderingRegistry;

public class RendererBOA_Yellow_0 implements ISimpleBlockRenderingHandler
{
IBlockAccess iBlockAccess;
public static int renderID;

public RendererBOA_Yellow_0()
{
	renderID = TrafficStuffClientProxy.BOA_Yellow_0_ID;
}

@Override
public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderBlocks)
{
	/**
	Tessellator tessellator = Tessellator.instance;
	GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
	tessellator.startDrawingQuads();
	tessellator.draw();
	GL11.glTranslatef(0.5F, 0.5F, 0.5F);
	**/
}

@Override
public boolean renderWorldBlock(IBlockAccess IBlockAccess, int X, int Y, int Z, Block block, int modelID, RenderBlocks renderBlocks)
{
	Tessellator tessellator = Tessellator.instance;
	TileEntityBOA_Yellow_0 TE_BOA_Yellow_0 = (TileEntityBOA_Yellow_0) TrafficStuffMod.BOA_Yellow_0;
	BlocksOfAsphalt_Yellow_0 BOA_Yellow_0 = TrafficStuffMod.blocksOfAsphalt_Yellow_0;
	int subtype = TE_BOA_Yellow_0.getSubtype(X, Y, Z);
	//int age = BOA_Yellow_0.getAge();
	double D = 0.000000000000001D;
    int l = BOA_Yellow_0.getMixedBrightnessForBlock(IBlockAccess, X, Y, Z);
    
    boolean flag = renderBlocks.renderStandardBlock(BOA_Yellow_0, X, Y, Z);
    renderBlocks.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D);
	tessellator.setBrightness(l);

	switch (subtype)
	{
		// ARROW TO STRAIGHT
		case 1: renderBlocks.uvRotateTop = 0; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_1_s); break;
		case 2: renderBlocks.uvRotateTop = 0; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_1_d); break;
		case 3: renderBlocks.uvRotateTop = 1; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_1_s); break;
		case 4: renderBlocks.uvRotateTop = 1; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_1_d); break;
		case 5: renderBlocks.uvRotateTop = 3; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_1_s); break;
		case 6: renderBlocks.uvRotateTop = 3; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_1_d); break;
		case 7: renderBlocks.uvRotateTop = 2; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_1_s); break;
		case 8: renderBlocks.uvRotateTop = 2; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_1_d); break;
		// ARROW TO LEFT AND A PART TO STRAIGHT
		case 9: renderBlocks.uvRotateTop = 0; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_2_s); break;
		case 10: renderBlocks.uvRotateTop = 0; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_2_d); break;
		case 11: renderBlocks.uvRotateTop = 1; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_2_s); break;
		case 12: renderBlocks.uvRotateTop = 1; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_2_d); break;
		case 13: renderBlocks.uvRotateTop = 3; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_2_s); break;
		case 14: renderBlocks.uvRotateTop = 3; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_2_d); break;
		case 15: renderBlocks.uvRotateTop = 2; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_2_s); break;
		case 16: renderBlocks.uvRotateTop = 2; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_2_d); break;
		// ARROW TO LEFT
		case 17: renderBlocks.uvRotateTop = 0; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_3_s); break;
		case 18: renderBlocks.uvRotateTop = 0; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_3_d); break;
		case 19: renderBlocks.uvRotateTop = 1; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_3_s); break;
		case 20: renderBlocks.uvRotateTop = 1; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_3_d); break;
		case 21: renderBlocks.uvRotateTop = 3; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_3_s); break;
		case 22: renderBlocks.uvRotateTop = 3; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_3_d); break;
		case 23: renderBlocks.uvRotateTop = 2; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_3_s); break;
		case 24: renderBlocks.uvRotateTop = 2; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_3_d); break;
		// ARROW TO RIGHT AND A PART TO STRAIGHT
		case 25: renderBlocks.uvRotateTop = 0; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_4_s); break;
		case 26: renderBlocks.uvRotateTop = 0; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_4_d); break;
		case 27: renderBlocks.uvRotateTop = 1; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_4_s); break;
		case 28: renderBlocks.uvRotateTop = 1; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_4_d); break;
		case 29: renderBlocks.uvRotateTop = 3; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_4_s); break;
		case 30: renderBlocks.uvRotateTop = 3; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_4_d); break;
		case 31: renderBlocks.uvRotateTop = 2; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_4_s); break;
		case 32: renderBlocks.uvRotateTop = 2; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_4_d); break;
		// ARROW TO RIGHT
		case 33: renderBlocks.uvRotateTop = 0; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_5_s); break;
		case 34: renderBlocks.uvRotateTop = 0; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_5_d); break;
		case 35: renderBlocks.uvRotateTop = 1; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_5_s); break;
		case 36: renderBlocks.uvRotateTop = 1; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_5_d); break;
		case 37: renderBlocks.uvRotateTop = 3; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_5_s); break;
		case 38: renderBlocks.uvRotateTop = 3; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_5_d); break;
		case 39: renderBlocks.uvRotateTop = 2; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_5_s); break;
		case 40: renderBlocks.uvRotateTop = 2; renderBlocks.renderFaceYPos(BOA_Yellow_0, X, Y, Z, BOA_Yellow_0.AY_1_d); break;
	}


    renderBlocks.uvRotateSouth = 0;
    renderBlocks.uvRotateEast = 0;
    renderBlocks.uvRotateWest = 0;
    renderBlocks.uvRotateNorth = 0;
    renderBlocks.uvRotateTop = 0;
    renderBlocks.uvRotateBottom = 0;
    return flag;
}

@Override
public int getRenderId()
{
	return TrafficStuffClientProxy.BOA_Yellow_0_ID;
}

@Override
public boolean shouldRender3DInInventory(int arg0)
{
	return false;
}

}

Link to comment
Share on other sites

Yeah.. I know... But I was getting pissed of because that was the fifth time I was writing something the size of your post there >.> only to have the internet drop out as I hit post.. The joys of losing your post >.> thanks for saying what I wanted to though :)

We all stuff up sometimes... But I seem to be at the bottom of that pot.

Link to comment
Share on other sites

well if you lived here where I live it would be a pain in ass to learn Java because there's no such thing that you can do if you don't live in the capital city of my country.

anyway, I'm still learning. Nobody know something that well at the begining and everyone needs help with everything in life

 

and as I said, the code is still, like, far away from the final version

Link to comment
Share on other sites

It's ok. We are just trying to help by telling you to learn Java. When you have reached a basic understanding, you will be finding it easier. When you reach a simple understanding, you will be finding it even easier. That is why we say go learn Java. It helps a lot.

We all stuff up sometimes... But I seem to be at the bottom of that pot.

Link to comment
Share on other sites

Well Croatia (the country I live in) has the most fucked up, it had and it will, government! They stole all the money they had. The result: not being able to learn something that every kid in the world is able, such as programming. Many people lost their homes, don't have money to even buy bread. Well at least those are only 10% of Croatia's population. Our schools are old and the furniture is from 80s or even 70s when Tito lived. Our government is full of liars who want to destroy Croatia. The are just like Serbia back in early 90s when they attacked us. Even then people had homes and money. The wage was really high, when comparing today's average wage.

 

CROATIA SUCKS!!!! That's why young people leave this country with one of the most beautiful places on the world. Isn't that just a shame?

 

EDIT: If someone has an iPhone, iMac, XBOX, PS3 or PS4, that person is rich as fuck. While in America it's something almost everybody has.

Link to comment
Share on other sites

Wow. And I thought I was poor. But that's beside the point. I now sorta get what you mean. But I must point out, why are you here using internet quota on forum posting when you could be using that quota searching for and reading tutorials?

We all stuff up sometimes... But I seem to be at the bottom of that pot.

Link to comment
Share on other sites

OK, OK the main problem was that my block class wasn't expanding BlockContainer, as it should, but the tile entity problem is still there! All the code is run, but somehow the subtype doesn't save. Since I'm still a Java noob, network, packets and all that stuff is still pain to me. Any help?

 

P.S. I did search through all TileEntity classes, but the code is similar to theirs but mine doesn't work.

Link to comment
Share on other sites

I'm too lazy to go to Github so here you go here:

 

ItemBlocksOfAsphalt_Yellow_0.java

package net.theTrollguy.trafficStuffMod;

import java.util.List;

import net.minecraft.block.Block;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

public class ItemBlocksOfAsphalt_Yellow_0 extends ItemBlock
{
private int[] rotation_0 = {1, 9, 17, 25, 33, 41, 49, 57, 65, 73, 81, 89, 97, 105, 113};
private int[] rotation_1 = {2, 10, 18, 26, 34, 42, 50, 58, 66, 74, 82, 90, 98, 106, 114};
private int[] rotation_2 = {3, 11, 19, 27, 35, 43, 51, 59, 67, 75, 83, 91, 99, 107, 115};
private int[] rotation_3 = {4, 12, 20, 28, 36, 44, 52, 60, 68, 76, 84, 92, 100, 108, 116};
private int[] rotation_4 = {5, 13, 21, 29, 37, 45, 53, 61, 69, 77, 85, 93, 101, 109, 117};
private int[] rotation_5 = {6, 14, 22, 30, 38, 46, 54, 62, 70, 78, 86, 94, 102, 110, 118};
private int[] rotation_6 = {7, 15, 23, 31, 39, 47, 55, 63, 71, 79, 87, 95, 103, 111, 119};
private int[] rotation_7 = {8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120};

public ItemBlocksOfAsphalt_Yellow_0(Block block)
{
	super(TrafficStuffMod.blocksOfAsphalt_Yellow_0);
	this.setHasSubtypes(true);
}

@Override
public void addInformation(ItemStack itemStack, EntityPlayer entityPlayer, List list, boolean something)
    {
    	int subtype = itemStack.getItemDamage();
    	if (subtype == 1)   { list.add("§e§lArrow to Straight ");          										   list.add("§fADDED IN: 1.3.0"); }
    	if (subtype == 9)   { list.add("§e§lArrow to Left"); 	           list.add("§e§land a Part to Straight"); list.add("§fADDED IN: 1.3.0"); }
    	if (subtype == 17)  { list.add("§e§lArrow to Left"); 	  	       										   list.add("§fADDED IN: 1.3.0"); }
    	if (subtype == 25)  { list.add("§e§lArrow to Right"); 	           list.add("§e§land a Part to Straight"); list.add("§fADDED IN: 1.3.0"); }
    	if (subtype == 33)  { list.add("§e§lArrow to Right");              										   list.add("§fADDED IN: 1.3.0"); }
    	if (subtype == 41)  { list.add("§e§lArrow to Left, Right");        list.add("§e§land a Part to Straight"); list.add("§fADDED IN: 1.3.0"); }
    	if (subtype == 49)  { list.add("§e§lArrow to Left and Right");     										   list.add("§fADDED IN: 1.3.0"); }
    	if (subtype == 57)  { list.add("§e§lArrow to Straight");                                                   list.add("§fADDED IN: 1.1.0"); }
    	if (subtype == 65)  { list.add("§e§lArrow to Straight and Left");  										   list.add("§fADDED IN: 1.1.0"); }
    	if (subtype == 73)  { list.add("§e§lArrow to Left"); 			   										   list.add("§fADDED IN: 1.1.0"); }
    	if (subtype == 81)  { list.add("§e§lArrow to Straight and Right"); 										   list.add("§fADDED IN: 1.1.0"); }
    	if (subtype == 89)  { list.add("§e§lArrow to Right"); 			   										   list.add("§fADDED IN: 1.1.0"); }
    	if (subtype == 97)  { list.add("§e§lArrow to Straight, Left");     list.add("§e§land Right"); 			   list.add("§fADDED IN: 1.1.0"); }
    	if (subtype == 105) { list.add("§e§lArrow to Left and Right"); 	   										   list.add("§fADDED IN: 1.3.0"); }
    	if (subtype == 113) { list.add("§e§lArrow to Straight"); 		   										   list.add("§fADDED IN: 1.0.0"); }
    }

@Override
public boolean onItemUse(ItemStack itemStack, EntityPlayer entityPlayer, World world, int X, int Y, int Z, int side, float hitX, float hitY, float hitZ)
{
	/**
	 * Determines all main direction(2 = NORTH, 3 = EAST, 0 = SOUTH, 1 = WEST).
	 **/
	int direction_90 = MathHelper.floor_double((double)(entityPlayer.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
	/**
	 * Determines all main and sub directions(4 = NORTH, 5 = NORTH-EAST, 6 = EAST, 7 = SOUTH-EAST, 0 = SOUTH, 1 = SOUTH-WEST
	 * 2 = WEST, 3 = NORTH-WEST).
	 **/
	int direction_45 = MathHelper.floor_double((double)(entityPlayer.rotationYaw * 8.0F / 360.0F) + 0.5D) & 7;

	Block block = world.getBlock(X, Y, Z);

	if (block == Blocks.snow_layer && (world.getBlockMetadata(X, Y, Z) & 7) < 1)
        {
            side = 1;
        }

        if (block != Blocks.vine && block != Blocks.tallgrass && block != Blocks.deadbush && !block.isReplaceable(world, X, Y, Z))
        {
            if (side == 0)
            {
                --Y;
            }

            if (side == 1)
            {
                ++Y;
            }

            if (side == 2)
            {
                --Z;
            }

            if (side == 3)
            {
                ++Z;
            }

            if (side == 4)
            {
                --X;
            }

            if (side == 5)
            {
                ++X;
            }
        
            else if(itemStack.stackSize == 0)
		{
			return false;
		}
            else if (!entityPlayer.canPlayerEdit(X, Y, Z, side, itemStack))
		{
			return false;
		}
            else if (Y == 255 && this.field_150939_a.getMaterial().isSolid())
		{
			return false;
		}
            else 
            {
            	System.out.println("I'm runing!");
            int metadata = this.getMetadata(itemStack.getItemDamage());
            int j1 = this.field_150939_a.onBlockPlaced(world, X, Y, Z, side, hitX, hitY, hitZ, metadata);
            
            world.setBlock(X, Y, Z, TrafficStuffMod.blocksOfAsphalt_Yellow_0);
            	TileEntity tileEntity = world.getTileEntity(X, Y, Z);
            	world.setTileEntity(X, Y, Z, new TileEntityBOA_Yellow_0());
    			int subtype = itemStack.getItemDamage();
    			
    			if (tileEntity != null && tileEntity instanceof TileEntityBOA_Yellow_0)
    			{
    				System.out.println("Am I runing?");
    				((TileEntityBOA_Yellow_0)tileEntity).setSubtype(subtype);
    			}
    			
    			world.playSoundEffect((double)((float)X + 0.5F), (double)((float)Y + 0.5F), (double)((float)Z + 0.5F), this.field_150939_a.stepSound.func_150496_b(), (this.field_150939_a.stepSound.getVolume() + 1.0F) / 2.0F, this.field_150939_a.stepSound.getPitch() * 0.8F);
                --itemStack.stackSize;
            }
    				/**
    				if (direction_45 == 0)
    				{
    					System.out.println("HELP ME HELP!");
    					for (int i = 1; i < rotation_0.length; i++)
    					{
    						if (subtype == rotation_0[i])
    						{
    							((TileEntityBOA_Yellow_0)tileEntity).setSubtype(rotation_0[i]);
    							
    						}
    					}
    				}
    				if (direction_45 == 1)
    				{
    					for (int i = 1; i < rotation_0.length; i++)
    					{
    						if (subtype == rotation_0[i])
    						{
    							((TileEntityBOA_Yellow_0)tileEntity).setSubtype(rotation_1[i]);
    							
    						}
    					}
    				}
    				
    				/**
    				switch (subtype)
    				{
    					// ARROW TO STRAIGHT
    					case 1: switch (direction_45)
    					{
	    					case 0:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(5); break;
    		    			case 1:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(6); break;
    		    			case 2:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(7); break;
    		    			case 3:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(; break;
    		        		case 4:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(1); break;
    		        		case 5:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(2); break;
    		        		case 6:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(3); break;
    		        		case 7:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(4); break;
    					} break;
    					// ARROW TO LEFT AND A PART TO STRAIGHT
    					case 9: switch (direction_45)
    					{
	    					case 0:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(13); break;
    		    			case 1:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(14); break;
    		    			case 2:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(15); break;
    		    			case 3:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(16); break;
    		        		case 4:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(9); break;
    		        		case 5:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(10); break;
    		        		case 6:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(11); break;
    		        		case 7:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(12); break;
    					} break;
    					// ARROW TO LEFT
    					case 17: switch (direction_45)
    					{
	    					case 0:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(21); break;
    		    			case 1:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(22); break;
    		    			case 2:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(23); break;
    		    			case 3:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(24); break;
    		        		case 4:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(17); break;
    		        		case 5:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(18); break;
    		        		case 6:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(19); break;
    		        		case 7:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(20); break;
    					} break;
    					// ARROW TO RIGHT AND A PART TO STRAIGHT
    					case 25: switch (direction_45)
    					{
	    					case 0:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(29); break;
    		    			case 1:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(30); break;
    		    			case 2:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(31); break;
    		    			case 3:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(32); break;
    		        		case 4:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(25); break;
    		        		case 5:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(26); break;
    		        		case 6:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(27); break;
    		        		case 7:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(28); break;
    					} break;
    					// ARROW TO RIGHT
    					case 33: switch (direction_45)
    					{
	    					case 0:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(37); break;
    		    			case 1:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(38); break;
    		    			case 2:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(39); break;
    		    			case 3:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(40); break;
    		        		case 4:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(33); break;
    		        		case 5:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(34); break;
    		        		case 6:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(35); break;
    		        		case 7:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(36); break;
    					} break;
    					// ARROW TO LEFT, RIGHT AND A PART TO STRAIGHT
    					case 41: switch (direction_45)
    					{
	    					case 0:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(45); break;
    		    			case 1:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(46); break;
    		    			case 2:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(47); break;
    		    			case 3:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(48); break;
    		        		case 4:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(41); break;
    		        		case 5:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(42); break;
    		        		case 6:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(43); break;
    		        		case 7:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(44); break;
    					} break;
    					// ARROW TO LEFT AND RIGHT
    					case 49: switch (direction_45)
    					{
	    					case 0:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(53); break;
    		    			case 1:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(54); break;
    		    			case 2:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(55); break;
    		    			case 3:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(56); break;
    		        		case 4:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(49); break;
    		        		case 5:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(50); break;
    		        		case 6:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(51); break;
    		        		case 7:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(52); break;
    					} break;
    					// ARROW TO STRAIGHT
    					case 57: switch (direction_45)
    					{
	    					case 0:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(61); break;
    		    			case 1:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(62); break;
    		    			case 2:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(63); break;
    		    			case 3:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(64); break;
    		        		case 4:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(57); break;
    		        		case 5:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(58); break;
    		        		case 6:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(59); break;
    		        		case 7:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(60); break;
    					} break;
    					// ARROW TO STRAIGHT AND LEFT
    					case 65: switch (direction_45)
    					{
	    					case 0:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(69); break;
    		    			case 1:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(70); break;
    		    			case 2:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(71); break;
    		    			case 3:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(72); break;
    		        		case 4:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(65); break;
    		        		case 5:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(66); break;
    		        		case 6:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(67); break;
    		        		case 7:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(68); break;
    					} break;
    					// ARROW TO STRAIGHT AND LEFT
    					case 73: switch (direction_45)
    					{
	    					case 0:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(77); break;
    		    			case 1:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(78); break;
    		    			case 2:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(79); break;
    		    			case 3:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(80); break;
    		        		case 4:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(73); break;
    		        		case 5:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(74); break;
    		        		case 6:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(75); break;
    		        		case 7:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(76); break;
    					}
    					// ARROW TO LEFT
    					case 81: switch (direction_45)
    		        	{
    		    			case 0:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(85); break;
    		    			case 1:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(86); break;
    		    			case 2:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(87); break;
    		    			case 3:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(88); break;
    		        		case 4:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(81); break;
    		        		case 5:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(82); break;
    		        		case 6:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(83); break;
    		        		case 7:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(84); break;
    		        	}
    					// ARROW TO STRAIGHT AND RIGHT
    					case 89: switch (direction_45)
    		        	{
    		    			case 0:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(93); break;
    		    			case 1:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(94); break;
    		    			case 2:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(95); break;
    		    			case 3:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(96); break;
    		        		case 4:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(89); break;
    		        		case 5:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(90); break;
    		        		case 6:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(91); break;
    		        		case 7:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(92); break;
    		        	}
    					// ARROW TO RIGHT
    					case 97: switch (direction_45)
    		        	{
    		    			case 0:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(101); break;
    		    			case 1:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(102); break;
    		    			case 2:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(103); break;
    		    			case 3:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(104); break;
    		        		case 4:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(97); break;
    		        		case 5:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(98); break;
    		        		case 6:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(99); break;
    		        		case 7:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(100); break;
    		        	} break;
    					// ARROW TO STRAIGHT, LEFT AND RIGHT
    					case 105: switch (direction_45)
    		        	{
    		    			case 0:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(109); break;
    		    			case 1:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(110); break;
    		    			case 2:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(111); break;
    		    			case 3:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(112); break;
    		        		case 4:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(105); break;
    		        		case 5:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(106); break;
    		        		case 6:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(107); break;
    		        		case 7:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(108); break;
    		        	} break;
    					// ARROW TO STRAIGHT, LEFT AND RIGHT
    					case 113: switch (direction_45)
    		        	{
    		    			case 0:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(117); break;
    		    			case 1:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(118); break;
    		    			case 2:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(119); break;
    		    			case 3:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(120); break;
    		        		case 4:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(113); break;
    		        		case 5:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(114); break;
    		        		case 6:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(115); break;
    		        		case 7:((TileEntityBOA_Yellow_0)tileEntity).setSubtype(116); break;
    		        	} break;    
    				}
    		
    				**/
        }
	return true;
}

public String getUnlocalizedName(ItemStack itemStack)
{
	return "blocksOfAsphalt_Yellow_0";
}
}

 

BOA = Blocks Of Aspahlt

 

TileEntityBOA_Yellow_0.java

package net.theTrollguy.trafficStuffMod;

import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.NetworkManager;
import net.minecraft.network.Packet;
import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
import net.minecraft.tileentity.TileEntity;

public class TileEntityBOA_Yellow_0 extends TileEntity
{
public int subtype;

public TileEntityBOA_Yellow_0() {}

public int getSubtype()
{	
	NBTTagCompound nbtTagCompound = new NBTTagCompound();
	this.readFromNBT(nbtTagCompound);
	return subtype;
}

public void setSubtype(int subTypes)
{
	this.subtype = subTypes;
	NBTTagCompound nbtTagCompound = new NBTTagCompound();
	this.writeToNBT(nbtTagCompound);

	System.out.println("Subtype set to: " + this.subtype);
}

public void removeSubtype()
{
	this.setSubtype(0);
}
}

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.