From 99b0281dcf4ba451a363f811fdc6b671a239dc71 Mon Sep 17 00:00:00 2001 From: Mary <33456283+FourIsTheNumber@users.noreply.github.com> Date: Wed, 31 Jul 2024 13:13:20 -0400 Subject: Laser Engraver Multi (#2771) * Laser engraver boilerplate and structure * Made a rough, untextured laser renderer * Laser renderer is kind of functional * Laser renderer follows curve * Laser turns on/off when recipe is running * Sampsa laser * Color changing boilerplate * Registered all gt lenses * Fixed default renderer to white * NBT reading functional * Stole SE code to try and get TE working. It does not * Laser renderer finally functioning with more than 1 laser! * Moved tick count to TileLaser so lasers don't tick each other * Implemented laser source hatch * Structure update + spotless * Switched to the GT_Values tier list * Update tooltip and message player about rendering toggle * Allow fluid input/output * Attempting to give proper name to laser plate * Fixed laser plate name * New laser plate texture * New casing just dropped * Allow UMV glass to use any laser source * Switched laser to a simple line renderer instead of a model * Fixed hatch texture I missed earlier * Spotless * Controller textures * render: New laser renderer - Use GL quad rendering instead of line rendering to fix scaling - Set lightmap coords (Emit bloom glow with shaders) - Set opacity to 1.0 - Slight cleanup * Got rid of the old laser model * Tweaked some numbers on the renderer * Spotless * cleanup * I give up on rotation, I've spent too much time trying to get this to work * Got block item working I think * Fixed tooltip for laser and multicanner * Support bartworks lenses * Finishing touches * Removed unneeded assignment * Allow UXV lasers to do all recipes * Forgot to call super for nbt data... * Replace magic numbers * oops, spotless * Another magic voltage number * Rotations and mirror flips Now with spotless * fixed west/east * ok but actually fixed now, mixed up west/east with north/south * Updated laser source snapping to account for rotation being allowed * Cleanup rotation axis and remove unecessary nbt * Re-added nbt but actually load it properly now * Fix NEI displaying lots of hatches --------- Co-authored-by: LekKit <50500857+LekKit@users.noreply.github.com> Co-authored-by: BucketBrigade Co-authored-by: Martin Robertz --- .../gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java | 5 +++++ .../java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java | 8 ++++++++ 2 files changed, 13 insertions(+) (limited to 'src/main/java/gregtech/loaders/preload') diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java b/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java index f54f78f915..118baaf116 100644 --- a/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java +++ b/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java @@ -64,6 +64,7 @@ import gregtech.common.blocks.GT_Block_Casings9; import gregtech.common.blocks.GT_Block_Concretes; import gregtech.common.blocks.GT_Block_Drone; import gregtech.common.blocks.GT_Block_Granites; +import gregtech.common.blocks.GT_Block_Laser; import gregtech.common.blocks.GT_Block_Machines; import gregtech.common.blocks.GT_Block_Metal; import gregtech.common.blocks.GT_Block_Ores; @@ -84,6 +85,7 @@ import gregtech.common.items.GT_NeutronReflector_Item; import gregtech.common.items.GT_TierDrone; import gregtech.common.items.GT_VolumetricFlask; import gregtech.common.tileentities.render.TileDrone; +import gregtech.common.tileentities.render.TileLaser; public class GT_Loader_Item_Block_And_Fluid implements Runnable { @@ -546,6 +548,7 @@ public class GT_Loader_Item_Block_And_Fluid implements Runnable { GregTech_API.sBlockStones = new GT_Block_Stones(); GregTech_API.sBlockOres1 = new GT_Block_Ores(); GregTech_API.sDroneRender = new GT_Block_Drone(); + GregTech_API.sLaserRender = new GT_Block_Laser(); // meta ID order, DO NOT CHANGE ORDER GregTech_API.sBlockMetal1 = new GT_Block_Metal( @@ -671,6 +674,8 @@ public class GT_Loader_Item_Block_And_Fluid implements Runnable { GT_Log.out.println("GT_Mod: Registering the DroneRender."); GameRegistry.registerTileEntity(TileDrone.class, "DroneRender"); + GT_Log.out.println("GT_Mod: Registering the LaserRender."); + GameRegistry.registerTileEntity(TileLaser.class, "LaserRenderer"); GT_Log.out.println("GT_Mod: Registering the BaseMetaPipeEntity."); GameRegistry.registerTileEntity(BaseMetaPipeEntity.class, "BaseMetaPipeEntity"); diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java b/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java index 2a7c39d3e0..c72459e9cf 100644 --- a/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java +++ b/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java @@ -147,6 +147,7 @@ import static gregtech.api.enums.MetaTileEntityIDs.HULL_ZPM; import static gregtech.api.enums.MetaTileEntityIDs.IMPLOSION_COMPRESSOR_CONTROLLER; import static gregtech.api.enums.MetaTileEntityIDs.INDUSTRIAL_APIARY; import static gregtech.api.enums.MetaTileEntityIDs.INDUSTRIAL_ELECTROMAGNETIC_SEPARATOR_CONTROLLER; +import static gregtech.api.enums.MetaTileEntityIDs.INDUSTRIAL_LASER_ENGRAVER_CONTROLLER; import static gregtech.api.enums.MetaTileEntityIDs.INPUT_BUS_EV; import static gregtech.api.enums.MetaTileEntityIDs.INPUT_BUS_HV; import static gregtech.api.enums.MetaTileEntityIDs.INPUT_BUS_IV; @@ -556,6 +557,7 @@ import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_FusionCompu import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_HeatExchanger; import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_ImplosionCompressor; import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_IndustrialElectromagneticSeparator; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_IndustrialLaserEngraver; import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_IntegratedOreFactory; import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_LargeBoiler_Bronze; import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_LargeBoiler_Steel; @@ -1052,6 +1054,12 @@ public class GT_Loader_MetaTileEntities implements Runnable { // TODO CHECK CIRC new GT_MetaTileEntity_MultiCanner(MULTI_CANNER_CONTROLLER.ID, "multimachine.canner", "TurboCan Pro") .getStackForm(1)); + ItemList.Machine_Multi_IndustrialLaserEngraver.set( + new GT_MetaTileEntity_IndustrialLaserEngraver( + INDUSTRIAL_LASER_ENGRAVER_CONTROLLER.ID, + "multimachine.engraver", + "High Energy Laser Emitter").getStackForm(1)); + ItemList.Machine_Multi_Lathe.set( new GT_MetaTileEntity_MultiLathe( MULTI_LATHE_CONTROLLER.ID, -- cgit