From e3a650785887866e4b8533b61044479ecb80aee7 Mon Sep 17 00:00:00 2001 From: Mary <33456283+FourIsTheNumber@users.noreply.github.com> Date: Thu, 18 Jul 2024 09:58:41 -0400 Subject: Add a Multiblock Electromagnetic Separator (#2726) * Built multi template with required methods in gt++. * Filled out template based on gt++ electrolyzer code * Refactored into gregtech. Not supposed to add multis to gt++, whoops! * IntelliJ "smartly" deleted all of the imports in GT_Loader_MetaTileEntities and replaced it with a wildcard import... which caused it to fail checkstyle. Thanks so much, IntelliJ. * Figured out how to make IntelliJ Stop Doing That * Added author tag and vac freezer texture for testing. * Registered casing, working on getting texture functional * Added casing texture * Fixed structure check and added processing logic. Multi now forms and can run EMS recipes * Added overlay textures * Made new Casings10 class and added EMS Casings to it. Texture mesh now functions * Made controller match casing mesh * Shifted Casings10 to an actual page number instead of magic number. Now sits on page 16, following where waterline casings will be implemented in future * Added Electromagnet Housing. Has no texture, but you can place an open its inventory * Added electromagnets and their texture files * Multi now requires EM housing and breaks if there are 2 * Electromagnet Housing has proper texture and can be wrenched. Also has a placeholder overlay * Tooltip updates. Added pollution * Electromagnet tiers modify processing logic. Some issues remaining * Prettier switch & spotlessApply * Multi now validates electromagnet before recipe check. Also added a machine casing texture * Pollution fix * Support for exotic energy hatches added. Recipe check fails if electromagnet is too weak * Stack size of 1 for electromagnets * New electromagnet textures * Final pass on EM textures. Also, EM Housing uses IV hull as base texture instead of ULV * Put in placeholder-ish recipes for controller/casings/EM housing * Placeholder recipes for electromagnets. Also fixed structure check, whoops * Renamed multi to Magnetic Flux Exhibitor * MFE can run as a polarizer * Fixed exotic warning getting stuck * Attempted to add assline recipes, not working * Fixed assembling line recipe templates. Thank you chochem <3 * Fancied up tooltips * Fixed parallel issue * Updated recipes. Will have to move them to coremod * Nerfed speed on all electromagnets * sa * Restricted MFE to multiamp non-laser. * Spotless * Animated Mag hatch * Added glow * Removed pollution. I am a gentle soul * Addition to structure check * Disabled wireless laser compatibility * sa (cherry picked from commit 155cf4dd7284ca84bd9be79f11b6f577b38a4e0d) * spotless * Removed all recipes. These have been replaced in the coremod * -Removed unnecessary structure check -MIN_CASING final -Baps author tag -Refactored mMagHatch to not be a list -Added tooltip builder in MagnetTiers * Forgot to run spotless * Last minute tooltip fix for structure accuracy --------- Co-authored-by: Dream Master --- src/main/java/gregtech/api/enums/GT_Values.java | 4 ++++ src/main/java/gregtech/api/enums/ItemList.java | 9 +++++++++ .../java/gregtech/api/enums/MetaTileEntityIDs.java | 2 ++ src/main/java/gregtech/api/enums/Textures.java | 22 +++++++++++++++++++--- 4 files changed, 34 insertions(+), 3 deletions(-) (limited to 'src/main/java/gregtech/api/enums') diff --git a/src/main/java/gregtech/api/enums/GT_Values.java b/src/main/java/gregtech/api/enums/GT_Values.java index f7314f6059..37caa7fc38 100644 --- a/src/main/java/gregtech/api/enums/GT_Values.java +++ b/src/main/java/gregtech/api/enums/GT_Values.java @@ -651,6 +651,10 @@ public class GT_Values { public static final String AuthorSilverMoon = "Author: " + EnumChatFormatting.AQUA + "SilverMoon"; public static final String AuthorTheEpicGamer274 = "Author: " + "TheEpicGamer274"; public static final String AuthorFourIsTheNumber = "Author: " + EnumChatFormatting.LIGHT_PURPLE + "FourIsTheNumber"; + public static final String authorBaps = "Author: " + EnumChatFormatting.GOLD + + "Ba" + + EnumChatFormatting.LIGHT_PURPLE + + "ps"; // 7.5F comes from GT_Tool_Turbine_Large#getBaseDamage() given huge turbines are the most efficient now. public static double getMaxPlasmaTurbineEfficiencyFromMaterial(Materials material) { diff --git a/src/main/java/gregtech/api/enums/ItemList.java b/src/main/java/gregtech/api/enums/ItemList.java index 0aa953483f..d5ee302d6a 100644 --- a/src/main/java/gregtech/api/enums/ItemList.java +++ b/src/main/java/gregtech/api/enums/ItemList.java @@ -1451,6 +1451,15 @@ public enum ItemList implements IItemContainer { Machine_Multi_LargeChemicalReactor, + Machine_Multi_IndustrialElectromagneticSeparator, + Casing_Electromagnetic_Separator, + Hatch_Electromagnet, + Electromagnet_Iron, + Electromagnet_Steel, + Electromagnet_Neodymium, + Electromagnet_Samarium, + Electromagnet_Tengam, + Machine_Multi_Canner, Machine_LV_Miner, diff --git a/src/main/java/gregtech/api/enums/MetaTileEntityIDs.java b/src/main/java/gregtech/api/enums/MetaTileEntityIDs.java index 73e79e4452..d13891f813 100644 --- a/src/main/java/gregtech/api/enums/MetaTileEntityIDs.java +++ b/src/main/java/gregtech/api/enums/MetaTileEntityIDs.java @@ -315,6 +315,8 @@ public enum MetaTileEntityIDs { WIREMILL_IV(355), PCB_FACTORY_CONTROLLER(356), NANO_FORGE_CONTROLLER(357), + INDUSTRIAL_ELECTROMAGNETIC_SEPARATOR_CONTROLLER(358), + MAG_HATCH(359), MULTI_CANNER_CONTROLLER(360), CENTRIFUGE_LV(361), CENTRIFUGE_MV(362), diff --git a/src/main/java/gregtech/api/enums/Textures.java b/src/main/java/gregtech/api/enums/Textures.java index 05689c1148..8eccbb050d 100644 --- a/src/main/java/gregtech/api/enums/Textures.java +++ b/src/main/java/gregtech/api/enums/Textures.java @@ -313,6 +313,12 @@ public class Textures { MACHINE_CASING_VENT, MACHINE_CASING_VENT_T2, + OVERLAY_FRONT_EMS, + OVERLAY_FRONT_EMS_ACTIVE, + OVERLAY_FRONT_EMS_ACTIVE_GLOW, + OVERLAY_FRONT_EMS_GLOW, + MACHINE_CASING_EMS, + OVERLAY_FRONT_MULTI_CANNER, OVERLAY_FRONT_MULTI_CANNER_ACTIVE, OVERLAY_FRONT_MULTI_CANNER_ACTIVE_GLOW, @@ -499,6 +505,9 @@ public class Textures { ITEM_OUT_SIGN, OVERLAY_MUFFLER, + OVERLAY_EMS_HOUSING, + OVERLAY_EMS_HOUSING_GLOW, + OVERLAY_CONTROLLER, OVERLAY_ACTIVITYDETECTOR, OVERLAY_ACTIVITYDETECTOR_GLOW, @@ -1672,11 +1681,17 @@ public class Textures { public static final ITexture[] CASING_BLOCKS = new ITexture[128]; // original variable still limited to 128 public static ITexture[][] MACHINE_CASINGS = new ITexture[15][17]; + // spotless:off /** - * by Default pages are null page 0: 0-63 GT casing 1-4, 64-127 GT++ page 1: 0-15 GT casing 5, 22-26 GS dyson - * swarm, 48-57 GT casing 8, 63 EMT, 80-95 GT reinforced blocks, 96 casing 2 meta 6, 97 error casing page 8: - * 0-111 TecTech, 112-127 GT casing 6 page 12: 0-127 GlodBlock page 42: 0-126 glee8e, 127 KekzTech LSC base + * by Default pages are null + * page 0: 0-63 GT casing 1-4, 64-127 GT++ + * page 1: 0-15 GT casing 5, 22-26 GS dyson swarm, 48-57 GT casing 8, 63 EMT, 80-95 GT reinforced blocks, 96 casing 2 meta 6, 97 error casing + * page 8: 0-111 TecTech, 112-127 GT casing 6 + * page 12: 0-127 GlodBlock + * page 16: 0-15 GT glass 1, 16-31 GT casing 9, 32-47 GT glass 2, 48-63 GT casing 10 + * page 42: 0-126 glee8e, 127 KekzTech LSC base */ + // spotless:on public static ITexture[][] casingTexturePages = new ITexture[128][]; // page holder so we don't make an short // long array @@ -1694,6 +1709,7 @@ public class Textures { // adds some known pages, modders also can do it... GT_Utility.addTexturePage((byte) 1); GT_Utility.addTexturePage((byte) 8); + GT_Utility.addTexturePage((byte) 16); setCasingTextureForId(ERROR_TEXTURE_INDEX, ERROR_RENDERING[0]); } -- cgit