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 08a71d60..94fcf14e 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) @@ -177,7 +223,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) @@ -190,7 +236,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) @@ -203,7 +249,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) @@ -216,7 +262,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) @@ -235,7 +281,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) @@ -286,7 +332,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) @@ -319,7 +365,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) @@ -355,7 +401,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) @@ -404,7 +450,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) @@ -460,7 +506,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) @@ -510,7 +556,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) @@ -561,7 +607,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) @@ -625,17 +671,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 00000000..9417a8dd Binary files /dev/null and b/src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk5/overlay_front.png differ diff --git a/src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk5/overlay_front.png.mcmeta b/src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk5/overlay_front.png.mcmeta new file mode 100644 index 00000000..6c606843 --- /dev/null +++ b/src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk5/overlay_front.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 8 + } +} \ No newline at end of file diff --git a/src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk5/overlay_front_active.png b/src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk5/overlay_front_active.png new file mode 100644 index 00000000..51e871ad Binary files /dev/null and b/src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk5/overlay_front_active.png differ diff --git a/src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk5/overlay_front_active.png.mcmeta b/src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk5/overlay_front_active.png.mcmeta new file mode 100644 index 00000000..6c606843 --- /dev/null +++ b/src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk5/overlay_front_active.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 8 + } +} \ No newline at end of file diff --git a/src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk6/overlay_front.png b/src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk6/overlay_front.png new file mode 100644 index 00000000..a37709e0 Binary files /dev/null and b/src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk6/overlay_front.png differ diff --git a/src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk6/overlay_front.png.mcmeta b/src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk6/overlay_front.png.mcmeta new file mode 100644 index 00000000..6c606843 --- /dev/null +++ b/src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk6/overlay_front.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 8 + } +} \ No newline at end of file diff --git a/src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk6/overlay_front_active.png b/src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk6/overlay_front_active.png new file mode 100644 index 00000000..55a933bf Binary files /dev/null and b/src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk6/overlay_front_active.png differ diff --git a/src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk6/overlay_front_active.png.mcmeta b/src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk6/overlay_front_active.png.mcmeta new file mode 100644 index 00000000..6c606843 --- /dev/null +++ b/src/main/resources/assets/monilabs/textures/block/machines/parallel_hatch_mk6/overlay_front_active.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 8 + } +} \ No newline at end of file