package net.geforcemods.securitycraft.api;
import net.minecraft.world.World;
public class LinkedBlock {
public String blockName;
public int blockX = 0;
public int blockY = 0;
public int blockZ = 0;
public LinkedBlock(String name, int x, int y, int z) {
blockName = name;
blockX = x;
blockY = y;
blockZ = z;
}
public LinkedBlock(CustomizableSCTE tileEntity) {
blockName = tileEntity.getWorldObj().getBlock(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord).getUnlocalizedName();
blockX = tileEntity.xCoord;
blockY = tileEntity.yCoord;
blockZ = tileEntity.zCoord;
}
public boolean validate(World world) {
if(world == null || (world.isAirBlock(blockX, blockY, blockZ) || !world.getBlock(blockX, blockY, blockZ).getUnlocalizedName().matches(blockName))) return false;
return true;
}
public CustomizableSCTE asTileEntity(World world) {
if(!validate(world)) return null;
return (CustomizableSCTE) world.getTileEntity(blockX, blockY, blockZ);
}
public String getBlockName() {
return blockName;
}
public void setName(String blockName) {
this.blockName = blockName;
}
public void setX(int blockX) {
this.blockX = blockX;
}
public void setY(int blockY) {
this.blockY = blockY;
}
public void setZ(int blockZ) {
this.blockZ = blockZ;
}
public int getX() {
return blockX;
}
public int getY() {
return blockY;
}
public int getZ() {
return blockZ;
}
public boolean equals(Object o) {
if(o instanceof LinkedBlock) {
LinkedBlock block = (LinkedBlock) o;
return (block.blockX == blockX && block.blockY == blockY && block.blockZ == blockZ);
}
return false;
}
public int hashCode() {
return blockX + blockY + blockZ;
}
public String toString() {
return (blockName + " | " + blockX + " " + blockY + " " + blockZ);
}
}