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;
}
}