From ad0a5b4d33b79ee161ce15cc240e0d1deb9d2da9 Mon Sep 17 00:00:00 2001 From: Connor Smith Date: Wed, 19 Nov 2025 11:39:04 -0500 Subject: [PATCH] CoreMods side parallel hatches. --- .../blockstates/uev_parallel_hatch.json | 28 ++++++ .../blockstates/uhv_parallel_hatch.json | 28 ++++++ .../resources/assets/monilabs/lang/en_ud.json | 2 + .../resources/assets/monilabs/lang/en_us.json | 2 + .../block/machine/uev_parallel_hatch.json | 76 +++++++++++++++ .../block/machine/uhv_parallel_hatch.json | 76 +++++++++++++++ .../models/item/uev_parallel_hatch.json | 3 + .../models/item/uhv_parallel_hatch.json | 3 + .../monilabs/common/machine/MoniMachines.java | 88 +++++++++++++----- .../parallel_hatch_mk5/overlay_front.png | Bin 0 -> 861 bytes .../overlay_front.png.mcmeta | 5 + .../overlay_front_active.png | Bin 0 -> 769 bytes .../overlay_front_active.png.mcmeta | 5 + .../parallel_hatch_mk6/overlay_front.png | Bin 0 -> 861 bytes .../overlay_front.png.mcmeta | 5 + .../overlay_front_active.png | Bin 0 -> 769 bytes .../overlay_front_active.png.mcmeta | 5 + 17 files changed, 305 insertions(+), 21 deletions(-) create mode 100644 src/generated/resources/assets/monilabs/blockstates/uev_parallel_hatch.json create mode 100644 src/generated/resources/assets/monilabs/blockstates/uhv_parallel_hatch.json create mode 100644 src/generated/resources/assets/monilabs/models/block/machine/uev_parallel_hatch.json create mode 100644 src/generated/resources/assets/monilabs/models/block/machine/uhv_parallel_hatch.json create mode 100644 src/generated/resources/assets/monilabs/models/item/uev_parallel_hatch.json create mode 100644 src/generated/resources/assets/monilabs/models/item/uhv_parallel_hatch.json create mode 100644 src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk5/overlay_front.png create mode 100644 src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk5/overlay_front.png.mcmeta create mode 100644 src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk5/overlay_front_active.png create mode 100644 src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk5/overlay_front_active.png.mcmeta create mode 100644 src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk6/overlay_front.png create mode 100644 src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk6/overlay_front.png.mcmeta create mode 100644 src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk6/overlay_front_active.png create mode 100644 src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk6/overlay_front_active.png.mcmeta diff --git a/src/generated/resources/assets/monilabs/blockstates/uev_parallel_hatch.json b/src/generated/resources/assets/monilabs/blockstates/uev_parallel_hatch.json new file mode 100644 index 00000000..53d16958 --- /dev/null +++ b/src/generated/resources/assets/monilabs/blockstates/uev_parallel_hatch.json @@ -0,0 +1,28 @@ +{ + "variants": { + "facing=down": { + "model": "monilabs:block/machine/uev_parallel_hatch", + "x": 90 + }, + "facing=east": { + "model": "monilabs:block/machine/uev_parallel_hatch", + "y": 90 + }, + "facing=north": { + "model": "monilabs:block/machine/uev_parallel_hatch" + }, + "facing=south": { + "model": "monilabs:block/machine/uev_parallel_hatch", + "y": 180 + }, + "facing=up": { + "gtceu:z": 180, + "model": "monilabs:block/machine/uev_parallel_hatch", + "x": 270 + }, + "facing=west": { + "model": "monilabs:block/machine/uev_parallel_hatch", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/monilabs/blockstates/uhv_parallel_hatch.json b/src/generated/resources/assets/monilabs/blockstates/uhv_parallel_hatch.json new file mode 100644 index 00000000..59a51c0f --- /dev/null +++ b/src/generated/resources/assets/monilabs/blockstates/uhv_parallel_hatch.json @@ -0,0 +1,28 @@ +{ + "variants": { + "facing=down": { + "model": "monilabs:block/machine/uhv_parallel_hatch", + "x": 90 + }, + "facing=east": { + "model": "monilabs:block/machine/uhv_parallel_hatch", + "y": 90 + }, + "facing=north": { + "model": "monilabs:block/machine/uhv_parallel_hatch" + }, + "facing=south": { + "model": "monilabs:block/machine/uhv_parallel_hatch", + "y": 180 + }, + "facing=up": { + "gtceu:z": 180, + "model": "monilabs:block/machine/uhv_parallel_hatch", + "x": 270 + }, + "facing=west": { + "model": "monilabs:block/machine/uhv_parallel_hatch", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/monilabs/lang/en_ud.json b/src/generated/resources/assets/monilabs/lang/en_ud.json index afc3329b..9fb3bc35 100644 --- a/src/generated/resources/assets/monilabs/lang/en_ud.json +++ b/src/generated/resources/assets/monilabs/lang/en_ud.json @@ -28,6 +28,8 @@ "block.monilabs.sculk_vat": "ʇɐΛ ʞןnɔS", "block.monilabs.sculk_xp_draining_hatch": "ɥɔʇɐH buıuıɐɹᗡ ԀX ʞןnɔS", "block.monilabs.sculk_xp_sensor_hatch": "ɥɔʇɐH ɹosuǝS ԀX ʞןnɔS", + "block.monilabs.uev_parallel_hatch": "ɥɔʇɐH ןoɹʇuoƆ ןǝןןɐɹɐԀ ɐɹʇן∩", + "block.monilabs.uhv_parallel_hatch": "ɥɔʇɐH ןoɹʇuoƆ ןǝןןɐɹɐԀ ɐbı⅁", "config.jade.plugin_monilabs.color_info": "oɟuI ɹoןoƆ ǝןqıɔnɹƆ ɔıʇɐɯsıɹԀ", "config.jade.plugin_monilabs.microverse_info": "oɟuI ɹoʇɔǝظoɹԀ ǝsɹǝʌoɹɔıW", "config.jade.plugin_monilabs.omnic_synth_info": "oɟuI ɹǝzısǝɥʇuʎS ɔıuɯO", diff --git a/src/generated/resources/assets/monilabs/lang/en_us.json b/src/generated/resources/assets/monilabs/lang/en_us.json index 95c02c19..2b8b9be0 100644 --- a/src/generated/resources/assets/monilabs/lang/en_us.json +++ b/src/generated/resources/assets/monilabs/lang/en_us.json @@ -28,6 +28,8 @@ "block.monilabs.sculk_vat": "Sculk Vat", "block.monilabs.sculk_xp_draining_hatch": "Sculk XP Draining Hatch", "block.monilabs.sculk_xp_sensor_hatch": "Sculk XP Sensor Hatch", + "block.monilabs.uev_parallel_hatch": "Ultra Parallel Control Hatch", + "block.monilabs.uhv_parallel_hatch": "Giga Parallel Control Hatch", "config.jade.plugin_monilabs.color_info": "Prismatic Crucible Color Info", "config.jade.plugin_monilabs.microverse_info": "Microverse Projector Info", "config.jade.plugin_monilabs.omnic_synth_info": "Omnic Synthesizer Info", diff --git a/src/generated/resources/assets/monilabs/models/block/machine/uev_parallel_hatch.json b/src/generated/resources/assets/monilabs/models/block/machine/uev_parallel_hatch.json new file mode 100644 index 00000000..40b959d0 --- /dev/null +++ b/src/generated/resources/assets/monilabs/models/block/machine/uev_parallel_hatch.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "monilabs:uev_parallel_hatch", + "replaceable_textures": [ + "bottom", + "top", + "side" + ], + "variants": { + "is_formed=false,recipe_logic_status=idle": { + "model": { + "parent": "gtceu:block/casings/voltage/uev", + "textures": { + "overlay_front": "monilabs:block/machines/parallel_hatch_mk6/overlay_front" + } + } + }, + "is_formed=false,recipe_logic_status=suspend": { + "model": { + "parent": "gtceu:block/casings/voltage/uev", + "textures": { + "overlay_front": "monilabs:block/machines/parallel_hatch_mk6/overlay_front" + } + } + }, + "is_formed=false,recipe_logic_status=waiting": { + "model": { + "parent": "gtceu:block/casings/voltage/uev", + "textures": { + "overlay_front": "monilabs:block/machines/parallel_hatch_mk6/overlay_front_active" + } + } + }, + "is_formed=false,recipe_logic_status=working": { + "model": { + "parent": "gtceu:block/casings/voltage/uev", + "textures": { + "overlay_front": "monilabs:block/machines/parallel_hatch_mk6/overlay_front_active" + } + } + }, + "is_formed=true,recipe_logic_status=idle": { + "model": { + "parent": "gtceu:block/casings/voltage/uev", + "textures": { + "overlay_front": "monilabs:block/machines/parallel_hatch_mk6/overlay_front" + } + } + }, + "is_formed=true,recipe_logic_status=suspend": { + "model": { + "parent": "gtceu:block/casings/voltage/uev", + "textures": { + "overlay_front": "monilabs:block/machines/parallel_hatch_mk6/overlay_front" + } + } + }, + "is_formed=true,recipe_logic_status=waiting": { + "model": { + "parent": "gtceu:block/casings/voltage/uev", + "textures": { + "overlay_front": "monilabs:block/machines/parallel_hatch_mk6/overlay_front_active" + } + } + }, + "is_formed=true,recipe_logic_status=working": { + "model": { + "parent": "gtceu:block/casings/voltage/uev", + "textures": { + "overlay_front": "monilabs:block/machines/parallel_hatch_mk6/overlay_front_active" + } + } + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/monilabs/models/block/machine/uhv_parallel_hatch.json b/src/generated/resources/assets/monilabs/models/block/machine/uhv_parallel_hatch.json new file mode 100644 index 00000000..ad446981 --- /dev/null +++ b/src/generated/resources/assets/monilabs/models/block/machine/uhv_parallel_hatch.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:block/block", + "loader": "gtceu:machine", + "machine": "monilabs:uhv_parallel_hatch", + "replaceable_textures": [ + "bottom", + "top", + "side" + ], + "variants": { + "is_formed=false,recipe_logic_status=idle": { + "model": { + "parent": "gtceu:block/casings/voltage/uhv", + "textures": { + "overlay_front": "monilabs:block/machines/parallel_hatch_mk5/overlay_front" + } + } + }, + "is_formed=false,recipe_logic_status=suspend": { + "model": { + "parent": "gtceu:block/casings/voltage/uhv", + "textures": { + "overlay_front": "monilabs:block/machines/parallel_hatch_mk5/overlay_front" + } + } + }, + "is_formed=false,recipe_logic_status=waiting": { + "model": { + "parent": "gtceu:block/casings/voltage/uhv", + "textures": { + "overlay_front": "monilabs:block/machines/parallel_hatch_mk5/overlay_front_active" + } + } + }, + "is_formed=false,recipe_logic_status=working": { + "model": { + "parent": "gtceu:block/casings/voltage/uhv", + "textures": { + "overlay_front": "monilabs:block/machines/parallel_hatch_mk5/overlay_front_active" + } + } + }, + "is_formed=true,recipe_logic_status=idle": { + "model": { + "parent": "gtceu:block/casings/voltage/uhv", + "textures": { + "overlay_front": "monilabs:block/machines/parallel_hatch_mk5/overlay_front" + } + } + }, + "is_formed=true,recipe_logic_status=suspend": { + "model": { + "parent": "gtceu:block/casings/voltage/uhv", + "textures": { + "overlay_front": "monilabs:block/machines/parallel_hatch_mk5/overlay_front" + } + } + }, + "is_formed=true,recipe_logic_status=waiting": { + "model": { + "parent": "gtceu:block/casings/voltage/uhv", + "textures": { + "overlay_front": "monilabs:block/machines/parallel_hatch_mk5/overlay_front_active" + } + } + }, + "is_formed=true,recipe_logic_status=working": { + "model": { + "parent": "gtceu:block/casings/voltage/uhv", + "textures": { + "overlay_front": "monilabs:block/machines/parallel_hatch_mk5/overlay_front_active" + } + } + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/monilabs/models/item/uev_parallel_hatch.json b/src/generated/resources/assets/monilabs/models/item/uev_parallel_hatch.json new file mode 100644 index 00000000..cb1c7ced --- /dev/null +++ b/src/generated/resources/assets/monilabs/models/item/uev_parallel_hatch.json @@ -0,0 +1,3 @@ +{ + "parent": "monilabs:block/machine/uev_parallel_hatch" +} \ No newline at end of file diff --git a/src/generated/resources/assets/monilabs/models/item/uhv_parallel_hatch.json b/src/generated/resources/assets/monilabs/models/item/uhv_parallel_hatch.json new file mode 100644 index 00000000..7cf6b727 --- /dev/null +++ b/src/generated/resources/assets/monilabs/models/item/uhv_parallel_hatch.json @@ -0,0 +1,3 @@ +{ + "parent": "monilabs:block/machine/uhv_parallel_hatch" +} \ No newline at end of file diff --git a/src/main/java/net/neganote/monilabs/common/machine/MoniMachines.java b/src/main/java/net/neganote/monilabs/common/machine/MoniMachines.java index a3f56e06..6c05033d 100644 --- a/src/main/java/net/neganote/monilabs/common/machine/MoniMachines.java +++ b/src/main/java/net/neganote/monilabs/common/machine/MoniMachines.java @@ -4,15 +4,19 @@ import com.gregtechceu.gtceu.api.GTValues; import com.gregtechceu.gtceu.api.capability.recipe.IO; import com.gregtechceu.gtceu.api.data.RotationState; +import com.gregtechceu.gtceu.api.machine.IMachineBlockEntity; import com.gregtechceu.gtceu.api.machine.MachineDefinition; +import com.gregtechceu.gtceu.api.machine.MetaMachine; import com.gregtechceu.gtceu.api.machine.MultiblockMachineDefinition; import com.gregtechceu.gtceu.api.machine.feature.multiblock.IMultiController; import com.gregtechceu.gtceu.api.machine.multiblock.PartAbility; +import com.gregtechceu.gtceu.api.machine.property.GTMachineModelProperties; import com.gregtechceu.gtceu.api.machine.trait.RecipeLogic; import com.gregtechceu.gtceu.api.pattern.FactoryBlockPattern; import com.gregtechceu.gtceu.api.pattern.Predicates; import com.gregtechceu.gtceu.api.pattern.util.RelativeDirection; import com.gregtechceu.gtceu.api.registry.registrate.GTRegistrate; +import com.gregtechceu.gtceu.api.registry.registrate.MachineBuilder; import com.gregtechceu.gtceu.client.util.TooltipHelper; import com.gregtechceu.gtceu.common.data.GCYMBlocks; import com.gregtechceu.gtceu.common.data.GTBlocks; @@ -21,6 +25,7 @@ import com.gregtechceu.gtceu.common.data.models.GTMachineModels; import com.gregtechceu.gtceu.common.machine.multiblock.part.EnergyHatchPartMachine; import com.gregtechceu.gtceu.common.machine.multiblock.part.LaserHatchPartMachine; +import com.gregtechceu.gtceu.common.machine.multiblock.part.ParallelHatchPartMachine; import com.gregtechceu.gtceu.utils.FormattingUtil; import net.minecraft.network.chat.Component; @@ -42,14 +47,18 @@ import org.jetbrains.annotations.NotNull; import java.util.List; +import java.util.Locale; import java.util.function.BiConsumer; +import java.util.function.BiFunction; -import static com.gregtechceu.gtceu.api.GTValues.V; -import static com.gregtechceu.gtceu.api.GTValues.VNF; +import static com.gregtechceu.gtceu.api.GTValues.*; +import static com.gregtechceu.gtceu.api.GTValues.ZPM; import static com.gregtechceu.gtceu.api.capability.recipe.IO.IN; import static com.gregtechceu.gtceu.api.capability.recipe.IO.OUT; import static com.gregtechceu.gtceu.api.machine.property.GTMachineModelProperties.IS_FORMED; import static com.gregtechceu.gtceu.common.data.machines.GTMachineUtils.registerTieredMachines; +import static com.gregtechceu.gtceu.common.data.models.GTMachineModels.createWorkableTieredHullMachineModel; +import static net.neganote.monilabs.MoniLabs.REGISTRATE; @SuppressWarnings("unused") public class MoniMachines { @@ -163,7 +172,44 @@ public class MoniMachines { Component.translatable("tooltip.monilabs.hyperbolic_microverse_projector.description.2")); }; - public static MachineDefinition CHROMA_SENSOR_HATCH = MoniLabs.REGISTRATE + public static final MachineDefinition[] PARALLEL_HATCH = registerTieredParallelMachines("parallel_hatch", + ParallelHatchPartMachine::new, + (tier, builder) -> builder + .langValue(switch (tier) { + case 9 -> "Giga"; + case 10 -> "Ultra"; + default -> "Simple"; // Should never be hit. + } + " Parallel Control Hatch") + .rotationState(RotationState.ALL) + .abilities(PartAbility.PARALLEL_HATCH) + .modelProperty(IS_FORMED, false) + .modelProperty(GTMachineModelProperties.RECIPE_LOGIC_STATUS, RecipeLogic.Status.IDLE) + .model(createWorkableTieredHullMachineModel( + MoniLabs.id("block/machines/parallel_hatch_mk" + (tier - 4))) + .andThen((ctx, prov, model) -> { + model.addReplaceableTextures("bottom", "top", "side"); + })) + .tooltips(Component.translatable("gtceu.machine.parallel_hatch_mk" + tier + ".tooltip"), + Component.translatable("gtceu.part_sharing.disabled")) + .register(), + UHV, UEV); + + public static MachineDefinition[] registerTieredParallelMachines(String name, + BiFunction factory, + BiFunction, MachineDefinition> builder, + int... tiers) { + MachineDefinition[] definitions = new MachineDefinition[GTValues.TIER_COUNT]; + for (int tier : tiers) { + var register = REGISTRATE + .machine(GTValues.VN[tier].toLowerCase(Locale.ROOT) + "_" + name, + holder -> factory.apply(holder, tier)) + .tier(tier); + definitions[tier] = builder.apply(tier, register); + } + return definitions; + } + + public static MachineDefinition CHROMA_SENSOR_HATCH = REGISTRATE .machine("chroma_sensor_hatch", ChromaSensorHatchPartMachine::new) .langValue("Chroma Sensor Hatch") .rotationState(RotationState.ALL) @@ -176,7 +222,7 @@ public class MoniMachines { .tier(GTValues.UHV) .register(); - public static MachineDefinition SCULK_XP_DRAINING_HATCH = MoniLabs.REGISTRATE + public static MachineDefinition SCULK_XP_DRAINING_HATCH = REGISTRATE .machine("sculk_xp_draining_hatch", SculkExperienceDrainingHatchPartMachine::new) .langValue("Sculk XP Draining Hatch") .rotationState(RotationState.ALL) @@ -188,7 +234,7 @@ public class MoniMachines { .tier(GTValues.ZPM) .register(); - public static MachineDefinition SCULK_XP_SENSOR_HATCH = MoniLabs.REGISTRATE + public static MachineDefinition SCULK_XP_SENSOR_HATCH = REGISTRATE .machine("sculk_xp_sensor_hatch", SculkExperienceSensorHatchPartMachine::new) .langValue("Sculk XP Sensor Hatch") .rotationState(RotationState.ALL) @@ -200,7 +246,7 @@ public class MoniMachines { .model(MoniMachineModels.createOverlayFillLevelCasingMachineModel("exp_sensor", "casing/cryolobus")) .register(); - public static MachineDefinition MICROVERSE_STABILITY_SENSOR_HATCH = MoniLabs.REGISTRATE + public static MachineDefinition MICROVERSE_STABILITY_SENSOR_HATCH = REGISTRATE .machine("microverse_stability_sensor_hatch", MicroverseStabilitySensorHatchPartMachine::new) .langValue("Microverse Stability Sensor Hatch") .rotationState(RotationState.ALL) @@ -212,7 +258,7 @@ public class MoniMachines { .model(MoniMachineModels.createOverlayFillLevelCasingMachineModel("stability_hatch", "casing/microverse")) .register(); - public static MachineDefinition MICROVERSE_TYPE_SENSOR_HATCH = MoniLabs.REGISTRATE + public static MachineDefinition MICROVERSE_TYPE_SENSOR_HATCH = REGISTRATE .machine("microverse_type_sensor_hatch", MicroverseTypeSensorHatchPartMachine::new) .langValue("Microverse Type Sensor Hatch") .rotationState(RotationState.ALL) @@ -230,7 +276,7 @@ public class MoniMachines { .model(MoniMachineModels.createOverlayMicroverseCasingMachineModel("type_hatch", "casing/microverse")) .register(); - public static MultiblockMachineDefinition PRISMATIC_CRUCIBLE = MoniLabs.REGISTRATE + public static MultiblockMachineDefinition PRISMATIC_CRUCIBLE = REGISTRATE .multiblock("prismatic_crucible", PrismaticCrucibleMachine::new) .rotationState(RotationState.NON_Y_AXIS) .recipeTypes(MoniRecipeTypes.CHROMATIC_PROCESSING, MoniRecipeTypes.CHROMATIC_TRANSCENDENCE) @@ -281,7 +327,7 @@ public class MoniMachines { .hasBER(true) .register(); - public static MultiblockMachineDefinition BASIC_MICROVERSE_PROJECTOR = MoniLabs.REGISTRATE + public static MultiblockMachineDefinition BASIC_MICROVERSE_PROJECTOR = REGISTRATE .multiblock("basic_microverse_projector", (holder) -> new MicroverseProjectorMachine(holder, 1)) .langValue("Basic Microverse Projector") .rotationState(RotationState.NON_Y_AXIS) @@ -314,7 +360,7 @@ public class MoniMachines { .hasBER(true) .register(); - public static MultiblockMachineDefinition ADVANCED_MICROVERSE_PROJECTOR = MoniLabs.REGISTRATE + public static MultiblockMachineDefinition ADVANCED_MICROVERSE_PROJECTOR = REGISTRATE .multiblock("advanced_microverse_projector", (holder) -> new MicroverseProjectorMachine(holder, 2)) .langValue("Advanced Microverse Projector") .rotationState(RotationState.NON_Y_AXIS) @@ -350,7 +396,7 @@ public class MoniMachines { .hasBER(true) .register(); - public static MultiblockMachineDefinition ELITE_MICROVERSE_PROJECTOR = MoniLabs.REGISTRATE + public static MultiblockMachineDefinition ELITE_MICROVERSE_PROJECTOR = REGISTRATE .multiblock("elite_microverse_projector", (holder) -> new MicroverseProjectorMachine(holder, 3)) .langValue("Elite Microverse Projector") .rotationState(RotationState.NON_Y_AXIS) @@ -399,7 +445,7 @@ public class MoniMachines { .hasBER(true) .register(); - public static MultiblockMachineDefinition HYPERBOLIC_MICROVERSE_PROJECTOR = MoniLabs.REGISTRATE + public static MultiblockMachineDefinition HYPERBOLIC_MICROVERSE_PROJECTOR = REGISTRATE .multiblock("hyperbolic_microverse_projector", (holder) -> new MicroverseProjectorMachine(holder, 4)) .langValue("Hyperbolic Microverse Projector") .rotationState(RotationState.NON_Y_AXIS) @@ -455,7 +501,7 @@ public class MoniMachines { .hasBER(true) .register(); - public static MultiblockMachineDefinition CREATIVE_ENERGY_MULTI = MoniLabs.REGISTRATE + public static MultiblockMachineDefinition CREATIVE_ENERGY_MULTI = REGISTRATE .multiblock("creative_energy_multi", CreativeEnergyMultiMachine::new) .langValue("Transdimensional Energy Singularity") .rotationState(RotationState.NON_Y_AXIS) @@ -505,7 +551,7 @@ public class MoniMachines { .tooltipBuilder(CREATIVE_ENERGY_MULTI_TOOLTIPS) .register(); - public static MultiblockMachineDefinition CREATIVE_DATA_MULTI = MoniLabs.REGISTRATE + public static MultiblockMachineDefinition CREATIVE_DATA_MULTI = REGISTRATE .multiblock("creative_data_multi", CreativeDataMultiMachine::new) .langValue("Omniscience Research Beacon") .rotationState(RotationState.NON_Y_AXIS) @@ -556,7 +602,7 @@ public class MoniMachines { .tooltipBuilder(CREATIVE_DATA_MULTI_TOOLTIPS) .register(); - public static MultiblockMachineDefinition SCULK_VAT = MoniLabs.REGISTRATE + public static MultiblockMachineDefinition SCULK_VAT = REGISTRATE .multiblock("sculk_vat", SculkVatMachine::new) .recipeTypes(MoniRecipeTypes.SCULK_VAT_RECIPES) .recipeModifiers(GTRecipeModifiers.OC_NON_PERFECT, MoniRecipeModifiers::sculkVatRecipeModifier) @@ -620,17 +666,17 @@ public static MachineDefinition registerMaxLaserHatch(GTRegistrate registrate, I GTValues.MAX)[0]; } - public static final MachineDefinition MAX_LASER_INPUT_HATCH_256 = registerMaxLaserHatch(MoniLabs.REGISTRATE, IN, + public static final MachineDefinition MAX_LASER_INPUT_HATCH_256 = registerMaxLaserHatch(REGISTRATE, IN, 256, PartAbility.INPUT_LASER); - public static final MachineDefinition MAX_LASER_OUTPUT_HATCH_256 = registerMaxLaserHatch(MoniLabs.REGISTRATE, OUT, + public static final MachineDefinition MAX_LASER_OUTPUT_HATCH_256 = registerMaxLaserHatch(REGISTRATE, OUT, 256, PartAbility.OUTPUT_LASER); - public static final MachineDefinition MAX_LASER_INPUT_HATCH_1024 = registerMaxLaserHatch(MoniLabs.REGISTRATE, IN, + public static final MachineDefinition MAX_LASER_INPUT_HATCH_1024 = registerMaxLaserHatch(REGISTRATE, IN, 1024, PartAbility.INPUT_LASER); - public static final MachineDefinition MAX_LASER_OUTPUT_HATCH_1024 = registerMaxLaserHatch(MoniLabs.REGISTRATE, OUT, + public static final MachineDefinition MAX_LASER_OUTPUT_HATCH_1024 = registerMaxLaserHatch(REGISTRATE, OUT, 1024, PartAbility.OUTPUT_LASER); - public static final MachineDefinition MAX_LASER_INPUT_HATCH_4096 = registerMaxLaserHatch(MoniLabs.REGISTRATE, IN, + public static final MachineDefinition MAX_LASER_INPUT_HATCH_4096 = registerMaxLaserHatch(REGISTRATE, IN, 4096, PartAbility.INPUT_LASER); - public static final MachineDefinition MAX_LASER_OUTPUT_HATCH_4096 = registerMaxLaserHatch(MoniLabs.REGISTRATE, OUT, + public static final MachineDefinition MAX_LASER_OUTPUT_HATCH_4096 = registerMaxLaserHatch(REGISTRATE, OUT, 4096, PartAbility.OUTPUT_LASER); public static void init() {} diff --git a/src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk5/overlay_front.png b/src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk5/overlay_front.png new file mode 100644 index 0000000000000000000000000000000000000000..9417a8dd025beccc15f0497733458087633ea9f9 GIT binary patch literal 861 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 jHsxF5cg8=<_^