diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/ClientProxy.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/ClientProxy.java index bf9cc26..a4b3638 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/ClientProxy.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/ClientProxy.java @@ -2,18 +2,16 @@ import com.gtnewhorizons.modularui.common.peripheral.ModularUIPeripheralInputHandler; import com.gtnewhorizons.modularui.integration.nei.ModularUIContainerObjectHandler; -// import com.recursive_pineapple.nuclear_horizons.reactors.gui.GuiHandler; import codechicken.nei.guihook.GuiContainerManager; import cpw.mods.fml.common.event.FMLPreInitializationEvent; -import cpw.mods.fml.common.network.NetworkRegistry; public class ClientProxy extends CommonProxy { @Override public void preInit(FMLPreInitializationEvent event) { super.preInit(event); - + GuiContainerManager.addInputHandler(new ModularUIPeripheralInputHandler()); GuiContainerManager.addObjectHandler(new ModularUIContainerObjectHandler()); // NetworkRegistry.INSTANCE.registerGuiHandler(NuclearHorizons.instance, new GuiHandler()); diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/NuclearHorizons.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/NuclearHorizons.java index 6ba2deb..6840a6c 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/NuclearHorizons.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/NuclearHorizons.java @@ -4,8 +4,8 @@ import org.apache.logging.log4j.Logger; import cpw.mods.fml.common.Mod; -import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.Mod.Instance; +import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/networking/PacketDispatcher.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/networking/PacketDispatcher.java index db3b2d4..b570f45 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/networking/PacketDispatcher.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/networking/PacketDispatcher.java @@ -8,6 +8,13 @@ import javax.annotation.Nullable; +import net.minecraft.client.Minecraft; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraft.world.WorldServer; + import com.recursive_pineapple.nuclear_horizons.NuclearHorizons; import com.recursive_pineapple.nuclear_horizons.reactors.tile.IUpdateableTileEntity; import com.recursive_pineapple.nuclear_horizons.reactors.tile.TileReactorSimulator; @@ -20,23 +27,24 @@ import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper; import cpw.mods.fml.relauncher.Side; import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import net.minecraft.world.WorldServer; public class PacketDispatcher { + private static byte packetId = 0; - - public static final SimpleNetworkWrapper DISPATCHER = NetworkRegistry.INSTANCE.newSimpleChannel(NuclearHorizons.MODID); - + + public static final SimpleNetworkWrapper DISPATCHER = NetworkRegistry.INSTANCE + .newSimpleChannel(NuclearHorizons.MODID); + public static final void registerPackets() { - DISPATCHER.registerMessage(ReactorSimulationFinishedMessage::handle, ReactorSimulationFinishedMessage.class, packetId++, Side.SERVER); + DISPATCHER.registerMessage( + ReactorSimulationFinishedMessage::handle, + ReactorSimulationFinishedMessage.class, + packetId++, + Side.SERVER); } public static class ReactorSimulationFinishedMessage implements IMessage { + public int dimensionId, x, y, z; public SimulationResult result; @@ -62,24 +70,24 @@ public void toBytes(ByteBuf buf) { } public static IMessage handle(IMessage message, MessageContext ctx) { - if(!(message instanceof ReactorSimulationFinishedMessage msg)) { + if (!(message instanceof ReactorSimulationFinishedMessage msg)) { return null; } WorldServer dim = null; - for(var world : MinecraftServer.getServer().worldServers) { - if(world.provider.dimensionId == msg.dimensionId) { + for (var world : MinecraftServer.getServer().worldServers) { + if (world.provider.dimensionId == msg.dimensionId) { dim = world; break; } } - if(dim == null) { + if (dim == null) { return null; } - if(dim.getTileEntity(msg.x, msg.y, msg.z) instanceof TileReactorSimulator sim) { + if (dim.getTileEntity(msg.x, msg.y, msg.z) instanceof TileReactorSimulator sim) { sim.setSimulationResult(msg.result); } @@ -107,16 +115,17 @@ public static void init() { throw new RuntimeException(e); } - List>> updateableTileEntities = nameToClass - .entrySet() + List>> updateableTileEntities = nameToClass.entrySet() .stream() .filter(e -> IUpdateableTileEntity.class.isAssignableFrom(e.getValue())) - .sorted((a, b) -> a.getKey().compareTo(b.getKey())) + .sorted( + (a, b) -> a.getKey() + .compareTo(b.getKey())) .collect(Collectors.toList()); int nextId = 0; - for(var e : updateableTileEntities) { + for (var e : updateableTileEntities) { idToClass.put(nextId, e.getValue()); classToId.put(e.getValue(), nextId); nextId++; @@ -128,18 +137,19 @@ public static void init() { public static @Nullable TileEntityUpdatedMessage fromUpdateableTileEntity(World world, int x, int y, int z) { TileEntity te = world.getTileEntity(x, y, z); - if(te == null) { + if (te == null) { NuclearHorizons.LOG.warn( "Tried to update null tile entity! dimension=%d, x=%d, y=%d, z=%d, tileEntity=%s", world.provider.dimensionId, - x, y, z, - Objects.toString(te) - ); + x, + y, + z, + Objects.toString(te)); return null; } - if(te instanceof IUpdateableTileEntity ute) { + if (te instanceof IUpdateableTileEntity ute) { var msg = new TileEntityUpdatedMessage(); msg.dimensionId = world.provider.dimensionId; @@ -154,9 +164,10 @@ public static void init() { NuclearHorizons.LOG.warn( "Tried to update non-IUpdateableTileEntity tile entity! dimension=%d, x=%d, y=%d, z=%d, tileEntity=%s", world.provider.dimensionId, - x, y, z, - Objects.toString(te) - ); + x, + y, + z, + Objects.toString(te)); return null; } @@ -185,34 +196,36 @@ public void toBytes(ByteBuf buf) { } public static IMessage handle(IMessage message, MessageContext ctx) { - if(ctx.side == Side.CLIENT && message instanceof TileEntityUpdatedMessage msg) { + if (ctx.side == Side.CLIENT && message instanceof TileEntityUpdatedMessage msg) { var world = Minecraft.getMinecraft().theWorld; Class msgTeClass = idToClass.get(msg.tileEntityId); - if(world.provider.dimensionId == msg.dimensionId) { + if (world.provider.dimensionId == msg.dimensionId) { TileEntity te = world.getTileEntity(msg.x, msg.y, msg.z); - if(te != null && te.getClass() == msgTeClass && te instanceof IUpdateableTileEntity ute) { + if (te != null && te.getClass() == msgTeClass && te instanceof IUpdateableTileEntity ute) { ute.onNetworkUpdate(msg.data); } else { NuclearHorizons.LOG.warn( "Received update for invalid tile entity! dimension=%d, x=%d, y=%d, z=%d, tileEntityClass=%s, actualTileEntity=%s, data=%s", msg.dimensionId, - msg.x, msg.y, msg.z, + msg.x, + msg.y, + msg.z, msgTeClass.getName(), te, - msg.data.toString() - ); + msg.data.toString()); } } else { NuclearHorizons.LOG.warn( "Received update for tile entity in another dimension! dimension=%d, x=%d, y=%d, z=%d, tileEntityClass=%s, data=%s", msg.dimensionId, - msg.x, msg.y, msg.z, + msg.x, + msg.y, + msg.z, msgTeClass.getName(), - msg.data.toString() - ); + msg.data.toString()); } } diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/BlockList.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/BlockList.java index d7081a2..0fc4d39 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/BlockList.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/BlockList.java @@ -3,6 +3,8 @@ import static cpw.mods.fml.common.registry.GameRegistry.registerBlock; import static cpw.mods.fml.common.registry.GameRegistry.registerTileEntity; +import net.minecraft.block.material.Material; + import com.recursive_pineapple.nuclear_horizons.NuclearHorizons; import com.recursive_pineapple.nuclear_horizons.reactors.fluids.FluidList; import com.recursive_pineapple.nuclear_horizons.reactors.tile.TileAccessHatch; @@ -13,10 +15,8 @@ import com.recursive_pineapple.nuclear_horizons.reactors.tile.TileRedstonePort; import com.recursive_pineapple.nuclear_horizons.reactors.tile.TileThermalSensor; -import net.minecraft.block.material.Material; - public class BlockList { - + public static final String REACTOR_CORE_NAME = "reactor_core"; public static final String REACTOR_CHAMBER_NAME = "reactor_chamber"; public static final String PRESSURE_VESSEL_NAME = "pressure_vessel"; @@ -54,16 +54,14 @@ public static void registerBlocks() { FluidList.COOLANT, Material.water, NuclearHorizons.MODID + ":coolant_still", - NuclearHorizons.MODID + ":coolant_flow" - ); + NuclearHorizons.MODID + ":coolant_flow"); COOLANT_BLOCK.setBlockName(COOLANT_BLOCK_NAME); HOT_COOLANT_BLOCK = new FluidBlock( FluidList.HOT_COOLANT, Material.water, NuclearHorizons.MODID + ":hot_coolant_still", - NuclearHorizons.MODID + ":hot_coolant_flow" - ); + NuclearHorizons.MODID + ":hot_coolant_flow"); HOT_COOLANT_BLOCK.setBurnsEntities(true); HOT_COOLANT_BLOCK.setBlockName(HOT_COOLANT_BLOCK_NAME); diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/FluidBlock.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/FluidBlock.java index 75aa80b..75ee032 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/FluidBlock.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/FluidBlock.java @@ -1,7 +1,5 @@ package com.recursive_pineapple.nuclear_horizons.reactors.blocks; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; @@ -11,12 +9,15 @@ import net.minecraftforge.fluids.BlockFluidClassic; import net.minecraftforge.fluids.Fluid; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + public class FluidBlock extends BlockFluidClassic { public static final DamageSource HOT_FLUID_DAMAGE = new DamageSource("hot_fluid"); private String stillTextureName, flowingTextureName; - + public IIcon stillIcon, flowingIcon; private boolean burnsEntities = false; @@ -46,7 +47,7 @@ public FluidBlock setBurnsEntities(boolean burnsEntities) { @Override public void onEntityCollidedWithBlock(World worldIn, int x, int y, int z, Entity entityIn) { super.onEntityCollidedWithBlock(worldIn, x, y, z, entityIn); - if(burnsEntities && worldIn.getWorldTime() % 20 == 0) { + if (burnsEntities && worldIn.getWorldTime() % 20 == 0) { entityIn.attackEntityFrom(HOT_FLUID_DAMAGE, 1.0f); } } diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/PressureVessel.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/PressureVessel.java index 440d99e..21ac9f5 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/PressureVessel.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/PressureVessel.java @@ -4,7 +4,7 @@ import net.minecraft.block.material.Material; public class PressureVessel extends Block { - + public PressureVessel() { super(Material.rock); setBlockName(BlockList.PRESSURE_VESSEL_NAME); diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/ReactorAccessHatch.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/ReactorAccessHatch.java index 3550af3..cb675a0 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/ReactorAccessHatch.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/ReactorAccessHatch.java @@ -1,16 +1,16 @@ package com.recursive_pineapple.nuclear_horizons.reactors.blocks; -import com.gtnewhorizons.modularui.api.UIInfos; -import com.recursive_pineapple.nuclear_horizons.reactors.tile.TileAccessHatch; - import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; +import com.gtnewhorizons.modularui.api.UIInfos; +import com.recursive_pineapple.nuclear_horizons.reactors.tile.TileAccessHatch; + public class ReactorAccessHatch extends BlockContainer { - + public ReactorAccessHatch() { super(Material.rock); setBlockName(BlockList.REACTOR_ACCESS_HATCH_NAME); @@ -21,18 +21,19 @@ public ReactorAccessHatch() { public TileEntity createNewTileEntity(World worldIn, int meta) { return new TileAccessHatch(); } - + @Override - public boolean onBlockActivated(World worldIn, int x, int y, int z, EntityPlayer player, int side, float subX, float subY, float subZ) { - var reactor = ((TileAccessHatch)worldIn.getTileEntity(x, y, z)).getReactor(); + public boolean onBlockActivated(World worldIn, int x, int y, int z, EntityPlayer player, int side, float subX, + float subY, float subZ) { + var reactor = ((TileAccessHatch) worldIn.getTileEntity(x, y, z)).getReactor(); - if(!worldIn.isRemote) { - if(reactor != null) { + if (!worldIn.isRemote) { + if (reactor != null) { UIInfos.TILE_MODULAR_UI.open(player, worldIn, reactor.xCoord, reactor.yCoord, reactor.zCoord); } } - if(reactor != null) { + if (reactor != null) { return true; } else { return false; diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/ReactorChamber.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/ReactorChamber.java index 068efb3..c291002 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/ReactorChamber.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/ReactorChamber.java @@ -1,10 +1,5 @@ package com.recursive_pineapple.nuclear_horizons.reactors.blocks; -import com.gtnewhorizons.modularui.api.UIInfos; -import com.recursive_pineapple.nuclear_horizons.reactors.tile.TileReactorChamber; -import com.recursive_pineapple.nuclear_horizons.reactors.tile.TileReactorCore; -import com.recursive_pineapple.nuclear_horizons.utils.DirectionUtil; - import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; @@ -18,13 +13,18 @@ import net.minecraft.util.IIcon; import net.minecraft.world.World; +import com.gtnewhorizons.modularui.api.UIInfos; +import com.recursive_pineapple.nuclear_horizons.reactors.tile.TileReactorChamber; +import com.recursive_pineapple.nuclear_horizons.reactors.tile.TileReactorCore; +import com.recursive_pineapple.nuclear_horizons.utils.DirectionUtil; + public class ReactorChamber extends BlockContainer { - + private IIcon iconTop, iconSide; public ReactorChamber() { super(Material.iron); - + setHardness(5.0f); setBlockName(BlockList.REACTOR_CHAMBER_NAME); setStepSound(soundTypeMetal); @@ -39,7 +39,7 @@ public void registerBlockIcons(IIconRegister reg) { @Override public IIcon getIcon(int side, int meta) { - if(side == 0 || side == 1) { + if (side == 0 || side == 1) { return iconTop; } else { return iconSide; @@ -67,19 +67,20 @@ public void onBlockAdded(World worldIn, int x, int y, int z) { } private void onBlocksChanged(World worldIn, int x, int y, int z) { - if(getAttachedReactors(worldIn, x, y, z) != 1) { + if (getAttachedReactors(worldIn, x, y, z) != 1) { worldIn.setBlock(x, y, z, Blocks.air); worldIn.spawnEntityInWorld(new EntityItem(worldIn, x + 0.5, y + 0.5, z + 0.5, new ItemStack(this, 1))); var worldclient = Minecraft.getMinecraft().theWorld; - worldclient.playAuxSFX(2001, x, y, z, Block.getIdFromBlock(this) + (worldclient.getBlockMetadata(x, y, z) << 12)); + worldclient + .playAuxSFX(2001, x, y, z, Block.getIdFromBlock(this) + (worldclient.getBlockMetadata(x, y, z) << 12)); } else { - ((TileReactorChamber)worldIn.getTileEntity(x, y, z)).setReactor(null); + ((TileReactorChamber) worldIn.getTileEntity(x, y, z)).setReactor(null); - for(var d : DirectionUtil.values()) { - if(d.getTileEntity(worldIn, x, y, z) instanceof TileReactorCore reactor) { - ((TileReactorChamber)worldIn.getTileEntity(x, y, z)).setReactor(reactor); + for (var d : DirectionUtil.values()) { + if (d.getTileEntity(worldIn, x, y, z) instanceof TileReactorCore reactor) { + ((TileReactorChamber) worldIn.getTileEntity(x, y, z)).setReactor(reactor); break; } } @@ -87,11 +88,12 @@ private void onBlocksChanged(World worldIn, int x, int y, int z) { } @Override - public boolean onBlockActivated(World worldIn, int x, int y, int z, EntityPlayer player, int side, float subX, float subY, float subZ) { - var reactor = ((TileReactorChamber)worldIn.getTileEntity(x, y, z)).getReactor(); + public boolean onBlockActivated(World worldIn, int x, int y, int z, EntityPlayer player, int side, float subX, + float subY, float subZ) { + var reactor = ((TileReactorChamber) worldIn.getTileEntity(x, y, z)).getReactor(); - if(reactor != null) { - if(!worldIn.isRemote) { + if (reactor != null) { + if (!worldIn.isRemote) { UIInfos.TILE_MODULAR_UI.open(player, worldIn, reactor.xCoord, reactor.yCoord, reactor.zCoord); } @@ -104,8 +106,8 @@ public boolean onBlockActivated(World worldIn, int x, int y, int z, EntityPlayer private static int getAttachedReactors(World worldIn, int x, int y, int z) { int reactorCount = 0; - for(var d : DirectionUtil.values()) { - if(d.getBlock(worldIn, x, y, z) == BlockList.REACTOR_CORE) { + for (var d : DirectionUtil.values()) { + if (d.getBlock(worldIn, x, y, z) == BlockList.REACTOR_CORE) { reactorCount++; } } diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/ReactorCore.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/ReactorCore.java index 983f39c..b60fb0d 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/ReactorCore.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/ReactorCore.java @@ -1,8 +1,5 @@ package com.recursive_pineapple.nuclear_horizons.reactors.blocks; -import com.gtnewhorizons.modularui.api.UIInfos; -import com.recursive_pineapple.nuclear_horizons.reactors.tile.TileReactorCore; - import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; @@ -11,8 +8,11 @@ import net.minecraft.util.IIcon; import net.minecraft.world.World; +import com.gtnewhorizons.modularui.api.UIInfos; +import com.recursive_pineapple.nuclear_horizons.reactors.tile.TileReactorCore; + public class ReactorCore extends BlockContainer { - + private IIcon iconTop, iconSideInactive, iconSideActive, iconBottom; public ReactorCore() { @@ -33,15 +33,15 @@ public void registerBlockIcons(IIconRegister reg) { @Override public IIcon getIcon(int side, int meta) { - if(side == 1) { + if (side == 1) { return iconTop; } - if(side == 0) { + if (side == 0) { return iconBottom; } - if(meta == 1) { + if (meta == 1) { return iconSideActive; } else { return iconSideInactive; @@ -54,8 +54,9 @@ public TileEntity createNewTileEntity(World world, int metadata) { } @Override - public boolean onBlockActivated(World worldIn, int x, int y, int z, EntityPlayer player, int side, float subX, float subY, float subZ) { - if(!worldIn.isRemote) { + public boolean onBlockActivated(World worldIn, int x, int y, int z, EntityPlayer player, int side, float subX, + float subY, float subZ) { + if (!worldIn.isRemote) { UIInfos.TILE_MODULAR_UI.open(player, worldIn, x, y, z); } @@ -64,6 +65,6 @@ public boolean onBlockActivated(World worldIn, int x, int y, int z, EntityPlayer @Override public void onBlockPreDestroy(World worldIn, int x, int y, int z, int meta) { - ((TileReactorCore)worldIn.getTileEntity(x, y, z)).dropInventory(); + ((TileReactorCore) worldIn.getTileEntity(x, y, z)).dropInventory(); } } diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/ReactorFluidPort.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/ReactorFluidPort.java index cfd653a..817aa43 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/ReactorFluidPort.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/ReactorFluidPort.java @@ -1,14 +1,14 @@ package com.recursive_pineapple.nuclear_horizons.reactors.blocks; -import com.recursive_pineapple.nuclear_horizons.reactors.tile.TileFluidPort; - import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; +import com.recursive_pineapple.nuclear_horizons.reactors.tile.TileFluidPort; + public class ReactorFluidPort extends BlockContainer { - + public ReactorFluidPort() { super(Material.rock); setBlockName(BlockList.REACTOR_FLUID_PORT_NAME); diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/ReactorRedstonePort.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/ReactorRedstonePort.java index 7ff84c9..1db4a06 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/ReactorRedstonePort.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/ReactorRedstonePort.java @@ -1,14 +1,15 @@ package com.recursive_pineapple.nuclear_horizons.reactors.blocks; -import com.recursive_pineapple.nuclear_horizons.reactors.tile.TileRedstonePort; - import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import com.recursive_pineapple.nuclear_horizons.reactors.tile.TileRedstonePort; + public class ReactorRedstonePort extends BlockContainer { + public ReactorRedstonePort() { super(Material.rock); setBlockName(BlockList.REACTOR_REDSTONE_PORT_NAME); @@ -32,6 +33,6 @@ public boolean hasComparatorInputOverride() { @Override public int getComparatorInputOverride(World worldIn, int x, int y, int z, int side) { - return ((TileRedstonePort)worldIn.getTileEntity(x, y, z)).isReactorActive() ? 15 : 0; + return ((TileRedstonePort) worldIn.getTileEntity(x, y, z)).isReactorActive() ? 15 : 0; } } diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/ReactorSimulator.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/ReactorSimulator.java index 89e8338..b532982 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/ReactorSimulator.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/ReactorSimulator.java @@ -1,15 +1,16 @@ package com.recursive_pineapple.nuclear_horizons.reactors.blocks; -import com.gtnewhorizons.modularui.api.UIInfos; -import com.recursive_pineapple.nuclear_horizons.reactors.tile.TileReactorSimulator; - import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; +import com.gtnewhorizons.modularui.api.UIInfos; +import com.recursive_pineapple.nuclear_horizons.reactors.tile.TileReactorSimulator; + public class ReactorSimulator extends BlockContainer { + protected ReactorSimulator() { super(Material.iron); @@ -23,8 +24,9 @@ public TileEntity createNewTileEntity(World worldIn, int meta) { } @Override - public boolean onBlockActivated(World worldIn, int x, int y, int z, EntityPlayer player, int side, float subX, float subY, float subZ) { - if(!worldIn.isRemote) { + public boolean onBlockActivated(World worldIn, int x, int y, int z, EntityPlayer player, int side, float subX, + float subY, float subZ) { + if (!worldIn.isRemote) { UIInfos.TILE_MODULAR_UI.open(player, worldIn, x, y, z); } diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/ReactorThermalSensor.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/ReactorThermalSensor.java index e336637..f6b4354 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/ReactorThermalSensor.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/blocks/ReactorThermalSensor.java @@ -1,19 +1,15 @@ package com.recursive_pineapple.nuclear_horizons.reactors.blocks; -import java.util.Random; - -import com.gtnewhorizons.modularui.api.UIInfos; -import com.recursive_pineapple.nuclear_horizons.reactors.tile.TileAccessHatch; -import com.recursive_pineapple.nuclear_horizons.reactors.tile.TileThermalSensor; - import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import com.gtnewhorizons.modularui.api.UIInfos; +import com.recursive_pineapple.nuclear_horizons.reactors.tile.TileThermalSensor; + public class ReactorThermalSensor extends BlockContainer { protected ReactorThermalSensor() { @@ -34,7 +30,7 @@ public boolean shouldCheckWeakPower(IBlockAccess world, int x, int y, int z, int @Override public int isProvidingWeakPower(IBlockAccess worldIn, int x, int y, int z, int side) { - var te = (TileThermalSensor)worldIn.getTileEntity(x, y, z); + var te = (TileThermalSensor) worldIn.getTileEntity(x, y, z); return te.isActive() ? 15 : 0; } @@ -43,10 +39,11 @@ public int isProvidingWeakPower(IBlockAccess worldIn, int x, int y, int z, int s public TileEntity createNewTileEntity(World worldIn, int meta) { return new TileThermalSensor(); } - + @Override - public boolean onBlockActivated(World worldIn, int x, int y, int z, EntityPlayer player, int side, float subX, float subY, float subZ) { - if(!worldIn.isRemote) { + public boolean onBlockActivated(World worldIn, int x, int y, int z, EntityPlayer player, int side, float subX, + float subY, float subZ) { + if (!worldIn.isRemote) { UIInfos.TILE_MODULAR_UI.open(player, worldIn, x, y, z); } diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/ComponentRegistry.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/ComponentRegistry.java index c07f073..83411c1 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/ComponentRegistry.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/ComponentRegistry.java @@ -9,7 +9,7 @@ import net.minecraft.item.ItemStack; public class ComponentRegistry { - + private static final HashMap adapterFactories = new HashMap<>(); public static void registerAdapter(Item item, IComponentAdapterFactory adapterFactory) { @@ -22,10 +22,11 @@ public static boolean isReactorItem(@Nonnull ItemStack itemStack) { return factory != null && factory.canAdaptItem(itemStack); } - public static @Nullable IComponentAdapter getAdapter(@Nonnull ItemStack itemStack, @Nonnull IReactorGrid reactor, int x, int y) { + public static @Nullable IComponentAdapter getAdapter(@Nonnull ItemStack itemStack, @Nonnull IReactorGrid reactor, + int x, int y) { IComponentAdapterFactory factory = adapterFactories.get(itemStack.getItem()); - if(factory != null && factory.canAdaptItem(itemStack)) { + if (factory != null && factory.canAdaptItem(itemStack)) { return factory.getAdapter(itemStack, reactor, x, y); } else { return null; diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/IComponentAdapter.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/IComponentAdapter.java index ff09433..1763742 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/IComponentAdapter.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/IComponentAdapter.java @@ -1,11 +1,13 @@ package com.recursive_pineapple.nuclear_horizons.reactors.components; -import com.recursive_pineapple.nuclear_horizons.reactors.tile.simulator.SimulationResult; - import net.minecraft.item.ItemStack; +import com.recursive_pineapple.nuclear_horizons.reactors.tile.simulator.SimulationResult; + public interface IComponentAdapter { + public int getX(); + public int getY(); public ItemStack getItemStack(); diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/IComponentAdapterFactory.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/IComponentAdapterFactory.java index e7148cf..1ed5e51 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/IComponentAdapterFactory.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/IComponentAdapterFactory.java @@ -5,9 +5,11 @@ import net.minecraft.item.ItemStack; public interface IComponentAdapterFactory { + public default boolean canAdaptItem(@Nonnull ItemStack itemStack) { return true; } - public @Nonnull IComponentAdapter getAdapter(@Nonnull ItemStack itemStack, @Nonnull IReactorGrid reactor, int x, int y); + public @Nonnull IComponentAdapter getAdapter(@Nonnull ItemStack itemStack, @Nonnull IReactorGrid reactor, int x, + int y); } diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/IReactorGrid.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/IReactorGrid.java index 6988c62..459d815 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/IReactorGrid.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/IReactorGrid.java @@ -5,18 +5,27 @@ import net.minecraft.item.ItemStack; public interface IReactorGrid { + public int getWidth(); + public int getHeight(); - + public @Nullable IComponentAdapter getComponent(int x, int y); + public @Nullable ItemStack getItem(int x, int y); + public void setItem(int x, int y, @Nullable ItemStack item); public boolean isActive(); + public int getHullHeat(); + public int getMaxHullHeat(); + public void setHullHeat(int newHeat); + public void addHullHeat(int delta); + public int addAirHeat(int delta); public void addEU(double eu); diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/InventoryDirection.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/InventoryDirection.java index ef0c4d0..7007c02 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/InventoryDirection.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/InventoryDirection.java @@ -1,13 +1,14 @@ package com.recursive_pineapple.nuclear_horizons.reactors.components; public enum InventoryDirection { + Up, Down, Left, Right; public int offsetX(int x) { - switch(this) { + switch (this) { case Up: case Down: { return x; @@ -25,7 +26,7 @@ public int offsetX(int x) { } public int offsetY(int y) { - switch(this) { + switch (this) { case Up: { return y - 1; } diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/ReactorConfig.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/ReactorConfig.java index ab1dd0f..0e78200 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/ReactorConfig.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/ReactorConfig.java @@ -1,6 +1,7 @@ package com.recursive_pineapple.nuclear_horizons.reactors.components; public class ReactorConfig { + public int maxTemperature; public double explosionRadiusMultiplier; } diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/adapters/FuelRodAdapter.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/adapters/FuelRodAdapter.java index 33bac83..d220138 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/adapters/FuelRodAdapter.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/adapters/FuelRodAdapter.java @@ -2,14 +2,14 @@ import java.util.ArrayList; +import net.minecraft.item.ItemStack; + import com.recursive_pineapple.nuclear_horizons.Config; import com.recursive_pineapple.nuclear_horizons.reactors.components.IComponentAdapter; import com.recursive_pineapple.nuclear_horizons.reactors.components.IReactorGrid; import com.recursive_pineapple.nuclear_horizons.reactors.components.InventoryDirection; import com.recursive_pineapple.nuclear_horizons.reactors.items.IBasicFuelRod; -import net.minecraft.item.ItemStack; - public class FuelRodAdapter implements IComponentAdapter { private final IReactorGrid reactor; @@ -42,11 +42,11 @@ public ItemStack getItemStack() { @Override public void onHeatTick() { - if(!reactor.isActive()) { + if (!reactor.isActive()) { return; } - if(fuelRod.getRemainingHealth(itemStack) <= 0) { + if (fuelRod.getRemainingHealth(itemStack) <= 0) { var product = fuelRod.getProduct(itemStack); reactor.setItem(x, y, product != null ? product.copy() : null); return; @@ -55,24 +55,26 @@ public void onHeatTick() { int pulses = this.getPulseCount(); int heat = (int) (fuelRod.getHeatMult(itemStack) * pulses * (pulses + 1) * Config.ROD_HU_MULTIPLIER); - if(fuelRod.isMox(itemStack) && reactor.isFluid() && (reactor.getHullHeat() / reactor.getMaxHullHeat()) >= 0.5) { + if (fuelRod.isMox(itemStack) && reactor.isFluid() + && (reactor.getHullHeat() / reactor.getMaxHullHeat()) >= 0.5) { heat *= 2; } var heatableNeighbours = this.getHeatableNeighbours(); - if(heatableNeighbours.isEmpty()) { + if (heatableNeighbours.isEmpty()) { reactor.addHullHeat(heat); } else { int rodCount = fuelRod.getRodCount(itemStack); int heatPerRod = heat / rodCount; - - for(int i = 0; i < heatableNeighbours.size(); i++) { + + for (int i = 0; i < heatableNeighbours.size(); i++) { int remainingNeighbours = heatableNeighbours.size() - i; int heatToTransfer = heatPerRod / remainingNeighbours; heatPerRod -= heatToTransfer; - heatPerRod += heatableNeighbours.get(i).addHeat(heatToTransfer * rodCount) / rodCount; + heatPerRod += heatableNeighbours.get(i) + .addHeat(heatToTransfer * rodCount) / rodCount; } reactor.addHullHeat(heatPerRod * rodCount); @@ -81,18 +83,18 @@ public void onHeatTick() { @Override public void onEnergyTick() { - if(!reactor.isActive()) { + if (!reactor.isActive()) { return; } - if(fuelRod.getRemainingHealth(itemStack) <= 0) { + if (fuelRod.getRemainingHealth(itemStack) <= 0) { return; } int pulses = this.getPulseCount(); double energy = fuelRod.getEnergyMult(itemStack) * pulses * Config.ROD_EU_MULTIPLIER; - if(fuelRod.isMox(itemStack)) { + if (fuelRod.isMox(itemStack)) { energy *= 1 + Config.MOX_EU_COEFFICIENT * reactor.getHullHeat() / reactor.getMaxHullHeat(); } @@ -113,17 +115,17 @@ public int getFuelRodCount() { private int getPulseCount() { int pulses = 1 + this.getFuelRodCount() / 2; - for(var dir : InventoryDirection.values()) { + for (var dir : InventoryDirection.values()) { int x2 = dir.offsetX(x); int y2 = dir.offsetY(y); - if(x2 < 0 || y2 < 0 || x2 >= reactor.getWidth() || y2 >= reactor.getHeight()) { + if (x2 < 0 || y2 < 0 || x2 >= reactor.getWidth() || y2 >= reactor.getHeight()) { continue; } var neighbour = reactor.getComponent(x2, y2); - if(neighbour != null && neighbour.reflectsNeutrons()) { + if (neighbour != null && neighbour.reflectsNeutrons()) { pulses++; } } @@ -134,17 +136,17 @@ private int getPulseCount() { private ArrayList getHeatableNeighbours() { ArrayList neighbours = new ArrayList<>(); - for(var dir : InventoryDirection.values()) { + for (var dir : InventoryDirection.values()) { int x2 = dir.offsetX(x); int y2 = dir.offsetY(y); - if(x2 < 0 || y2 < 0 || x2 >= reactor.getWidth() || y2 >= reactor.getHeight()) { + if (x2 < 0 || y2 < 0 || x2 >= reactor.getWidth() || y2 >= reactor.getHeight()) { continue; } var neighbour = reactor.getComponent(x2, y2); - if(neighbour != null && neighbour.containsHeat()) { + if (neighbour != null && neighbour.containsHeat()) { neighbours.add(neighbour); } } diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/adapters/HeatAbsorberAdapter.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/adapters/HeatAbsorberAdapter.java index cfda4d5..3f775bf 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/adapters/HeatAbsorberAdapter.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/adapters/HeatAbsorberAdapter.java @@ -1,12 +1,13 @@ package com.recursive_pineapple.nuclear_horizons.reactors.components.adapters; +import net.minecraft.item.ItemStack; + import com.recursive_pineapple.nuclear_horizons.reactors.components.IComponentAdapter; import com.recursive_pineapple.nuclear_horizons.reactors.components.IReactorGrid; import com.recursive_pineapple.nuclear_horizons.reactors.items.IHeatContainer; -import net.minecraft.item.ItemStack; - public class HeatAbsorberAdapter implements IComponentAdapter { + private final IReactorGrid reactor; private final int x, y; private final ItemStack itemStack; @@ -49,7 +50,7 @@ public int getStoredHeat() { public int addHeat(int delta) { int rejected = this.heatContainer.addHeat(itemStack, delta); - if(this.heatContainer.getRemainingHealth(itemStack) <= 0 && this.heatContainer.isConsumable(itemStack)) { + if (this.heatContainer.getRemainingHealth(itemStack) <= 0 && this.heatContainer.isConsumable(itemStack)) { this.reactor.setItem(x, y, null); } diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/adapters/HeatMoverAdapter.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/adapters/HeatMoverAdapter.java index 24f296e..f55ea6f 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/adapters/HeatMoverAdapter.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/adapters/HeatMoverAdapter.java @@ -1,15 +1,15 @@ package com.recursive_pineapple.nuclear_horizons.reactors.components.adapters; +import net.minecraft.item.ItemStack; + import com.recursive_pineapple.nuclear_horizons.reactors.components.IComponentAdapter; import com.recursive_pineapple.nuclear_horizons.reactors.components.IReactorGrid; import com.recursive_pineapple.nuclear_horizons.reactors.components.InventoryDirection; import com.recursive_pineapple.nuclear_horizons.reactors.items.IHeatMover; import com.recursive_pineapple.nuclear_horizons.reactors.tile.simulator.SimulationResult; -import net.minecraft.item.ItemStack; - public class HeatMoverAdapter implements IComponentAdapter { - + private final IReactorGrid reactor; private final int x, y; private final ItemStack itemStack; @@ -52,10 +52,10 @@ public int getStoredHeat() { public int addHeat(int delta) { int rejected = this.heatMover.addHeat(itemStack, delta); - if(this.heatMover.getRemainingHealth(itemStack) <= 0) { + if (this.heatMover.getRemainingHealth(itemStack) <= 0) { this.reactor.setItem(this.x, this.y, null); } - + return rejected; } @@ -73,47 +73,47 @@ public void modifySimulationResults(SimulationResult result, int componentIndex) public void onHeatTick() { int fromReactor = this.heatMover.getTransferFromReactor(itemStack, reactor); - if(fromReactor != 0) { + if (fromReactor != 0) { this.reactor.addHullHeat(-fromReactor); this.addHeat(fromReactor); } int toAir = this.heatMover.getTransferToAir(itemStack, reactor); - if(toAir != 0) { + if (toAir != 0) { this.addHeat(-toAir); int rejected = this.reactor.addAirHeat(toAir); - if(rejected != 0) { + if (rejected != 0) { this.addHeat(rejected); } } - for(var dir : InventoryDirection.values()) { + for (var dir : InventoryDirection.values()) { int x2 = dir.offsetX(x); int y2 = dir.offsetY(y); - if(x2 < 0 || y2 < 0 || x2 >= reactor.getWidth() || y2 >= reactor.getHeight()) { + if (x2 < 0 || y2 < 0 || x2 >= reactor.getWidth() || y2 >= reactor.getHeight()) { continue; } var neighbour = reactor.getComponent(x2, y2); - if(neighbour != null && neighbour.containsHeat()) { + if (neighbour != null && neighbour.containsHeat()) { int fromNeighbourToAir = this.heatMover.getTransferNeighbourToAir(itemStack, reactor, neighbour); - if(fromNeighbourToAir != 0) { + if (fromNeighbourToAir != 0) { neighbour.addHeat(-fromNeighbourToAir); int rejected = this.reactor.addAirHeat(fromNeighbourToAir); - if(rejected != 0) { + if (rejected != 0) { neighbour.addHeat(rejected); } } int fromNeighbour = this.heatMover.getTransferFromNeighbour(itemStack, reactor, neighbour); - - if(fromNeighbour != 0) { + + if (fromNeighbour != 0) { neighbour.addHeat(-fromNeighbour); this.addHeat(fromNeighbour); } diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/adapters/NeutronReflectorAdapter.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/adapters/NeutronReflectorAdapter.java index e58dec8..7920894 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/adapters/NeutronReflectorAdapter.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/components/adapters/NeutronReflectorAdapter.java @@ -1,12 +1,12 @@ package com.recursive_pineapple.nuclear_horizons.reactors.components.adapters; +import net.minecraft.item.ItemStack; + import com.recursive_pineapple.nuclear_horizons.reactors.components.IComponentAdapter; import com.recursive_pineapple.nuclear_horizons.reactors.components.IReactorGrid; import com.recursive_pineapple.nuclear_horizons.reactors.components.InventoryDirection; import com.recursive_pineapple.nuclear_horizons.reactors.items.INeutronReflector; -import net.minecraft.item.ItemStack; - public class NeutronReflectorAdapter implements IComponentAdapter { private final IReactorGrid reactor; @@ -14,7 +14,8 @@ public class NeutronReflectorAdapter implements IComponentAdapter { private final ItemStack itemStack; private final INeutronReflector reflector; - public NeutronReflectorAdapter(IReactorGrid reactor, int x, int y, ItemStack itemStack, INeutronReflector reflector) { + public NeutronReflectorAdapter(IReactorGrid reactor, int x, int y, ItemStack itemStack, + INeutronReflector reflector) { this.reactor = reactor; this.x = x; this.y = y; @@ -39,30 +40,30 @@ public ItemStack getItemStack() { @Override public void onHeatTick() { - if(!reactor.isActive()) { + if (!reactor.isActive()) { return; } int damage = 0; - for(var dir : InventoryDirection.values()) { + for (var dir : InventoryDirection.values()) { int x2 = dir.offsetX(x); int y2 = dir.offsetY(y); - if(x2 < 0 || y2 < 0 || x2 >= reactor.getWidth() || y2 >= reactor.getHeight()) { + if (x2 < 0 || y2 < 0 || x2 >= reactor.getWidth() || y2 >= reactor.getHeight()) { continue; } var neighbour = reactor.getComponent(x2, y2); - if(neighbour != null) { + if (neighbour != null) { damage += neighbour.getFuelRodCount(); } } reflector.applyDamage(itemStack, damage); - if(reflector.getRemainingHealth(itemStack) <= 0) { + if (reflector.getRemainingHealth(itemStack) <= 0) { reactor.setItem(x, y, null); } } diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/fluids/FluidList.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/fluids/FluidList.java index 97a518a..71c80e4 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/fluids/FluidList.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/fluids/FluidList.java @@ -1,34 +1,36 @@ package com.recursive_pineapple.nuclear_horizons.reactors.fluids; -import com.recursive_pineapple.nuclear_horizons.reactors.blocks.BlockList; - import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; +import com.recursive_pineapple.nuclear_horizons.reactors.blocks.BlockList; + public class FluidList { public static final String COOLANT_NAME = "nh_coolant"; public static final String HOT_COOLANT_NAME = "nh_hot_coolant"; - + public static Fluid COOLANT; public static Fluid HOT_COOLANT; public static void registerFluids() { COOLANT = new Fluid(COOLANT_NAME) { + public net.minecraft.util.IIcon getStillIcon() { return BlockList.COOLANT_BLOCK.stillIcon; }; - + public net.minecraft.util.IIcon getFlowingIcon() { return BlockList.COOLANT_BLOCK.flowingIcon; }; }; HOT_COOLANT = new Fluid(HOT_COOLANT_NAME) { + public net.minecraft.util.IIcon getStillIcon() { return BlockList.HOT_COOLANT_BLOCK.stillIcon; }; - + public net.minecraft.util.IIcon getFlowingIcon() { return BlockList.HOT_COOLANT_BLOCK.flowingIcon; }; diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/BasicFuelRodItem.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/BasicFuelRodItem.java index 3010d27..18ad2b0 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/BasicFuelRodItem.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/BasicFuelRodItem.java @@ -6,6 +6,11 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + import org.lwjgl.input.Keyboard; import com.recursive_pineapple.nuclear_horizons.Config; @@ -15,11 +20,6 @@ import com.recursive_pineapple.nuclear_horizons.reactors.components.IReactorGrid; import com.recursive_pineapple.nuclear_horizons.reactors.components.adapters.FuelRodAdapter; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - public class BasicFuelRodItem extends Item implements IBasicFuelRod, IComponentAdapterFactory { private final double energyMult; @@ -29,7 +29,8 @@ public class BasicFuelRodItem extends Item implements IBasicFuelRod, IComponentA private final int maxHealth; private ItemStack product; - public BasicFuelRodItem(String name, String textureName, double energyMult, double heatMult, int rodCount, boolean isMox, int maxHealth) { + public BasicFuelRodItem(String name, String textureName, double energyMult, double heatMult, int rodCount, + boolean isMox, int maxHealth) { setUnlocalizedName(name); setTextureName(NuclearHorizons.MODID + ":" + textureName); setMaxDamage(maxHealth); @@ -87,49 +88,46 @@ public boolean canAdaptItem(@Nonnull ItemStack itemStack) { } @Override - public @Nonnull IComponentAdapter getAdapter(@Nonnull ItemStack itemStack, @Nonnull IReactorGrid reactor, int x, int y) { + public @Nonnull IComponentAdapter getAdapter(@Nonnull ItemStack itemStack, @Nonnull IReactorGrid reactor, int x, + int y) { return new FuelRodAdapter(reactor, x, y, itemStack, this); } @Override - public void addInformation(ItemStack itemStack, EntityPlayer player, List desc, boolean advancedItemTooltips) { + public void addInformation(ItemStack itemStack, EntityPlayer player, List desc, + boolean advancedItemTooltips) { super.addInformation(itemStack, player, desc, advancedItemTooltips); - if(!advancedItemTooltips) { - desc.addAll(Arrays.asList( - I18n.format( - "nh_tooltip.durability", - this.getRemainingHealth(itemStack), this.maxHealth - ).split("\\n") - )); + if (!advancedItemTooltips) { + desc.addAll( + Arrays.asList( + I18n.format("nh_tooltip.durability", this.getRemainingHealth(itemStack), this.maxHealth) + .split("\\n"))); } - if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT)) { + if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT)) { desc.add(I18n.format("nh_tooltip.prelude")); - - desc.addAll(Arrays.asList( - I18n.format( - "nh_tooltip.fuel_rod.gen_stats", - (int)(this.heatMult * Config.ROD_HU_MULTIPLIER), - (int)(this.energyMult * Config.ROD_EU_MULTIPLIER), - 1 + this.rodCount / 2 - ).split("\\n") - )); - - if(this.isMox) { - desc.addAll(Arrays.asList( + + desc.addAll( + Arrays.asList( I18n.format( - "nh_tooltip.fuel_rod.mox_stats", - Config.MOX_EU_COEFFICIENT - ).split("\\n") - )); + "nh_tooltip.fuel_rod.gen_stats", + (int) (this.heatMult * Config.ROD_HU_MULTIPLIER), + (int) (this.energyMult * Config.ROD_EU_MULTIPLIER), + 1 + this.rodCount / 2) + .split("\\n"))); + + if (this.isMox) { + desc.addAll( + Arrays.asList( + I18n.format("nh_tooltip.fuel_rod.mox_stats", Config.MOX_EU_COEFFICIENT) + .split("\\n"))); } - desc.addAll(Arrays.asList( - I18n.format( - "nh_tooltip.fuel_rod.heat_epilogue" - ).split("\\n") - )); + desc.addAll( + Arrays.asList( + I18n.format("nh_tooltip.fuel_rod.heat_epilogue") + .split("\\n"))); } else { desc.add(I18n.format("nh_tooltip.more_info")); } diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/BasicHeatAbsorberItem.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/BasicHeatAbsorberItem.java index 0f720a5..efd7c8c 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/BasicHeatAbsorberItem.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/BasicHeatAbsorberItem.java @@ -4,19 +4,19 @@ import javax.annotation.Nonnull; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + import com.recursive_pineapple.nuclear_horizons.NuclearHorizons; import com.recursive_pineapple.nuclear_horizons.reactors.components.IComponentAdapter; import com.recursive_pineapple.nuclear_horizons.reactors.components.IComponentAdapterFactory; import com.recursive_pineapple.nuclear_horizons.reactors.components.IReactorGrid; import com.recursive_pineapple.nuclear_horizons.reactors.components.adapters.HeatAbsorberAdapter; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - public class BasicHeatAbsorberItem extends Item implements IHeatContainer, IComponentAdapterFactory { - + private final int maxHeat; private final boolean consumable; @@ -35,7 +35,8 @@ public boolean canAdaptItem(@Nonnull ItemStack itemStack) { } @Override - public @Nonnull IComponentAdapter getAdapter(@Nonnull ItemStack itemStack, @Nonnull IReactorGrid reactor, int x, int y) { + public @Nonnull IComponentAdapter getAdapter(@Nonnull ItemStack itemStack, @Nonnull IReactorGrid reactor, int x, + int y) { return new HeatAbsorberAdapter(reactor, x, y, itemStack, this); } @@ -67,9 +68,10 @@ public int getMaxHeat(@Nonnull ItemStack itemStack) { public boolean isConsumable(@Nonnull ItemStack itemStack) { return consumable; } - + @Override - public void addInformation(ItemStack itemStack, EntityPlayer player, List desc, boolean advancedItemTooltips) { + public void addInformation(ItemStack itemStack, EntityPlayer player, List desc, + boolean advancedItemTooltips) { super.addInformation(itemStack, player, desc, advancedItemTooltips); desc.add(I18n.format("nh_tooltip.durability", itemStack.getItemDamage(), this.maxHeat)); diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/BasicHeatExchangerItem.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/BasicHeatExchangerItem.java index 1e5a7d9..d5e10dd 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/BasicHeatExchangerItem.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/BasicHeatExchangerItem.java @@ -4,6 +4,11 @@ import javax.annotation.Nonnull; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + import org.lwjgl.input.Keyboard; import com.recursive_pineapple.nuclear_horizons.NuclearHorizons; @@ -12,18 +17,14 @@ import com.recursive_pineapple.nuclear_horizons.reactors.components.IReactorGrid; import com.recursive_pineapple.nuclear_horizons.reactors.components.adapters.HeatMoverAdapter; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - public class BasicHeatExchangerItem extends Item implements IHeatMover, IComponentAdapterFactory { - + private final int maxHeatFromReactor; private final int maxHeatFromNeighbour; private final int maxHeat; - public BasicHeatExchangerItem(String name, String textureName, int maxHeatFromReactor, int maxHeatFromNeighbour, int maxHeat) { + public BasicHeatExchangerItem(String name, String textureName, int maxHeatFromReactor, int maxHeatFromNeighbour, + int maxHeat) { setUnlocalizedName(name); setTextureName(NuclearHorizons.MODID + ":" + textureName); setMaxDamage(maxHeat); @@ -54,16 +55,20 @@ public int getMaxHeat(@Nonnull ItemStack itemStack) { @Override public int getTransferFromReactor(@Nonnull ItemStack itemStack, @Nonnull IReactorGrid reactor) { - return HeatUtils.getTransferAmount(reactor.getHullHeat(), this.getStoredHeat(itemStack), this.maxHeatFromReactor); + return HeatUtils + .getTransferAmount(reactor.getHullHeat(), this.getStoredHeat(itemStack), this.maxHeatFromReactor); } - + @Override - public int getTransferFromNeighbour(@Nonnull ItemStack itemStack, @Nonnull IReactorGrid reactor, @Nonnull IComponentAdapter neighbour) { - return HeatUtils.getTransferAmount(neighbour.getStoredHeat(), this.getStoredHeat(itemStack), this.maxHeatFromNeighbour); + public int getTransferFromNeighbour(@Nonnull ItemStack itemStack, @Nonnull IReactorGrid reactor, + @Nonnull IComponentAdapter neighbour) { + return HeatUtils + .getTransferAmount(neighbour.getStoredHeat(), this.getStoredHeat(itemStack), this.maxHeatFromNeighbour); } @Override - public int getTransferNeighbourToAir(@Nonnull ItemStack itemStack, @Nonnull IReactorGrid reactor, @Nonnull IComponentAdapter neighbour) { + public int getTransferNeighbourToAir(@Nonnull ItemStack itemStack, @Nonnull IReactorGrid reactor, + @Nonnull IComponentAdapter neighbour) { return 0; } @@ -78,26 +83,28 @@ public boolean canAdaptItem(@Nonnull ItemStack itemStack) { } @Override - public @Nonnull IComponentAdapter getAdapter(@Nonnull ItemStack itemStack, @Nonnull IReactorGrid reactor, int x, int y) { + public @Nonnull IComponentAdapter getAdapter(@Nonnull ItemStack itemStack, @Nonnull IReactorGrid reactor, int x, + int y) { return new HeatMoverAdapter(reactor, x, y, itemStack, this); } @Override - public void addInformation(ItemStack itemStack, EntityPlayer player, List desc, boolean advancedItemTooltips) { + public void addInformation(ItemStack itemStack, EntityPlayer player, List desc, + boolean advancedItemTooltips) { super.addInformation(itemStack, player, desc, advancedItemTooltips); - if(this.maxHeat > 0) { + if (this.maxHeat > 0) { desc.add(I18n.format("nh_tooltip.durability", this.getStoredHeat(itemStack), this.maxHeat)); } - if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT)) { + if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT)) { desc.add(I18n.format("nh_tooltip.prelude")); - - if(this.maxHeatFromReactor > 0) { + + if (this.maxHeatFromReactor > 0) { desc.add(I18n.format("nh_tooltip.mover.reactor_xfer", this.maxHeatFromReactor)); } - if(this.maxHeatFromNeighbour > 0) { + if (this.maxHeatFromNeighbour > 0) { desc.add(I18n.format("nh_tooltip.exchanger.comp_xfer", this.maxHeatFromNeighbour)); } } else { diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/BasicHeatVentItem.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/BasicHeatVentItem.java index 670ea4c..589f22c 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/BasicHeatVentItem.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/BasicHeatVentItem.java @@ -4,6 +4,11 @@ import javax.annotation.Nonnull; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + import org.lwjgl.input.Keyboard; import com.recursive_pineapple.nuclear_horizons.NuclearHorizons; @@ -12,19 +17,15 @@ import com.recursive_pineapple.nuclear_horizons.reactors.components.IReactorGrid; import com.recursive_pineapple.nuclear_horizons.reactors.components.adapters.HeatMoverAdapter; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - public class BasicHeatVentItem extends Item implements IHeatMover, IComponentAdapterFactory { - + private final int maxHeatFromReactor; private final int maxNeighbourToAir; private final int maxHeatToAir; private final int maxHeat; - public BasicHeatVentItem(String name, String textureName, int maxHeatFromReactor, int maxNeighbourToAir, int maxHeatToAir, int maxHeat) { + public BasicHeatVentItem(String name, String textureName, int maxHeatFromReactor, int maxNeighbourToAir, + int maxHeatToAir, int maxHeat) { setUnlocalizedName(name); setTextureName(NuclearHorizons.MODID + ":" + textureName); setMaxDamage(maxHeat); @@ -58,14 +59,16 @@ public int getMaxHeat(@Nonnull ItemStack itemStack) { public int getTransferFromReactor(@Nonnull ItemStack itemStack, @Nonnull IReactorGrid reactor) { return Math.min(this.maxHeatFromReactor, reactor.getHullHeat()); } - + @Override - public int getTransferFromNeighbour(@Nonnull ItemStack itemStack, @Nonnull IReactorGrid reactor, @Nonnull IComponentAdapter neighbour) { + public int getTransferFromNeighbour(@Nonnull ItemStack itemStack, @Nonnull IReactorGrid reactor, + @Nonnull IComponentAdapter neighbour) { return 0; } @Override - public int getTransferNeighbourToAir(@Nonnull ItemStack itemStack, @Nonnull IReactorGrid reactor, @Nonnull IComponentAdapter neighbour) { + public int getTransferNeighbourToAir(@Nonnull ItemStack itemStack, @Nonnull IReactorGrid reactor, + @Nonnull IComponentAdapter neighbour) { return Math.min(this.maxNeighbourToAir, neighbour.getStoredHeat()); } @@ -81,7 +84,7 @@ public boolean canAdaptItem(@Nonnull ItemStack itemStack) { @Override public int getRemainingHealth(@Nonnull ItemStack itemStack) { - if(this.getMaxHeat(itemStack) > 0) { + if (this.getMaxHeat(itemStack) > 0) { return this.getMaxHeat(itemStack) - this.getStoredHeat(itemStack); } else { return 1; @@ -89,34 +92,36 @@ public int getRemainingHealth(@Nonnull ItemStack itemStack) { } @Override - public @Nonnull IComponentAdapter getAdapter(@Nonnull ItemStack itemStack, @Nonnull IReactorGrid reactor, int x, int y) { + public @Nonnull IComponentAdapter getAdapter(@Nonnull ItemStack itemStack, @Nonnull IReactorGrid reactor, int x, + int y) { return new HeatMoverAdapter(reactor, x, y, itemStack, this); } @Override - public void addInformation(ItemStack itemStack, EntityPlayer player, List desc, boolean advancedItemTooltips) { + public void addInformation(ItemStack itemStack, EntityPlayer player, List desc, + boolean advancedItemTooltips) { super.addInformation(itemStack, player, desc, advancedItemTooltips); - if(this.maxHeat > 0) { + if (this.maxHeat > 0) { desc.add(I18n.format("nh_tooltip.stored_heat", this.getStoredHeat(itemStack), this.maxHeat)); } - if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT)) { + if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT)) { desc.add(I18n.format("nh_tooltip.prelude")); - - if(this.maxHeatFromReactor > 0) { + + if (this.maxHeatFromReactor > 0) { desc.add(I18n.format("nh_tooltip.mover.reactor_xfer", this.maxHeatFromReactor)); } - if(this.maxHeatToAir > 0) { + if (this.maxHeatToAir > 0) { desc.add(I18n.format("nh_tooltip.vent.void_self", this.maxHeatToAir)); } - if(this.maxNeighbourToAir > 0) { + if (this.maxNeighbourToAir > 0) { desc.add(I18n.format("nh_tooltip.vent.void_adj", this.maxNeighbourToAir)); } - if(this.maxHeatToAir > 0) { + if (this.maxHeatToAir > 0) { desc.add(I18n.format("nh_tooltip.vent.fluid_disclaimer")); } } else { diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/BasicNeutronReflectorItem.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/BasicNeutronReflectorItem.java index 8518804..a73732f 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/BasicNeutronReflectorItem.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/BasicNeutronReflectorItem.java @@ -4,22 +4,19 @@ import javax.annotation.Nonnull; -import org.lwjgl.input.Keyboard; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; -import com.recursive_pineapple.nuclear_horizons.Config; import com.recursive_pineapple.nuclear_horizons.NuclearHorizons; import com.recursive_pineapple.nuclear_horizons.reactors.components.IComponentAdapter; import com.recursive_pineapple.nuclear_horizons.reactors.components.IComponentAdapterFactory; import com.recursive_pineapple.nuclear_horizons.reactors.components.IReactorGrid; import com.recursive_pineapple.nuclear_horizons.reactors.components.adapters.NeutronReflectorAdapter; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - public class BasicNeutronReflectorItem extends Item implements INeutronReflector, IComponentAdapterFactory { - + private final int maxHealth; public BasicNeutronReflectorItem(String name, String textureName) { @@ -43,13 +40,14 @@ public boolean canAdaptItem(@Nonnull ItemStack itemStack) { } @Override - public @Nonnull IComponentAdapter getAdapter(@Nonnull ItemStack itemStack, @Nonnull IReactorGrid reactor, int x, int y) { + public @Nonnull IComponentAdapter getAdapter(@Nonnull ItemStack itemStack, @Nonnull IReactorGrid reactor, int x, + int y) { return new NeutronReflectorAdapter(reactor, x, y, itemStack, this); } @Override public int getRemainingHealth(@Nonnull ItemStack itemStack) { - if(this.maxHealth == 0) { + if (this.maxHealth == 0) { return 1; } else { return this.maxHealth - itemStack.getItemDamage(); @@ -63,17 +61,18 @@ public boolean canReflectNeutrons(@Nonnull ItemStack itemStack) { @Override public void applyDamage(@Nonnull ItemStack itemStack, int damage) { - if(this.maxHealth > 0) { + if (this.maxHealth > 0) { itemStack.setItemDamage(itemStack.getItemDamage() + damage); } } @Override - public void addInformation(ItemStack itemStack, EntityPlayer player, List desc, boolean advancedItemTooltips) { + public void addInformation(ItemStack itemStack, EntityPlayer player, List desc, + boolean advancedItemTooltips) { super.addInformation(itemStack, player, desc, advancedItemTooltips); - if(this.maxHealth > 0) { - if(!advancedItemTooltips || itemStack.getItemDamage() == 0) { + if (this.maxHealth > 0) { + if (!advancedItemTooltips || itemStack.getItemDamage() == 0) { desc.add(I18n.format("nh_tooltip.durability", this.getRemainingHealth(itemStack), this.maxHealth)); } } else { diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/HeatUtils.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/HeatUtils.java index b43925f..8f6ebc7 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/HeatUtils.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/HeatUtils.java @@ -1,8 +1,8 @@ package com.recursive_pineapple.nuclear_horizons.reactors.items; public class HeatUtils { - - private HeatUtils() { } + + private HeatUtils() {} public static int getTransferAmount(int sourceHeat, int destHeat, int max) { // positive = source > dest: pull, negative = source < dest: push @@ -11,7 +11,7 @@ public static int getTransferAmount(int sourceHeat, int destHeat, int max) { int signum = delta < 0 ? -1 : 1; delta *= signum; - if(delta > max) { + if (delta > max) { return signum * max; } else { int balance = delta / 2; @@ -25,7 +25,7 @@ public static int getConsumableHeat(int maxHeat, int currentHeat, int addedHeat) // 50 stored - 75 removed = 50 removed // 25 out of 50 + 50 added = 25 added - if(addedHeat > 0) { + if (addedHeat > 0) { int remaining = maxHeat - currentHeat; return Math.min(addedHeat, remaining); diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/IBasicFuelRod.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/IBasicFuelRod.java index 321afe9..41f1b24 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/IBasicFuelRod.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/IBasicFuelRod.java @@ -6,13 +6,17 @@ import net.minecraft.item.ItemStack; public interface IBasicFuelRod { - + public double getEnergyMult(@Nonnull ItemStack itemStack); + public double getHeatMult(@Nonnull ItemStack itemStack); + public int getRodCount(@Nonnull ItemStack itemStack); + public boolean isMox(@Nonnull ItemStack itemStack); public int getRemainingHealth(@Nonnull ItemStack itemStack); + public void applyDamage(@Nonnull ItemStack itemStack, int damage); public @Nullable ItemStack getProduct(@Nonnull ItemStack itemStack); diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/IHeatContainer.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/IHeatContainer.java index 975e1da..4fa2e56 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/IHeatContainer.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/IHeatContainer.java @@ -5,12 +5,17 @@ import net.minecraft.item.ItemStack; public interface IHeatContainer { + public int getStoredHeat(@Nonnull ItemStack itemStack); + public default int getRemainingHealth(@Nonnull ItemStack itemStack) { return this.getMaxHeat(itemStack) - this.getStoredHeat(itemStack); } + public int addHeat(@Nonnull ItemStack itemStack, int heat); + public int getMaxHeat(@Nonnull ItemStack itemStack); + public default boolean isConsumable(@Nonnull ItemStack itemStack) { return true; } diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/IHeatMover.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/IHeatMover.java index 3caf892..ff1cd17 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/IHeatMover.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/IHeatMover.java @@ -2,14 +2,20 @@ import javax.annotation.Nonnull; +import net.minecraft.item.ItemStack; + import com.recursive_pineapple.nuclear_horizons.reactors.components.IComponentAdapter; import com.recursive_pineapple.nuclear_horizons.reactors.components.IReactorGrid; -import net.minecraft.item.ItemStack; - public interface IHeatMover extends IHeatContainer { + public int getTransferFromReactor(@Nonnull ItemStack itemStack, @Nonnull IReactorGrid reactor); - public int getTransferFromNeighbour(@Nonnull ItemStack itemStack, @Nonnull IReactorGrid reactor, @Nonnull IComponentAdapter neighbour); - public int getTransferNeighbourToAir(@Nonnull ItemStack itemStack, @Nonnull IReactorGrid reactor, @Nonnull IComponentAdapter neighbour); + + public int getTransferFromNeighbour(@Nonnull ItemStack itemStack, @Nonnull IReactorGrid reactor, + @Nonnull IComponentAdapter neighbour); + + public int getTransferNeighbourToAir(@Nonnull ItemStack itemStack, @Nonnull IReactorGrid reactor, + @Nonnull IComponentAdapter neighbour); + public int getTransferToAir(@Nonnull ItemStack itemStack, @Nonnull IReactorGrid reactor); } diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/INeutronReflector.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/INeutronReflector.java index 700ff83..29a091a 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/INeutronReflector.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/INeutronReflector.java @@ -5,7 +5,9 @@ import net.minecraft.item.ItemStack; public interface INeutronReflector { + public int getRemainingHealth(@Nonnull ItemStack itemStack); + public void applyDamage(@Nonnull ItemStack itemStack, int damage); public boolean canReflectNeutrons(@Nonnull ItemStack itemStack); diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/ItemList.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/ItemList.java index 44ba76f..38d00fa 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/ItemList.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/ItemList.java @@ -5,94 +5,155 @@ import cpw.mods.fml.common.registry.GameRegistry; public class ItemList { - + public static final BasicFuelRodItem URANIUM_1X_ROD = new BasicFuelRodItem( - "fuelRodUranium", "reactorUraniumSimple", - 100.0, 2.0, 1, false, 20_000 - ); + "fuelRodUranium", + "reactorUraniumSimple", + 100.0, + 2.0, + 1, + false, + 20_000); public static final BasicFuelRodItem URANIUM_2X_ROD = new BasicFuelRodItem( - "dualFuelRodUranium", "reactorUraniumDual", - 200.0, 4.0, 2, false, 20_000 - ); + "dualFuelRodUranium", + "reactorUraniumDual", + 200.0, + 4.0, + 2, + false, + 20_000); public static final BasicFuelRodItem URANIUM_4X_ROD = new BasicFuelRodItem( - "quadFuelRodUranium", "reactorUraniumQuad", - 400.0, 8.0, 4, false, 20_000 - ); + "quadFuelRodUranium", + "reactorUraniumQuad", + 400.0, + 8.0, + 4, + false, + 20_000); public static final BasicFuelRodItem MOX_1X_ROD = new BasicFuelRodItem( - "fuelRodMOX", "reactorMOXSimple", - 100.0, 2.0, 1, true, 10_000 - ); + "fuelRodMOX", + "reactorMOXSimple", + 100.0, + 2.0, + 1, + true, + 10_000); public static final BasicFuelRodItem MOX_2X_ROD = new BasicFuelRodItem( - "dualFuelRodMOX", "reactorMOXDual", - 200.0, 4.0, 2, true, 10_000 - ); + "dualFuelRodMOX", + "reactorMOXDual", + 200.0, + 4.0, + 2, + true, + 10_000); public static final BasicFuelRodItem MOX_4X_ROD = new BasicFuelRodItem( - "quadFuelRodMOX", "reactorMOXQuad", - 400.0, 8.0, 4, true, 10_000 - ); + "quadFuelRodMOX", + "reactorMOXQuad", + 400.0, + 8.0, + 4, + true, + 10_000); public static final BasicHeatVentItem BASIC_HEAT_VENT = new BasicHeatVentItem( - "heatVent", "reactorVent", - 0, 0, 6, 1000 - ); + "heatVent", + "reactorVent", + 0, + 0, + 6, + 1000); public static final BasicHeatVentItem ADVANCED_HEAT_VENT = new BasicHeatVentItem( - "advancedHeatVent", "reactorVentDiamond", - 0, 0, 12, 1000 - ); + "advancedHeatVent", + "reactorVentDiamond", + 0, + 0, + 12, + 1000); public static final BasicHeatVentItem REACTOR_HEAT_VENT = new BasicHeatVentItem( - "reactorHeatVent", "reactorVentCore", - 5, 0, 5, 1000 - ); + "reactorHeatVent", + "reactorVentCore", + 5, + 0, + 5, + 1000); public static final BasicHeatVentItem COMPONENT_HEAT_VENT = new BasicHeatVentItem( - "componentHeatVent", "reactorVentSpread", - 0, 4, 0, 0 - ); + "componentHeatVent", + "reactorVentSpread", + 0, + 4, + 0, + 0); public static final BasicHeatVentItem OVERCLOCKED_HEAT_VENT = new BasicHeatVentItem( - "overclockedHeatVent", "reactorVentGold", - 36, 0, 20, 1000 - ); + "overclockedHeatVent", + "reactorVentGold", + 36, + 0, + 20, + 1000); public static final BasicHeatExchangerItem BASIC_HEAT_EXCHANGER = new BasicHeatExchangerItem( - "heatExchanger", "reactorHeatSwitch", - 4, 12, 2500 - ); + "heatExchanger", + "reactorHeatSwitch", + 4, + 12, + 2500); public static final BasicHeatExchangerItem ADVANCED_HEAT_EXCHANGER = new BasicHeatExchangerItem( - "advancedHeatExchanger", "reactorHeatSwitchDiamond", - 8, 24, 10_000 - ); + "advancedHeatExchanger", + "reactorHeatSwitchDiamond", + 8, + 24, + 10_000); public static final BasicHeatExchangerItem REACTOR_HEAT_EXCHANGER = new BasicHeatExchangerItem( - "coreHeatExchanger", "reactorHeatSwitchCore", - 72, 0, 5000 - ); + "coreHeatExchanger", + "reactorHeatSwitchCore", + 72, + 0, + 5000); public static final BasicHeatExchangerItem COMPONENT_HEAT_EXCHANGER = new BasicHeatExchangerItem( - "componentHeatExchanger", "reactorHeatSwitchSpread", - 0, 36, 5000 - ); + "componentHeatExchanger", + "reactorHeatSwitchSpread", + 0, + 36, + 5000); public static final BasicHeatAbsorberItem COOLANT_CELL_10k = new BasicHeatAbsorberItem( - "coolantCell10k", "reactorCoolantSimple", 10_000, true - ); + "coolantCell10k", + "reactorCoolantSimple", + 10_000, + true); public static final BasicHeatAbsorberItem COOLANT_CELL_30k = new BasicHeatAbsorberItem( - "coolantCell30k", "reactorCoolantTriple", 30_000, true - ); + "coolantCell30k", + "reactorCoolantTriple", + 30_000, + true); public static final BasicHeatAbsorberItem COOLANT_CELL_60k = new BasicHeatAbsorberItem( - "coolantCell60k", "reactorCoolantSix", 60_000, true - ); + "coolantCell60k", + "reactorCoolantSix", + 60_000, + true); public static final BasicHeatAbsorberItem RSH_CONDENSATOR = new BasicHeatAbsorberItem( - "rshCondensator", "reactorCondensator", 20_000, false - ); + "rshCondensator", + "reactorCondensator", + 20_000, + false); public static final BasicHeatAbsorberItem LZH_CONDENSATOR = new BasicHeatAbsorberItem( - "lzhCondensator", "reactorCondensatorLap", 100_000, false - ); + "lzhCondensator", + "reactorCondensatorLap", + 100_000, + false); public static final BasicNeutronReflectorItem NEUTRON_REFLECTOR = new BasicNeutronReflectorItem( - "neutronReflector", "reactorReflector", 30_000 - ); + "neutronReflector", + "reactorReflector", + 30_000); public static final BasicNeutronReflectorItem THICK_NEUTRON_REFLECTOR = new BasicNeutronReflectorItem( - "thickNeutronReflector", "reactorReflectorThick", 120_000 - ); - public static final BasicNeutronReflectorItem IRIDIUM_NEUTRON_REFLECTOR = new BasicNeutronReflectorItem("iridiumNeutronReflector", "gt.neutronreflector"); + "thickNeutronReflector", + "reactorReflectorThick", + 120_000); + public static final BasicNeutronReflectorItem IRIDIUM_NEUTRON_REFLECTOR = new BasicNeutronReflectorItem( + "iridiumNeutronReflector", + "gt.neutronreflector"); public static void registerItems() { register(URANIUM_1X_ROD); @@ -126,27 +187,42 @@ public static void registerItems() { } private static void register(BasicFuelRodItem fuelRod) { - GameRegistry.registerItem(fuelRod, fuelRod.getUnlocalizedName().substring("item.".length())); + GameRegistry.registerItem( + fuelRod, + fuelRod.getUnlocalizedName() + .substring("item.".length())); ComponentRegistry.registerAdapter(fuelRod, fuelRod); } private static void register(BasicHeatVentItem heatVent) { - GameRegistry.registerItem(heatVent, heatVent.getUnlocalizedName().substring("item.".length())); + GameRegistry.registerItem( + heatVent, + heatVent.getUnlocalizedName() + .substring("item.".length())); ComponentRegistry.registerAdapter(heatVent, heatVent); } private static void register(BasicHeatExchangerItem heatExchanger) { - GameRegistry.registerItem(heatExchanger, heatExchanger.getUnlocalizedName().substring("item.".length())); + GameRegistry.registerItem( + heatExchanger, + heatExchanger.getUnlocalizedName() + .substring("item.".length())); ComponentRegistry.registerAdapter(heatExchanger, heatExchanger); } private static void register(BasicHeatAbsorberItem heatAbsorber) { - GameRegistry.registerItem(heatAbsorber, heatAbsorber.getUnlocalizedName().substring("item.".length())); + GameRegistry.registerItem( + heatAbsorber, + heatAbsorber.getUnlocalizedName() + .substring("item.".length())); ComponentRegistry.registerAdapter(heatAbsorber, heatAbsorber); } private static void register(BasicNeutronReflectorItem heatAbsorber) { - GameRegistry.registerItem(heatAbsorber, heatAbsorber.getUnlocalizedName().substring("item.".length())); + GameRegistry.registerItem( + heatAbsorber, + heatAbsorber.getUnlocalizedName() + .substring("item.".length())); ComponentRegistry.registerAdapter(heatAbsorber, heatAbsorber); } } diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/IReactorBlock.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/IReactorBlock.java index 358fe50..53b4f38 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/IReactorBlock.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/IReactorBlock.java @@ -5,7 +5,7 @@ import com.recursive_pineapple.nuclear_horizons.reactors.components.IReactorGrid; public interface IReactorBlock { - + public @Nullable TileReactorCore getReactor(); public void setReactor(TileReactorCore reactor); diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/IUpdateableTileEntity.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/IUpdateableTileEntity.java index 055a7c6..3a2c92a 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/IUpdateableTileEntity.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/IUpdateableTileEntity.java @@ -3,6 +3,8 @@ import net.minecraft.nbt.NBTTagCompound; public interface IUpdateableTileEntity { + public NBTTagCompound getNetworkUpdateData(); + public void onNetworkUpdate(NBTTagCompound data); } diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileAccessHatch.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileAccessHatch.java index 7d2dd87..4450722 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileAccessHatch.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileAccessHatch.java @@ -2,8 +2,6 @@ import javax.annotation.Nullable; -import com.recursive_pineapple.nuclear_horizons.reactors.blocks.BlockList; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; @@ -13,22 +11,26 @@ import net.minecraft.network.play.server.S35PacketUpdateTileEntity; import net.minecraft.tileentity.TileEntity; +import com.recursive_pineapple.nuclear_horizons.reactors.blocks.BlockList; + public class TileAccessHatch extends TileEntity implements IInventory, IReactorBlock { public int reactorRelX, reactorRelY, reactorRelZ; @Override public @Nullable TileReactorCore getReactor() { - if(worldObj.getTileEntity(xCoord + reactorRelX, yCoord + reactorRelY, zCoord + reactorRelZ) instanceof TileReactorCore reactor) { + // spotless:off + if (worldObj.getTileEntity(xCoord + reactorRelX, yCoord + reactorRelY, zCoord + reactorRelZ) instanceof TileReactorCore reactor) { return reactor; } else { return null; } + // spotless:on } @Override public void setReactor(TileReactorCore reactor) { - if(getReactor() != reactor) { + if (getReactor() != reactor) { this.reactorRelX = reactor.xCoord - xCoord; this.reactorRelY = reactor.yCoord - yCoord; this.reactorRelZ = reactor.zCoord - zCoord; @@ -72,7 +74,7 @@ public void writeToNBT(NBTTagCompound compound) { public void readFromNBT(NBTTagCompound compound) { super.readFromNBT(compound); - switch(compound.getInteger("version")) { + switch (compound.getInteger("version")) { case 1: { this.reactorRelX = compound.getInteger("reactorRelX"); this.reactorRelY = compound.getInteger("reactorRelY"); @@ -86,7 +88,7 @@ public void readFromNBT(NBTTagCompound compound) { public int getSizeInventory() { var reactor = getReactor(); - if(reactor != null) { + if (reactor != null) { return reactor.getSizeInventory(); } else { return 0; @@ -97,7 +99,7 @@ public int getSizeInventory() { public ItemStack getStackInSlot(int slotIn) { var reactor = getReactor(); - if(reactor != null) { + if (reactor != null) { return reactor.getStackInSlot(slotIn); } else { return null; @@ -108,7 +110,7 @@ public ItemStack getStackInSlot(int slotIn) { public ItemStack decrStackSize(int index, int count) { var reactor = getReactor(); - if(reactor != null) { + if (reactor != null) { return reactor.decrStackSize(index, count); } else { return null; @@ -119,7 +121,7 @@ public ItemStack decrStackSize(int index, int count) { public ItemStack getStackInSlotOnClosing(int index) { var reactor = getReactor(); - if(reactor != null) { + if (reactor != null) { return reactor.getStackInSlotOnClosing(index); } else { return null; @@ -130,7 +132,7 @@ public ItemStack getStackInSlotOnClosing(int index) { public void setInventorySlotContents(int index, ItemStack stack) { var reactor = getReactor(); - if(reactor != null) { + if (reactor != null) { reactor.setInventorySlotContents(index, stack);; } } @@ -149,7 +151,7 @@ public boolean hasCustomInventoryName() { public int getInventoryStackLimit() { var reactor = getReactor(); - if(reactor != null) { + if (reactor != null) { return reactor.getInventoryStackLimit(); } else { return 0; @@ -160,7 +162,7 @@ public int getInventoryStackLimit() { public boolean isUseableByPlayer(EntityPlayer player) { var reactor = getReactor(); - if(reactor != null) { + if (reactor != null) { return reactor.isUseableByPlayer(player); } else { return false; @@ -171,7 +173,7 @@ public boolean isUseableByPlayer(EntityPlayer player) { public void openInventory() { var reactor = getReactor(); - if(reactor != null) { + if (reactor != null) { reactor.openInventory(); } } @@ -180,7 +182,7 @@ public void openInventory() { public void closeInventory() { var reactor = getReactor(); - if(reactor != null) { + if (reactor != null) { reactor.closeInventory(); } } @@ -189,7 +191,7 @@ public void closeInventory() { public boolean isItemValidForSlot(int index, ItemStack stack) { var reactor = getReactor(); - if(reactor != null) { + if (reactor != null) { return reactor.isItemValidForSlot(index, stack); } else { return false; diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileEntityUpdater.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileEntityUpdater.java index ae4253b..7123716 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileEntityUpdater.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileEntityUpdater.java @@ -4,25 +4,21 @@ import java.util.List; import java.util.Objects; import java.util.function.BiConsumer; -import java.util.function.Consumer; - -import com.recursive_pineapple.nuclear_horizons.networking.PacketDispatcher; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; public class TileEntityUpdater { - + private static final HashMap, List> FIELD_CACHE = new HashMap<>(); private final TileEntity te; private final List fields; - - private NBTTagCompound sentData; + private NBTTagCompound sentData; public TileEntityUpdater(TileEntity te) { - if(!IUpdateableTileEntity.class.isAssignableFrom(te.getClass())) { + if (!IUpdateableTileEntity.class.isAssignableFrom(te.getClass())) { throw new IllegalArgumentException("te"); } @@ -33,19 +29,19 @@ public TileEntityUpdater(TileEntity te) { public void pollForUpdates() { var pending = this.getNetworkUpdateData(); - if(!Objects.equals(pending, sentData)) { - + if (!Objects.equals(pending, sentData)) { + } } public void onNetworkUpdate(NBTTagCompound data) { - + } public NBTTagCompound getNetworkUpdateData() { NBTTagCompound data = new NBTTagCompound(); - for(var field : fields) { + for (var field : fields) { } @@ -57,6 +53,7 @@ private static List discoverFields(Class } private static class TileEntityField { + public String name; public BiConsumer reader, writer; } diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileFluidPort.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileFluidPort.java index 78d2521..ff2ca07 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileFluidPort.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileFluidPort.java @@ -2,8 +2,6 @@ import javax.annotation.Nullable; -import com.recursive_pineapple.nuclear_horizons.reactors.fluids.FluidList; - import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.NetworkManager; import net.minecraft.network.Packet; @@ -15,22 +13,26 @@ import net.minecraftforge.fluids.FluidTankInfo; import net.minecraftforge.fluids.IFluidHandler; +import com.recursive_pineapple.nuclear_horizons.reactors.fluids.FluidList; + public class TileFluidPort extends TileEntity implements IFluidHandler, IReactorBlock { public int reactorRelX, reactorRelY, reactorRelZ; @Override public @Nullable TileReactorCore getReactor() { - if(worldObj.getTileEntity(xCoord + reactorRelX, yCoord + reactorRelY, zCoord + reactorRelZ) instanceof TileReactorCore reactor) { + // spotless:off + if (worldObj.getTileEntity(xCoord + reactorRelX, yCoord + reactorRelY, zCoord + reactorRelZ) instanceof TileReactorCore reactor) { return reactor; } else { return null; } + // spotless:on } @Override public void setReactor(TileReactorCore reactor) { - if(getReactor() != reactor) { + if (getReactor() != reactor) { this.reactorRelX = reactor.xCoord - xCoord; this.reactorRelY = reactor.yCoord - yCoord; this.reactorRelZ = reactor.zCoord - zCoord; @@ -74,7 +76,7 @@ public void writeToNBT(NBTTagCompound compound) { public void readFromNBT(NBTTagCompound compound) { super.readFromNBT(compound); - switch(compound.getInteger("version")) { + switch (compound.getInteger("version")) { case 1: { this.reactorRelX = compound.getInteger("reactorRelX"); this.reactorRelY = compound.getInteger("reactorRelY"); @@ -88,16 +90,16 @@ public void readFromNBT(NBTTagCompound compound) { public int fill(ForgeDirection from, FluidStack resource, boolean doFill) { var reactor = this.getReactor(); - if(reactor == null) { + if (reactor == null) { return 0; } - if(resource.getFluid() == FluidList.COOLANT) { + if (resource.getFluid() == FluidList.COOLANT) { int remaining = reactor.maxCoolant - reactor.storedCoolant; int consumed = Math.min(remaining, resource.amount); - if(doFill) { + if (doFill) { reactor.storedCoolant += consumed; } @@ -111,14 +113,14 @@ public int fill(ForgeDirection from, FluidStack resource, boolean doFill) { public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) { var reactor = this.getReactor(); - if(reactor == null) { + if (reactor == null) { return null; } - if(resource.getFluid() == FluidList.HOT_COOLANT) { + if (resource.getFluid() == FluidList.HOT_COOLANT) { int consumed = Math.min(reactor.storedHotCoolant, resource.amount); - if(doDrain) { + if (doDrain) { reactor.storedHotCoolant -= consumed; } @@ -132,13 +134,13 @@ public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrai public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) { var reactor = this.getReactor(); - if(reactor == null) { + if (reactor == null) { return null; } int consumed = Math.min(reactor.storedHotCoolant, maxDrain); - if(doDrain) { + if (doDrain) { reactor.storedHotCoolant -= consumed; } @@ -159,13 +161,14 @@ public boolean canDrain(ForgeDirection from, Fluid fluid) { public FluidTankInfo[] getTankInfo(ForgeDirection from) { var reactor = this.getReactor(); - if(reactor == null) { + if (reactor == null) { return new FluidTankInfo[0]; } return new FluidTankInfo[] { new FluidTankInfo(new FluidStack(FluidList.COOLANT, reactor.storedCoolant), reactor.maxCoolant), - new FluidTankInfo(new FluidStack(FluidList.HOT_COOLANT, reactor.storedHotCoolant), reactor.maxHotCoolant), - }; + new FluidTankInfo( + new FluidStack(FluidList.HOT_COOLANT, reactor.storedHotCoolant), + reactor.maxHotCoolant), }; } } diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileReactorChamber.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileReactorChamber.java index 1645f93..9e811a7 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileReactorChamber.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileReactorChamber.java @@ -2,9 +2,6 @@ import javax.annotation.Nullable; -import com.recursive_pineapple.nuclear_horizons.reactors.blocks.BlockList; - -import gregtech.api.interfaces.tileentity.IEnergyConnected; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; @@ -15,22 +12,28 @@ import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; +import com.recursive_pineapple.nuclear_horizons.reactors.blocks.BlockList; + +import gregtech.api.interfaces.tileentity.IEnergyConnected; + public class TileReactorChamber extends TileEntity implements IReactorBlock, IInventory, IEnergyConnected { public int reactorRelX, reactorRelY, reactorRelZ; @Override public @Nullable TileReactorCore getReactor() { - if(worldObj.getTileEntity(xCoord + reactorRelX, yCoord + reactorRelY, zCoord + reactorRelZ) instanceof TileReactorCore reactor) { + // spotless:off + if (worldObj.getTileEntity(xCoord + reactorRelX, yCoord + reactorRelY, zCoord + reactorRelZ) instanceof TileReactorCore reactor) { return reactor; } else { return null; } + // spotless:on } @Override public void setReactor(TileReactorCore reactor) { - if(getReactor() != reactor) { + if (getReactor() != reactor) { this.reactorRelX = reactor != null ? reactor.xCoord - xCoord : 0; this.reactorRelY = reactor != null ? reactor.yCoord - yCoord : 0; this.reactorRelZ = reactor != null ? reactor.zCoord - zCoord : 0; @@ -74,7 +77,7 @@ public void writeToNBT(NBTTagCompound compound) { public void readFromNBT(NBTTagCompound compound) { super.readFromNBT(compound); - switch(compound.getInteger("version")) { + switch (compound.getInteger("version")) { case 1: { this.reactorRelX = compound.getInteger("reactorRelX"); this.reactorRelY = compound.getInteger("reactorRelY"); @@ -113,7 +116,7 @@ public boolean outputsEnergyTo(ForgeDirection arg0) { public int getSizeInventory() { var reactor = getReactor(); - if(reactor != null) { + if (reactor != null) { return reactor.getSizeInventory(); } else { return 0; @@ -124,7 +127,7 @@ public int getSizeInventory() { public ItemStack getStackInSlot(int slotIn) { var reactor = getReactor(); - if(reactor != null) { + if (reactor != null) { return reactor.getStackInSlot(slotIn); } else { return null; @@ -135,7 +138,7 @@ public ItemStack getStackInSlot(int slotIn) { public ItemStack decrStackSize(int index, int count) { var reactor = getReactor(); - if(reactor != null) { + if (reactor != null) { return reactor.decrStackSize(index, count); } else { return null; @@ -146,7 +149,7 @@ public ItemStack decrStackSize(int index, int count) { public ItemStack getStackInSlotOnClosing(int index) { var reactor = getReactor(); - if(reactor != null) { + if (reactor != null) { return reactor.getStackInSlotOnClosing(index); } else { return null; @@ -157,7 +160,7 @@ public ItemStack getStackInSlotOnClosing(int index) { public void setInventorySlotContents(int index, ItemStack stack) { var reactor = getReactor(); - if(reactor != null) { + if (reactor != null) { reactor.setInventorySlotContents(index, stack);; } } @@ -176,7 +179,7 @@ public boolean hasCustomInventoryName() { public int getInventoryStackLimit() { var reactor = getReactor(); - if(reactor != null) { + if (reactor != null) { return reactor.getInventoryStackLimit(); } else { return 0; @@ -187,7 +190,7 @@ public int getInventoryStackLimit() { public boolean isUseableByPlayer(EntityPlayer player) { var reactor = getReactor(); - if(reactor != null) { + if (reactor != null) { return reactor.isUseableByPlayer(player); } else { return false; @@ -198,7 +201,7 @@ public boolean isUseableByPlayer(EntityPlayer player) { public void openInventory() { var reactor = getReactor(); - if(reactor != null) { + if (reactor != null) { reactor.openInventory(); } } @@ -207,7 +210,7 @@ public void openInventory() { public void closeInventory() { var reactor = getReactor(); - if(reactor != null) { + if (reactor != null) { reactor.closeInventory(); } } @@ -216,7 +219,7 @@ public void closeInventory() { public boolean isItemValidForSlot(int index, ItemStack stack) { var reactor = getReactor(); - if(reactor != null) { + if (reactor != null) { return reactor.isItemValidForSlot(index, stack); } else { return false; diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileReactorCore.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileReactorCore.java index ffa8dec..f6cddbc 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileReactorCore.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileReactorCore.java @@ -6,6 +6,24 @@ import javax.annotation.Nullable; +import net.minecraft.block.Block; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTankInfo; +import net.minecraftforge.fluids.IFluidTank; + import com.gtnewhorizons.modularui.api.ModularUITextures; import com.gtnewhorizons.modularui.api.drawable.AdaptableUITexture; import com.gtnewhorizons.modularui.api.forge.InvWrapper; @@ -37,26 +55,10 @@ import gregtech.api.logic.PowerLogic; import gregtech.api.logic.interfaces.PowerLogicHost; import gregtech.api.util.GT_Utility; -import net.minecraft.block.Block; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.NetworkManager; -import net.minecraft.network.Packet; -import net.minecraft.network.play.server.S35PacketUpdateTileEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.FluidTankInfo; -import net.minecraftforge.fluids.IFluidTank; -public class TileReactorCore extends TileEntity implements IInventory, IReactorGrid, ITileWithModularUI, IEnergyConnected { - +public class TileReactorCore extends TileEntity + implements IInventory, IReactorGrid, ITileWithModularUI, IEnergyConnected { + public static final int ROW_COUNT = 6; public static final int COL_COUNT = 9; @@ -84,19 +86,20 @@ public class TileReactorCore extends TileEntity implements IInventory, IReactorG int storedCoolant = 0; int maxCoolant = 10_000; - + int storedHotCoolant = 0; int maxHotCoolant = 10_000; private ArrayList reactorBlocks = new ArrayList<>(); public TileReactorCore() { - + } - //#region Fluid Tanks + // #region Fluid Tanks IFluidTank coolantTank = new IFluidTank() { + @Override public FluidStack getFluid() { return new FluidStack(FluidList.COOLANT, storedCoolant); @@ -119,15 +122,15 @@ public FluidTankInfo getInfo() { @Override public int fill(FluidStack resource, boolean doFill) { - if(resource.getFluid() == FluidList.COOLANT) { + if (resource.getFluid() == FluidList.COOLANT) { int remaining = maxCoolant - storedCoolant; - + int consumed = Math.min(remaining, resource.amount); - - if(doFill) { + + if (doFill) { storedCoolant += consumed; } - + return consumed; } else { return 0; @@ -137,16 +140,17 @@ public int fill(FluidStack resource, boolean doFill) { @Override public FluidStack drain(int maxDrain, boolean doDrain) { int consumed = Math.min(storedCoolant, maxDrain); - - if(doDrain) { + + if (doDrain) { storedCoolant -= consumed; } - + return new FluidStack(FluidList.COOLANT, consumed); } }; IFluidTank hotCoolantTank = new IFluidTank() { + @Override public FluidStack getFluid() { return new FluidStack(FluidList.HOT_COOLANT, storedHotCoolant); @@ -169,15 +173,15 @@ public FluidTankInfo getInfo() { @Override public int fill(FluidStack resource, boolean doFill) { - if(resource.getFluid() == FluidList.HOT_COOLANT) { + if (resource.getFluid() == FluidList.HOT_COOLANT) { int remaining = getCapacity() - getFluidAmount(); - + int consumed = Math.min(remaining, resource.amount); - - if(doFill) { + + if (doFill) { storedHotCoolant += consumed; } - + return consumed; } else { return 0; @@ -187,80 +191,72 @@ public int fill(FluidStack resource, boolean doFill) { @Override public FluidStack drain(int maxDrain, boolean doDrain) { int consumed = Math.min(getFluidAmount(), maxDrain); - - if(doDrain) { + + if (doDrain) { storedHotCoolant -= consumed; } - + return new FluidStack(FluidList.HOT_COOLANT, consumed); } }; - //#endregion + // #endregion - //#region UI + // #region UI private static Widget padding(int width, int height) { return new TextWidget().setSize(width, height); } - private static final AdaptableUITexture MISSING_CHAMBER = - AdaptableUITexture.of("nuclear_horizons:textures/gui/reactor_missing_chamber.png", 18, 108, 0); + private static final AdaptableUITexture MISSING_CHAMBER = AdaptableUITexture + .of("nuclear_horizons:textures/gui/reactor_missing_chamber.png", 18, 108, 0); @Override public ModularWindow createWindow(UIBuildContext buildContext) { ModularWindow.Builder builder = ModularWindow.builder(new Size(212, 234)); - - builder.setBackground(ModularUITextures.VANILLA_BACKGROUND).bindPlayerInventory(buildContext.getPlayer()); + + builder.setBackground(ModularUITextures.VANILLA_BACKGROUND) + .bindPlayerInventory(buildContext.getPlayer()); builder.widgets( - new Column() - .setAlignment(CrossAxisAlignment.CENTER) + new Column().setAlignment(CrossAxisAlignment.CENTER) .widgets( padding(7, 7), new TextWidget(I18n.format("nh_gui.reactor.title")).setSize(150, 16), - new Row() - .setAlignment(MainAxisAlignment.CENTER, CrossAxisAlignment.CENTER) + new Row().setAlignment(MainAxisAlignment.CENTER, CrossAxisAlignment.CENTER) .widgets( new FluidSlotWidget(coolantTank).setEnabled(w -> isFluid), padding(2, 0), - SlotGroup.ofItemHandler(new InvWrapper(this), getColumnCount()).build(), - new Row() - .setAlignment(MainAxisAlignment.START, CrossAxisAlignment.CENTER) + SlotGroup.ofItemHandler(new InvWrapper(this), getColumnCount()) + .build(), + new Row().setAlignment(MainAxisAlignment.START, CrossAxisAlignment.CENTER) .consume(w -> { - for(int i = getColumnCount(); i < COL_COUNT; i++) { - ((Row)w).widget(MISSING_CHAMBER.withFixedSize(18, 108).asWidget().setSize(18, 108)); + for (int i = getColumnCount(); i < COL_COUNT; i++) { + ((Row) w).widget( + MISSING_CHAMBER.withFixedSize(18, 108) + .asWidget() + .setSize(18, 108)); } }), padding(2, 0), - new FluidSlotWidget(hotCoolantTank).setEnabled(w -> isFluid) - ), - new MultiChildWidget() - .addChild( - new Row() - .setAlignment(MainAxisAlignment.START) - .widgets( - padding(7 + 16, 16), - new TextWidget(I18n.format("nh_gui.reactor.player_inv")).setSize(50, 16) - ) - ) + new FluidSlotWidget(hotCoolantTank).setEnabled(w -> isFluid)), + new MultiChildWidget().addChild( + new Row().setAlignment(MainAxisAlignment.START) + .widgets( + padding(7 + 16, 16), + new TextWidget(I18n.format("nh_gui.reactor.player_inv")).setSize(50, 16))) .addChild( - new Row() - .setAlignment(MainAxisAlignment.END) + new Row().setAlignment(MainAxisAlignment.END) .widgets( - TextWidget.dynamicString(() -> I18n.format("nh_gui.reactor.stored_hu", this.storedHeat)) + TextWidget + .dynamicString(() -> I18n.format("nh_gui.reactor.stored_hu", this.storedHeat)) .setSize(50, 16), - TextWidget.dynamicString(() -> ( - !isFluid - ? I18n.format("nh_gui.reactor.eu_output", this.addedEU / 20) - : I18n.format("nh_gui.reactor.hu_output", this.addedHeat) - )) + TextWidget + .dynamicString( + () -> (!isFluid ? I18n.format("nh_gui.reactor.eu_output", this.addedEU / 20) + : I18n.format("nh_gui.reactor.hu_output", this.addedHeat))) .setSize(50, 16), - padding(7 + 16, 16) - ) - ) - ) - ); + padding(7 + 16, 16))))); builder.widgets( new FakeSyncWidget.BooleanSyncer(() -> this.isActive, v -> this.isActive = v), @@ -270,40 +266,40 @@ public ModularWindow createWindow(UIBuildContext buildContext) { new FakeSyncWidget.IntegerSyncer(() -> this.storedCoolant, v -> this.storedCoolant = v), new FakeSyncWidget.IntegerSyncer(() -> this.storedHotCoolant, v -> this.storedHotCoolant = v), new FakeSyncWidget.IntegerSyncer(() -> this.maxCoolant, v -> this.maxCoolant = v), - new FakeSyncWidget.IntegerSyncer(() -> this.maxHotCoolant, v -> this.maxHotCoolant = v) - ); + new FakeSyncWidget.IntegerSyncer(() -> this.maxHotCoolant, v -> this.maxHotCoolant = v)); return builder.build(); } - //#endregion + // #endregion - //#region Tile Entity Logic + // #region Tile Entity Logic public int getColumnCount() { return chambers + 3; } public void setChamberCount(int chambers) { - if(chambers == this.chambers) { + if (chambers == this.chambers) { return; } this.chambers = chambers; - for(var player : viewingPlayers.toArray(new EntityPlayer[viewingPlayers.size()])) { + for (var player : viewingPlayers.toArray(new EntityPlayer[viewingPlayers.size()])) { player.closeScreen(); } viewingPlayers.clear(); - for(int row = 0; row < ROW_COUNT; row++) { - for(int col = 0; col < COL_COUNT; col++) { - if(col >= this.getColumnCount()) { + for (int row = 0; row < ROW_COUNT; row++) { + for (int col = 0; col < COL_COUNT; col++) { + if (col >= this.getColumnCount()) { var item = contents[row * COL_COUNT + col]; contents[row * COL_COUNT + col] = null; - if(item != null && !worldObj.isRemote) { - worldObj.spawnEntityInWorld(new EntityItem(worldObj, this.xCoord, this.yCoord, this.zCoord, item)); + if (item != null && !worldObj.isRemote) { + worldObj + .spawnEntityInWorld(new EntityItem(worldObj, this.xCoord, this.yCoord, this.zCoord, item)); } } } @@ -311,11 +307,11 @@ public void setChamberCount(int chambers) { } public void dropInventory() { - for(int row = 0; row < ROW_COUNT; row++) { - for(int col = 0; col < COL_COUNT; col++) { + for (int row = 0; row < ROW_COUNT; row++) { + for (int col = 0; col < COL_COUNT; col++) { var item = contents[row * COL_COUNT + col]; contents[row * COL_COUNT + col] = null; - if(item != null && !worldObj.isRemote) { + if (item != null && !worldObj.isRemote) { worldObj.spawnEntityInWorld(new EntityItem(worldObj, this.xCoord, this.yCoord, this.zCoord, item)); } } @@ -341,9 +337,9 @@ public void writeToNBT(NBTTagCompound compound) { var grid = new NBTTagCompound(); - for(int i = 0; i < contents.length; i++) { + for (int i = 0; i < contents.length; i++) { var item = contents[i]; - if(item != null) { + if (item != null) { grid.setTag(Integer.toString(i), item.writeToNBT(new NBTTagCompound())); } } @@ -357,7 +353,7 @@ public void readFromNBT(NBTTagCompound compound) { int version = compound.getInteger("version"); - switch(version) { + switch (version) { case 1: { this.storedHeat = compound.getInteger("heat"); this.storedEU = compound.getInteger("storedEU"); @@ -369,18 +365,18 @@ public void readFromNBT(NBTTagCompound compound) { this.storedHotCoolant = compound.getInteger("storedHotCoolant"); this.maxCoolant = compound.getInteger("maxCoolant"); this.maxHotCoolant = compound.getInteger("maxHotCoolant"); - + var grid = compound.getCompoundTag("grid"); Arrays.fill(this.contents, null); Arrays.fill(this.components, null); - for(int i = 0; i < contents.length; i++) { - if(grid.hasKey(Integer.toString(i))) { + for (int i = 0; i < contents.length; i++) { + if (grid.hasKey(Integer.toString(i))) { contents[i] = new ItemStack(Blocks.air); contents[i].readFromNBT(grid.getCompoundTag(Integer.toString(i))); - if(contents[i].getItem() == null) { + if (contents[i].getItem() == null) { contents[i] = null; } } @@ -397,26 +393,28 @@ public void updateEntity() { this.setChamberCount(getAttachedChambers(worldObj, xCoord, yCoord, zCoord)); - if(!this.worldObj.isRemote) { + if (!this.worldObj.isRemote) { this.tickCounter++; - if(this.tickCounter % REACTOR_TICK_SPEED == 0) { + if (this.tickCounter % REACTOR_TICK_SPEED == 0) { boolean wasActive = isActive; this.isActive = worldObj.getBlockPowerInput(xCoord, yCoord, zCoord) > 0; - - for(var dir : DirectionUtil.values()) { + + for (var dir : DirectionUtil.values()) { + // spotless:off this.isActive |= worldObj.getBlockPowerInput( dir.offsetX + xCoord, dir.offsetY + yCoord, dir.offsetZ + zCoord ) > 0; + // spotless:on } - if(this.isFluid) { + if (this.isFluid) { boolean anyActive = false, anyInhibiting = false; - for(var block : reactorBlocks) { + for (var block : reactorBlocks) { var state = block.getEnableState(); anyActive |= state == ReactorEnableState.Active; anyInhibiting |= state == ReactorEnableState.Inhibiting; @@ -424,25 +422,25 @@ public void updateEntity() { isActive |= anyActive; - if(anyInhibiting) { + if (anyInhibiting) { isActive = false; } } - if((this.tickCounter / REACTOR_TICK_SPEED) % 2 == 0) { + if ((this.tickCounter / REACTOR_TICK_SPEED) % 2 == 0) { this.doHeatTick(); } else { this.doEUTick(); } - if(wasActive != isActive) { + if (wasActive != isActive) { worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, isActive ? 1 : 0, 3); } - + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); } - if(this.tickCounter % REACTOR_STRUCTURE_CHECK_PERIOD == 0) { + if (this.tickCounter % REACTOR_STRUCTURE_CHECK_PERIOD == 0) { doStructureCheck(); } @@ -489,8 +487,8 @@ public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { public static int getAttachedChambers(World worldIn, int x, int y, int z) { int chamberCount = 0; - for(var d : DirectionUtil.values()) { - if(d.getBlock(worldIn, x, y, z) == BlockList.REACTOR_CHAMBER) { + for (var d : DirectionUtil.values()) { + if (d.getBlock(worldIn, x, y, z) == BlockList.REACTOR_CHAMBER) { chamberCount++; } } @@ -506,9 +504,9 @@ public void removeViewingPlayer(EntityPlayer player) { this.viewingPlayers.remove(player); } - //#endregion + // #endregion - //#region Energy Logic + // #region Energy Logic @Override public byte getColorization() { @@ -536,23 +534,23 @@ public boolean outputsEnergyTo(ForgeDirection arg0) { } private void emitEnergy() { - if(this.voltage == 0) this.voltage = 32; + if (this.voltage == 0) this.voltage = 32; int availableAmps = this.storedEU / this.voltage; - if(availableAmps > 0) { + if (availableAmps > 0) { long consumedAmps = emitEnergyToNetwork(this.voltage, availableAmps, this); - for(var dir : DirectionUtil.values()) { - if((availableAmps - consumedAmps) <= 0) { + for (var dir : DirectionUtil.values()) { + if ((availableAmps - consumedAmps) <= 0) { break; } - if(dir.getTileEntity(worldObj, xCoord, yCoord, zCoord) instanceof TileReactorChamber chamber) { + if (dir.getTileEntity(worldObj, xCoord, yCoord, zCoord) instanceof TileReactorChamber chamber) { consumedAmps += emitEnergyToNetwork(this.voltage, availableAmps - consumedAmps, chamber); } } - + this.storedEU -= consumedAmps * this.voltage; } } @@ -564,7 +562,11 @@ private static long emitEnergyToNetwork(long voltage, long amperage, TileEntity if (usedAmperes > amperage) break; ForgeDirection oppositeSide = Objects.requireNonNull(side.getOpposite()); - TileEntity tTileEntity = emitter.getWorldObj().getTileEntity(emitter.xCoord + side.offsetX, emitter.yCoord + side.offsetY, emitter.zCoord + side.offsetZ); + TileEntity tTileEntity = emitter.getWorldObj() + .getTileEntity( + emitter.xCoord + side.offsetX, + emitter.yCoord + side.offsetY, + emitter.zCoord + side.offsetZ); if (tTileEntity instanceof PowerLogicHost host) { PowerLogic logic = host.getPowerLogic(oppositeSide); @@ -592,9 +594,9 @@ private static long emitEnergyToNetwork(long voltage, long amperage, TileEntity return usedAmperes; } - //#endregion + // #endregion - //#region Inventory Logic + // #region Inventory Logic private int transformSlotIndex(int invSlot) { int cols = this.getColumnCount(); @@ -623,7 +625,7 @@ public ItemStack decrStackSize(int index, int count) { var item = this.contents[index]; - if(item == null) { + if (item == null) { return null; } @@ -635,7 +637,7 @@ public ItemStack decrStackSize(int index, int count) { var out = item.splitStack(consumed); - if(item.stackSize <= 0) { + if (item.stackSize <= 0) { this.contents[index] = null; } @@ -647,8 +649,8 @@ public ItemStack getStackInSlotOnClosing(int index) { index = transformSlotIndex(index); var item = this.contents[index]; - - if(item == null) { + + if (item == null) { return null; } @@ -664,7 +666,7 @@ public ItemStack getStackInSlotOnClosing(int index) { public void setInventorySlotContents(int index, ItemStack stack) { index = transformSlotIndex(index); - if(stack != null && stack.stackSize <= 0) { + if (stack != null && stack.stackSize <= 0) { stack = null; } @@ -700,12 +702,12 @@ public boolean isUseableByPlayer(EntityPlayer player) { @Override public void openInventory() { - + } @Override public void closeInventory() { - + } @Override @@ -713,25 +715,25 @@ public boolean isItemValidForSlot(int index, ItemStack stack) { return ComponentRegistry.isReactorItem(stack); } - //#endregion + // #endregion - //#region Reactor Grid Logic + // #region Reactor Grid Logic private void doHeatTick() { this.storedCoolant = 10000; this.storedHotCoolant = 0; this.addedHeat = 0; - for(int row = 0; row < ROW_COUNT; row++) { - for(int col = 0; col < COL_COUNT; col++) { + for (int row = 0; row < ROW_COUNT; row++) { + for (int col = 0; col < COL_COUNT; col++) { var component = getComponent(col, row); - if(component != null) { + if (component != null) { component.onHeatTick(); } } } - for(var reactorBlock : reactorBlocks) { + for (var reactorBlock : reactorBlocks) { reactorBlock.onHeatTick(this); } } @@ -739,20 +741,20 @@ private void doHeatTick() { private void doEUTick() { this.addedEU = 0; - for(int row = 0; row < ROW_COUNT; row++) { - for(int col = 0; col < COL_COUNT; col++) { + for (int row = 0; row < ROW_COUNT; row++) { + for (int col = 0; col < COL_COUNT; col++) { var component = getComponent(col, row); - if(component != null) { + if (component != null) { component.onEnergyTick(); } } } - for(var reactorBlock : reactorBlocks) { + for (var reactorBlock : reactorBlocks) { reactorBlock.onEnergyTick(this); } - if(this.storedEU > this.maxStoredEU) { + if (this.storedEU > this.maxStoredEU) { this.storedEU = this.maxStoredEU; } @@ -775,23 +777,25 @@ public int getHeight() { @Override public @Nullable IComponentAdapter getComponent(int x, int y) { - if(x < 0 || x >= COL_COUNT) { - throw new IllegalArgumentException(String.format("Illegal value for x: %d, must conform to x >= 0, x < %d", x, COL_COUNT)); + if (x < 0 || x >= COL_COUNT) { + throw new IllegalArgumentException( + String.format("Illegal value for x: %d, must conform to x >= 0, x < %d", x, COL_COUNT)); } - if(y < 0 || y >= ROW_COUNT) { - throw new IllegalArgumentException(String.format("Illegal value for y: %d, must conform to y >= 0, y < %d", y, ROW_COUNT)); + if (y < 0 || y >= ROW_COUNT) { + throw new IllegalArgumentException( + String.format("Illegal value for y: %d, must conform to y >= 0, y < %d", y, ROW_COUNT)); } int index = y * COL_COUNT + x; var adapter = this.components[index]; - if(adapter != null) { + if (adapter != null) { return adapter; } var item = this.contents[index]; - if(item != null) { + if (item != null) { adapter = ComponentRegistry.getAdapter(item, this, x, y); this.components[index] = adapter; } @@ -801,12 +805,14 @@ public int getHeight() { @Override public @Nullable ItemStack getItem(int x, int y) { - if(x < 0 || x >= COL_COUNT) { - throw new IllegalArgumentException(String.format("Illegal value for x: %d, must conform to x >= 0, x < %d", x, COL_COUNT)); + if (x < 0 || x >= COL_COUNT) { + throw new IllegalArgumentException( + String.format("Illegal value for x: %d, must conform to x >= 0, x < %d", x, COL_COUNT)); } - if(y < 0 || y >= ROW_COUNT) { - throw new IllegalArgumentException(String.format("Illegal value for y: %d, must conform to y >= 0, y < %d", y, ROW_COUNT)); + if (y < 0 || y >= ROW_COUNT) { + throw new IllegalArgumentException( + String.format("Illegal value for y: %d, must conform to y >= 0, y < %d", y, ROW_COUNT)); } int index = y * COL_COUNT + x; @@ -816,12 +822,14 @@ public int getHeight() { @Override public void setItem(int x, int y, @Nullable ItemStack item) { - if(x < 0 || x >= COL_COUNT) { - throw new IllegalArgumentException(String.format("Illegal value for x: %d, must conform to x >= 0, x < %d", x, COL_COUNT)); + if (x < 0 || x >= COL_COUNT) { + throw new IllegalArgumentException( + String.format("Illegal value for x: %d, must conform to x >= 0, x < %d", x, COL_COUNT)); } - if(y < 0 || y >= ROW_COUNT) { - throw new IllegalArgumentException(String.format("Illegal value for y: %d, must conform to y >= 0, y < %d", y, ROW_COUNT)); + if (y < 0 || y >= ROW_COUNT) { + throw new IllegalArgumentException( + String.format("Illegal value for y: %d, must conform to y >= 0, y < %d", y, ROW_COUNT)); } int index = y * COL_COUNT + x; @@ -846,10 +854,10 @@ public int getHullHeat() { public int getMaxHullHeat() { int maxHeat = 5000; - for(int row = 0; row < ROW_COUNT; row++) { - for(int col = 0; col < COL_COUNT; col++) { + for (int row = 0; row < ROW_COUNT; row++) { + for (int col = 0; col < COL_COUNT; col++) { var component = getComponent(col, row); - if(component != null) { + if (component != null) { maxHeat += component.getReactorMaxHeatIncrease(); } } @@ -870,7 +878,7 @@ public void addHullHeat(int delta) { @Override public int addAirHeat(int delta) { - if(this.isFluid) { + if (this.isFluid) { int emptyHotCoolant = this.maxHotCoolant - this.storedHotCoolant; int consumed = Math.min(Math.min(delta, this.storedCoolant / 2), emptyHotCoolant / 2); @@ -887,8 +895,8 @@ public int addAirHeat(int delta) { @Override public void addEU(double eu) { this.storedEU += eu; - - if(eu > 0) { + + if (eu > 0) { this.addedEU += eu; } } @@ -898,9 +906,9 @@ public boolean isFluid() { return isFluid; } - //#endregion + // #endregion - //#region Reactor Structure Logic + // #region Reactor Structure Logic private static boolean isInsideCube(int coord) { return coord == -1 || coord == 0 || coord == 1; @@ -910,18 +918,18 @@ private void doStructureCheck() { this.isFluid = true; this.reactorBlocks.clear(); - for(int relX = -2; relX < 3; relX++) { - for(int relY = -2; relY < 3; relY++) { - for(int relZ = -2; relZ < 3; relZ++) { - if(relX == 0 && relY == 0 && relZ == 0) { + for (int relX = -2; relX < 3; relX++) { + for (int relY = -2; relY < 3; relY++) { + for (int relZ = -2; relZ < 3; relZ++) { + if (relX == 0 && relY == 0 && relZ == 0) { continue; } int insideCubeCount = 0; - if(isInsideCube(relX)) insideCubeCount++; - if(isInsideCube(relY)) insideCubeCount++; - if(isInsideCube(relZ)) insideCubeCount++; + if (isInsideCube(relX)) insideCubeCount++; + if (isInsideCube(relY)) insideCubeCount++; + if (isInsideCube(relZ)) insideCubeCount++; boolean isInternal = insideCubeCount == 3; // boolean isFace = insideCubeCount == 2; @@ -929,13 +937,13 @@ private void doStructureCheck() { boolean isCorner = insideCubeCount == 0; // within the center 3x3x3 - if(isInternal) { + if (isInternal) { continue; } int x = xCoord + relX, y = yCoord + relY, z = zCoord + relZ; - if(!worldObj.blockExists(x, y, z)) { + if (!worldObj.blockExists(x, y, z)) { this.isFluid = false; continue; } @@ -943,21 +951,21 @@ private void doStructureCheck() { Block block = worldObj.getBlock(x, y, z); // valid in any spot on the surface - if(block == BlockList.PRESSURE_VESSEL) { + if (block == BlockList.PRESSURE_VESSEL) { continue; } // edges & corners must be pressure vessels - if(isEdge || isCorner) { - if(block != BlockList.PRESSURE_VESSEL) { + if (isEdge || isCorner) { + if (block != BlockList.PRESSURE_VESSEL) { this.isFluid = false; } continue; } // a face can be any IReactorBlock - if(block.hasTileEntity(worldObj.getBlockMetadata(x, y, z))) { - if(worldObj.getTileEntity(x, y, z) instanceof IReactorBlock reactorBlock) { + if (block.hasTileEntity(worldObj.getBlockMetadata(x, y, z))) { + if (worldObj.getTileEntity(x, y, z) instanceof IReactorBlock reactorBlock) { reactorBlock.setReactor(this); reactorBlocks.add(reactorBlock); continue; @@ -970,5 +978,5 @@ private void doStructureCheck() { } } - //#endregion + // #endregion } diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileReactorSimulator.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileReactorSimulator.java index 88d278b..0699b82 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileReactorSimulator.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileReactorSimulator.java @@ -11,6 +11,16 @@ import java.util.function.DoubleSupplier; import java.util.function.Supplier; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.PacketBuffer; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; + import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -50,15 +60,6 @@ import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.NetworkManager; -import net.minecraft.network.Packet; -import net.minecraft.network.PacketBuffer; -import net.minecraft.network.play.server.S35PacketUpdateTileEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumChatFormatting; public class TileReactorSimulator extends TileEntity implements ITileWithModularUI { @@ -84,7 +85,7 @@ public class TileReactorSimulator extends TileEntity implements ITileWithModular @SideOnly(Side.CLIENT) private int activeComponentX = -1, activeComponentY = -1; - + public TileReactorSimulator() { } @@ -99,12 +100,13 @@ public void setSimulationResult(SimulationResult result) { config.result = result; - if(result != null) result.config = config; - - if(slots != null) { - for(var child : slots.getChildren()) { - if(child instanceof SlotWidget slot) { - slot.getMcSlot().onSlotChanged(); + if (result != null) result.config = config; + + if (slots != null) { + for (var child : slots.getChildren()) { + if (child instanceof SlotWidget slot) { + slot.getMcSlot() + .onSlotChanged(); } } } @@ -113,19 +115,20 @@ public void setSimulationResult(SimulationResult result) { } public void setConfigCode(String code) { - if(!Objects.equals(code, this.configCode)) { + if (!Objects.equals(code, this.configCode)) { this.configCode = code; this.config.put(SimulationConfig.fromCode(code)); - - if(slots != null) { - for(var child : slots.getChildren()) { - if(child instanceof SlotWidget slot) { - slot.getMcSlot().onSlotChanged(); + + if (slots != null) { + for (var child : slots.getChildren()) { + if (child instanceof SlotWidget slot) { + slot.getMcSlot() + .onSlotChanged(); } } } - - if(worldObj != null) worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + + if (worldObj != null) worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); markDirty(); } } @@ -133,9 +136,9 @@ public void setConfigCode(String code) { public void onConfigChanged() { var code = this.config.getCode(); - if(!Objects.equals(code, configCode)) { + if (!Objects.equals(code, configCode)) { this.configCode = code; - if(worldObj != null) worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + if (worldObj != null) worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); markDirty(); } } @@ -144,8 +147,11 @@ public void onConfigChanged() { public Packet getDescriptionPacket() { var nbt = new NBTTagCompound(); - if(this.latestSimulation != null) { - nbt.setByteArray("history", this.latestSimulation.save().toByteArray()); + if (this.latestSimulation != null) { + nbt.setByteArray( + "history", + this.latestSimulation.save() + .toByteArray()); } nbt.setString("code", configCode); @@ -160,7 +166,7 @@ public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { setConfigCode(nbt.getString("code")); var data = nbt.getByteArray("history"); - if(data.length > 0) { + if (data.length > 0) { try { setSimulationResult(SimulationResult.load(SimulatorProtos.SimulationResult.parseFrom(data))); } catch (InvalidProtocolBufferException e) { @@ -177,7 +183,7 @@ public void writeToNBT(NBTTagCompound compound) { super.writeToNBT(compound); compound.setInteger("version", 1); - if(config != null) { + if (config != null) { compound.setString("config", configCode); } } @@ -186,7 +192,7 @@ public void writeToNBT(NBTTagCompound compound) { public void readFromNBT(NBTTagCompound compound) { super.readFromNBT(compound); - switch(compound.getInteger("version")) { + switch (compound.getInteger("version")) { case 1: { setConfigCode(compound.getString("config")); break; @@ -201,201 +207,169 @@ private static Widget padding(int width, int height) { @Override public ModularWindow createWindow(UIBuildContext buildContext) { ModularWindow.Builder builder = ModularWindow.builder(new Size(212, 234)); - + builder.setBackground(ModularUITextures.VANILLA_BACKGROUND); builder.widgets( - new TabContainer() - .setButtonSize(new Size(28, 32)) + new TabContainer().setButtonSize(new Size(28, 32)) .addTabButton( new TabButton(0) .setBackground(false, ModularUITextures.VANILLA_TAB_TOP_START.getSubArea(0, 0, 1f, 0.5f)) .setBackground(true, ModularUITextures.VANILLA_TAB_TOP_START.getSubArea(0, 0.5f, 1f, 1f)) - .setPos(0, -28) - ) + .setPos(0, -28)) .addTabButton( new TabButton(1) .setBackground(false, ModularUITextures.VANILLA_TAB_TOP_MIDDLE.getSubArea(0, 0, 1f, 0.5f)) .setBackground(true, ModularUITextures.VANILLA_TAB_TOP_MIDDLE.getSubArea(0, 0.5f, 1f, 1f)) - .setPos(28, -28) - ) + .setPos(28, -28)) .addTabButton( new TabButton(2) .setBackground(false, ModularUITextures.VANILLA_TAB_TOP_END.getSubArea(0, 0, 1f, 0.5f)) .setBackground(true, ModularUITextures.VANILLA_TAB_TOP_END.getSubArea(0, 0.5f, 1f, 1f)) - .setPos(56, -28) - ) + .setPos(56, -28)) .addPage(gridPage(buildContext.getPlayer())) .addPage(resultsPage()) .addPage(reactorSettingsPage()) - .consume(w -> { - tabContainer = (TabContainer)w; - }) - ); + .consume(w -> { tabContainer = (TabContainer) w; })); builder.widgets( - new FakeSyncWidget.StringSyncer( - () -> this.configCode, - this::setConfigCode - ), + new FakeSyncWidget.StringSyncer(() -> this.configCode, this::setConfigCode), new FakeSyncWidget( () -> this.latestSimulation, this::setSimulationResult, SimulationResult::write, - SimulationResult::read - ) - ); + SimulationResult::read)); return builder.build(); } private Column gridPage(EntityPlayer player) { - return new Column() - .setAlignment(MainAxisAlignment.START, CrossAxisAlignment.CENTER) + return new Column().setAlignment(MainAxisAlignment.START, CrossAxisAlignment.CENTER) .widgets( padding(7, 7), new TextWidget(I18n.format("nh_gui.sim.title")).setSize(150, 16), - new Row() - .setAlignment(MainAxisAlignment.CENTER, CrossAxisAlignment.CENTER) + new Row().setAlignment(MainAxisAlignment.CENTER, CrossAxisAlignment.CENTER) .widgets( SlotGroup.ofItemHandler(config, COL_COUNT) .phantom(true) - .applyForWidget(slot -> { - slot.setChangeListener(this::onConfigChanged); - }) + .applyForWidget(slot -> { slot.setChangeListener(this::onConfigChanged); }) .widgetCreator(slot -> new SimulatorSlotWidget(slot, () -> { this.activeComponentX = slot.getSlotIndex() % COL_COUNT; this.activeComponentY = slot.getSlotIndex() / COL_COUNT; tabContainer.setActivePage(5); })) .build() - .consume(w -> { - slots = (SlotGroup)w; - }) - ), + .consume(w -> { slots = (SlotGroup) w; })), padding(2, 2), - new Row() - .setAlignment(MainAxisAlignment.START, CrossAxisAlignment.CENTER) + new Row().setAlignment(MainAxisAlignment.START, CrossAxisAlignment.CENTER) .widgets( - new VanillaButtonWidget() - .setDisplayString(I18n.format("nh_gui.sim.actions.start")) + new VanillaButtonWidget().setDisplayString(I18n.format("nh_gui.sim.actions.start")) .setOnClick((d, w) -> { - if(NetworkUtils.isClient()) { + if (NetworkUtils.isClient()) { simulator.start(config); } }) .setSize(48, 16), padding(2, 2), - new VanillaButtonWidget() - .setDisplayString(I18n.format("nh_gui.sim.actions.cancel")) + new VanillaButtonWidget().setDisplayString(I18n.format("nh_gui.sim.actions.cancel")) .setOnClick((d, w) -> { - if(NetworkUtils.isClient()) { + if (NetworkUtils.isClient()) { simulator.cancel(); } }) - .setSize(48, 16) - ), + .setSize(48, 16)), padding(2, 2), - SlotGroup.playerInventoryGroup(player, null) - ); + SlotGroup.playerInventoryGroup(player, null)); } private static void addResultLine(ArrayList lines, String name, String unit, Object value) { var text = I18n.format( "nh_gui.sim.results." + name, - I18n.format( - value == null - ? "nh_gui.sim.results.none" - : ("nh_gui.sim.results." + unit), - value - ) - ); - - for(var line : text.split("\\n")) { + I18n.format(value == null ? "nh_gui.sim.results.none" : ("nh_gui.sim.results." + unit), value)); + + for (var line : text.split("\\n")) { lines.add(line); } } private Widget resultsPage() { - return new Column() - .setAlignment(MainAxisAlignment.START, CrossAxisAlignment.CENTER) - .widgets( - padding(7, 7), - new TextWidget(I18n.format("nh_gui.sim.results.title")).setSize(150, 16), - padding(7, 7), - TextWidget - .dynamicString(() -> { - var r = latestSimulation; - - ArrayList lines = new ArrayList<>(); - - if(r == null) { - lines.add(I18n.format("nh_gui.sim.results.no_results")); - } else if(r.timeToExplode == null) { - addResultLine(lines, "runtime", "seconds", r.simTime); - } - - if(r != null) { - if(r.timeToNormal != null) { - addResultLine(lines, "time_to_normal", "seconds", r.timeToNormal); - lines.add(I18n.format("nh_gui.sim.results.time_to_normal", r.timeToNormal)); - } + return new Column().setAlignment(MainAxisAlignment.START, CrossAxisAlignment.CENTER) + .widgets( + padding(7, 7), + new TextWidget(I18n.format("nh_gui.sim.results.title")).setSize(150, 16), + padding(7, 7), + TextWidget.dynamicString(() -> { + var r = latestSimulation; - if(r.timeToBurn != null) { - addResultLine(lines, "time_to_burn", "seconds", r.timeToBurn); - } + ArrayList lines = new ArrayList<>(); - if(r.timeToEvaporate != null) { - addResultLine(lines, "time_to_evaporate", "seconds", r.timeToEvaporate); - } + if (r == null) { + lines.add(I18n.format("nh_gui.sim.results.no_results")); + } else if (r.timeToExplode == null) { + addResultLine(lines, "runtime", "seconds", r.simTime); + } - if(r.timeToHurt != null) { - addResultLine(lines, "time_to_hurt", "seconds", r.timeToHurt); - } + if (r != null) { + if (r.timeToNormal != null) { + addResultLine(lines, "time_to_normal", "seconds", r.timeToNormal); + lines.add(I18n.format("nh_gui.sim.results.time_to_normal", r.timeToNormal)); + } - if(r.timeToLava != null) { - addResultLine(lines, "time_to_lava", "seconds", r.timeToLava); - } + if (r.timeToBurn != null) { + addResultLine(lines, "time_to_burn", "seconds", r.timeToBurn); + } - if(r.timeToExplode != null) { - addResultLine(lines, "time_to_explosion", "seconds", r.timeToExplode); - } - } - - addResultLine(lines, "active_time", "seconds", r == null ? null : r.activeTime); - addResultLine(lines, "inactive_time", "seconds", r == null ? null : r.pausedTime); - - addResultLine(lines, "avg_power", "eu_per_tick", r == null ? null : (r.totalEU * 2 / 20 / r.simTime)); - addResultLine(lines, "min_power", "eu_per_tick", r == null ? null : r.minEUpT); - addResultLine(lines, "max_power", "eu_per_tick", r == null ? null : r.maxEUpT); - - addResultLine(lines, "avg_vent_cooling", "hu_per_sec", r == null ? null : (r.totalHU / r.simTime)); - addResultLine(lines, "min_vent_cooling", "hu_per_sec", r == null ? null : r.minHUpS); - addResultLine(lines, "max_vent_cooling", "hu_per_sec", r == null ? null : r.maxHUpS); - - addResultLine(lines, "avg_hull_temp", "hu_total", r == null ? null : (r.totalTempSecs / r.simTime)); - addResultLine(lines, "min_hull_temp", "hu_total", r == null ? null : r.minTemp); - addResultLine(lines, "max_hull_temp", "hu_total", r == null ? null : r.maxTemp); - - return String.join("\n", lines); - }) - .setTextAlignment(Alignment.TopLeft) - ); + if (r.timeToEvaporate != null) { + addResultLine(lines, "time_to_evaporate", "seconds", r.timeToEvaporate); + } + + if (r.timeToHurt != null) { + addResultLine(lines, "time_to_hurt", "seconds", r.timeToHurt); + } + + if (r.timeToLava != null) { + addResultLine(lines, "time_to_lava", "seconds", r.timeToLava); + } + + if (r.timeToExplode != null) { + addResultLine(lines, "time_to_explosion", "seconds", r.timeToExplode); + } + } + + addResultLine(lines, "active_time", "seconds", r == null ? null : r.activeTime); + addResultLine(lines, "inactive_time", "seconds", r == null ? null : r.pausedTime); + + addResultLine( + lines, + "avg_power", + "eu_per_tick", + r == null ? null : (r.totalEU * 2 / 20 / r.simTime)); + addResultLine(lines, "min_power", "eu_per_tick", r == null ? null : r.minEUpT); + addResultLine(lines, "max_power", "eu_per_tick", r == null ? null : r.maxEUpT); + + addResultLine(lines, "avg_vent_cooling", "hu_per_sec", r == null ? null : (r.totalHU / r.simTime)); + addResultLine(lines, "min_vent_cooling", "hu_per_sec", r == null ? null : r.minHUpS); + addResultLine(lines, "max_vent_cooling", "hu_per_sec", r == null ? null : r.maxHUpS); + + addResultLine(lines, "avg_hull_temp", "hu_total", r == null ? null : (r.totalTempSecs / r.simTime)); + addResultLine(lines, "min_hull_temp", "hu_total", r == null ? null : r.minTemp); + addResultLine(lines, "max_hull_temp", "hu_total", r == null ? null : r.maxTemp); + + return String.join("\n", lines); + }) + .setTextAlignment(Alignment.TopLeft)); } - private static final AdaptableUITexture DISPLAY = AdaptableUITexture.of("modularui:gui/background/display", 143, 75, 2); + private static final AdaptableUITexture DISPLAY = AdaptableUITexture + .of("modularui:gui/background/display", 143, 75, 2); private Widget textSetting(String name, Supplier getter, Consumer setter) { - return new MultiChildWidget() - .addChild( - new TextWidget(name) - .setTextAlignment(Alignment.CenterRight) - .setPos(-50, 0) - .setSize(150, 16) - ) + return new MultiChildWidget().addChild( + new TextWidget(name).setTextAlignment(Alignment.CenterRight) + .setPos(-50, 0) + .setSize(150, 16)) .addChild( - new TextFieldWidget() - .setGetter(getter) + new TextFieldWidget().setGetter(getter) .setSetter(v -> { setter.accept(v); @@ -407,21 +381,16 @@ private Widget textSetting(String name, Supplier getter, Consumer { setter.accept(v); @@ -432,253 +401,184 @@ private Widget numericSetting(String name, DoubleSupplier getter, DoubleConsumer .setTextColor(Color.WHITE.dark(1)) .setBackground(DISPLAY.withOffset(-2, -2, 4, 4)) .setSize(96, 16) - .setPos(100, 0) - ); + .setPos(100, 0)); } private Widget booleanSetting(String name, BooleanSupplier getter, Consumer setter) { String trueText = I18n.format("nh_gui.sim.settings.true"), falseText = I18n.format("nh_gui.sim.settings.false"); - return new MultiChildWidget() - .addChild( - new TextWidget(name) - .setTextAlignment(Alignment.CenterRight) - .setPos(-50, 0) - .setSize(150, 16) - ) + return new MultiChildWidget().addChild( + new TextWidget(name).setTextAlignment(Alignment.CenterRight) + .setPos(-50, 0) + .setSize(150, 16)) .addChild( - new VanillaButtonWidget() - .setDisplayString(getter.getAsBoolean() ? trueText : falseText) + new VanillaButtonWidget().setDisplayString(getter.getAsBoolean() ? trueText : falseText) .setOnClick((t, u) -> { var val = !getter.getAsBoolean(); setter.accept(val); - ((VanillaButtonWidget)u).setDisplayString(val ? trueText : falseText); + ((VanillaButtonWidget) u).setDisplayString(val ? trueText : falseText); u.notifyTooltipChange(); - + this.markDirty(); this.worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); }) - .setTicker(w -> ((VanillaButtonWidget)w).setDisplayString(getter.getAsBoolean() ? trueText : falseText)) + .setTicker( + w -> ((VanillaButtonWidget) w).setDisplayString(getter.getAsBoolean() ? trueText : falseText)) .setSize(40, 16) - .setPos(98, 0) - ); + .setPos(98, 0)); } private Widget reactorSettingsPage() { - return new Row() - .widgets( - padding(7, 7), - new Column() - .setAlignment(MainAxisAlignment.START, CrossAxisAlignment.START) - .widgets( - padding(7, 7), - new Row() - .setAlignment(MainAxisAlignment.CENTER) - .widget( - new TextWidget(I18n.format("nh_gui.sim.settings.title")).setSize(150, 16) - ), - padding(7, 7), - textSetting( - I18n.format("nh_gui.sim.settings.planner_code"), - () -> this.configCode, - this::setConfigCode - ), - padding(7, 6), - numericSetting( - I18n.format("nh_gui.sim.settings.max_simulation_ticks"), - () -> this.config.maxSimulationTicks, - v -> { - this.config.maxSimulationTicks = (int)v; - onConfigChanged(); - } - ), - padding(4, 4), - booleanSetting( - I18n.format("nh_gui.sim.settings.fluid"), - () -> this.config.fluid, - b -> { - this.config.fluid = b; - onConfigChanged(); - } - ), - padding(4, 4), - booleanSetting( - I18n.format("nh_gui.sim.settings.pulsed"), - () -> this.config.pulsed, - b -> { - this.config.pulsed = b; - onConfigChanged(); - } - ), - padding(4, 4), - numericSetting( - I18n.format("nh_gui.sim.settings.on_pulse"), - () -> this.config.onPulse, - v -> { - this.config.onPulse = (int)v; - onConfigChanged(); - } - ), - padding(4, 6), - numericSetting( - I18n.format("nh_gui.sim.settings.off_pulse"), - () -> this.config.offPulse, - v -> { - this.config.offPulse = (int)v; - onConfigChanged(); - } - ), - padding(4, 6), - numericSetting( - I18n.format("nh_gui.sim.settings.suspend_temp"), - () -> this.config.suspendTemp, - v -> { - this.config.suspendTemp = (int)v; - onConfigChanged(); - } - ), - padding(4, 6), - numericSetting( - I18n.format("nh_gui.sim.settings.resume_temp"), - () -> this.config.resumeTemp, - v -> { - this.config.resumeTemp = (int)v; - onConfigChanged(); - } - ), - padding(4, 6), - numericSetting( - I18n.format("nh_gui.sim.settings.initial_reactor_heat"), - () -> this.config.initialHeat, - v -> { - this.config.initialHeat = (int)v; - onConfigChanged(); - } - ) - ), - padding(7, 7) - ); + return new Row().widgets( + padding(7, 7), + new Column().setAlignment(MainAxisAlignment.START, CrossAxisAlignment.START) + .widgets( + padding(7, 7), + new Row().setAlignment(MainAxisAlignment.CENTER) + .widget(new TextWidget(I18n.format("nh_gui.sim.settings.title")).setSize(150, 16)), + padding(7, 7), + textSetting( + I18n.format("nh_gui.sim.settings.planner_code"), + () -> this.configCode, + this::setConfigCode), + padding(7, 6), + numericSetting( + I18n.format("nh_gui.sim.settings.max_simulation_ticks"), + () -> this.config.maxSimulationTicks, + v -> { + this.config.maxSimulationTicks = (int) v; + onConfigChanged(); + }), + padding(4, 4), + booleanSetting(I18n.format("nh_gui.sim.settings.fluid"), () -> this.config.fluid, b -> { + this.config.fluid = b; + onConfigChanged(); + }), + padding(4, 4), + booleanSetting(I18n.format("nh_gui.sim.settings.pulsed"), () -> this.config.pulsed, b -> { + this.config.pulsed = b; + onConfigChanged(); + }), + padding(4, 4), + numericSetting(I18n.format("nh_gui.sim.settings.on_pulse"), () -> this.config.onPulse, v -> { + this.config.onPulse = (int) v; + onConfigChanged(); + }), + padding(4, 6), + numericSetting(I18n.format("nh_gui.sim.settings.off_pulse"), () -> this.config.offPulse, v -> { + this.config.offPulse = (int) v; + onConfigChanged(); + }), + padding(4, 6), + numericSetting( + I18n.format("nh_gui.sim.settings.suspend_temp"), + () -> this.config.suspendTemp, + v -> { + this.config.suspendTemp = (int) v; + onConfigChanged(); + }), + padding(4, 6), + numericSetting(I18n.format("nh_gui.sim.settings.resume_temp"), () -> this.config.resumeTemp, v -> { + this.config.resumeTemp = (int) v; + onConfigChanged(); + }), + padding(4, 6), + numericSetting( + I18n.format("nh_gui.sim.settings.initial_reactor_heat"), + () -> this.config.initialHeat, + v -> { + this.config.initialHeat = (int) v; + onConfigChanged(); + })), + padding(7, 7)); } private Widget componentAutomationPage() { - return new Row() - .widgets( - padding(7, 7), - new Column() - .setAlignment(MainAxisAlignment.START, CrossAxisAlignment.START) - .widgets( - padding(7, 7), - new Row() - .setAlignment(MainAxisAlignment.CENTER) - .widget( - new TextWidget(I18n.format("nh_gui.sim.comp_settings.title")).setSize(150, 16) - ), - padding(7, 7), - TextWidget - .dynamicString(() -> { - String active = null; - - if(activeComponentX == -1 || activeComponentY == -1) { - active = I18n.format("nh_gui.sim.results.none"); - } else { - var comp = config.components[activeComponentX + activeComponentY * COL_COUNT]; - - active = I18n.format( - "nh_gui.sim.comp_settings.xy", - activeComponentX, - activeComponentY, - comp == null - ? I18n.format("nh_gui.sim.results.none") - : I18n.format(comp.item.getUnlocalizedName()) - ); - } - - return I18n.format("nh_gui.sim.comp_settings.active", active); - }), - textSetting( - I18n.format("nh_gui.sim.settings.planner_code"), - () -> this.configCode, - this::setConfigCode - ), - padding(7, 7), - numericSetting( - I18n.format("nh_gui.sim.settings.max_simulation_ticks"), - () -> this.config.maxSimulationTicks, - v -> { - this.config.maxSimulationTicks = (int)v; - onConfigChanged(); - } - ), - padding(4, 4), - booleanSetting( - I18n.format("nh_gui.sim.settings.fluid"), - () -> this.config.fluid, - b -> { - this.config.fluid = b; - onConfigChanged(); - } - ), - padding(4, 4), - booleanSetting( - I18n.format("nh_gui.sim.settings.pulsed"), - () -> this.config.pulsed, - b -> { - this.config.pulsed = b; - onConfigChanged(); - } - ), - padding(4, 4), - numericSetting( - I18n.format("nh_gui.sim.settings.on_pulse"), - () -> this.config.onPulse, - v -> { - this.config.onPulse = (int)v; - onConfigChanged(); - } - ), - padding(4, 6), - numericSetting( - I18n.format("nh_gui.sim.settings.off_pulse"), - () -> this.config.offPulse, - v -> { - this.config.offPulse = (int)v; - onConfigChanged(); - } - ), - padding(4, 6), - numericSetting( - I18n.format("nh_gui.sim.settings.suspend_temp"), - () -> this.config.suspendTemp, - v -> { - this.config.suspendTemp = (int)v; - onConfigChanged(); - } - ), - padding(4, 6), - numericSetting( - I18n.format("nh_gui.sim.settings.resume_temp"), - () -> this.config.resumeTemp, - v -> { - this.config.resumeTemp = (int)v; - onConfigChanged(); - } - ), - padding(4, 6), - numericSetting( - I18n.format("nh_gui.sim.settings.initial_reactor_heat"), - () -> this.config.initialHeat, - v -> { - this.config.initialHeat = (int)v; - onConfigChanged(); - } - ) - ), - padding(7, 7) - ); + return new Row().widgets( + padding(7, 7), + new Column().setAlignment(MainAxisAlignment.START, CrossAxisAlignment.START) + .widgets( + padding(7, 7), + new Row().setAlignment(MainAxisAlignment.CENTER) + .widget(new TextWidget(I18n.format("nh_gui.sim.comp_settings.title")).setSize(150, 16)), + padding(7, 7), + TextWidget.dynamicString(() -> { + String active = null; + + if (activeComponentX == -1 || activeComponentY == -1) { + active = I18n.format("nh_gui.sim.results.none"); + } else { + var comp = config.components[activeComponentX + activeComponentY * COL_COUNT]; + + active = I18n.format( + "nh_gui.sim.comp_settings.xy", + activeComponentX, + activeComponentY, + comp == null ? I18n.format("nh_gui.sim.results.none") + : I18n.format(comp.item.getUnlocalizedName())); + } + + return I18n.format("nh_gui.sim.comp_settings.active", active); + }), + textSetting( + I18n.format("nh_gui.sim.settings.planner_code"), + () -> this.configCode, + this::setConfigCode), + padding(7, 7), + numericSetting( + I18n.format("nh_gui.sim.settings.max_simulation_ticks"), + () -> this.config.maxSimulationTicks, + v -> { + this.config.maxSimulationTicks = (int) v; + onConfigChanged(); + }), + padding(4, 4), + booleanSetting(I18n.format("nh_gui.sim.settings.fluid"), () -> this.config.fluid, b -> { + this.config.fluid = b; + onConfigChanged(); + }), + padding(4, 4), + booleanSetting(I18n.format("nh_gui.sim.settings.pulsed"), () -> this.config.pulsed, b -> { + this.config.pulsed = b; + onConfigChanged(); + }), + padding(4, 4), + numericSetting(I18n.format("nh_gui.sim.settings.on_pulse"), () -> this.config.onPulse, v -> { + this.config.onPulse = (int) v; + onConfigChanged(); + }), + padding(4, 6), + numericSetting(I18n.format("nh_gui.sim.settings.off_pulse"), () -> this.config.offPulse, v -> { + this.config.offPulse = (int) v; + onConfigChanged(); + }), + padding(4, 6), + numericSetting( + I18n.format("nh_gui.sim.settings.suspend_temp"), + () -> this.config.suspendTemp, + v -> { + this.config.suspendTemp = (int) v; + onConfigChanged(); + }), + padding(4, 6), + numericSetting(I18n.format("nh_gui.sim.settings.resume_temp"), () -> this.config.resumeTemp, v -> { + this.config.resumeTemp = (int) v; + onConfigChanged(); + }), + padding(4, 6), + numericSetting( + I18n.format("nh_gui.sim.settings.initial_reactor_heat"), + () -> this.config.initialHeat, + v -> { + this.config.initialHeat = (int) v; + onConfigChanged(); + })), + padding(7, 7)); } private static class SimulatorSlotWidget extends SlotWidget { + private Runnable onRightClicked; public SimulatorSlotWidget(BaseSlot slot, @NotNull Runnable onRightClicked) { @@ -687,15 +587,16 @@ public SimulatorSlotWidget(BaseSlot slot, @NotNull Runnable onRightClicked) { } public java.util.List getExtraTooltip() { - var tooltip = (ArrayList)super.getExtraTooltip(); + var tooltip = (ArrayList) super.getExtraTooltip(); - tooltip.add(EnumChatFormatting.DARK_GRAY.toString() + I18n.format("nh_gui.sim.actions.edit_comp_automation")); + tooltip + .add(EnumChatFormatting.DARK_GRAY.toString() + I18n.format("nh_gui.sim.actions.edit_comp_automation")); return tooltip; } public ClickResult onClick(int button, boolean doubleClick) { - if(button == 1) { + if (button == 1) { Widget.ClickData clickData = ClickData.create(button, doubleClick); this.syncToServer(6, clickData::writeToPacket); return ClickResult.SUCCESS; @@ -705,8 +606,8 @@ public ClickResult onClick(int button, boolean doubleClick) { } public void readOnServer(int id, PacketBuffer buf) throws IOException { - if(id == 6) { - if(this.onRightClicked != null) this.onRightClicked.run(); + if (id == 6) { + if (this.onRightClicked != null) this.onRightClicked.run(); this.markForUpdate(); } else { @@ -722,12 +623,9 @@ private static class MessageChannel from_client; private @Nullable Consumer handle_on_server; - public MessageChannel( - @Nullable Class from_server, - @Nullable Consumer handle_on_client, - @Nullable Class from_client, - @Nullable Consumer handle_on_server - ) { + public MessageChannel(@Nullable Class from_server, + @Nullable Consumer handle_on_client, @Nullable Class from_client, + @Nullable Consumer handle_on_server) { this.from_server = from_server; this.handle_on_client = handle_on_client; this.from_client = from_client; @@ -736,13 +634,15 @@ public MessageChannel( @Override public void readOnClient(int arg0, PacketBuffer arg1) throws IOException { - if(from_server != null && handle_on_client != null) { + if (from_server != null && handle_on_client != null) { FromServer message; try { message = from_server.newInstance(); } catch (InstantiationException | IllegalAccessException e) { - throw new RuntimeException("Could not create instance of FromServer message; type must have a public no-argument constructor", e); + throw new RuntimeException( + "Could not create instance of FromServer message; type must have a public no-argument constructor", + e); } message.fromBytes(arg1); @@ -753,13 +653,15 @@ public void readOnClient(int arg0, PacketBuffer arg1) throws IOException { @Override public void readOnServer(int arg0, PacketBuffer arg1) throws IOException { - if(from_client != null && handle_on_server != null) { + if (from_client != null && handle_on_server != null) { FromClient message; try { message = from_client.newInstance(); } catch (InstantiationException | IllegalAccessException e) { - throw new RuntimeException("Could not create instance of FromClient message; type must have a public no-argument constructor", e); + throw new RuntimeException( + "Could not create instance of FromClient message; type must have a public no-argument constructor", + e); } message.fromBytes(arg1); @@ -769,23 +671,19 @@ public void readOnServer(int arg0, PacketBuffer arg1) throws IOException { } public void sendToClient(@NotNull FromServer message) { - if(NetworkUtils.isClient()) { + if (NetworkUtils.isClient()) { throw new IllegalStateException("cannot call sendToClient() on the client"); } - this.syncToClient(0, buf -> { - message.toBytes(buf); - }); + this.syncToClient(0, buf -> { message.toBytes(buf); }); } public void sendToServer(@NotNull FromClient message) { - if(!NetworkUtils.isClient()) { + if (!NetworkUtils.isClient()) { throw new IllegalStateException("cannot call sendToServer() on the server"); } - this.syncToServer(0, buf -> { - message.toBytes(buf); - }); + this.syncToServer(0, buf -> { message.toBytes(buf); }); } } } diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileRedstonePort.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileRedstonePort.java index c23d283..ce97338 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileRedstonePort.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileRedstonePort.java @@ -11,21 +11,23 @@ public class TileRedstonePort extends TileEntity implements IReactorBlock { public int reactorRelX, reactorRelY, reactorRelZ; - + private boolean inverted, hasSignal; @Override public @Nullable TileReactorCore getReactor() { - if(worldObj.getTileEntity(xCoord + reactorRelX, yCoord + reactorRelY, zCoord + reactorRelZ) instanceof TileReactorCore reactor) { + // spotless:off + if (worldObj.getTileEntity(xCoord + reactorRelX, yCoord + reactorRelY, zCoord + reactorRelZ) instanceof TileReactorCore reactor) { return reactor; } else { return null; } + // spotless:on } @Override public void setReactor(TileReactorCore reactor) { - if(getReactor() != reactor) { + if (getReactor() != reactor) { this.reactorRelX = reactor.xCoord - xCoord; this.reactorRelY = reactor.yCoord - yCoord; this.reactorRelZ = reactor.zCoord - zCoord; @@ -38,14 +40,14 @@ public void setReactor(TileReactorCore reactor) { public ReactorEnableState getEnableState() { boolean hasSignal = worldObj.getBlockPowerInput(xCoord, yCoord, zCoord) > 0; - if(inverted) { - if(hasSignal) { + if (inverted) { + if (hasSignal) { return ReactorEnableState.Inhibiting; } else { return ReactorEnableState.Active; } } else { - if(hasSignal) { + if (hasSignal) { return ReactorEnableState.Active; } else { return ReactorEnableState.Idle; @@ -90,7 +92,7 @@ public void writeToNBT(NBTTagCompound compound) { public void readFromNBT(NBTTagCompound compound) { super.readFromNBT(compound); - switch(compound.getInteger("version")) { + switch (compound.getInteger("version")) { case 1: { this.reactorRelX = compound.getInteger("reactorRelX"); this.reactorRelY = compound.getInteger("reactorRelY"); diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileThermalSensor.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileThermalSensor.java index 789977d..ceb34df 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileThermalSensor.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/TileThermalSensor.java @@ -1,8 +1,15 @@ package com.recursive_pineapple.nuclear_horizons.reactors.tile; import java.util.Arrays; + import javax.annotation.Nullable; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; + import com.gtnewhorizons.modularui.api.ModularUITextures; import com.gtnewhorizons.modularui.api.drawable.AdaptableUITexture; import com.gtnewhorizons.modularui.api.math.Color; @@ -15,16 +22,10 @@ import com.gtnewhorizons.modularui.common.widget.textfield.NumericWidget; import com.recursive_pineapple.nuclear_horizons.reactors.components.IReactorGrid; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.NetworkManager; -import net.minecraft.network.Packet; -import net.minecraft.network.play.server.S35PacketUpdateTileEntity; -import net.minecraft.tileentity.TileEntity; - public class TileThermalSensor extends TileEntity implements ITileWithModularUI, IReactorBlock { public int reactorRelX, reactorRelY, reactorRelZ; - + private int threshold; private ThermalSensorOp op = ThermalSensorOp.GTE; @@ -32,13 +33,14 @@ public class TileThermalSensor extends TileEntity implements ITileWithModularUI, private Boolean wasActive = null; private static enum ThermalSensorOp { + LT, LTE, GT, GTE; public String getDisplayString() { - return switch(this) { + return switch (this) { case LT -> "<"; case LTE -> "<="; case GT -> ">"; @@ -58,16 +60,18 @@ public boolean test(int threshold, int temp) { @Override public @Nullable TileReactorCore getReactor() { - if(worldObj.getTileEntity(xCoord + reactorRelX, yCoord + reactorRelY, zCoord + reactorRelZ) instanceof TileReactorCore reactor) { + // spotless:off + if (worldObj.getTileEntity(xCoord + reactorRelX, yCoord + reactorRelY, zCoord + reactorRelZ) instanceof TileReactorCore reactor) { return reactor; } else { return null; } + // spotless:on } @Override public void setReactor(TileReactorCore reactor) { - if(getReactor() != reactor) { + if (getReactor() != reactor) { this.reactorRelX = reactor.xCoord - xCoord; this.reactorRelY = reactor.yCoord - yCoord; this.reactorRelZ = reactor.zCoord - zCoord; @@ -80,7 +84,7 @@ public void setReactor(TileReactorCore reactor) { public void onHeatTick(IReactorGrid reactor) { var shouldBeActive = op.test(threshold, reactor.getHullHeat()); - if(wasActive == null || shouldBeActive != wasActive) { + if (wasActive == null || shouldBeActive != wasActive) { wasActive = shouldBeActive; worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, getBlockType()); } @@ -109,7 +113,7 @@ public void writeToNBT(NBTTagCompound compound) { public void readFromNBT(NBTTagCompound compound) { super.readFromNBT(compound); - switch(compound.getInteger("version")) { + switch (compound.getInteger("version")) { case 1: { this.reactorRelX = compound.getInteger("reactorRelX"); this.reactorRelY = compound.getInteger("reactorRelY"); @@ -145,7 +149,8 @@ public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { this.op = ThermalSensorOp.valueOf(data.getString("op")); } - private static final AdaptableUITexture DISPLAY = AdaptableUITexture.of("modularui:gui/background/display", 143, 75, 2); + private static final AdaptableUITexture DISPLAY = AdaptableUITexture + .of("modularui:gui/background/display", 143, 75, 2); @Override public ModularWindow createWindow(UIBuildContext buildContext) { @@ -154,13 +159,11 @@ public ModularWindow createWindow(UIBuildContext buildContext) { builder.setBackground(ModularUITextures.VANILLA_BACKGROUND); builder.widgets( - new TextWidget("Reactor Thermal Sensor") - .setPos(8, 8), - new VanillaButtonWidget() - .setDisplayString(this.op.getDisplayString()) + new TextWidget("Reactor Thermal Sensor").setPos(8, 8), + new VanillaButtonWidget().setDisplayString(this.op.getDisplayString()) .setOnClick((t, u) -> { this.op = ThermalSensorOp.values()[(this.op.ordinal() + 1) % ThermalSensorOp.values().length]; - ((VanillaButtonWidget)u).setDisplayString(op.getDisplayString()); + ((VanillaButtonWidget) u).setDisplayString(op.getDisplayString()); u.notifyTooltipChange(); this.markDirty(); @@ -169,34 +172,30 @@ public ModularWindow createWindow(UIBuildContext buildContext) { }) .dynamicTooltipShift(() -> { return Arrays.asList( - String.format( - "Emit a redstone signal when reactor temperature is %s the threshold", - switch(op) { - case LT -> "less than"; - case LTE -> "less than or equal to"; - case GT -> "greater than"; - case GTE -> "greater than or equal to"; - } - ) - ); + String + .format("Emit a redstone signal when reactor temperature is %s the threshold", switch (op) { + case LT -> "less than"; + case LTE -> "less than or equal to"; + case GT -> "greater than"; + case GTE -> "greater than or equal to"; + })); }) .setSize(24, 16) .setPos(8, 24), - new NumericWidget() - .setGetter(() -> this.threshold) + new NumericWidget().setGetter(() -> this.threshold) .setSetter(v -> { - this.threshold = (int)v; + this.threshold = (int) v; this.markDirty(); this.worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); this.onHeatTick(getReactor()); }) .setBounds(0, Double.MAX_VALUE) - .setTextColor(Color.WHITE.dark(1)).setBackground(DISPLAY.withOffset(-2, -2, 4, 4)) + .setTextColor(Color.WHITE.dark(1)) + .setBackground(DISPLAY.withOffset(-2, -2, 4, 4)) .setSize(96, 16) - .setPos(40, 24) - ); - + .setPos(40, 24)); + return builder.build(); } } diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/simulator/BigintStorage.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/simulator/BigintStorage.java index b7b032f..1def197 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/simulator/BigintStorage.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/simulator/BigintStorage.java @@ -9,29 +9,34 @@ /** * Stores numbers of varying size inside a BigInteger, expecting each to have - * a defined limit (which need not be an exact power of 2). Numbers are to be + * a defined limit (which need not be an exact power of 2). Numbers are to be * extracted in reverse order they were stored, and special values can be used * to make certain values optional for inclusion (the calling class is * responsible for handling this logic, though). + * * @author Brian McCloud */ public class BigintStorage { + private BigInteger storedValue = BigInteger.ZERO; /** - * Stores the specified value. Requires that 0 <= value <= max. + * Stores the specified value. Requires that 0 <= value <= max. + * * @param value the value to store. - * @param max the expected maximum for the value. + * @param max the expected maximum for the value. */ public void store(int value, int max) { if (value < 0 || value > max) { throw new IllegalArgumentException(); } - storedValue = storedValue.multiply(BigInteger.valueOf(max + 1)).add(BigInteger.valueOf(value)); + storedValue = storedValue.multiply(BigInteger.valueOf(max + 1)) + .add(BigInteger.valueOf(value)); } /** * Extracts a value based on the specified maximum. + * * @param max the expected maximum for the value. * @return the extracted value. */ @@ -43,23 +48,27 @@ public int extract(int max) { /** * Takes input of a Base64 string, and converts it to a BigintStorage. + * * @param code the Base64-encoded string (presumed to be from @outputBase64) * @return the converted storage object. */ public static BigintStorage inputBase64(String code) { BigintStorage result = new BigintStorage(); - byte[] temp = Base64.getDecoder().decode(code); + byte[] temp = Base64.getDecoder() + .decode(code); result.storedValue = new BigInteger(temp); return result; } /** * Outputs the current value of this BigintStorage as a Base64-encoded string. + * * @return the Base64-encoded string. */ public String outputBase64() { byte[] temp = storedValue.toByteArray(); - return Base64.getEncoder().encodeToString(temp); + return Base64.getEncoder() + .encodeToString(temp); } public boolean isEmpty() { diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/simulator/SimulationComponentResult.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/simulator/SimulationComponentResult.java index ba58f90..58f1d0a 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/simulator/SimulationComponentResult.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/simulator/SimulationComponentResult.java @@ -1,6 +1,8 @@ package com.recursive_pineapple.nuclear_horizons.reactors.tile.simulator; public class SimulationComponentResult { + // spotless:off + public long totalAirHeating, totalHullHeating, @@ -15,4 +17,6 @@ public class SimulationComponentResult { public int minTemp = Integer.MAX_VALUE, maxTemp, replaceCount; -} \ No newline at end of file + + // spotless:on +} diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/simulator/SimulationConfig.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/simulator/SimulationConfig.java index 4452213..031ce42 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/simulator/SimulationConfig.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/simulator/SimulationConfig.java @@ -6,15 +6,6 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; -import org.jetbrains.annotations.NotNull; - -import com.google.protobuf.InvalidProtocolBufferException; -import com.gtnewhorizons.modularui.api.forge.IItemHandlerModifiable; -import com.recursive_pineapple.nuclear_horizons.NuclearHorizons; -import com.recursive_pineapple.nuclear_horizons.reactors.components.ComponentRegistry; -import com.recursive_pineapple.nuclear_horizons.reactors.tile.TileReactorCore; - -import io.netty.buffer.ByteBuf; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; import net.minecraft.item.Item; @@ -25,8 +16,20 @@ import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; +import org.jetbrains.annotations.NotNull; + +import com.google.protobuf.InvalidProtocolBufferException; +import com.gtnewhorizons.modularui.api.forge.IItemHandlerModifiable; +import com.recursive_pineapple.nuclear_horizons.NuclearHorizons; +import com.recursive_pineapple.nuclear_horizons.reactors.components.ComponentRegistry; +import com.recursive_pineapple.nuclear_horizons.reactors.tile.TileReactorCore; + +import io.netty.buffer.ByteBuf; + public class SimulationConfig implements IItemHandlerModifiable { + // spotless:off + public boolean pulsed = false, automated = true, @@ -43,6 +46,8 @@ public class SimulationConfig implements IItemHandlerModifiable { public SimComponentConfig[] components = new SimComponentConfig[TileReactorCore.COL_COUNT * TileReactorCore.ROW_COUNT]; + // spotless:on + @Nullable public transient SimulationResult result; @@ -57,7 +62,7 @@ public String getCode() { storage.store(usingReactorCoolantInjectors ? 1 : 0, 1); storage.store(fluid ? 1 : 0, 1); - if(pulsed) { + if (pulsed) { storage.store(resumeTemp, 120000); storage.store(suspendTemp, 120000); storage.store(offPulse, 5000000); @@ -68,30 +73,34 @@ public String getCode() { final int maxComponentHeat = 1000000000; - for(int i = components.length - 1; i >= 0; i--) { + for (int i = components.length - 1; i >= 0; i--) { var c = components[i]; - if(c == null) { + if (c == null) { storage.store(0, 72); continue; } Integer componentId = SimulationItems.getSimulationItemId(c.item); - if(componentId == null) { + if (componentId == null) { storage.store(0, 72); - NuclearHorizons.LOG.warn("Could not save reactor item " + c.item + " into config code because it does not have a simulation item ID"); + NuclearHorizons.LOG.warn( + "Could not save reactor item " + c.item + + " into config code because it does not have a simulation item ID"); continue; } - if(componentId > 72) { + if (componentId > 72) { storage.store(0, 72); - NuclearHorizons.LOG.warn("Could not save reactor item " + c.item + " into config code because its simulation item ID was greater than 72"); + NuclearHorizons.LOG.warn( + "Could not save reactor item " + c.item + + " into config code because its simulation item ID was greater than 72"); continue; } - if(c.hasAutomation) { - if(automated) { + if (c.hasAutomation) { + if (automated) { storage.store(c.reactorPause, 10000); storage.store(c.replacementThreshold, maxComponentHeat); } @@ -114,69 +123,68 @@ public String getCode() { public static SimulationConfig fromCode(String code) { SimulationConfig config = new SimulationConfig(); - if(code == null || code.isEmpty()) { + if (code == null || code.isEmpty()) { return config; } - if(code.startsWith("erp=")) { + if (code.startsWith("erp=")) { code = code.substring(4); } BigintStorage storage = null; try { storage = BigintStorage.inputBase64(code); - } catch(Throwable t) { - Minecraft.getMinecraft().ingameGUI.getChatGUI().printChatMessage( - new ChatComponentText( - EnumChatFormatting.RED.toString() + EnumChatFormatting.ITALIC.toString() - + "Could not load invalid reactor code." - ) - ); + } catch (Throwable t) { + Minecraft.getMinecraft().ingameGUI.getChatGUI() + .printChatMessage( + new ChatComponentText( + EnumChatFormatting.RED.toString() + EnumChatFormatting.ITALIC.toString() + + "Could not load invalid reactor code.")); NuclearHorizons.LOG.error("Could not parse reactor code into BigInteger", t); return new SimulationConfig(); } int revision = storage.extract(255); - if(revision < 0 || revision > 4) { - Minecraft.getMinecraft().ingameGUI.getChatGUI().printChatMessage( - new ChatComponentText( - EnumChatFormatting.RED.toString() + EnumChatFormatting.ITALIC.toString() - + "Could not load invalid reactor code." - ) - ); - NuclearHorizons.LOG.error("Reactor code had incorrect revision (was " + revision + ", should be 4 >= x >= 0)"); + if (revision < 0 || revision > 4) { + Minecraft.getMinecraft().ingameGUI.getChatGUI() + .printChatMessage( + new ChatComponentText( + EnumChatFormatting.RED.toString() + EnumChatFormatting.ITALIC.toString() + + "Could not load invalid reactor code.")); + NuclearHorizons.LOG + .error("Reactor code had incorrect revision (was " + revision + ", should be 4 >= x >= 0)"); return new SimulationConfig(); } - if(revision >= 1) { + if (revision >= 1) { config.pulsed = storage.extract(1) > 0; config.automated = storage.extract(1) > 0; } - int maxComponentHeat = switch(revision) { + int maxComponentHeat = switch (revision) { case 4 -> 1000000000; case 3 -> 1080000; default -> 360000; }; - for(int row = 0; row < TileReactorCore.ROW_COUNT; row++) { - for(int col = 0; col < TileReactorCore.COL_COUNT; col++) { - int componentId = switch(revision) { + for (int row = 0; row < TileReactorCore.ROW_COUNT; row++) { + for (int col = 0; col < TileReactorCore.COL_COUNT; col++) { + int componentId = switch (revision) { case 0, 1 -> storage.extract(38); case 2 -> storage.extract(44); case 3 -> storage.extract(58); default -> storage.extract(72); }; - if(componentId != 0) { + if (componentId != 0) { var compConfig = new SimComponentConfig(); compConfig.hasAutomation = storage.extract(1) > 0; - if(compConfig.hasAutomation) { + if (compConfig.hasAutomation) { compConfig.initialHeat = storage.extract(maxComponentHeat); - if(revision == 0 || (revision >= 1 && config.automated)) { + if (revision == 0 || (revision >= 1 && config.automated)) { compConfig.replacementThreshold = storage.extract(maxComponentHeat); compConfig.reactorPause = storage.extract(10000); } @@ -184,7 +192,7 @@ public static SimulationConfig fromCode(String code) { compConfig.item = SimulationItems.getSimulationItem(componentId); - if(compConfig.item == null) { + if (compConfig.item == null) { NuclearHorizons.LOG.warn("Could not find simulation item with component id " + componentId); continue; } @@ -196,7 +204,7 @@ public static SimulationConfig fromCode(String code) { config.initialHeat = storage.extract(120000); - if(revision == 0 || (revision >= 1 && config.pulsed)) { + if (revision == 0 || (revision >= 1 && config.pulsed)) { config.onPulse = storage.extract(5000000); config.offPulse = storage.extract(5000000); config.suspendTemp = storage.extract(120000); @@ -206,21 +214,21 @@ public static SimulationConfig fromCode(String code) { config.fluid = storage.extract(1) > 0; config.usingReactorCoolantInjectors = storage.extract(1) > 0; - if(revision == 0) { + if (revision == 0) { config.pulsed = storage.extract(1) > 0; config.automated = storage.extract(1) > 0; } config.maxSimulationTicks = storage.extract(5000000); - if(!storage.isEmpty()) { - Minecraft.getMinecraft().ingameGUI.getChatGUI().printChatMessage( - new ChatComponentText( - EnumChatFormatting.RED.toString() + EnumChatFormatting.ITALIC.toString() - + "Could not load invalid reactor code." - ) - ); - NuclearHorizons.LOG.error("Reactor code had left over data after reading all fields: assuming something has gone wrong."); + if (!storage.isEmpty()) { + Minecraft.getMinecraft().ingameGUI.getChatGUI() + .printChatMessage( + new ChatComponentText( + EnumChatFormatting.RED.toString() + EnumChatFormatting.ITALIC.toString() + + "Could not load invalid reactor code.")); + NuclearHorizons.LOG + .error("Reactor code had left over data after reading all fields: assuming something has gone wrong."); return new SimulationConfig(); } @@ -230,7 +238,7 @@ public static SimulationConfig fromCode(String code) { public static @Nonnull SimulationConfig read(ByteBuf buffer) { byte[] data = new byte[buffer.readInt()]; - if(data.length == 0) { + if (data.length == 0) { return new SimulationConfig(); } @@ -245,10 +253,11 @@ public static SimulationConfig fromCode(String code) { } public static void write(ByteBuf buffer, SimulationConfig result) { - if(result == null) { + if (result == null) { buffer.writeInt(0); } else { - var data = result.save().toByteArray(); + var data = result.save() + .toByteArray(); buffer.writeInt(data.length); buffer.writeBytes(data); } @@ -270,13 +279,13 @@ public SimulatorProtos.SimulationConfig save() { .mapToObj(i -> { var c = components[i]; - if(c == null) { + if (c == null) { return null; } Integer id = SimulationItems.getSimulationItemId(c.item); - if(id == null) { + if (id == null) { return null; } else { return SimulatorProtos.ComponentConfig.newBuilder() @@ -290,8 +299,7 @@ public SimulatorProtos.SimulationConfig save() { } }) .filter(i -> i != null) - .collect(Collectors.toList()) - ) + .collect(Collectors.toList())) .build(); } @@ -308,14 +316,14 @@ public static SimulationConfig load(SimulatorProtos.SimulationConfig data) { config.resumeTemp = data.getResumeTemp(); config.maxSimulationTicks = data.getMaxSimulationTicks(); - for(int i = 0; i < data.getComponentsCount(); i++) { + for (int i = 0; i < data.getComponentsCount(); i++) { var c = data.getComponents(i); var comp = new SimComponentConfig(); comp.item = SimulationItems.getSimulationItem(c.getItem()); - if(comp.item == null) { + if (comp.item == null) { config.components[c.getIndex()] = null; continue; } @@ -342,12 +350,12 @@ public void put(@NotNull SimulationConfig source) { this.resumeTemp = source.resumeTemp; this.maxSimulationTicks = source.maxSimulationTicks; - for(int i = 0; i < source.components.length; i++) { + for (int i = 0; i < source.components.length; i++) { this.components[i] = null; var c = source.components[i]; - if(c != null) { + if (c != null) { var dest = new SimComponentConfig(); dest.item = c.item; @@ -366,11 +374,11 @@ public void put(@NotNull SimulationConfig source) { public ItemStack extractItem(int slot, int amount, boolean simulate) { var item = components[slot]; - if(item == null || amount < 1) { + if (item == null || amount < 1) { return null; } - if(!simulate) { + if (!simulate) { components[slot] = null; } @@ -395,18 +403,18 @@ public ItemStack getStackInSlot(int slot) { @Override @Nullable public ItemStack insertItem(int slot, ItemStack stack, boolean simulate) { - if(components[slot] != null || stack == null || !ComponentRegistry.isReactorItem(stack)) { + if (components[slot] != null || stack == null || !ComponentRegistry.isReactorItem(stack)) { return stack; } var result = stack.copy(); var stored = result.splitStack(1); - if(!simulate) { + if (!simulate) { setStackInSlot(slot, stored); } - if(result.stackSize <= 0) { + if (result.stackSize <= 0) { return null; } else { return result; @@ -415,7 +423,7 @@ public ItemStack insertItem(int slot, ItemStack stack, boolean simulate) { @Override public void setStackInSlot(int slot, ItemStack stack) { - if(stack == null || !ComponentRegistry.isReactorItem(stack)) { + if (stack == null || !ComponentRegistry.isReactorItem(stack)) { components[slot] = null; } else { var config = new SimComponentConfig(); @@ -429,15 +437,12 @@ private static void addResultLine(NBTTagList lines, String name, String unit, Ob var text = I18n.format( "nh_tooltip.sim.results." + name, unit != null - ? I18n.format( - value == null ? "nh_gui.sim.results.none" : ("nh_gui.sim.results." + unit), - value - ) - : value - ); - - for(var line : text.split("\\n")) { - lines.appendTag(new NBTTagString(EnumChatFormatting.RESET.toString() + EnumChatFormatting.BLUE.toString() + line)); + ? I18n.format(value == null ? "nh_gui.sim.results.none" : ("nh_gui.sim.results." + unit), value) + : value); + + for (var line : text.split("\\n")) { + lines.appendTag( + new NBTTagString(EnumChatFormatting.RESET.toString() + EnumChatFormatting.BLUE.toString() + line)); } } @@ -446,39 +451,39 @@ private ItemStack withResults(ItemStack itemStack, int slot) { String format = EnumChatFormatting.RESET.toString() + EnumChatFormatting.BLUE.toString(); var res = result; - - if(res != null) { + + if (res != null) { var r = res.componentResults[slot]; - if(r != null) { + if (r != null) { var lore = new NBTTagList(); lore.appendTag(new NBTTagString("")); lore.appendTag(new NBTTagString(format + I18n.format("nh_tooltip.results.title"))); - if(r.totalTempSecs > 0) { + if (r.totalTempSecs > 0) { addResultLine(lore, "avg_temp", "hu_total", r.totalTempSecs / res.simTime); addResultLine(lore, "min_temp", "hu_total", r.minTemp); addResultLine(lore, "max_temp", "hu_total", r.maxTemp); } - if(r.totalHullCooling > 0) { + if (r.totalHullCooling > 0) { addResultLine(lore, "avg_hull_cooling", "hu_per_second", r.totalHullCooling / res.simTime); } - if(r.totalHullHeating > 0) { + if (r.totalHullHeating > 0) { addResultLine(lore, "avg_hull_heating", "hu_per_second", r.totalHullHeating / res.simTime); addResultLine(lore, "heating_per_item", "hu_total", r.totalHullHeating / (r.replaceCount + 1)); } - if(r.totalAirHeating != 0) { + if (r.totalAirHeating != 0) { addResultLine(lore, "avg_heat_output", "hu_total", r.totalAirHeating / res.simTime); } addResultLine(lore, "replace_count", null, r.replaceCount); - if(r.totalEUOutput > 0) { + if (r.totalEUOutput > 0) { addResultLine(lore, "avg_power", "eu_per_tick", r.totalEUOutput * 2 / 20 / res.simTime); addResultLine(lore, "power_per_item", "eu_total", r.totalEUOutput / (r.replaceCount + 1)); } @@ -492,7 +497,7 @@ private ItemStack withResults(ItemStack itemStack, int slot) { } } - if(!hasResults) { + if (!hasResults) { var lore = new NBTTagList(); lore.appendTag(new NBTTagString("")); @@ -508,6 +513,7 @@ private ItemStack withResults(ItemStack itemStack, int slot) { } public static class SimComponentConfig { + public Item item; public boolean hasAutomation; public int initialHeat; diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/simulator/SimulationItems.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/simulator/SimulationItems.java index 4bf0b00..f5b32a9 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/simulator/SimulationItems.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/simulator/SimulationItems.java @@ -4,10 +4,10 @@ import javax.annotation.Nullable; -import com.recursive_pineapple.nuclear_horizons.reactors.items.ItemList; - import net.minecraft.item.Item; +import com.recursive_pineapple.nuclear_horizons.reactors.items.ItemList; + public class SimulationItems { private static final HashMap reactorItemsById = new HashMap<>(); diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/simulator/SimulationResult.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/simulator/SimulationResult.java index 8e20ad3..311183d 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/simulator/SimulationResult.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/simulator/SimulationResult.java @@ -12,8 +12,11 @@ import io.netty.buffer.ByteBuf; public class SimulationResult { + public SimulationConfig config; + // spotless:off + public long start = System.nanoTime(), end = System.nanoTime(), @@ -42,10 +45,12 @@ public class SimulationResult { public SimulationComponentResult[] componentResults = new SimulationComponentResult[TileReactorCore.COL_COUNT * TileReactorCore.ROW_COUNT]; + // spotless:on + public static @Nullable SimulationResult read(ByteBuf buffer) { byte[] data = new byte[buffer.readInt()]; - if(data.length == 0) { + if (data.length == 0) { return null; } @@ -60,10 +65,11 @@ public class SimulationResult { } public static void write(ByteBuf buffer, SimulationResult result) { - if(result == null) { + if (result == null) { buffer.writeInt(0); } else { - var data = result.save().toByteArray(); + var data = result.save() + .toByteArray(); buffer.writeInt(data.length); buffer.writeBytes(data); } @@ -92,7 +98,7 @@ public SimulatorProtos.SimulationResult save() { .mapToObj(i -> { var c = componentResults[i]; - if(c == null) { + if (c == null) { return null; } else { return SimulatorProtos.ComponentResult.newBuilder() @@ -109,15 +115,14 @@ public SimulatorProtos.SimulationResult save() { } }) .filter(i -> i != null) - .collect(Collectors.toList()) - ); + .collect(Collectors.toList())); - if(timeToNormal != null) builder.setTimeToNormal(timeToNormal); - if(timeToBurn != null) builder.setTimeToBurn(timeToBurn); - if(timeToEvaporate != null) builder.setTimeToEvaporate(timeToEvaporate); - if(timeToHurt != null) builder.setTimeToHurt(timeToHurt); - if(timeToLava != null) builder.setTimeToLava(timeToLava); - if(timeToExplode != null) builder.setTimeToExplode(timeToExplode); + if (timeToNormal != null) builder.setTimeToNormal(timeToNormal); + if (timeToBurn != null) builder.setTimeToBurn(timeToBurn); + if (timeToEvaporate != null) builder.setTimeToEvaporate(timeToEvaporate); + if (timeToHurt != null) builder.setTimeToHurt(timeToHurt); + if (timeToLava != null) builder.setTimeToLava(timeToLava); + if (timeToExplode != null) builder.setTimeToExplode(timeToExplode); return builder.build(); } @@ -142,7 +147,7 @@ public static SimulationResult load(SimulatorProtos.SimulationResult data) { result.activeTime = data.getActiveTime(); result.pausedTime = data.getPausedTime(); - for(int i = 0; i < data.getComponentsCount(); i++) { + for (int i = 0; i < data.getComponentsCount(); i++) { var c = data.getComponents(i); var comp = new SimulationComponentResult(); @@ -159,12 +164,12 @@ public static SimulationResult load(SimulatorProtos.SimulationResult data) { result.componentResults[c.getIndex()] = comp; } - if(data.hasTimeToNormal()) result.timeToNormal = data.getTimeToNormal(); - if(data.hasTimeToBurn()) result.timeToBurn = data.getTimeToBurn(); - if(data.hasTimeToEvaporate()) result.timeToEvaporate = data.getTimeToEvaporate(); - if(data.hasTimeToHurt()) result.timeToHurt = data.getTimeToHurt(); - if(data.hasTimeToLava()) result.timeToLava = data.getTimeToLava(); - if(data.hasTimeToExplode()) result.timeToExplode = data.getTimeToExplode(); + if (data.hasTimeToNormal()) result.timeToNormal = data.getTimeToNormal(); + if (data.hasTimeToBurn()) result.timeToBurn = data.getTimeToBurn(); + if (data.hasTimeToEvaporate()) result.timeToEvaporate = data.getTimeToEvaporate(); + if (data.hasTimeToHurt()) result.timeToHurt = data.getTimeToHurt(); + if (data.hasTimeToLava()) result.timeToLava = data.getTimeToLava(); + if (data.hasTimeToExplode()) result.timeToExplode = data.getTimeToExplode(); return result; } diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/simulator/Simulator.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/simulator/Simulator.java index 1823146..293a478 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/simulator/Simulator.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/simulator/Simulator.java @@ -11,6 +11,11 @@ import javax.annotation.Nullable; +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.EnumChatFormatting; + import com.recursive_pineapple.nuclear_horizons.NuclearHorizons; import com.recursive_pineapple.nuclear_horizons.networking.PacketDispatcher; import com.recursive_pineapple.nuclear_horizons.networking.PacketDispatcher.ReactorSimulationFinishedMessage; @@ -20,11 +25,6 @@ import com.recursive_pineapple.nuclear_horizons.reactors.tile.TileReactorCore; import com.recursive_pineapple.nuclear_horizons.reactors.tile.TileReactorSimulator; -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.EnumChatFormatting; - public class Simulator { private final TileReactorSimulator parent; @@ -41,7 +41,7 @@ public boolean isRunning() { } public void start(SimulationConfig config) { - if(simulation != null) { + if (simulation != null) { simulation.cancel(true); } @@ -56,34 +56,32 @@ public void cancel() { private SimulationResult runSimulation(SimulationConfig config) { SimulatedReactor reactor = new SimulatedReactor(); reactor.config = config; - - Minecraft.getMinecraft().ingameGUI.getChatGUI().printChatMessage( - new ChatComponentText( - EnumChatFormatting.GRAY.toString() + EnumChatFormatting.ITALIC.toString() - + "Started reactor simulation." - ) - ); + + Minecraft.getMinecraft().ingameGUI.getChatGUI() + .printChatMessage( + new ChatComponentText( + EnumChatFormatting.GRAY.toString() + EnumChatFormatting.ITALIC.toString() + + "Started reactor simulation.")); reactor.run(); - Minecraft.getMinecraft().ingameGUI.getChatGUI().printChatMessage( - new ChatComponentText( - EnumChatFormatting.GRAY.toString() + EnumChatFormatting.ITALIC.toString() - + "Reactor simulation finished after " - + String.format("%.3f seconds.", reactor.result.duration()) - ) - ); + Minecraft.getMinecraft().ingameGUI.getChatGUI() + .printChatMessage( + new ChatComponentText( + EnumChatFormatting.GRAY.toString() + EnumChatFormatting.ITALIC.toString() + + "Reactor simulation finished after " + + String.format("%.3f seconds.", reactor.result.duration()))); reactor.result.config = config; return reactor.result; } public void pollFinished() { - if(simulation != null && simulation.isDone()) { + if (simulation != null && simulation.isDone()) { try { var result = simulation.get(0l, TimeUnit.NANOSECONDS); simulation = null; - + var msg = new ReactorSimulationFinishedMessage(); msg.dimensionId = parent.getWorldObj().provider.dimensionId; @@ -92,19 +90,22 @@ public void pollFinished() { msg.z = parent.zCoord; msg.result = result; - NuclearHorizons.LOG.info(String.format("Simulation finished after %.3fs (%.3fns per tick)", result.duration(), (result.duration() * 1e9d / result.simTime))); + NuclearHorizons.LOG.info( + String.format( + "Simulation finished after %.3fs (%.3fns per tick)", + result.duration(), + (result.duration() * 1e9d / result.simTime))); PacketDispatcher.DISPATCHER.sendToServer(msg); } catch (InterruptedException | CancellationException | ExecutionException e) { NuclearHorizons.LOG.warn("Simulation did not finish", e); - Minecraft.getMinecraft().ingameGUI.getChatGUI().printChatMessage( - new ChatComponentText( - EnumChatFormatting.RED - + "Simulation crashed, check the server logs for more details. (" - + e.getClass().getName() - + ")" - ) - ); - + Minecraft.getMinecraft().ingameGUI.getChatGUI() + .printChatMessage( + new ChatComponentText( + EnumChatFormatting.RED + "Simulation crashed, check the server logs for more details. (" + + e.getClass() + .getName() + + ")")); + simulation = null; } catch (TimeoutException e) { // do nothing @@ -116,7 +117,7 @@ private static class SimulatedReactor implements IReactorGrid { private static final int COL_COUNT = TileReactorCore.COL_COUNT; private static final int ROW_COUNT = TileReactorCore.ROW_COUNT; - + public ItemStack[] contents = new ItemStack[COL_COUNT * ROW_COUNT]; public IComponentAdapter[] components = new IComponentAdapter[COL_COUNT * ROW_COUNT]; @@ -143,23 +144,25 @@ public int getHeight() { @Override public @Nullable IComponentAdapter getComponent(int x, int y) { - if(x < 0 || x >= COL_COUNT) { - throw new IllegalArgumentException(String.format("Illegal value for x: %d, must conform to x >= 0, x < %d", x, COL_COUNT)); + if (x < 0 || x >= COL_COUNT) { + throw new IllegalArgumentException( + String.format("Illegal value for x: %d, must conform to x >= 0, x < %d", x, COL_COUNT)); } - if(y < 0 || y >= ROW_COUNT) { - throw new IllegalArgumentException(String.format("Illegal value for y: %d, must conform to y >= 0, y < %d", y, ROW_COUNT)); + if (y < 0 || y >= ROW_COUNT) { + throw new IllegalArgumentException( + String.format("Illegal value for y: %d, must conform to y >= 0, y < %d", y, ROW_COUNT)); } int index = y * COL_COUNT + x; var adapter = this.components[index]; - if(adapter != null) { + if (adapter != null) { return adapter; } var item = this.contents[index]; - if(item != null) { + if (item != null) { adapter = ComponentRegistry.getAdapter(item, this, x, y); this.components[index] = adapter; } @@ -169,12 +172,14 @@ public int getHeight() { @Override public @Nullable ItemStack getItem(int x, int y) { - if(x < 0 || x >= COL_COUNT) { - throw new IllegalArgumentException(String.format("Illegal value for x: %d, must conform to x >= 0, x < %d", x, COL_COUNT)); + if (x < 0 || x >= COL_COUNT) { + throw new IllegalArgumentException( + String.format("Illegal value for x: %d, must conform to x >= 0, x < %d", x, COL_COUNT)); } - if(y < 0 || y >= ROW_COUNT) { - throw new IllegalArgumentException(String.format("Illegal value for y: %d, must conform to y >= 0, y < %d", y, ROW_COUNT)); + if (y < 0 || y >= ROW_COUNT) { + throw new IllegalArgumentException( + String.format("Illegal value for y: %d, must conform to y >= 0, y < %d", y, ROW_COUNT)); } int index = y * COL_COUNT + x; @@ -184,12 +189,14 @@ public int getHeight() { @Override public void setItem(int x, int y, @Nullable ItemStack item) { - if(x < 0 || x >= COL_COUNT) { - throw new IllegalArgumentException(String.format("Illegal value for x: %d, must conform to x >= 0, x < %d", x, COL_COUNT)); + if (x < 0 || x >= COL_COUNT) { + throw new IllegalArgumentException( + String.format("Illegal value for x: %d, must conform to x >= 0, x < %d", x, COL_COUNT)); } - if(y < 0 || y >= ROW_COUNT) { - throw new IllegalArgumentException(String.format("Illegal value for y: %d, must conform to y >= 0, y < %d", y, ROW_COUNT)); + if (y < 0 || y >= ROW_COUNT) { + throw new IllegalArgumentException( + String.format("Illegal value for y: %d, must conform to y >= 0, y < %d", y, ROW_COUNT)); } int index = y * COL_COUNT + x; @@ -202,15 +209,15 @@ public void setItem(int x, int y, @Nullable ItemStack item) { @Override public boolean isActive() { - if(suspended) { + if (suspended) { return false; } - - if(nextUnpause != null && reactorTickCounter < nextUnpause) { + + if (nextUnpause != null && reactorTickCounter < nextUnpause) { return false; } - - if(config.pulsed) { + + if (config.pulsed) { return pulseActive; } @@ -226,10 +233,10 @@ public int getHullHeat() { public int getMaxHullHeat() { int maxHeat = 5000; - for(int row = 0; row < ROW_COUNT; row++) { - for(int col = 0; col < COL_COUNT; col++) { + for (int row = 0; row < ROW_COUNT; row++) { + for (int col = 0; col < COL_COUNT; col++) { var component = getComponent(col, row); - if(component != null) { + if (component != null) { maxHeat += component.getReactorMaxHeatIncrease(); } } @@ -247,7 +254,7 @@ public void setHullHeat(int newHeat) { public void addHullHeat(int delta) { this.storedHeat += delta; - if(delta > 0) { + if (delta > 0) { currentComponent.totalHullHeating += delta; } else { currentComponent.totalHullCooling += -delta; @@ -281,12 +288,12 @@ public void run() { Arrays.fill(components, null); Arrays.fill(contents, null); - for(int i = 0; i < components.length; i++) { + for (int i = 0; i < components.length; i++) { contents[i] = config.getStackInSlot(i); componentResults[i] = new SimulationComponentResult(); var comp = getComponent(i % COL_COUNT, i / COL_COUNT); - if(comp != null) { + if (comp != null) { comp.addHeat(config.components[i].initialHeat); } } @@ -296,23 +303,23 @@ public void run() { this.pulseActive = true; this.storedHeat = config.initialHeat; - while(reactorTickCounter < config.maxSimulationTicks) { - if(reactorTickCounter % 2 == 0) { + while (reactorTickCounter < config.maxSimulationTicks) { + if (reactorTickCounter % 2 == 0) { this.addedEU = 0; } else { this.addedHU = 0; } - for(int row = 0; row < ROW_COUNT; row++) { - for(int col = 0; col < COL_COUNT; col++) { + for (int row = 0; row < ROW_COUNT; row++) { + for (int col = 0; col < COL_COUNT; col++) { int index = row * COL_COUNT + col; var component = getComponent(col, row); - if(component != null) { + if (component != null) { currentComponent = componentResults[index]; - if(reactorTickCounter % 2 == 0) { + if (reactorTickCounter % 2 == 0) { component.onEnergyTick(); } else { component.onHeatTick(); @@ -322,23 +329,24 @@ public void run() { currentComponent.totalTempSecs += heat * 2; - if(heat < currentComponent.minTemp) { + if (heat < currentComponent.minTemp) { currentComponent.minTemp = heat; } - if(heat > currentComponent.maxTemp) { + if (heat > currentComponent.maxTemp) { currentComponent.maxTemp = heat; } var compConfig = config.components[index]; - if(compConfig.hasAutomation && component.getStoredHeat() > compConfig.replacementThreshold) { + if (compConfig.hasAutomation + && component.getStoredHeat() > compConfig.replacementThreshold) { components[index] = null; contents[index] = null; } // may be set to null by the component itself, or to e.g. a depleted fuel rod - if(contents[index] == null || contents[index].getItem() != compConfig.item) { + if (contents[index] == null || contents[index].getItem() != compConfig.item) { currentComponent.replaceCount++; contents[index] = new ItemStack(compConfig.item); } @@ -346,81 +354,81 @@ public void run() { } } - if(reactorTickCounter % 2 == 0) { + if (reactorTickCounter % 2 == 0) { int eupt = (int) (this.addedEU / 20); - if(eupt < result.minEUpT) { + if (eupt < result.minEUpT) { result.minEUpT = eupt; } - - if(eupt > result.maxEUpT) { + + if (eupt > result.maxEUpT) { result.maxEUpT = eupt; } } else { int hups = this.addedHU; - if(hups < result.minHUpS) { + if (hups < result.minHUpS) { result.minHUpS = hups; } - - if(hups > result.maxHUpS) { + + if (hups > result.maxHUpS) { result.maxHUpS = hups; } - if(storedHeat < result.minTemp) { + if (storedHeat < result.minTemp) { result.minTemp = storedHeat; } - - if(storedHeat > result.maxTemp) { + + if (storedHeat > result.maxTemp) { result.maxTemp = storedHeat; } result.totalTempSecs += storedHeat * 2; - double ratio = storedHeat / (double)getMaxHullHeat(); + double ratio = storedHeat / (double) getMaxHullHeat(); - if(result.timeToEvaporate != null && result.timeToNormal == null && ratio < 0.5) { + if (result.timeToEvaporate != null && result.timeToNormal == null && ratio < 0.5) { result.timeToNormal = reactorTickCounter; } - if(result.timeToBurn == null && ratio >= 0.4) { + if (result.timeToBurn == null && ratio >= 0.4) { result.timeToBurn = reactorTickCounter; } - if(result.timeToEvaporate == null && ratio >= 0.5) { + if (result.timeToEvaporate == null && ratio >= 0.5) { result.timeToEvaporate = reactorTickCounter; } - if(result.timeToHurt == null && ratio >= 0.7) { + if (result.timeToHurt == null && ratio >= 0.7) { result.timeToHurt = reactorTickCounter; } - if(result.timeToLava == null && ratio >= 0.85) { + if (result.timeToLava == null && ratio >= 0.85) { result.timeToLava = reactorTickCounter; } - if(result.timeToExplode == null && ratio >= 1) { + if (result.timeToExplode == null && ratio >= 1) { result.timeToExplode = reactorTickCounter; break; } } - if(isActive()) { + if (isActive()) { result.activeTime++; } else { result.pausedTime++; } - if(config.pulsed) { + if (config.pulsed) { pulseCounter++; - if(pulseActive) { - if(pulseCounter >= config.onPulse) { + if (pulseActive) { + if (pulseCounter >= config.onPulse) { pulseActive = false; pulseCounter -= config.onPulse; } } else { - if(pulseCounter >= config.offPulse) { + if (pulseCounter >= config.offPulse) { pulseActive = true; pulseCounter -= config.offPulse; } @@ -434,10 +442,10 @@ public void run() { result.end = System.nanoTime(); - for(int i = 0; i < components.length; i++) { + for (int i = 0; i < components.length; i++) { var c = getComponent(i % COL_COUNT, i / COL_COUNT); - if(c != null) { + if (c != null) { c.modifySimulationResults(result, i); } } diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/simulator/SimulatorProtos.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/simulator/SimulatorProtos.java index 8ec8001..113d778 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/simulator/SimulatorProtos.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/simulator/SimulatorProtos.java @@ -1,3 +1,4 @@ +// spotless:off // Generated by the protocol buffer compiler. DO NOT EDIT! // source: src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/tile/simulator/SimulationConfigProto.proto @@ -5978,3 +5979,4 @@ public com.recursive_pineapple.nuclear_horizons.reactors.tile.simulator.Simulato // @@protoc_insertion_point(outer_class_scope) } +// spotless:on diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/utils/DirectionUtil.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/utils/DirectionUtil.java index e393eb0..7a2f485 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/utils/DirectionUtil.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/utils/DirectionUtil.java @@ -5,13 +5,14 @@ import net.minecraft.world.World; public enum DirectionUtil { + Up(0, 1, 0), Down(0, -1, 0), North(0, 0, -1), South(0, 0, 1), East(1, 0, 0), West(-1, 0, 0); - + public final int offsetX; public final int offsetY; public final int offsetZ; diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/utils/GUIUtil.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/utils/GUIUtil.java index 99b97da..bcc8128 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/utils/GUIUtil.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/utils/GUIUtil.java @@ -6,18 +6,20 @@ import net.minecraft.network.play.server.S2DPacketOpenWindow; public class GUIUtil { + public static void showGUI(EntityPlayerMP player, Container container, IInventory inventory) { - if (player.openContainer != player.inventoryContainer) - { + if (player.openContainer != player.inventoryContainer) { player.closeScreen(); } player.getNextWindowId(); player.playerNetServerHandler.sendPacket( new S2DPacketOpenWindow( - player.currentWindowId, 0, inventory.getInventoryName(), inventory.getSizeInventory(), inventory.hasCustomInventoryName() - ) - ); + player.currentWindowId, + 0, + inventory.getInventoryName(), + inventory.getSizeInventory(), + inventory.hasCustomInventoryName())); player.openContainer = container; player.openContainer.windowId = player.currentWindowId; player.openContainer.addCraftingToCrafters(player);