package blusunrize.immersiveengineering.common.blocks.metal.conveyors; import blusunrize.immersiveengineering.api.tool.ConveyorHandler.ConveyorDirection; import blusunrize.immersiveengineering.api.tool.ConveyorHandler.IConveyorBelt; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; /** * @author BluSunrize - 20.08.2016 */ public class ConveyorBasic implements IConveyorBelt { ConveyorDirection direction = ConveyorDirection.HORIZONTAL; int dyeColour = -1; @Override public ConveyorDirection getConveyorDirection() { return direction; } @Override public boolean changeConveyorDirection() { direction = direction == ConveyorDirection.HORIZONTAL ? ConveyorDirection.UP : direction == ConveyorDirection.UP ? ConveyorDirection.DOWN : ConveyorDirection.HORIZONTAL; return true; } @Override public boolean setConveyorDirection(ConveyorDirection dir) { direction = dir; return true; } @Override public boolean isActive(TileEntity tile) { return tile.getWorld().isBlockIndirectlyGettingPowered(tile.getPos()) <= 0; } @Override public boolean canBeDyed() { return true; } @Override public boolean setDyeColour(int colour) { if(colour == this.dyeColour) return false; this.dyeColour = colour; return true; } @Override public int getDyeColour() { return this.dyeColour; } @Override public NBTTagCompound writeConveyorNBT() { NBTTagCompound nbt = new NBTTagCompound(); nbt.setInteger("direction", direction.ordinal()); nbt.setInteger("dyeColour", dyeColour); return nbt; } @Override public void readConveyorNBT(NBTTagCompound nbt) { direction = ConveyorDirection.values()[nbt.getInteger("direction")]; dyeColour = nbt.hasKey("dyeColour") ? nbt.getInteger("dyeColour") : -1; } public static ResourceLocation texture_on = new ResourceLocation("immersiveengineering:blocks/conveyor"); public static ResourceLocation texture_off = new ResourceLocation("immersiveengineering:blocks/conveyor_off"); @Override public ResourceLocation getActiveTexture() { return texture_on; } @Override public ResourceLocation getInactiveTexture() { return texture_off; } }