From aaffc3e3646dcf23640f478aa3040deb9a204180 Mon Sep 17 00:00:00 2001 From: "Aidan C. Brady" Date: Sat, 26 Jul 2014 16:45:48 -0400 Subject: [PATCH] Updated some imports and added textures --- .../java/mekanism/client/ClientProxy.java | 3 + .../tileentity/RenderLaserAmplifier.java | 65 ++++++++++++++++++ .../java/mekanism/common/CommonProxy.java | 2 + .../mekanism/common/block/BlockMachine.java | 5 +- .../common/item/ItemBlockMachine.java | 1 + .../TileEntityAdvancedElectricMachine.java | 1 - .../mekanism/common/tile/TileEntityBin.java | 3 +- .../common/tile/TileEntityChanceMachine.java | 1 - .../common/tile/TileEntityCombiner.java | 1 - .../common/tile/TileEntityContainerBlock.java | 1 - .../common/tile/TileEntityDynamicTank.java | 2 +- .../common/tile/TileEntityElectricBlock.java | 7 +- .../tile/TileEntityElectricMachine.java | 3 - .../tile/TileEntityEnergizedSmelter.java | 5 -- .../tile/TileEntityEnrichmentChamber.java | 1 - .../mekanism/common/tile/TileEntityLaser.java | 5 +- .../common/tile/TileEntityLaserAmplifier.java | 1 - .../tile/TileEntityPrecisionSawmill.java | 1 - .../tile/TileEntityPurificationChamber.java | 1 - .../common/tile/TileEntityTeleporter.java | 1 - .../resources/assets/mekanism/lang/en_US.lang | 2 + .../assets/mekanism/render/LaserAmplifier.png | Bin 0 -> 4765 bytes .../textures/blocks/ReactorControllerOff.png | Bin 1378 -> 1860 bytes .../textures/blocks/ReactorControllerOn.png | Bin 1456 -> 1994 bytes .../blocks/ReactorControllerOn.png.mcmeta | 5 -- .../textures/blocks/ReactorLaserFocus.png | Bin 1601 -> 1922 bytes 26 files changed, 84 insertions(+), 33 deletions(-) create mode 100644 src/main/java/mekanism/client/render/tileentity/RenderLaserAmplifier.java create mode 100644 src/main/resources/assets/mekanism/render/LaserAmplifier.png delete mode 100644 src/main/resources/assets/mekanism/textures/blocks/ReactorControllerOn.png.mcmeta diff --git a/src/main/java/mekanism/client/ClientProxy.java b/src/main/java/mekanism/client/ClientProxy.java index 771ff981f..45481f90b 100644 --- a/src/main/java/mekanism/client/ClientProxy.java +++ b/src/main/java/mekanism/client/ClientProxy.java @@ -75,6 +75,7 @@ import mekanism.client.render.tileentity.RenderEnergyCube; import mekanism.client.render.tileentity.RenderFluidicPlenisher; import mekanism.client.render.tileentity.RenderGasTank; import mekanism.client.render.tileentity.RenderLaser; +import mekanism.client.render.tileentity.RenderLaserAmplifier; import mekanism.client.render.tileentity.RenderLogisticalSorter; import mekanism.client.render.tileentity.RenderMetallurgicInfuser; import mekanism.client.render.tileentity.RenderObsidianTNT; @@ -127,6 +128,7 @@ import mekanism.common.tile.TileEntityFactory; import mekanism.common.tile.TileEntityFluidicPlenisher; import mekanism.common.tile.TileEntityGasTank; import mekanism.common.tile.TileEntityLaser; +import mekanism.common.tile.TileEntityLaserAmplifier; import mekanism.common.tile.TileEntityLogisticalSorter; import mekanism.common.tile.TileEntityMetallurgicInfuser; import mekanism.common.tile.TileEntityObsidianTNT; @@ -312,6 +314,7 @@ public class ClientProxy extends CommonProxy ClientRegistry.registerTileEntity(TileEntityPortableTank.class, "PortableTank", new RenderPortableTank()); ClientRegistry.registerTileEntity(TileEntityFluidicPlenisher.class, "FluidicPlenisher", new RenderFluidicPlenisher()); ClientRegistry.registerTileEntity(TileEntityLaser.class, "Laser", new RenderLaser()); + ClientRegistry.registerTileEntity(TileEntityLaserAmplifier.class, "LaserAmplifier", new RenderLaserAmplifier()); } @Override diff --git a/src/main/java/mekanism/client/render/tileentity/RenderLaserAmplifier.java b/src/main/java/mekanism/client/render/tileentity/RenderLaserAmplifier.java new file mode 100644 index 000000000..1a311b07e --- /dev/null +++ b/src/main/java/mekanism/client/render/tileentity/RenderLaserAmplifier.java @@ -0,0 +1,65 @@ +package mekanism.client.render.tileentity; + +import mekanism.client.model.ModelLaser; +import mekanism.common.tile.TileEntityLaser; +import mekanism.common.util.MekanismUtils; +import mekanism.common.util.MekanismUtils.ResourceType; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; + +import org.lwjgl.opengl.GL11; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +@SideOnly(Side.CLIENT) +public class RenderLaserAmplifier extends TileEntitySpecialRenderer +{ + private ModelLaser model = new ModelLaser(); + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float partialTick) + { + renderAModelAt((TileEntityLaser)tileEntity, x, y, z, partialTick); + } + + private void renderAModelAt(TileEntityLaser tileEntity, double x, double y, double z, float partialTick) + { + GL11.glPushMatrix(); + GL11.glTranslatef((float)x + 0.5F, (float)y + 1.5F, (float)z + 0.5F); + + bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "Laser.png")); + + switch(tileEntity.facing) + { + case 0: + GL11.glTranslatef(0.0F, -2.0F, 0.0F); + GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); + break; + case 5: + GL11.glTranslatef(0.0F, -1.0F, 0.0F); + GL11.glTranslatef(1.0F, 0.0F, 0.0F); + GL11.glRotatef(90, 0.0F, 0.0F, -1.0F); + break; + case 4: + GL11.glTranslatef(0.0F, -1.0F, 0.0F); + GL11.glTranslatef(-1.0F, 0.0F, 0.0F); + GL11.glRotatef(90, 0.0F, 0.0F, 1.0F); + break; + case 2: + GL11.glTranslatef(0.0F, -1.0F, 0.0F); + GL11.glTranslatef(0.0F, 0.0F, -1.0F); + GL11.glRotatef(90, -1.0F, 0.0F, 0.0F); + break; + case 3: + GL11.glTranslatef(0.0F, -1.0F, 0.0F); + GL11.glTranslatef(0.0F, 0.0F, 1.0F); + GL11.glRotatef(90, 1.0F, 0.0F, 0.0F); + break; + } + + GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); + model.render(0.0625F); + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/mekanism/common/CommonProxy.java b/src/main/java/mekanism/common/CommonProxy.java index dd2ce8bc3..55504e83b 100644 --- a/src/main/java/mekanism/common/CommonProxy.java +++ b/src/main/java/mekanism/common/CommonProxy.java @@ -67,6 +67,7 @@ import mekanism.common.tile.TileEntityFactory; import mekanism.common.tile.TileEntityFluidicPlenisher; import mekanism.common.tile.TileEntityGasTank; import mekanism.common.tile.TileEntityLaser; +import mekanism.common.tile.TileEntityLaserAmplifier; import mekanism.common.tile.TileEntityLogisticalSorter; import mekanism.common.tile.TileEntityMetallurgicInfuser; import mekanism.common.tile.TileEntityObsidianTNT; @@ -141,6 +142,7 @@ public class CommonProxy GameRegistry.registerTileEntity(TileEntityPortableTank.class, "PortableTank"); GameRegistry.registerTileEntity(TileEntityFluidicPlenisher.class, "FluidicPlenisher"); GameRegistry.registerTileEntity(TileEntityLaser.class, "Laser"); + GameRegistry.registerTileEntity(TileEntityLaserAmplifier.class, "LaserAmplifier"); } /** diff --git a/src/main/java/mekanism/common/block/BlockMachine.java b/src/main/java/mekanism/common/block/BlockMachine.java index d0d9cf292..98725dde2 100644 --- a/src/main/java/mekanism/common/block/BlockMachine.java +++ b/src/main/java/mekanism/common/block/BlockMachine.java @@ -47,6 +47,7 @@ import mekanism.common.tile.TileEntityEnrichmentChamber; import mekanism.common.tile.TileEntityFactory; import mekanism.common.tile.TileEntityFluidicPlenisher; import mekanism.common.tile.TileEntityLaser; +import mekanism.common.tile.TileEntityLaserAmplifier; import mekanism.common.tile.TileEntityLogisticalSorter; import mekanism.common.tile.TileEntityMetallurgicInfuser; import mekanism.common.tile.TileEntityOsmiumCompressor; @@ -125,6 +126,7 @@ import dan200.computercraft.api.peripheral.IPeripheralProvider; * 1:11: Portable Tank * 1:12: Fluidic Plenisher * 1:13: Laser + * 1:14: Laser Amplifier * @author AidanBrady * */ @@ -1273,7 +1275,8 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IPer PRESSURIZED_REACTION_CHAMBER(Mekanism.MachineBlock2, 10, "PressurizedReactionChamber", 40, 20000, TileEntityPRC.class, true, true, false), PORTABLE_TANK(Mekanism.MachineBlock2, 11, "PortableTank", 41, 0, TileEntityPortableTank.class, false, true, false), FLUIDIC_PLENISHER(Mekanism.MachineBlock2, 12, "FluidicPlenisher", 42, 10000, TileEntityFluidicPlenisher.class, true, true, false), - LASER(Mekanism.MachineBlock2, 13, "Laser", -1, 100000, TileEntityLaser.class, true, true, false); + LASER(Mekanism.MachineBlock2, 13, "Laser", -1, 100000, TileEntityLaser.class, true, true, false), + LASER_AMPLIFIER(Mekanism.MachineBlock2, 14, "LaserAmplifier", -1, 0, TileEntityLaserAmplifier.class, false, true, false); public Block typeBlock; public int meta; diff --git a/src/main/java/mekanism/common/item/ItemBlockMachine.java b/src/main/java/mekanism/common/item/ItemBlockMachine.java index 3a57222ea..185085ccd 100644 --- a/src/main/java/mekanism/common/item/ItemBlockMachine.java +++ b/src/main/java/mekanism/common/item/ItemBlockMachine.java @@ -106,6 +106,7 @@ import cpw.mods.fml.relauncher.SideOnly; * 1:11: Portable Tank * 1:12: Fluidic Plenisher * 1:13: Laser + * 1:14: Laser Amplifier * @author AidanBrady * */ diff --git a/src/main/java/mekanism/common/tile/TileEntityAdvancedElectricMachine.java b/src/main/java/mekanism/common/tile/TileEntityAdvancedElectricMachine.java index 45c6355bf..599d8097f 100644 --- a/src/main/java/mekanism/common/tile/TileEntityAdvancedElectricMachine.java +++ b/src/main/java/mekanism/common/tile/TileEntityAdvancedElectricMachine.java @@ -26,7 +26,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; import cpw.mods.fml.common.Optional.Method; - import dan200.computercraft.api.lua.ILuaContext; import dan200.computercraft.api.peripheral.IComputerAccess; diff --git a/src/main/java/mekanism/common/tile/TileEntityBin.java b/src/main/java/mekanism/common/tile/TileEntityBin.java index a3143891c..f976a4559 100644 --- a/src/main/java/mekanism/common/tile/TileEntityBin.java +++ b/src/main/java/mekanism/common/tile/TileEntityBin.java @@ -24,9 +24,8 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; -import cpw.mods.fml.common.Optional.Interface; - import powercrystals.minefactoryreloaded.api.IDeepStorageUnit; +import cpw.mods.fml.common.Optional.Interface; @Interface(iface = "powercrystals.minefactoryreloaded.api.IDeepStorageUnit", modid = "MineFactoryReloaded") public class TileEntityBin extends TileEntityBasicBlock implements ISidedInventory, IActiveState, IDeepStorageUnit, IConfigurable diff --git a/src/main/java/mekanism/common/tile/TileEntityChanceMachine.java b/src/main/java/mekanism/common/tile/TileEntityChanceMachine.java index f1c85b4fa..eecb42551 100644 --- a/src/main/java/mekanism/common/tile/TileEntityChanceMachine.java +++ b/src/main/java/mekanism/common/tile/TileEntityChanceMachine.java @@ -15,7 +15,6 @@ import mekanism.common.util.MekanismUtils; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; import cpw.mods.fml.common.Optional.Method; - import dan200.computercraft.api.lua.ILuaContext; import dan200.computercraft.api.peripheral.IComputerAccess; diff --git a/src/main/java/mekanism/common/tile/TileEntityCombiner.java b/src/main/java/mekanism/common/tile/TileEntityCombiner.java index c16220ae0..2ad64a8ee 100644 --- a/src/main/java/mekanism/common/tile/TileEntityCombiner.java +++ b/src/main/java/mekanism/common/tile/TileEntityCombiner.java @@ -5,7 +5,6 @@ import java.util.Map; import mekanism.api.gas.Gas; import mekanism.api.gas.GasRegistry; import mekanism.api.gas.GasStack; -import mekanism.client.gui.GuiProgress.ProgressBar; import mekanism.common.Mekanism; import mekanism.common.block.BlockMachine.MachineType; import mekanism.common.recipe.RecipeHandler.Recipe; diff --git a/src/main/java/mekanism/common/tile/TileEntityContainerBlock.java b/src/main/java/mekanism/common/tile/TileEntityContainerBlock.java index 13325142b..3b023e88f 100644 --- a/src/main/java/mekanism/common/tile/TileEntityContainerBlock.java +++ b/src/main/java/mekanism/common/tile/TileEntityContainerBlock.java @@ -1,7 +1,6 @@ package mekanism.common.tile; import mekanism.common.ISustainedInventory; -import mekanism.common.Mekanism; import mekanism.common.util.InventoryUtils; import mekanism.common.util.MekanismUtils; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/mekanism/common/tile/TileEntityDynamicTank.java b/src/main/java/mekanism/common/tile/TileEntityDynamicTank.java index c89906ad8..4fc85f90d 100644 --- a/src/main/java/mekanism/common/tile/TileEntityDynamicTank.java +++ b/src/main/java/mekanism/common/tile/TileEntityDynamicTank.java @@ -14,8 +14,8 @@ import mekanism.common.tank.DynamicTankCache; import mekanism.common.tank.SynchronizedTankData; import mekanism.common.tank.SynchronizedTankData.ValveData; import mekanism.common.tank.TankUpdateProtocol; -import mekanism.common.util.FluidContainerUtils.ContainerEditMode; import mekanism.common.util.FluidContainerUtils; +import mekanism.common.util.FluidContainerUtils.ContainerEditMode; import mekanism.common.util.MekanismUtils; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; diff --git a/src/main/java/mekanism/common/tile/TileEntityElectricBlock.java b/src/main/java/mekanism/common/tile/TileEntityElectricBlock.java index d4e426cde..bebed09c4 100644 --- a/src/main/java/mekanism/common/tile/TileEntityElectricBlock.java +++ b/src/main/java/mekanism/common/tile/TileEntityElectricBlock.java @@ -22,15 +22,14 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.util.ForgeDirection; -import cpw.mods.fml.common.Optional.Interface; -import cpw.mods.fml.common.Optional.InterfaceList; -import cpw.mods.fml.common.Optional.Method; - import buildcraft.api.power.IPowerEmitter; import buildcraft.api.power.IPowerReceptor; import buildcraft.api.power.PowerHandler; import buildcraft.api.power.PowerHandler.PowerReceiver; import cofh.api.energy.IEnergyHandler; +import cpw.mods.fml.common.Optional.Interface; +import cpw.mods.fml.common.Optional.InterfaceList; +import cpw.mods.fml.common.Optional.Method; @InterfaceList({ @Interface(iface = "ic2.api.energy.tile.IEnergySink", modid = "IC2API", striprefs = true), diff --git a/src/main/java/mekanism/common/tile/TileEntityElectricMachine.java b/src/main/java/mekanism/common/tile/TileEntityElectricMachine.java index 06a74c2dc..596f6fb3d 100644 --- a/src/main/java/mekanism/common/tile/TileEntityElectricMachine.java +++ b/src/main/java/mekanism/common/tile/TileEntityElectricMachine.java @@ -11,10 +11,7 @@ import mekanism.common.util.InventoryUtils; import mekanism.common.util.MekanismUtils; import mekanism.common.util.MekanismUtils.ResourceType; import net.minecraft.item.ItemStack; -import cpw.mods.fml.common.Optional.Interface; -import cpw.mods.fml.common.Optional.InterfaceList; import cpw.mods.fml.common.Optional.Method; - import dan200.computercraft.api.lua.ILuaContext; import dan200.computercraft.api.peripheral.IComputerAccess; diff --git a/src/main/java/mekanism/common/tile/TileEntityEnergizedSmelter.java b/src/main/java/mekanism/common/tile/TileEntityEnergizedSmelter.java index ddfd6ef22..ef7ca3590 100644 --- a/src/main/java/mekanism/common/tile/TileEntityEnergizedSmelter.java +++ b/src/main/java/mekanism/common/tile/TileEntityEnergizedSmelter.java @@ -3,14 +3,9 @@ package mekanism.common.tile; import java.util.HashMap; import java.util.Map; -import mekanism.client.gui.GuiProgress.ProgressBar; import mekanism.common.Mekanism; import mekanism.common.block.BlockMachine.MachineType; -import mekanism.common.recipe.RecipeHandler; - import net.minecraft.item.ItemStack; -import cpw.mods.fml.common.Optional.Interface; -import cpw.mods.fml.common.Optional.InterfaceList; public class TileEntityEnergizedSmelter extends TileEntityElectricMachine { diff --git a/src/main/java/mekanism/common/tile/TileEntityEnrichmentChamber.java b/src/main/java/mekanism/common/tile/TileEntityEnrichmentChamber.java index 5bb8b3daa..f3f9c39c5 100644 --- a/src/main/java/mekanism/common/tile/TileEntityEnrichmentChamber.java +++ b/src/main/java/mekanism/common/tile/TileEntityEnrichmentChamber.java @@ -2,7 +2,6 @@ package mekanism.common.tile; import java.util.Map; -import mekanism.client.gui.GuiProgress.ProgressBar; import mekanism.common.Mekanism; import mekanism.common.block.BlockMachine.MachineType; import mekanism.common.recipe.RecipeHandler.Recipe; diff --git a/src/main/java/mekanism/common/tile/TileEntityLaser.java b/src/main/java/mekanism/common/tile/TileEntityLaser.java index 42cf51da7..9acc76125 100644 --- a/src/main/java/mekanism/common/tile/TileEntityLaser.java +++ b/src/main/java/mekanism/common/tile/TileEntityLaser.java @@ -1,17 +1,16 @@ package mekanism.common.tile; +import io.netty.buffer.ByteBuf; + import java.util.ArrayList; import mekanism.api.Coord4D; import mekanism.api.lasers.LaserManager; import mekanism.common.Mekanism; import mekanism.common.network.PacketTileEntity.TileEntityMessage; - import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; -import io.netty.buffer.ByteBuf; - public class TileEntityLaser extends TileEntityElectricBlock { public static final double LASER_ENERGY = 1E10; diff --git a/src/main/java/mekanism/common/tile/TileEntityLaserAmplifier.java b/src/main/java/mekanism/common/tile/TileEntityLaserAmplifier.java index 78012f027..09c26a93d 100644 --- a/src/main/java/mekanism/common/tile/TileEntityLaserAmplifier.java +++ b/src/main/java/mekanism/common/tile/TileEntityLaserAmplifier.java @@ -3,7 +3,6 @@ package mekanism.common.tile; import mekanism.api.Coord4D; import mekanism.api.lasers.ILaserReceptor; import mekanism.api.lasers.LaserManager; - import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; diff --git a/src/main/java/mekanism/common/tile/TileEntityPrecisionSawmill.java b/src/main/java/mekanism/common/tile/TileEntityPrecisionSawmill.java index 5146289ed..1dbe0c144 100644 --- a/src/main/java/mekanism/common/tile/TileEntityPrecisionSawmill.java +++ b/src/main/java/mekanism/common/tile/TileEntityPrecisionSawmill.java @@ -2,7 +2,6 @@ package mekanism.common.tile; import java.util.Map; -import mekanism.client.gui.GuiProgress.ProgressBar; import mekanism.common.Mekanism; import mekanism.common.block.BlockMachine.MachineType; import mekanism.common.recipe.RecipeHandler.Recipe; diff --git a/src/main/java/mekanism/common/tile/TileEntityPurificationChamber.java b/src/main/java/mekanism/common/tile/TileEntityPurificationChamber.java index 7d8764f0e..3bb8c1757 100644 --- a/src/main/java/mekanism/common/tile/TileEntityPurificationChamber.java +++ b/src/main/java/mekanism/common/tile/TileEntityPurificationChamber.java @@ -9,7 +9,6 @@ import mekanism.api.gas.GasTransmission; import mekanism.api.gas.IGasHandler; import mekanism.api.gas.IGasItem; import mekanism.api.gas.ITubeConnection; -import mekanism.client.gui.GuiProgress.ProgressBar; import mekanism.common.Mekanism; import mekanism.common.block.BlockMachine.MachineType; import mekanism.common.recipe.RecipeHandler.Recipe; diff --git a/src/main/java/mekanism/common/tile/TileEntityTeleporter.java b/src/main/java/mekanism/common/tile/TileEntityTeleporter.java index 1a113a34a..2e2ae0661 100644 --- a/src/main/java/mekanism/common/tile/TileEntityTeleporter.java +++ b/src/main/java/mekanism/common/tile/TileEntityTeleporter.java @@ -11,7 +11,6 @@ import java.util.Set; import mekanism.api.Coord4D; import mekanism.api.EnumColor; import mekanism.common.Mekanism; -import mekanism.common.PacketHandler; import mekanism.common.Teleporter; import mekanism.common.block.BlockMachine.MachineType; import mekanism.common.network.PacketPortalFX.PortalFXMessage; diff --git a/src/main/resources/assets/mekanism/lang/en_US.lang b/src/main/resources/assets/mekanism/lang/en_US.lang index c09209b45..c1495f543 100644 --- a/src/main/resources/assets/mekanism/lang/en_US.lang +++ b/src/main/resources/assets/mekanism/lang/en_US.lang @@ -116,6 +116,7 @@ tile.MachineBlock2.PressurizedReactionChamber.short.name=PRC tile.MachineBlock2.PortableTank.name=Portable Tank tile.MachineBlock2.FluidicPlenisher.name=Fluidic Plenisher tile.MachineBlock2.Laser.name=Laser +tile.MachineBlock2.LaserAmplifier.name=Laser Amplifier //Plastic tile.PlasticBlock.name=Plastic Block @@ -572,6 +573,7 @@ tooltip.PressurizedReactionChamber=An advanced machine that processes a !nsolid, tooltip.PortableTank=A handy, portable tank that lets you !ncarry 14 buckets of fluid wherever you !nplease. Also doubles as a bucket! tooltip.FluidicPlenisher=A machine that is capable of creating entire !nlakes by filling ravines with fluids. tooltip.Laser=An advanced form of linear energy transfer that utilizes !nan extremely compressed beam of !nlight. +tooltip.LaserAmplifier=A block that can be used to both merge !nand amplify laser beams. tooltip.HeatGenerator=A generator that uses the heat of lava or !nother burnable resources to produce energy. tooltip.SolarGenerator=A generator that uses the power !nof the sun to produce energy. diff --git a/src/main/resources/assets/mekanism/render/LaserAmplifier.png b/src/main/resources/assets/mekanism/render/LaserAmplifier.png new file mode 100644 index 0000000000000000000000000000000000000000..1982a3fd090ad330eff6ea9bf7710f5513d3d618 GIT binary patch literal 4765 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/mekanism/textures/blocks/ReactorControllerOff.png b/src/main/resources/assets/mekanism/textures/blocks/ReactorControllerOff.png index e2f20767eb9bedae0e4123acf044640108d33fe1..0f4edbaa74644775ec823df3dec9ae52013efe4e 100644 GIT binary patch delta 1856 zcmV-G2fz5@3d9bO8Gix*008_L?V|ty00DDSM?wIu&K&6g000DMK}|sb0I`n?{9y$E z000SaNLh0L01m?d01m?e$8V@)0000PbVXQnQ*UN;cVTj608n9RZgehAMN}YmGcGkQ zHA#y6-~a#yv`IukR7gvemRWBbHxS1SIEfQST6wki#bcLyXn!R+mhAd=kT^jRxqw(E@!bA=ATIl5_oMhDRShd^kNlJvljH{`m1DOUHqBV?Lj=WVlZ(7mJ1O z`;Kq}It;@kNy@V16Q^dg+1c6IyLa!7-oJm(=SqmGs^T~fqbQ6L2$orvSq{T8qb$#h zqJVFVky6?tLVs|hQVODGGz}A%L2%B&Jq zQYKlRrFmM2B1nQ|xWoc1!+S?~-+C|(6D}5_X-z+@)_+YIqp0}tiujirAE*jN=59TLH(%$HV{&q9`p(ENDM}{!F5Psw^u>DQ*P2i$&~tvG2!= zMKlq~a#{F(8HPX;Z|efa~zhQ7kFNTNSp(oxoP%VU*6x}@AsEL3;2RmuC*3`BJjjTh$JgX!^_L7+02{I z&t@~yE#z{~!$gQP&x3~WA$&i>IZ-5;jkz}FiU?m^>_B$gw^(p+5f&f-_2ZZ_p!oq# zV(?E3@Zss{?A3zVjN;=>)h2f=?QV3O6bzTq{m1Qhjsef7_ zDGP&CrmPediLey~rX{xs(G9~n=Q+a_qy>c5 z4RhP}#1LlNuKIq3vP!k9aXYLwZGXFwa%IdpH)NT{`~MPP`$-tnQD`$<1X_R%34tG# z>ZNQQmg;6`yKyq5b%^42M~v$OLFFhbJSo8p{m0fKgz$lCS`^m%N{wy1tLu(15F(`- zV&Fthif^z04$kE(u6M*RtQ{dlk7g8YfP@{^0;(wr5-wbsWfguz9^tL{(SK8>pOCfE zrtf>a1is-QSScE3%_*2|H$X_Kg)ml8+mvi)wLwMz3eveKr5u)Wm=rl^U6d3LS8 zw(F^}AHLR&c_Dg7R8?OTEhQN*A?8r7Cu2zgV1sT(Yt)fRQaB@MqV6yX()8fNVKW91 ze13J)l3bP0Ahl`mq0n^=QhzC&2LX7BX6-B>4A`ah2pl1>0MRZIoTSKO0UX>2%n=OX z>{H5uqU#XQQYvWFR3IAz@_<5$015*Z6eT|0xLm92p(x0mLnMGKGlJn@G>&qCb@pjp zLwDVIRapVL)&~^XmT4OfJzsK?JfJ(${3pngbb=gCl6>+E3DIXcSbsn{BV+?-0v<_Y zng)Ps3I}080MCm0*@k>x)T_BXEpiEd9-%RDB|HInc=+ZPI|tAm1SM8Y)aP} zn3BJ|>TET|K$-y=NaJNUx$dmSJicsQFf@fC6 ukz~m>1}8b?4l-E6gkS@M8xEh2kN*aR?n+>kV9=rf0000 delta 1370 zcmV-g1*Q7L4&n-s8Gi-<0047(dh`GQ1N3P_Lr_UWLm*IcZ)Rz1WdHzp+KrUYZxm%1 z$3MIC&a4SI2U7uy!HGYBkV3X#kOo0_yUVsv%VyhR+nAW`?AzV3)7kNz+43VjanT#7 ze}IY{JeYVg!Cw(Bz(E5EK|^dvOgNPIBSaD|hSbAMcL!+2_kZ-v^M0T2_xn8WlYz|V zRo{2h7R-8~s+989_{5}@xj~v|SVK2!s&?S#%H<(|s_(lza_;?13gFuImGA%atf|Ss zhSU>4vliI1kU9psYx^n$;})>zXy}KKc^2qW;}esR$pT&VC@uh9Q&Bt)bg9uwKV)3M zv>VkLWafdMseeSio`@q40Cbh4CzWGcl~Ud+tLC)h%7op=T>sBA>$aBlHUVpcnUO=l zR!ALdsDVlxe_~gQBfyK0y6lJf3a}Ycf3#-Ca=bm z=R~7_IO5UNJJo|_pc}OJRkLz9@~oYaZmAOSYZv{n9DC3fJ$HC0;uNL~iX+SUurWFi z)r#Gr8jWkkWh};At*T-v;t_vKZ!G52H`JI*=cAMv2T1YG^93g+YyS25W zcT&CW*jG;7d7!%ah-bO%CpiHEX4=T@$^I|Re}A{3!*N}ld+XZTOY};n7Us9#EY2PIq^1>?^14 z$oGct4Rf-mlg<8;{WE(#`)T%U_V9}@3pVBZ?qq=wDZ~p?Fa3m_NDf1 z;(x7H-;eg&lS_0f@m8F*#5MEgM)L);U_NKQWDa%s%=KokIbd!v3+Bf5yCwCKy*NzZ zwx_zXR)ibF!{I0rML-o7kK+&Re_Sm#iC!`I(AMq|dqvx&Q8Wrh4$IhP^clUzK_l1k zXKXPFMxU|8C_b=t_9`971S;9*cBYU7%zvP8m_ywPGJ$pxwRdroUIrT;uSV{&`&B@vh#wRAN=ofvrLJCN&yVA*pZ@|94K)c$>O}5~R z0M@_U$!+b1r$2^syX}^mi~sql)K3sh@7fuCt<8geb7|@BX2^U9_di%#`sd8j(trKW zKwE(G?!Q?8ad_2KDscb+00v@9M??Vs0RI60puMM)00009a7bBm000XU000XU0RWnu z7ytkO2XskIMF-vo4igmYci^iw c4EaNT0T#tyPx#1ZP1_K>z@;j|==^ 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 bdwc%{cE^9Cug1Bq00000NkvXXu0mjfAT^l7 delta 1451 zcmV;c1yuUV53mc67k@wq1^@s6dyaLk000B@X+uL$Nkc;*P;zf(X>4Tx0C?Jsl+SMz zWf;dlyYtSh2{;E+0gJ(jKY)-zwqTG3L3g{$wouDv+hW_8nCoMPiX1$ccrw9X5iY<%0|`MxY)DKvl=ve=5-x_+!%TMvXn)1`^vv^qpYQkkJnxf% z%;#0#cheTkdZDV6^49poq?NfrnrB!;H*2bP;OENaA%LpyyF7C4{Y(nr+V++2|MRS= z$-sux6F{>T*t3v22D)qeDg@&eu;*y#hmd&|=u+bolaR>*UG*p~09{j2JPvfJ(MmsL zT)?y&)f!~xfq$N!@9c!q8N*sS;SBoRSi;%kPhxrPy8B%|=X2x>BHb_4;tqzPu`1GqM8l!Il>mXfo z!okrvf5Mv@J{;Ai&&)IrRbtF#JLsPTo`>|!h8!G<{C{ZFWT6Q3fVQd88i@I|gTdTL zahc~tqklN!(bPNDgJqx_wD(oBayas=osn*-67g#n{jeN+&=x&+cqrl&rVNTB%lWV| zIuO;0-Ju$dYsKWWb6_yW&--q9DDo!Gs#awz#$2tcVkzPge@kyH=F~UTs)a+q4$${= zBvnPyWPb{YjmLc~DwN1$;iG6Wje|=GiHAhtq@H93XBAu-iHhS6qK?F45ru=j3MNvx z9b=key~v7PA}jWaA+b;F5q((VHSxOGFA5?n`o!LLZ8@QDQRjA>=UrMzEGir!f4aN1 zwWD`Zz3tdnPThH+y7`D_x$Gx70Rm>)$nDAgFMrK{x1qyvU7UOC+S*I=9Ddw<^;`O) zeqFz%-_RF22>n-mL0`~ski*5Lj${^zgNGzYI7s$z0hf>}F2CW?OyC|+oc2z4cW&$} zr|!u2hVKn?vZs^H{*wJOdp-MU_H6d|ho-#Zl(dhuue9&AueEQqAF;Ia+6CzoVCO?^X5kL1+!p2XTD?(b@G5FBd?h$)M+oe%73Pujg*k<$@y~aT! z*YRg;F$zYXvBfApuyyt-9moVK+2?kqkbeZspm3N&;u0W3c`O9zZ~DiTQ*VUU&TRG- zE9d*Jv<5wUM~_u?T}wIjMi^L122#z*+78AiCavffeYZjiNUgil$%SvgzP~`b+R06} z;EMp(zud`f?S`j6hI6~^mYR$I`Ki=T5KQmd8GWtIgMM>q>F#F8dJO+tp#FgR11D_d$Pog3Kpp@9002ovPDHLk FV1fXc)ItCN diff --git a/src/main/resources/assets/mekanism/textures/blocks/ReactorControllerOn.png.mcmeta b/src/main/resources/assets/mekanism/textures/blocks/ReactorControllerOn.png.mcmeta deleted file mode 100644 index efc331201..000000000 --- a/src/main/resources/assets/mekanism/textures/blocks/ReactorControllerOn.png.mcmeta +++ /dev/null @@ -1,5 +0,0 @@ -{ - "animation": { - "frametime": 10 - } -} diff --git a/src/main/resources/assets/mekanism/textures/blocks/ReactorLaserFocus.png b/src/main/resources/assets/mekanism/textures/blocks/ReactorLaserFocus.png index 464779cb935fe1ed595c4b19fcfccd840ba5ec02..d67d31cc898ffedfdbd53eee5177c76892e91f38 100644 GIT binary patch delta 1908 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