@Override public TMultiPart newPart( ItemStack stack, EntityPlayer player, World world, BlockCoord coord, int face, Vector3 vecHit) { TransmitterType type = TransmitterType.values()[stack.getItemDamage()]; if (type.getTransmission() != TransmissionType.ITEM) { Coord4D obj = new Coord4D(coord.x, coord.y, coord.z, world.provider.dimensionId); List<ITransmitterNetwork<?, ?>> networks = new ArrayList<ITransmitterNetwork<?, ?>>(); for (ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) { TileEntity tile = obj.getFromSide(side).getTileEntity(world); if (tile instanceof IGridTransmitter && TransmissionType.checkTransmissionType(tile, type.getTransmission())) { networks.add(((IGridTransmitter) tile).getTransmitterNetwork()); } } if (networks.size() > 0) { if (!networks.iterator().next().canMerge(networks)) { return null; } } } return PartTransmitter.getPartType(TransmitterType.values()[getDamage(stack)]); }
@Override public String getUnlocalizedName(ItemStack stack) { return getUnlocalizedName() + "." + TransmitterType.values()[stack.getItemDamage()].getName(); }
@Override public void getSubItems(int itemID, CreativeTabs tab, List listToAddTo) { for (TransmitterType type : TransmitterType.values()) { listToAddTo.add(new ItemStack(itemID, 1, type.ordinal())); } }