@Override public void onBlockAdded(World world, int x, int y, int z) { TileReactorCore tile = world.getTileEntity(x, y, z) instanceof TileReactorCore ? (TileReactorCore) world.getTileEntity(x, y, z) : null; if (tile != null) tile.onPlaced(); }
@Override public void breakBlock(World world, int x, int y, int z, Block p_149749_5_, int p_149749_6_) { TileReactorCore tile = world.getTileEntity(x, y, z) instanceof TileReactorCore ? (TileReactorCore) world.getTileEntity(x, y, z) : null; if (tile != null) tile.onBroken(); super.breakBlock(world, x, y, z, p_149749_5_, p_149749_6_); }
@Override public void setInventorySlotContents(int i, ItemStack stack) { if (i == 0 && stack != null && (stack.getItem() == ModItems.draconicIngot || stack.getItem() == Item.getItemFromBlock(ModBlocks.draconicBlock) || (stack.getItem() == ModItems.nugget && stack.getItemDamage() == 1))) { if (stack.getItem() == ModItems.nugget) reactor.reactorFuel += stack.stackSize * 16; if (stack.getItem() == ModItems.draconicIngot) reactor.reactorFuel += stack.stackSize * 144; if (stack.getItem() == Item.getItemFromBlock(ModBlocks.draconicBlock)) reactor.reactorFuel += stack.stackSize * 1296; reactor.validateStructure(); } else getStorage()[i] = stack; }
@Override public void receiveSyncData(int index, int value) { if (index == 0) reactor.conversionUnit = (double) value / 100D; // else if (index == 1) reactor.reactionTemperature = value; // else if (index == 2) reactor.maxReactTemperature = value; // else if (index == 3) reactor.fieldCharge = value; // else if (index == 4) reactor.energySaturation = value; // else if (index == 5) reactor.maxEnergySaturation = value; // else if (index == 6) reactor.convertedFuel = value; // else if (index == 7) reactor.maxFieldCharge = value; else if (index == 8) reactor.tempDrainFactor = value / 1000D; else if (index == 9) reactor.generationRate = value; else if (index == 10) reactor.fieldDrain = value; else if (index == 11) reactor.fuelUseRate = value / 1000000D; if (index == 20) reactor.processButtonPress(value); if (index == 99) { Iterator i = inventorySlots.iterator(); while (i.hasNext()) { Object o = i.next(); if (o instanceof SlotExtract || o instanceof SlotInsert) i.remove(); } } else if (index == 98) { addSlotToContainer(new SlotInsert(ioSlots, 0, 15, 140, reactor)); addSlotToContainer(new SlotExtract(ioSlots, 1, 217, 140)); } }
@Override public ItemStack slotClick(int slot, int button, int p_75144_3_, EntityPlayer player1) { if (slot == 37 && player1.inventory.getItemStack() == null) { if (reactor.reactorFuel / 144 >= 64) { int i = reactor.reactorFuel / 1296; int i2 = Math.min(64, i); ioSlots.getStorage()[1] = new ItemStack(ModBlocks.draconicBlock, i2); reactor.reactorFuel -= i2 * 1296; } else if (reactor.reactorFuel >= 144) { int i = reactor.reactorFuel / 144; int i2 = Math.min(64, i); ioSlots.getStorage()[1] = new ItemStack(ModItems.draconicIngot, i2); reactor.reactorFuel -= i2 * 144; } else if (reactor.reactorFuel >= 16) { int i = reactor.reactorFuel / 16; int i2 = Math.min(64, i); ioSlots.getStorage()[1] = new ItemStack(ModItems.nugget, i2, 1); reactor.reactorFuel -= i2 * 16; } else if (reactor.convertedFuel / 144 >= 64) { int i = reactor.convertedFuel / 1296; int i2 = Math.min(64, i); ioSlots.getStorage()[1] = new ItemStack(ModItems.chaosFragment, i2, 2); reactor.convertedFuel -= i2 * 1296; } else if (reactor.convertedFuel >= 144) { int i = reactor.convertedFuel / 144; int i2 = Math.min(64, i); ioSlots.getStorage()[1] = new ItemStack(ModItems.chaosFragment, i2, 1); reactor.convertedFuel -= i2 * 144; } else if (reactor.convertedFuel >= 16) { int i = reactor.convertedFuel / 16; int i2 = Math.min(64, i); ioSlots.getStorage()[1] = new ItemStack(ModItems.chaosFragment, i2, 0); reactor.convertedFuel -= i2 * 16; } } return super.slotClick(slot, button, p_75144_3_, player1); }