Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package nedocomputers.multipart;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Collections;
- import java.util.List;
- import nedocomputers.NedoComputers;
- import nedocomputers.TileEntityCable;
- import net.minecraft.block.Block;
- import net.minecraft.client.renderer.RenderBlocks;
- import net.minecraft.client.renderer.Tessellator;
- import net.minecraft.nbt.NBTTagCompound;
- import net.minecraft.tileentity.TileEntity;
- import net.minecraft.util.IIcon;
- import codechicken.lib.data.MCDataInput;
- import codechicken.lib.data.MCDataOutput;
- import codechicken.lib.vec.Cuboid6;
- import codechicken.lib.vec.Vector3;
- import codechicken.multipart.minecraft.McMetaPart;
- import codechicken.multipart.minecraft.PartMetaAccess;
- import cpw.mods.fml.relauncher.Side;
- import cpw.mods.fml.relauncher.SideOnly;
- public class PartCable extends McMetaPart {
- public int conMask = 0;
- @Override
- public Cuboid6 getBounds() {
- double r = 0.125;
- return new Cuboid6( ((conMask & 0x10) != 0) ? 0 : 0.5 - r, // minX
- ((conMask & 0x01) != 0) ? 0 : 0.5 - r, // minY
- ((conMask & 0x04) != 0) ? 0 : 0.5 - r, // minZ
- ((conMask & 0x20) != 0) ? 1 : 0.5 + r, // maxX
- ((conMask & 0x02) != 0) ? 1 : 0.5 + r, // maxY
- ((conMask & 0x08) != 0) ? 1 : 0.5 + r); // maxZ
- }
- @Override
- public Block getBlock() {
- return NedoComputers.blockCable;
- }
- @Override
- public String getType() {
- return "nedocomputers:cable";
- }
- @Override
- public void invalidateConvertedTile() {
- TileEntity tile = world().getTileEntity(x(), y(), z());
- if (tile instanceof TileEntityCable) {
- conMask = ((TileEntityCable)tile).getConMask();
- System.out.println("conv: " + conMask);
- }
- }
- @Override
- public void onNeighborChanged() {
- System.out.println("onNeighborChanged");
- }
- @Override
- public void writeDesc(MCDataOutput packet) {
- super.writeDesc(packet);
- packet.writeInt(conMask);
- System.out.println("writeDesc: " + conMask);
- }
- @Override
- public void readDesc(MCDataInput packet) {
- super.readDesc(packet);
- conMask = packet.readInt();
- System.out.println("readDesc: " + conMask);
- }
- @Override
- public boolean doesTick() {
- return false;
- }
- @Override
- public void update() {
- if (world().isRemote)
- System.out.println("client: " + conMask);
- else
- System.out.println("server: " + conMask);
- }
- @Override
- public void load(NBTTagCompound nbt) {
- conMask = (short)nbt.getInteger("conMask");
- }
- @Override
- public void save(NBTTagCompound nbt) {
- nbt.setInteger("conMask", conMask);
- }
- @Override
- public Iterable<Cuboid6> getCollisionBoxes() {
- List <Cuboid6> list = new ArrayList();
- double r = 0.125;
- list.add(new Cuboid6(0.5 - r, 0.5 - r, 0.5 - r, 0.5 + r, 0.5 + r, 0.5 + r));
- if ((conMask & 1) != 0)
- list.add(new Cuboid6(0.5 - r, 0, 0.5 - r, 0.5F + r, 0.5 + r, 0.5 + r));
- if ((conMask & 2) != 0)
- list.add(new Cuboid6(0.5 - r, 0.5 - r, 0.5 - r, 0.5 + r, 1F, 0.5 + r));
- if ((conMask & 4) != 0)
- list.add(new Cuboid6(0.5 - r, 0.5 - r, 0, 0.5 + r, 0.5 + r, 0.5 + r));
- if ((conMask & 8) != 0)
- list.add(new Cuboid6(0.5 - r, 0.5 - r, 0.5 - r, 0.5 + r, 0.5 + r, 1));
- if ((conMask & 16) != 0)
- list.add(new Cuboid6(0, 0.5 - r, 0.5 - r, 0.5 + r, 0.5 + r, 0.5 + r));
- if ((conMask & 32) != 0)
- list.add(new Cuboid6(0.5 - r, 0.5 - r, 0.5 - r, 1F, 0.5 + r, 0.5 + r));
- return list;
- }
- @Override
- @SideOnly(Side.CLIENT)
- public boolean renderStatic(Vector3 pos, int pass) {
- RenderBlocks renderer = new RenderBlocks(new PartMetaAccess(this));
- IIcon iicon = renderer.getBlockIcon(NedoComputers.blockCable);
- Tessellator t = Tessellator.instance;
- //t.setBrightness(NedoComputers.blockCable.getMixedBrightnessForBlock(renderer.blockAccess,x(), y(), z()));
- double r = 0.125;
- double x = x() + 0.5;
- double y = y() + 0.5;
- double z = z() + 0.5;
- double minY = ((conMask & 1) != 0) ? y - 0.5 : y - r; // DOWN
- double maxY = ((conMask & 2) != 0) ? y + 0.5 : y + r; // UP
- double minZ = ((conMask & 4) != 0) ? z - 0.5 : z - r; // NORTH
- double maxZ = ((conMask & 8) != 0) ? z + 0.5 : z + r; // SOUTH
- double minX = ((conMask & 16) != 0) ? x - 0.5 : x - r; // WEST
- double maxX = ((conMask & 32) != 0) ? x + 0.5 : x + r; // EAST
- double t_minY = ((conMask & 1) != 0) ? 0 : 0.5 - r; // DOWN
- double t_maxY = ((conMask & 2) != 0) ? 1 : 0.5 + r; // UP
- double t_minZ = ((conMask & 4) != 0) ? 0 : 0.5 - r; // NORTH
- double t_maxZ = ((conMask & 8) != 0) ? 1 : 0.5 + r; // SOUTH
- double t_minX = ((conMask & 16) != 0) ? 0 : 0.5 - r; // WEST
- double t_maxX = ((conMask & 32) != 0) ? 1 : 0.5 + r; // EAST
- double minU = (double)iicon.getMinU();
- double minV = (double)iicon.getMinV();
- double maxU = (double)iicon.getMaxU();
- double maxV = (double)iicon.getMaxV();
- double mU = maxU - minU;
- double mV = maxV - minV;
- // Down.
- t.addVertexWithUV(maxX, y - r, minZ, minU + t_maxX * mU, minV + t_minZ * mV);
- t.addVertexWithUV(maxX, y - r, maxZ, minU + t_maxX * mU, minV + t_maxZ * mV);
- t.addVertexWithUV(minX, y - r, maxZ, minU + t_minX * mU, minV + t_maxZ * mV);
- t.addVertexWithUV(minX, y - r, minZ, minU + t_minX * mU, minV + t_minZ * mV);
- // Up.
- t.addVertexWithUV(minX, y + r, minZ, minU + t_minX * mU, minV + t_minZ * mV);
- t.addVertexWithUV(minX, y + r, maxZ, minU + t_minX * mU, minV + t_maxZ * mV);
- t.addVertexWithUV(maxX, y + r, maxZ, minU + t_maxX * mU, minV + t_maxZ * mV);
- t.addVertexWithUV(maxX, y + r, minZ, minU + t_maxX * mU, minV + t_minZ * mV);
- // North.
- t.addVertexWithUV(minX, minY, z - r, minU + t_minX * mU, minV + t_minY * mV);
- t.addVertexWithUV(minX, maxY, z - r, minU + t_minX * mU, minV + t_maxY * mV);
- t.addVertexWithUV(maxX, maxY, z - r, minU + t_maxX * mU, minV + t_maxY * mV);
- t.addVertexWithUV(maxX, minY, z - r, minU + t_maxX * mU, minV + t_minY * mV);
- // South.
- t.addVertexWithUV(maxX, minY, z + r, minU + t_maxX * mU, minV + t_minY * mV);
- t.addVertexWithUV(maxX, maxY, z + r, minU + t_maxX * mU, minV + t_maxY * mV);
- t.addVertexWithUV(minX, maxY, z + r, minU + t_minX * mU, minV + t_maxY * mV);
- t.addVertexWithUV(minX, minY, z + r, minU + t_minX * mU, minV + t_minY * mV);
- // West.
- t.addVertexWithUV(x - r, minY, maxZ, minU + t_minY * mU, minV + t_maxZ * mV);
- t.addVertexWithUV(x - r, maxY, maxZ, minU + t_maxY * mU, minV + t_maxZ * mV);
- t.addVertexWithUV(x - r, maxY, minZ, minU + t_maxY * mU, minV + t_minZ * mV);
- t.addVertexWithUV(x - r, minY, minZ, minU + t_minY * mU, minV + t_minZ * mV);
- // East.
- t.addVertexWithUV(x + r, minY, minZ, minU + t_minY * mU, minV + t_minZ * mV);
- t.addVertexWithUV(x + r, maxY, minZ, minU + t_maxY * mU, minV + t_minZ * mV);
- t.addVertexWithUV(x + r, maxY, maxZ, minU + t_maxY * mU, minV + t_maxZ * mV);
- t.addVertexWithUV(x + r, minY, maxZ, minU + t_minY * mU, minV + t_maxZ * mV);
- return true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement