package crazypants.enderio.machine.monitor; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; import com.enderio.core.common.util.DyeColor; import cpw.mods.fml.relauncher.Side; import crazypants.enderio.GuiHandler; import crazypants.enderio.ModObject; import crazypants.enderio.machine.AbstractMachineBlock; import crazypants.enderio.machine.ContainerNoInv; import crazypants.enderio.network.PacketHandler; public class BlockPowerMonitor extends AbstractMachineBlock<TilePowerMonitor> { public static BlockPowerMonitor create() { PacketHandler.INSTANCE.registerMessage(PacketPowerMonitor.class,PacketPowerMonitor.class,PacketHandler.nextID(),Side.SERVER); PacketHandler.INSTANCE.registerMessage(PacketPowerInfo.class,PacketPowerInfo.class,PacketHandler.nextID(),Side.CLIENT); BlockPowerMonitor result = new BlockPowerMonitor(); result.init(); return result; } protected BlockPowerMonitor() { super(ModObject.blockPowerMonitor, TilePowerMonitor.class); } @Override public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity te = world.getTileEntity(x, y, z); if (te instanceof TilePowerMonitor) { return new ContainerNoInv((TilePowerMonitor) te); } return null; } @Override public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity te = world.getTileEntity(x, y, z); if(te instanceof TilePowerMonitor) { return new GuiPowerMonitor(player.inventory, (TilePowerMonitor) te); } return null; } @Override protected int getGuiId() { return GuiHandler.GUI_ID_POWER_MONITOR; } @Override public boolean canProvidePower() { return true; } @Override protected String getMachineFrontIconKey(boolean active) { return "enderio:powerMonitor"; } @Override public int isProvidingWeakPower(IBlockAccess world, int x, int y, int z, int side) { TileEntity te = world.getTileEntity(x, y, z); if(te instanceof TilePowerMonitor) { return ((TilePowerMonitor) te).getRednetOutputValue(ForgeDirection.values()[side], DyeColor.RED.ordinal()); } return 0; } }