├── repositories.gradle ├── spotless.importorder ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── src ├── main │ ├── resources │ │ ├── assets │ │ │ ├── gregtech │ │ │ │ └── textures │ │ │ │ │ └── blocks │ │ │ │ │ ├── casings │ │ │ │ │ ├── unique │ │ │ │ │ │ ├── crushing_wheels_on.png.mcmeta │ │ │ │ │ │ ├── slicing_blades_on.png.mcmeta │ │ │ │ │ │ ├── electrolytic_cell_on.png.mcmeta │ │ │ │ │ │ ├── heat_vent.png │ │ │ │ │ │ ├── crushing_wheels.png │ │ │ │ │ │ ├── heat_vent_bloom.png │ │ │ │ │ │ ├── slicing_blades.png │ │ │ │ │ │ ├── crushing_wheels_on.png │ │ │ │ │ │ ├── electrolytic_cell.png │ │ │ │ │ │ ├── slicing_blades_on.png │ │ │ │ │ │ ├── electrolytic_cell_on.png │ │ │ │ │ │ └── heat_vent_bloom.png.mcmeta │ │ │ │ │ ├── large_multiblock_casing │ │ │ │ │ │ ├── atomic_casing.png │ │ │ │ │ │ ├── blast_casing.png │ │ │ │ │ │ ├── cutter_casing.png │ │ │ │ │ │ ├── mixer_casing.png │ │ │ │ │ │ ├── sifter_casing.png │ │ │ │ │ │ ├── steam_casing.png │ │ │ │ │ │ ├── assembler_casing.png │ │ │ │ │ │ ├── engraver_casing.png │ │ │ │ │ │ ├── macerator_casing.png │ │ │ │ │ │ ├── stress_proof_casing.png │ │ │ │ │ │ ├── watertight_casing.png │ │ │ │ │ │ ├── nonconducting_casing.png │ │ │ │ │ │ ├── vibration_safe_casing.png │ │ │ │ │ │ └── corrosion_proof_casing.png │ │ │ │ │ └── coils │ │ │ │ │ │ ├── machine_coil_molybdenum_disilicide.png │ │ │ │ │ │ ├── machine_coil_molybdenum_disilicide_ctm.png │ │ │ │ │ │ ├── machine_coil_molybdenum_disilicide_bloom.png │ │ │ │ │ │ ├── machine_coil_molybdenum_disilicide_bloom_ctm.png │ │ │ │ │ │ ├── machine_coil_molybdenum_disilicide.png.mcmeta │ │ │ │ │ │ └── machine_coil_molybdenum_disilicide_bloom.png.mcmeta │ │ │ │ │ ├── hatches │ │ │ │ │ ├── parallel_hatch_mk1 │ │ │ │ │ │ ├── overlay_front.png.mcmeta │ │ │ │ │ │ ├── overlay_front_active.png.mcmeta │ │ │ │ │ │ ├── overlay_front_emissive.png.mcmeta │ │ │ │ │ │ ├── overlay_front_active_emissive.png.mcmeta │ │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ │ └── overlay_front_active_emissive.png │ │ │ │ │ ├── parallel_hatch_mk2 │ │ │ │ │ │ ├── overlay_front.png.mcmeta │ │ │ │ │ │ ├── overlay_front_active.png.mcmeta │ │ │ │ │ │ ├── overlay_front_emissive.png.mcmeta │ │ │ │ │ │ ├── overlay_front_active_emissive.png.mcmeta │ │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ │ └── overlay_front_active_emissive.png │ │ │ │ │ ├── parallel_hatch_mk3 │ │ │ │ │ │ ├── overlay_front.png.mcmeta │ │ │ │ │ │ ├── overlay_front_active.png.mcmeta │ │ │ │ │ │ ├── overlay_front_emissive.png.mcmeta │ │ │ │ │ │ ├── overlay_front_active_emissive.png.mcmeta │ │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ │ └── overlay_front_active_emissive.png │ │ │ │ │ ├── parallel_hatch_mk4 │ │ │ │ │ │ ├── overlay_front.png.mcmeta │ │ │ │ │ │ ├── overlay_front_active.png.mcmeta │ │ │ │ │ │ ├── overlay_front_emissive.png.mcmeta │ │ │ │ │ │ ├── overlay_front_active_emissive.png.mcmeta │ │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ │ └── overlay_front_active_emissive.png │ │ │ │ │ └── tiered_hatch │ │ │ │ │ │ ├── overlay_back.png │ │ │ │ │ │ ├── overlay_side.png │ │ │ │ │ │ ├── overlay_top.png │ │ │ │ │ │ ├── overlay_bottom.png │ │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ │ ├── overlay_back_active.png │ │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ │ ├── overlay_side_active.png │ │ │ │ │ │ ├── overlay_top_active.png │ │ │ │ │ │ └── overlay_bottom_active.png │ │ │ │ │ ├── material_sets │ │ │ │ │ └── dull │ │ │ │ │ │ ├── molten.png │ │ │ │ │ │ └── molten.png.mcmeta │ │ │ │ │ └── multiblock │ │ │ │ │ ├── large_mixer │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ ├── overlay_front_paused.png │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ ├── overlay_front_active_emissive.png │ │ │ │ │ └── overlay_front_paused_emissive.png │ │ │ │ │ ├── large_bender │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ ├── overlay_front_paused.png │ │ │ │ │ ├── overlay_front_active_emissive.png │ │ │ │ │ └── overlay_front_paused_emissive.png │ │ │ │ │ ├── large_brewery │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ ├── overlay_front_paused.png │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ ├── overlay_front_active_emissive.png │ │ │ │ │ └── overlay_front_paused_emissive.png │ │ │ │ │ ├── large_cutter │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ ├── overlay_front_paused.png │ │ │ │ │ ├── overlay_front_active_emissive.png │ │ │ │ │ └── overlay_front_paused_emissive.png │ │ │ │ │ ├── large_sifter │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ ├── overlay_front_paused.png │ │ │ │ │ ├── overlay_front_active_emissive.png │ │ │ │ │ └── overlay_front_paused_emissive.png │ │ │ │ │ ├── steam_engine │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ ├── overlay_front_paused.png │ │ │ │ │ ├── overlay_front_active_emissive.png │ │ │ │ │ └── overlay_front_paused_emissive.png │ │ │ │ │ ├── chemical_plant │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ ├── overlay_front_paused.png │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ ├── overlay_front_active_emissive.png │ │ │ │ │ └── overlay_front_paused_emissive.png │ │ │ │ │ ├── large_assembler │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ ├── overlay_front_paused.png │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ ├── overlay_front_active_emissive.png │ │ │ │ │ └── overlay_front_paused_emissive.png │ │ │ │ │ ├── large_autoclave │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ ├── overlay_front_paused.png │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ ├── overlay_front_active_emissive.png │ │ │ │ │ └── overlay_front_paused_emissive.png │ │ │ │ │ ├── large_centrifuge │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ ├── overlay_front_paused.png │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ ├── overlay_front_active_emissive.png │ │ │ │ │ └── overlay_front_paused_emissive.png │ │ │ │ │ ├── large_distillery │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ ├── overlay_front_paused.png │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ ├── overlay_front_active_emissive.png │ │ │ │ │ └── overlay_front_paused_emissive.png │ │ │ │ │ ├── large_engraver │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ ├── overlay_front_paused.png │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ ├── overlay_front_active_emissive.png │ │ │ │ │ └── overlay_front_paused_emissive.png │ │ │ │ │ ├── large_extractor │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ ├── overlay_front_paused.png │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ ├── overlay_front_active_emissive.png │ │ │ │ │ └── overlay_front_paused_emissive.png │ │ │ │ │ ├── large_extruder │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ ├── overlay_front_paused.png │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ ├── overlay_front_active_emissive.png │ │ │ │ │ └── overlay_front_paused_emissive.png │ │ │ │ │ ├── large_macerator │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ ├── overlay_front_paused.png │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ ├── overlay_front_active_emissive.png │ │ │ │ │ └── overlay_front_paused_emissive.png │ │ │ │ │ ├── large_packager │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ ├── overlay_front_paused.png │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ ├── overlay_front_active_emissive.png │ │ │ │ │ └── overlay_front_paused_emissive.png │ │ │ │ │ ├── large_polarizer │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ ├── overlay_front_paused.png │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ ├── overlay_front_active_emissive.png │ │ │ │ │ └── overlay_front_paused_emissive.png │ │ │ │ │ ├── large_replicator │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ ├── overlay_front_paused.png │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ ├── overlay_front_active_emissive.png │ │ │ │ │ └── overlay_front_paused_emissive.png │ │ │ │ │ ├── large_solidifier │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ ├── overlay_front_paused.png │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ ├── overlay_front_active_emissive.png │ │ │ │ │ └── overlay_front_paused_emissive.png │ │ │ │ │ ├── large_wiremill │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ ├── overlay_front_paused.png │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ ├── overlay_front_active_emissive.png │ │ │ │ │ └── overlay_front_paused_emissive.png │ │ │ │ │ ├── electric_implosion │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ ├── overlay_front_paused.png │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ ├── overlay_front_active_emissive.png │ │ │ │ │ └── overlay_front_paused_emissive.png │ │ │ │ │ ├── large_arc_furnace │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ └── overlay_front_active_emissive.png │ │ │ │ │ ├── large_electrolyzer │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ ├── overlay_front_paused.png │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ ├── overlay_front_active_emissive.png │ │ │ │ │ └── overlay_front_paused_emissive.png │ │ │ │ │ ├── mega_blast_furnace │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ ├── overlay_front_paused.png │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ ├── overlay_front_active_emissive.png │ │ │ │ │ └── overlay_front_paused_emissive.png │ │ │ │ │ ├── alloy_blast_smelter │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ └── overlay_front_active_emissive.png │ │ │ │ │ ├── large_chemical_bath │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ ├── overlay_front_paused.png │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ ├── overlay_front_active_emissive.png │ │ │ │ │ └── overlay_front_paused_emissive.png │ │ │ │ │ ├── large_mass_fabricator │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ ├── overlay_front_paused.png │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ ├── overlay_front_active_emissive.png │ │ │ │ │ └── overlay_front_paused_emissive.png │ │ │ │ │ ├── mega_vacuum_freezer │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ ├── overlay_front_paused.png │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ ├── overlay_front_active_emissive.png │ │ │ │ │ └── overlay_front_paused_emissive.png │ │ │ │ │ └── large_circuit_assembler │ │ │ │ │ ├── overlay_front.png │ │ │ │ │ ├── overlay_front_active.png │ │ │ │ │ ├── overlay_front_paused.png │ │ │ │ │ ├── overlay_front_emissive.png │ │ │ │ │ ├── overlay_front_active_emissive.png │ │ │ │ │ └── overlay_front_paused_emissive.png │ │ │ └── gcym │ │ │ │ └── blockstates │ │ │ │ ├── unique_casing.json │ │ │ │ └── large_multiblock_casing.json │ │ ├── pack.mcmeta │ │ └── mcmod.info │ └── java │ │ └── gregicality │ │ └── multiblocks │ │ ├── api │ │ ├── capability │ │ │ ├── IParallelHatch.java │ │ │ ├── IParallelMultiblock.java │ │ │ └── impl │ │ │ │ └── GCYMMultiblockRecipeLogic.java │ │ ├── GCYMValues.java │ │ ├── unification │ │ │ ├── material │ │ │ │ └── GCYMMaterialIconTypes.java │ │ │ ├── properties │ │ │ │ ├── GCYMPropertyKey.java │ │ │ │ ├── AlloyBlastPropertyAddition.java │ │ │ │ └── AlloyBlastProperty.java │ │ │ ├── GCYMMaterialFlags.java │ │ │ ├── GCYMMaterials.java │ │ │ ├── GCYMMaterialFlagAddition.java │ │ │ └── GCYMSecondDegreeMaterials.java │ │ ├── utils │ │ │ ├── GCYMLog.java │ │ │ └── GCYMUtil.java │ │ ├── metatileentity │ │ │ └── GCYMMultiblockAbility.java │ │ ├── fluids │ │ │ ├── GCYMFluidStorageKeys.java │ │ │ └── GeneratedFluidHandler.java │ │ └── recipes │ │ │ ├── GCYMRecipeMaps.java │ │ │ └── alloyblast │ │ │ └── CustomAlloyBlastRecipeProducer.java │ │ ├── loaders │ │ └── recipe │ │ │ ├── GCYMRecipeLoader.java │ │ │ ├── GCYMMiscRecipes.java │ │ │ ├── handlers │ │ │ └── GCYMMaterialRecipeHandler.java │ │ │ └── GCYMMixerRecipes.java │ │ ├── common │ │ ├── GCYMConfigHolder.java │ │ ├── ClientProxy.java │ │ ├── GCYMEventHandlers.java │ │ ├── block │ │ │ ├── blocks │ │ │ │ ├── BlockLargeMultiblockCasing.java │ │ │ │ └── BlockUniqueCasing.java │ │ │ └── GCYMMetaBlocks.java │ │ ├── metatileentities │ │ │ ├── multiblock │ │ │ │ └── standard │ │ │ │ │ ├── MetaTileEntityLargePackager.java │ │ │ │ │ ├── MetaTileEntityLargeElectrolyzer.java │ │ │ │ │ ├── MetaTileEntityLargeExtractor.java │ │ │ │ │ ├── MetaTileEntityLargeAutoclave.java │ │ │ │ │ ├── MetaTileEntityLargeMacerator.java │ │ │ │ │ ├── MetaTileEntityLargePolarizer.java │ │ │ │ │ ├── MetaTileEntityLargeSolidifier.java │ │ │ │ │ ├── MetaTileEntityLargeWiremill.java │ │ │ │ │ ├── MetaTileEntityLargeCentrifuge.java │ │ │ │ │ └── MetaTileEntityLargeExtruder.java │ │ │ └── multiblockpart │ │ │ │ └── MetaTileEntityTieredHatch.java │ │ └── CommonProxy.java │ │ └── GregicalityMultiblocks.java ├── api │ └── java │ │ ├── com │ │ ├── creativemd │ │ │ ├── littletiles │ │ │ │ └── client │ │ │ │ │ └── render │ │ │ │ │ ├── cache │ │ │ │ │ └── LayeredRenderBoxCache.java │ │ │ │ │ └── tile │ │ │ │ │ └── LittleRenderBox.java │ │ │ └── creativecore │ │ │ │ └── client │ │ │ │ └── mods │ │ │ │ └── optifine │ │ │ │ └── OptifineHelper.java │ │ └── enderio │ │ │ └── core │ │ │ └── common │ │ │ └── interfaces │ │ │ └── IOverlayRenderAware.java │ │ ├── crazypants │ │ └── enderio │ │ │ └── api │ │ │ └── tool │ │ │ ├── IHideFacades.java │ │ │ ├── ITool.java │ │ │ └── IConduitControl.java │ │ ├── cofh │ │ └── api │ │ │ └── item │ │ │ └── IToolHammer.java │ │ ├── forestry │ │ └── api │ │ │ └── arboriculture │ │ │ └── IToolGrafter.java │ │ └── buildcraft │ │ └── api │ │ └── tools │ │ └── IToolWrench.java └── test │ └── java │ └── gregicality │ └── multiblocks │ └── api │ └── material │ └── AlloyBlastTest.java ├── .git-blame-ignore-revs ├── .github ├── release.yml ├── workflows │ ├── test_java.yml │ ├── validate_gradle_wrapper.yml │ ├── format_java.yml │ ├── update_gradle_cache.yml │ ├── manage_pr_labels.yml │ ├── update_buildscript.yml │ └── publish_project.yml ├── actions │ └── build_setup │ │ └── action.yml └── pull_request_template.md ├── CODEOWNERS ├── settings.gradle ├── LICENSE ├── .gitignore ├── README.md ├── gradlew.bat └── dependencies.gradle /repositories.gradle: -------------------------------------------------------------------------------- 1 | // Add any additional repositories for your dependencies here 2 | 3 | repositories { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /spotless.importorder: -------------------------------------------------------------------------------- 1 | #Organize Import Order 2 | 0=java 3 | 1=javax 4 | 2=net 5 | 3=org 6 | 4=com 7 | 5=gregtech 8 | 6=gregicality 9 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/unique/crushing_wheels_on.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation":{ 3 | "frametime":1 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/unique/slicing_blades_on.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation":{ 3 | "frametime":1 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk1/overlay_front.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation":{ 3 | "frametime":8 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk2/overlay_front.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation":{ 3 | "frametime":8 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk3/overlay_front.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation":{ 3 | "frametime":8 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk4/overlay_front.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation":{ 3 | "frametime":8 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/pack.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "pack": { 3 | "pack_format": 3, 4 | "description": "Gregicality Multiblocks Resource Pack" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk1/overlay_front_active.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation":{ 3 | "frametime":8 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk1/overlay_front_emissive.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation":{ 3 | "frametime":8 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk2/overlay_front_active.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation":{ 3 | "frametime":8 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk2/overlay_front_emissive.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation":{ 3 | "frametime":8 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk3/overlay_front_active.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation":{ 3 | "frametime":8 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk3/overlay_front_emissive.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation":{ 3 | "frametime":8 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk4/overlay_front_active.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation":{ 3 | "frametime":8 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk4/overlay_front_emissive.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation":{ 3 | "frametime":8 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk1/overlay_front_active_emissive.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation":{ 3 | "frametime":8 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk2/overlay_front_active_emissive.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation":{ 3 | "frametime":8 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk3/overlay_front_active_emissive.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation":{ 3 | "frametime":8 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk4/overlay_front_active_emissive.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation":{ 3 | "frametime":8 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /.git-blame-ignore-revs: -------------------------------------------------------------------------------- 1 | # Convert to Jetbrains Annotations 2 | 3bc88728db085556ca8b67933e4e1f6d35e62c49 3 | 4 | # Enable Spotless Formatting 5 | 626685a6803890504385fccd918c99e4c610c71c 6 | -------------------------------------------------------------------------------- /src/api/java/com/creativemd/littletiles/client/render/cache/LayeredRenderBoxCache.java: -------------------------------------------------------------------------------- 1 | package com.creativemd.littletiles.client.render.cache; 2 | 3 | public class LayeredRenderBoxCache { 4 | } 5 | -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/unique/electrolytic_cell_on.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation":{ 3 | "interpolate": true, 4 | "frametime":20 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/api/java/com/creativemd/littletiles/client/render/tile/LittleRenderBox.java: -------------------------------------------------------------------------------- 1 | package com.creativemd.littletiles.client.render.tile; 2 | 3 | public class LittleRenderBox { 4 | public boolean needsResorting; 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/unique/heat_vent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/casings/unique/heat_vent.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/material_sets/dull/molten.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/material_sets/dull/molten.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/unique/crushing_wheels.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/casings/unique/crushing_wheels.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/unique/heat_vent_bloom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/casings/unique/heat_vent_bloom.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/unique/slicing_blades.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/casings/unique/slicing_blades.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/unique/crushing_wheels_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/casings/unique/crushing_wheels_on.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/unique/electrolytic_cell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/casings/unique/electrolytic_cell.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/unique/slicing_blades_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/casings/unique/slicing_blades_on.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/tiered_hatch/overlay_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/hatches/tiered_hatch/overlay_back.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/tiered_hatch/overlay_side.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/hatches/tiered_hatch/overlay_side.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/tiered_hatch/overlay_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/hatches/tiered_hatch/overlay_top.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/unique/electrolytic_cell_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/casings/unique/electrolytic_cell_on.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/tiered_hatch/overlay_bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/hatches/tiered_hatch/overlay_bottom.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/tiered_hatch/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/hatches/tiered_hatch/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_mixer/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_mixer/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_bender/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_bender/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_brewery/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_brewery/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_cutter/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_cutter/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_sifter/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_sifter/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/steam_engine/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/steam_engine/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk1/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk1/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk2/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk2/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk3/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk3/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk4/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk4/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/tiered_hatch/overlay_back_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/hatches/tiered_hatch/overlay_back_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/tiered_hatch/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/hatches/tiered_hatch/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/tiered_hatch/overlay_side_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/hatches/tiered_hatch/overlay_side_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/tiered_hatch/overlay_top_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/hatches/tiered_hatch/overlay_top_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/chemical_plant/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/chemical_plant/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_assembler/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_assembler/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_autoclave/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_autoclave/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_centrifuge/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_centrifuge/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_distillery/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_distillery/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_engraver/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_engraver/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_extractor/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_extractor/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_extruder/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_extruder/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_macerator/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_macerator/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_packager/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_packager/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_polarizer/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_polarizer/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_replicator/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_replicator/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_solidifier/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_solidifier/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_wiremill/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_wiremill/overlay_front.png -------------------------------------------------------------------------------- /src/api/java/com/creativemd/creativecore/client/mods/optifine/OptifineHelper.java: -------------------------------------------------------------------------------- 1 | package com.creativemd.creativecore.client.mods.optifine; 2 | 3 | public class OptifineHelper { 4 | public static boolean isActive() { 5 | return false; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/tiered_hatch/overlay_bottom_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/hatches/tiered_hatch/overlay_bottom_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/electric_implosion/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/electric_implosion/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_arc_furnace/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_arc_furnace/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_electrolyzer/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_electrolyzer/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_mixer/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_mixer/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_mixer/overlay_front_paused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_mixer/overlay_front_paused.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/mega_blast_furnace/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/mega_blast_furnace/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/large_multiblock_casing/atomic_casing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/casings/large_multiblock_casing/atomic_casing.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/large_multiblock_casing/blast_casing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/casings/large_multiblock_casing/blast_casing.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/large_multiblock_casing/cutter_casing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/casings/large_multiblock_casing/cutter_casing.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/large_multiblock_casing/mixer_casing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/casings/large_multiblock_casing/mixer_casing.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/large_multiblock_casing/sifter_casing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/casings/large_multiblock_casing/sifter_casing.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/large_multiblock_casing/steam_casing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/casings/large_multiblock_casing/steam_casing.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/alloy_blast_smelter/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/alloy_blast_smelter/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/chemical_plant/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/chemical_plant/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/chemical_plant/overlay_front_paused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/chemical_plant/overlay_front_paused.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_bender/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_bender/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_bender/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_bender/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_bender/overlay_front_paused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_bender/overlay_front_paused.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_brewery/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_brewery/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_brewery/overlay_front_paused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_brewery/overlay_front_paused.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_chemical_bath/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_chemical_bath/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_cutter/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_cutter/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_cutter/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_cutter/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_cutter/overlay_front_paused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_cutter/overlay_front_paused.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_engraver/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_engraver/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_engraver/overlay_front_paused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_engraver/overlay_front_paused.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_extruder/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_extruder/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_extruder/overlay_front_paused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_extruder/overlay_front_paused.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_mass_fabricator/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_mass_fabricator/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_mixer/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_mixer/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_packager/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_packager/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_packager/overlay_front_paused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_packager/overlay_front_paused.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_sifter/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_sifter/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_sifter/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_sifter/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_sifter/overlay_front_paused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_sifter/overlay_front_paused.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_wiremill/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_wiremill/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_wiremill/overlay_front_paused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_wiremill/overlay_front_paused.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/mega_vacuum_freezer/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/mega_vacuum_freezer/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/steam_engine/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/steam_engine/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/steam_engine/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/steam_engine/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/steam_engine/overlay_front_paused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/steam_engine/overlay_front_paused.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/coils/machine_coil_molybdenum_disilicide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/casings/coils/machine_coil_molybdenum_disilicide.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/large_multiblock_casing/assembler_casing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/casings/large_multiblock_casing/assembler_casing.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/large_multiblock_casing/engraver_casing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/casings/large_multiblock_casing/engraver_casing.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/large_multiblock_casing/macerator_casing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/casings/large_multiblock_casing/macerator_casing.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk1/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk1/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk2/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk2/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk3/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk3/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk4/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk4/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/chemical_plant/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/chemical_plant/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_assembler/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_assembler/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_assembler/overlay_front_paused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_assembler/overlay_front_paused.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_autoclave/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_autoclave/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_autoclave/overlay_front_paused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_autoclave/overlay_front_paused.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_brewery/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_brewery/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_centrifuge/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_centrifuge/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_centrifuge/overlay_front_paused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_centrifuge/overlay_front_paused.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_circuit_assembler/overlay_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_circuit_assembler/overlay_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_distillery/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_distillery/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_distillery/overlay_front_paused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_distillery/overlay_front_paused.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_engraver/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_engraver/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_extractor/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_extractor/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_extractor/overlay_front_paused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_extractor/overlay_front_paused.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_extruder/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_extruder/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_macerator/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_macerator/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_macerator/overlay_front_paused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_macerator/overlay_front_paused.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_packager/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_packager/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_polarizer/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_polarizer/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_polarizer/overlay_front_paused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_polarizer/overlay_front_paused.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_replicator/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_replicator/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_replicator/overlay_front_paused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_replicator/overlay_front_paused.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_solidifier/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_solidifier/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_solidifier/overlay_front_paused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_solidifier/overlay_front_paused.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_wiremill/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_wiremill/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/large_multiblock_casing/stress_proof_casing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/casings/large_multiblock_casing/stress_proof_casing.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/large_multiblock_casing/watertight_casing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/casings/large_multiblock_casing/watertight_casing.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk1/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk1/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk2/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk2/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk3/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk3/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk4/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk4/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/alloy_blast_smelter/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/alloy_blast_smelter/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/electric_implosion/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/electric_implosion/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/electric_implosion/overlay_front_paused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/electric_implosion/overlay_front_paused.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_arc_furnace/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_arc_furnace/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_arc_furnace/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_arc_furnace/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_assembler/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_assembler/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_autoclave/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_autoclave/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_centrifuge/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_centrifuge/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_chemical_bath/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_chemical_bath/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_chemical_bath/overlay_front_paused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_chemical_bath/overlay_front_paused.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_distillery/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_distillery/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_electrolyzer/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_electrolyzer/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_electrolyzer/overlay_front_paused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_electrolyzer/overlay_front_paused.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_extractor/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_extractor/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_macerator/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_macerator/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_polarizer/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_polarizer/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_replicator/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_replicator/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_solidifier/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_solidifier/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/mega_blast_furnace/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/mega_blast_furnace/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/mega_blast_furnace/overlay_front_paused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/mega_blast_furnace/overlay_front_paused.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/mega_vacuum_freezer/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/mega_vacuum_freezer/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/mega_vacuum_freezer/overlay_front_paused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/mega_vacuum_freezer/overlay_front_paused.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/coils/machine_coil_molybdenum_disilicide_ctm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/casings/coils/machine_coil_molybdenum_disilicide_ctm.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/large_multiblock_casing/nonconducting_casing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/casings/large_multiblock_casing/nonconducting_casing.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/large_multiblock_casing/vibration_safe_casing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/casings/large_multiblock_casing/vibration_safe_casing.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/alloy_blast_smelter/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/alloy_blast_smelter/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/electric_implosion/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/electric_implosion/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_bender/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_bender/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_bender/overlay_front_paused_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_bender/overlay_front_paused_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_chemical_bath/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_chemical_bath/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_cutter/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_cutter/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_cutter/overlay_front_paused_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_cutter/overlay_front_paused_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_electrolyzer/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_electrolyzer/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_mass_fabricator/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_mass_fabricator/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_mass_fabricator/overlay_front_paused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_mass_fabricator/overlay_front_paused.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_mixer/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_mixer/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_mixer/overlay_front_paused_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_mixer/overlay_front_paused_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_sifter/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_sifter/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_sifter/overlay_front_paused_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_sifter/overlay_front_paused_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/mega_blast_furnace/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/mega_blast_furnace/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/mega_vacuum_freezer/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/mega_vacuum_freezer/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/steam_engine/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/steam_engine/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/steam_engine/overlay_front_paused_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/steam_engine/overlay_front_paused_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/coils/machine_coil_molybdenum_disilicide_bloom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/casings/coils/machine_coil_molybdenum_disilicide_bloom.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/large_multiblock_casing/corrosion_proof_casing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/casings/large_multiblock_casing/corrosion_proof_casing.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk1/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk1/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk2/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk2/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk3/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk3/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk4/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/hatches/parallel_hatch_mk4/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/chemical_plant/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/chemical_plant/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/chemical_plant/overlay_front_paused_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/chemical_plant/overlay_front_paused_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_assembler/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_assembler/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_assembler/overlay_front_paused_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_assembler/overlay_front_paused_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_autoclave/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_autoclave/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_autoclave/overlay_front_paused_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_autoclave/overlay_front_paused_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_brewery/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_brewery/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_brewery/overlay_front_paused_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_brewery/overlay_front_paused_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_circuit_assembler/overlay_front_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_circuit_assembler/overlay_front_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_circuit_assembler/overlay_front_paused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_circuit_assembler/overlay_front_paused.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_engraver/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_engraver/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_engraver/overlay_front_paused_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_engraver/overlay_front_paused_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_extractor/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_extractor/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_extractor/overlay_front_paused_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_extractor/overlay_front_paused_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_extruder/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_extruder/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_extruder/overlay_front_paused_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_extruder/overlay_front_paused_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_macerator/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_macerator/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_macerator/overlay_front_paused_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_macerator/overlay_front_paused_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_mass_fabricator/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_mass_fabricator/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_packager/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_packager/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_packager/overlay_front_paused_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_packager/overlay_front_paused_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_polarizer/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_polarizer/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_polarizer/overlay_front_paused_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_polarizer/overlay_front_paused_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_wiremill/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_wiremill/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_wiremill/overlay_front_paused_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_wiremill/overlay_front_paused_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/coils/machine_coil_molybdenum_disilicide_bloom_ctm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/casings/coils/machine_coil_molybdenum_disilicide_bloom_ctm.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_arc_furnace/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_arc_furnace/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_centrifuge/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_centrifuge/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_centrifuge/overlay_front_paused_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_centrifuge/overlay_front_paused_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_circuit_assembler/overlay_front_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_circuit_assembler/overlay_front_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_distillery/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_distillery/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_distillery/overlay_front_paused_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_distillery/overlay_front_paused_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_replicator/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_replicator/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_replicator/overlay_front_paused_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_replicator/overlay_front_paused_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_solidifier/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_solidifier/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_solidifier/overlay_front_paused_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_solidifier/overlay_front_paused_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/alloy_blast_smelter/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/alloy_blast_smelter/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/electric_implosion/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/electric_implosion/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/electric_implosion/overlay_front_paused_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/electric_implosion/overlay_front_paused_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_chemical_bath/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_chemical_bath/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_chemical_bath/overlay_front_paused_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_chemical_bath/overlay_front_paused_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_electrolyzer/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_electrolyzer/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_electrolyzer/overlay_front_paused_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_electrolyzer/overlay_front_paused_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/mega_blast_furnace/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/mega_blast_furnace/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/mega_blast_furnace/overlay_front_paused_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/mega_blast_furnace/overlay_front_paused_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/mega_vacuum_freezer/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/mega_vacuum_freezer/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/mega_vacuum_freezer/overlay_front_paused_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/mega_vacuum_freezer/overlay_front_paused_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_mass_fabricator/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_mass_fabricator/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_mass_fabricator/overlay_front_paused_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_mass_fabricator/overlay_front_paused_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_circuit_assembler/overlay_front_active_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_circuit_assembler/overlay_front_active_emissive.png -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/multiblock/large_circuit_assembler/overlay_front_paused_emissive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GregTechCEu/gregicality-multiblocks/HEAD/src/main/resources/assets/gregtech/textures/blocks/multiblock/large_circuit_assembler/overlay_front_paused_emissive.png -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip 4 | networkTimeout=10000 5 | validateDistributionUrl=true 6 | zipStoreBase=GRADLE_USER_HOME 7 | zipStorePath=wrapper/dists 8 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/api/capability/IParallelHatch.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.api.capability; 2 | 3 | public interface IParallelHatch { 4 | 5 | /** 6 | * 7 | * @return the current maximum amount of parallelization provided 8 | */ 9 | int getCurrentParallel(); 10 | } 11 | -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/unique/heat_vent_bloom.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "ctm": { 3 | "ctm_version": 1, 4 | "layer": "BLOOM", 5 | "gregtech": true, 6 | "extra": { 7 | "connect_inside": true, 8 | "light": 10 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/api/java/com/enderio/core/common/interfaces/IOverlayRenderAware.java: -------------------------------------------------------------------------------- 1 | package com.enderio.core.common.interfaces; 2 | 3 | import net.minecraft.item.ItemStack; 4 | 5 | import javax.annotation.Nonnull; 6 | 7 | public interface IOverlayRenderAware { 8 | 9 | public void renderItemOverlayIntoGUI(@Nonnull ItemStack stack, int xPosition, int yPosition); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/api/java/crazypants/enderio/api/tool/IHideFacades.java: -------------------------------------------------------------------------------- 1 | package crazypants.enderio.api.tool; 2 | 3 | import net.minecraft.entity.player.EntityPlayer; 4 | import net.minecraft.item.ItemStack; 5 | 6 | import javax.annotation.Nonnull; 7 | 8 | public interface IHideFacades { 9 | 10 | boolean shouldHideFacades(@Nonnull ItemStack stack, @Nonnull EntityPlayer player); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/api/GCYMValues.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.api; 2 | 3 | public final class GCYMValues { 4 | 5 | public static final String GREGIFICATION_MODID = "gregification"; 6 | public static final String GCYS_MODID = "gcys"; 7 | public static final String GTFO_MODID = "gregtechfoodoption"; 8 | 9 | private GCYMValues() {} 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/api/unification/material/GCYMMaterialIconTypes.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.api.unification.material; 2 | 3 | import gregtech.api.unification.material.info.MaterialIconType; 4 | 5 | public final class GCYMMaterialIconTypes { 6 | 7 | public static final MaterialIconType molten = new MaterialIconType("molten"); 8 | 9 | private GCYMMaterialIconTypes() {} 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/api/utils/GCYMLog.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.api.utils; 2 | 3 | import org.apache.logging.log4j.Logger; 4 | import org.jetbrains.annotations.NotNull; 5 | 6 | public final class GCYMLog { 7 | 8 | public static Logger logger; 9 | 10 | private GCYMLog() {} 11 | 12 | public static void init(@NotNull Logger modLogger) { 13 | logger = modLogger; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/coils/machine_coil_molybdenum_disilicide.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "ctm": { 3 | "ctm_version": 1, 4 | "type": "CTM", 5 | "layer": "SOLID", 6 | "textures": [ 7 | "gregtech:blocks/casings/coils/machine_coil_molybdenum_disilicide_ctm" 8 | ], 9 | "extra": { 10 | "connect_inside": true 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/api/unification/properties/GCYMPropertyKey.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.api.unification.properties; 2 | 3 | import gregtech.api.unification.material.properties.PropertyKey; 4 | 5 | public final class GCYMPropertyKey { 6 | 7 | public static final PropertyKey ALLOY_BLAST = new PropertyKey<>("blast_alloy", 8 | AlloyBlastProperty.class); 9 | 10 | private GCYMPropertyKey() {} 11 | } 12 | -------------------------------------------------------------------------------- /src/main/resources/mcmod.info: -------------------------------------------------------------------------------- 1 | [{ 2 | "modid": "gcym", 3 | "name": "Gregicality Multiblocks", 4 | "description": "Multiblock Machines module of Gregicality.", 5 | "version": "${version}", 6 | "mcversion": "${mcversion}", 7 | "authorList": [ 8 | "TechLord22" 9 | ], 10 | "credits": "GregoriusT for making GregTech and textures, various GT community members and the Gregtech CEu Dev Team for help in development.", 11 | "dependencies": ["codechickenlib", "gregtech"] 12 | }] 13 | -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/casings/coils/machine_coil_molybdenum_disilicide_bloom.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "ctm": { 3 | "ctm_version": 1, 4 | "type": "CTM", 5 | "layer": "BLOOM", 6 | "gregtech": true, 7 | "textures": [ 8 | "gregtech:blocks/casings/coils/machine_coil_molybdenum_disilicide_bloom_ctm" 9 | ], 10 | "extra": { 11 | "connect_inside": true, 12 | "light": 5 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/api/utils/GCYMUtil.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.api.utils; 2 | 3 | import net.minecraft.util.ResourceLocation; 4 | 5 | import org.jetbrains.annotations.NotNull; 6 | 7 | import gregicality.multiblocks.GregicalityMultiblocks; 8 | 9 | public final class GCYMUtil { 10 | 11 | public static @NotNull ResourceLocation gcymId(@NotNull String path) { 12 | return new ResourceLocation(GregicalityMultiblocks.MODID, path); 13 | } 14 | 15 | private GCYMUtil() {} 16 | } 17 | -------------------------------------------------------------------------------- /src/api/java/crazypants/enderio/api/tool/ITool.java: -------------------------------------------------------------------------------- 1 | package crazypants.enderio.api.tool; 2 | 3 | import net.minecraft.entity.player.EntityPlayer; 4 | import net.minecraft.util.EnumHand; 5 | import net.minecraft.util.math.BlockPos; 6 | 7 | import javax.annotation.Nonnull; 8 | 9 | public interface ITool extends IHideFacades { 10 | 11 | boolean canUse(@Nonnull EnumHand stack, @Nonnull EntityPlayer player, @Nonnull BlockPos pos); 12 | 13 | void used(@Nonnull EnumHand stack, @Nonnull EntityPlayer player, @Nonnull BlockPos pos); 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/api/capability/IParallelMultiblock.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.api.capability; 2 | 3 | public interface IParallelMultiblock { 4 | 5 | /** 6 | * 7 | * @return whether the multiblock can use parallel recipes 8 | */ 9 | default boolean isParallel() { 10 | return false; 11 | } 12 | 13 | /** 14 | * 15 | * @return the maximum amount of parallel recipes the multiblock can use 16 | */ 17 | default int getMaxParallel() { 18 | return 1; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /.github/release.yml: -------------------------------------------------------------------------------- 1 | changelog: 2 | 3 | exclude: 4 | labels: 5 | - "ignore changelog" 6 | 7 | # categories: 8 | # - title: New Features 9 | # labels: 10 | # - "type: feature" 11 | # 12 | # - title: Bug Fixes 13 | # labels: 14 | # - "type: bug" 15 | # 16 | # - title: Internal Changes 17 | # labels: 18 | # - "type: refactor" 19 | # 20 | # - title: Translation Changes 21 | # labels: 22 | # - "type: translation" 23 | # 24 | # - title: Other Changes 25 | # labels: 26 | # - "*" 27 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/loaders/recipe/GCYMRecipeLoader.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.loaders.recipe; 2 | 3 | import gregicality.multiblocks.loaders.recipe.handlers.GCYMMaterialRecipeHandler; 4 | 5 | public final class GCYMRecipeLoader { 6 | 7 | private GCYMRecipeLoader() {} 8 | 9 | public static void init() { 10 | GCYMMetaTileEntityLoader.init(); 11 | GCYMCasingLoader.init(); 12 | GCYMMixerRecipes.init(); 13 | GCYMMiscRecipes.init(); 14 | GCYMMaterialRecipeHandler.register(); 15 | ManualABSRecipes.register(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/api/java/cofh/api/item/IToolHammer.java: -------------------------------------------------------------------------------- 1 | package cofh.api.item; 2 | 3 | import net.minecraft.entity.Entity; 4 | import net.minecraft.entity.EntityLivingBase; 5 | import net.minecraft.item.ItemStack; 6 | import net.minecraft.util.math.BlockPos; 7 | 8 | public interface IToolHammer { 9 | 10 | boolean isUsable(ItemStack item, EntityLivingBase user, BlockPos pos); 11 | 12 | boolean isUsable(ItemStack item, EntityLivingBase user, Entity entity); 13 | 14 | void toolUsed(ItemStack item, EntityLivingBase user, BlockPos pos); 15 | 16 | void toolUsed(ItemStack item, EntityLivingBase user, Entity entity); 17 | } 18 | -------------------------------------------------------------------------------- /.github/workflows/test_java.yml: -------------------------------------------------------------------------------- 1 | # Runs tests 2 | name: Java Tests 3 | 4 | on: 5 | push: 6 | branches: 7 | - master 8 | pull_request: 9 | 10 | concurrency: 11 | group: tests-${{ github.head_ref || github.ref }} 12 | cancel-in-progress: true 13 | 14 | jobs: 15 | test: 16 | name: Tests 17 | runs-on: ubuntu-latest 18 | 19 | steps: 20 | - name: Checkout Repository 21 | uses: actions/checkout@v4 22 | 23 | - name: Setup Build 24 | uses: ./.github/actions/build_setup 25 | 26 | - name: Run Tests with Gradle 27 | run: ./gradlew test --warning-mode all --build-cache 28 | -------------------------------------------------------------------------------- /.github/workflows/validate_gradle_wrapper.yml: -------------------------------------------------------------------------------- 1 | # Validates the integrity of the Gradle Wrapper 2 | name: Validate Gradle Wrapper 3 | 4 | on: 5 | push: 6 | branches: 7 | - master 8 | paths: 9 | - 'gradle/**' 10 | pull_request: 11 | paths: 12 | - 'gradle/**' 13 | 14 | concurrency: 15 | group: gradle-wrapper-validation-${{ github.head_ref || github.ref }} 16 | cancel-in-progress: true 17 | 18 | jobs: 19 | Validation: 20 | runs-on: ubuntu-latest 21 | 22 | steps: 23 | - name: Checkout Repository 24 | uses: actions/checkout@v4 25 | 26 | - name: Validate Gradle Wrapper 27 | uses: gradle/actions/wrapper-validation@v3 28 | -------------------------------------------------------------------------------- /.github/workflows/format_java.yml: -------------------------------------------------------------------------------- 1 | # Runs formatting requirements 2 | name: Java Formatting 3 | 4 | on: 5 | push: 6 | branches: 7 | - master 8 | pull_request: 9 | 10 | concurrency: 11 | group: formatting-${{ github.head_ref || github.ref }} 12 | cancel-in-progress: true 13 | 14 | jobs: 15 | formatting: 16 | name: Formatting 17 | runs-on: ubuntu-latest 18 | 19 | steps: 20 | - name: Checkout Repository 21 | uses: actions/checkout@v4 22 | 23 | - name: Setup Build 24 | uses: ./.github/actions/build_setup 25 | 26 | - name: Run Spotless Formatting Check with Gradle 27 | run: ./gradlew spotlessCheck --warning-mode all --build-cache 28 | -------------------------------------------------------------------------------- /src/main/resources/assets/gregtech/textures/blocks/material_sets/dull/molten.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "frametime": 2, 4 | "frames": [ 5 | 0, 6 | 1, 7 | 2, 8 | 3, 9 | 4, 10 | 5, 11 | 6, 12 | 7, 13 | 8, 14 | 9, 15 | 10, 16 | 11, 17 | 12, 18 | 13, 19 | 14, 20 | 15, 21 | 16, 22 | 17, 23 | 18, 24 | 19, 25 | 18, 26 | 17, 27 | 16, 28 | 15, 29 | 14, 30 | 13, 31 | 12, 32 | 11, 33 | 10, 34 | 9, 35 | 8, 36 | 7, 37 | 6, 38 | 5, 39 | 4, 40 | 3, 41 | 2, 42 | 1 43 | ] 44 | } 45 | } -------------------------------------------------------------------------------- /src/api/java/crazypants/enderio/api/tool/IConduitControl.java: -------------------------------------------------------------------------------- 1 | package crazypants.enderio.api.tool; 2 | 3 | import net.minecraft.entity.player.EntityPlayer; 4 | import net.minecraft.item.ItemStack; 5 | 6 | import javax.annotation.Nonnull; 7 | 8 | public interface IConduitControl { 9 | 10 | /** 11 | * Controls whether the overlay is shown and the player can change the display mode. 12 | * 13 | * @param stack The itemstack 14 | * @param player The player holding the itemstack 15 | * @return True if the overlay should be rendered and the player should be able to change modes. False otherwise. 16 | */ 17 | boolean showOverlay(@Nonnull ItemStack stack, @Nonnull EntityPlayer player); 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/api/metatileentity/GCYMMultiblockAbility.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.api.metatileentity; 2 | 3 | import gregtech.api.metatileentity.ITieredMetaTileEntity; 4 | import gregtech.api.metatileentity.multiblock.MultiblockAbility; 5 | 6 | import gregicality.multiblocks.api.capability.IParallelHatch; 7 | 8 | @SuppressWarnings("InstantiationOfUtilityClass") 9 | public final class GCYMMultiblockAbility { 10 | 11 | public static final MultiblockAbility PARALLEL_HATCH = new MultiblockAbility<>("parallel_hatch"); 12 | 13 | public static final MultiblockAbility TIERED_HATCH = new MultiblockAbility<>("tiered_hatch"); 14 | 15 | private GCYMMultiblockAbility() {} 16 | } 17 | -------------------------------------------------------------------------------- /.github/actions/build_setup/action.yml: -------------------------------------------------------------------------------- 1 | name: Build Setup 2 | description: Setup for standard Java builds 3 | 4 | inputs: 5 | update-cache: 6 | description: If cache should be updated 7 | required: false 8 | default: false 9 | 10 | runs: 11 | using: 'composite' 12 | 13 | steps: 14 | - name: Set up JDK 17 15 | uses: actions/setup-java@v4 16 | with: 17 | distribution: zulu 18 | java-version: 17 19 | 20 | - name: Setup Gradle 21 | uses: gradle/actions/setup-gradle@v3 22 | with: 23 | cache-write-only: ${{ inputs.update-cache }} 24 | generate-job-summary: false 25 | gradle-home-cache-includes: | 26 | caches 27 | caches/retro_futura_gradle 28 | notifications 29 | jdks 30 | wrapper 31 | -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | # All other changes require the primary team 2 | * @GregTechCEu/gregtech-1-12-devs 3 | 4 | # Specific files requiring admin approval 5 | CHANGELOG.md @GregTechCEu/admin 6 | CHANGELOG-GTCEU.md @GregTechCEu/admin 7 | CODEOWNERS @GregTechCEu/admin 8 | CODESTYLE.md @GregTechCEu/admin 9 | LICENSE @GregTechCEu/admin 10 | README.md @GregTechCEu/admin 11 | permission*.png @GregTechCEu/admin 12 | 13 | # Gradle changes require specific reviewers 14 | **gradle** @GregTechCEu/gregtech-build-team 15 | /.github/** @GregTechCEu/gregtech-build-team 16 | .editorconfig @GregTechCEu/gregtech-build-team 17 | spotless.eclipseformat.xml @GregTechCEu/gregtech-build-team 18 | spotless.importorder @GregTechCEu/gregtech-build-team 19 | .gitignore @GregTechCEu/gregtech-build-team 20 | /libs/** @GregTechCEu/gregtech-build-team 21 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/common/GCYMConfigHolder.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.common; 2 | 3 | import net.minecraftforge.common.config.Config; 4 | 5 | import gregicality.multiblocks.GregicalityMultiblocks; 6 | 7 | @Config(modid = GregicalityMultiblocks.MODID) 8 | public class GCYMConfigHolder { 9 | 10 | @Config.Comment("Config options applying to all GCYM Multiblocks") 11 | @Config.Name("Global Multiblock Options") 12 | public static GlobalMultiblocks globalMultiblocks = new GlobalMultiblocks(); 13 | 14 | public static class GlobalMultiblocks { 15 | 16 | @Config.Comment({ "Makes nearly every GCYM Multiblock require blocks which set their maximum voltages.", 17 | "Default: false" }) 18 | public boolean enableTieredCasings = false; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /.github/workflows/update_gradle_cache.yml: -------------------------------------------------------------------------------- 1 | # Updates the Gradle Cache when necessary 2 | name: Update Gradle Cache 3 | 4 | on: 5 | push: 6 | branches: 7 | - master 8 | paths: ['gradle/**', '**.gradle', 'gradle.properties', 'gradlew**', 'src/main/resources/*_at.cfg'] 9 | workflow_dispatch: 10 | 11 | concurrency: 12 | group: gradle-cache-${{ github.ref }} 13 | cancel-in-progress: true 14 | 15 | jobs: 16 | update-cache: 17 | name: Update Grade Cache 18 | runs-on: ubuntu-latest 19 | 20 | steps: 21 | - name: Checkout Repository 22 | uses: actions/checkout@v4 23 | 24 | - name: Setup Build 25 | uses: ./.github/actions/build_setup 26 | with: 27 | update-cache: true 28 | 29 | - name: Build Project with Gradle 30 | run: ./gradlew assemble --warning-mode all --build-cache 31 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/common/ClientProxy.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.common; 2 | 3 | import net.minecraftforge.client.event.ModelRegistryEvent; 4 | import net.minecraftforge.fml.common.Mod; 5 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 6 | import net.minecraftforge.fml.relauncher.Side; 7 | 8 | import gregicality.multiblocks.api.render.GCYMTextures; 9 | import gregicality.multiblocks.common.block.GCYMMetaBlocks; 10 | 11 | @Mod.EventBusSubscriber(Side.CLIENT) 12 | public class ClientProxy extends CommonProxy { 13 | 14 | @Override 15 | public void preLoad() { 16 | super.preLoad(); 17 | GCYMTextures.preInit(); 18 | } 19 | 20 | @SubscribeEvent 21 | public static void registerModels(ModelRegistryEvent event) { 22 | GCYMMetaBlocks.registerItemModels(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/api/fluids/GCYMFluidStorageKeys.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.api.fluids; 2 | 3 | import static gregicality.multiblocks.api.utils.GCYMUtil.gcymId; 4 | 5 | import gregtech.api.fluids.store.FluidStorageKey; 6 | 7 | import gregicality.multiblocks.api.unification.material.GCYMMaterialIconTypes; 8 | import gregicality.multiblocks.api.unification.properties.GCYMPropertyKey; 9 | 10 | public final class GCYMFluidStorageKeys { 11 | 12 | public static final FluidStorageKey MOLTEN = new FluidStorageKey(gcymId("molten"), 13 | GCYMMaterialIconTypes.molten, 14 | m -> "molten." + m.getName(), 15 | m -> { 16 | if (m.hasProperty(GCYMPropertyKey.ALLOY_BLAST)) { 17 | return "gcym.fluid.molten"; 18 | } 19 | return "gregtech.fluid.generic"; 20 | }); 21 | 22 | private GCYMFluidStorageKeys() {} 23 | } 24 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | repositories { 3 | maven { 4 | // RetroFuturaGradle 5 | name 'GTNH Maven' 6 | url 'https://nexus.gtnewhorizons.com/repository/public/' 7 | //noinspection GroovyAssignabilityCheck 8 | mavenContent { 9 | includeGroup 'com.gtnewhorizons' 10 | includeGroup 'com.gtnewhorizons.retrofuturagradle' 11 | } 12 | } 13 | gradlePluginPortal() 14 | mavenCentral() 15 | mavenLocal() 16 | } 17 | } 18 | 19 | plugins { 20 | id 'com.diffplug.blowdryerSetup' version '1.7.0' 21 | // Automatic toolchain provisioning 22 | id 'org.gradle.toolchains.foojay-resolver-convention' version '0.7.0' 23 | } 24 | 25 | blowdryerSetup { 26 | repoSubfolder 'spotless' 27 | github 'GregTechCEu/Buildscripts', 'tag', 'v1.0.7' 28 | } 29 | 30 | rootProject.name = rootProject.projectDir.getName() 31 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/api/unification/GCYMMaterialFlags.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.api.unification; 2 | 3 | import gregtech.api.unification.material.info.MaterialFlag; 4 | import gregtech.api.unification.material.properties.PropertyKey; 5 | 6 | public final class GCYMMaterialFlags { 7 | 8 | /** 9 | * Use to disable alloy blast recipes from generating 10 | */ 11 | public static final MaterialFlag NO_ALLOY_BLAST_RECIPES = new MaterialFlag.Builder("no_alloy_blast_recipes") 12 | .requireProps(PropertyKey.BLAST, PropertyKey.FLUID) 13 | .build(); 14 | 15 | /** 16 | * Use to disable everything related to alloy blasting 17 | */ 18 | public static final MaterialFlag DISABLE_ALLOY_PROPERTY = new MaterialFlag.Builder("disable_alloy_property") 19 | .requireProps(PropertyKey.BLAST, PropertyKey.FLUID) 20 | .requireFlags(NO_ALLOY_BLAST_RECIPES) 21 | .build(); 22 | 23 | private GCYMMaterialFlags() {} 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/loaders/recipe/GCYMMiscRecipes.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.loaders.recipe; 2 | 3 | import static gregtech.api.unification.material.Materials.Graphene; 4 | import static gregtech.api.unification.ore.OrePrefix.dust; 5 | import static gregtech.api.unification.ore.OrePrefix.foil; 6 | 7 | import gregtech.api.recipes.RecipeMaps; 8 | import gregtech.common.items.MetaItems; 9 | 10 | public final class GCYMMiscRecipes { 11 | 12 | private GCYMMiscRecipes() {} 13 | 14 | public static void init() { 15 | grapheneRecipes(); 16 | } 17 | 18 | /** 19 | * Recipes for graphene that don't get autogenerated 20 | */ 21 | private static void grapheneRecipes() { 22 | // Foil Extruding 23 | RecipeMaps.EXTRUDER_RECIPES.recipeBuilder() 24 | .input(dust, Graphene) 25 | .notConsumable(MetaItems.SHAPE_EXTRUDER_FOIL) 26 | .output(foil, Graphene, 4) 27 | .duration((int) Graphene.getMass()) 28 | .EUt(24) 29 | .buildAndRegister(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/api/java/forestry/api/arboriculture/IToolGrafter.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2011-2014 SirSengir 3 | * 4 | * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. 5 | ******************************************************************************/ 6 | package forestry.api.arboriculture; 7 | 8 | import net.minecraft.entity.player.EntityPlayer; 9 | import net.minecraft.item.ItemStack; 10 | import net.minecraft.util.math.BlockPos; 11 | import net.minecraft.world.World; 12 | 13 | public interface IToolGrafter { 14 | /** 15 | * Called by leaves to determine the increase in sapling droprate. 16 | * 17 | * @param stack ItemStack containing the grafter. 18 | * @param world Minecraft world the player and the target block inhabit. 19 | * @param pos Coordinate of the broken leaf block. 20 | * @return Float representing the factor the usual drop chance is to be multiplied by. 21 | */ 22 | float getSaplingModifier(ItemStack stack, World world, EntityPlayer player, BlockPos pos); 23 | } 24 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 GregTechCEu 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/api/recipes/GCYMRecipeMaps.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.api.recipes; 2 | 3 | import gregtech.api.gui.GuiTextures; 4 | import gregtech.api.recipes.RecipeMap; 5 | import gregtech.api.recipes.builders.BlastRecipeBuilder; 6 | import gregtech.core.sound.GTSoundEvents; 7 | 8 | public final class GCYMRecipeMaps { 9 | 10 | public static final RecipeMap ALLOY_BLAST_RECIPES = new RecipeMap<>("alloy_blast_smelter", 9, 0, 11 | 3, 1, new BlastRecipeBuilder(), false) 12 | .setSlotOverlay(false, false, false, GuiTextures.FURNACE_OVERLAY_1) 13 | .setSlotOverlay(false, false, true, GuiTextures.FURNACE_OVERLAY_1) 14 | .setSlotOverlay(false, true, false, GuiTextures.FURNACE_OVERLAY_2) 15 | .setSlotOverlay(false, true, true, GuiTextures.FURNACE_OVERLAY_2) 16 | .setSlotOverlay(true, true, false, GuiTextures.FURNACE_OVERLAY_2) 17 | .setSlotOverlay(true, true, true, GuiTextures.FURNACE_OVERLAY_2) 18 | .setSound(GTSoundEvents.FURNACE); 19 | 20 | private GCYMRecipeMaps() {} 21 | } 22 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .nopublish 2 | 3 | ### Windows ### 4 | 5 | thumbs.db 6 | *.db 7 | 8 | ### Java ### 9 | 10 | *.class 11 | 12 | # Mobile Tools for Java (J2ME) 13 | .mtj.tmp/ 14 | 15 | # Package Files # 16 | *.war 17 | *.ear 18 | *.txt 19 | 20 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 21 | hs_err_pid* 22 | 23 | ### Eclipse ### 24 | 25 | *.pydevproject 26 | .metadata 27 | .gradle 28 | bin/ 29 | tmp/ 30 | *.tmp 31 | *.bak 32 | *.swp 33 | *~.nib 34 | local.properties 35 | .settings/ 36 | .loadpath 37 | /eclipse 38 | 39 | # Eclipse Core 40 | .project 41 | 42 | # External tool builders 43 | .externalToolBuilders/ 44 | 45 | # Locally stored "Eclipse launch configurations" 46 | *.launch 47 | 48 | # CDT-specific 49 | .cproject 50 | 51 | # JDT-specific (Eclipse Java Development Tools) 52 | .classpath 53 | 54 | # Java annotation processor (APT) 55 | .factorypath 56 | 57 | # PDT-specific 58 | .buildpath 59 | 60 | # sbteclipse plugin 61 | .target 62 | 63 | # TeXlipse plugin 64 | .texlipse 65 | 66 | ### Intellij IDEA ### 67 | 68 | *.iml 69 | *.ipr 70 | *.iws 71 | 72 | .idea/ 73 | .idea_modules/ 74 | /classes/ 75 | /out/ 76 | /build/ 77 | 78 | # Linux 79 | *~ 80 | 81 | run/ 82 | 83 | logs/ 84 | -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | ## What 2 | _This section describes what this PR is about. It should be a clear and concise description concerning what this PR is for, why this PR is needed, and why it should be accepted._ 3 | _Linking an issue can be used alternatively to writing a description._ 4 | 5 | ## Implementation Details 6 | _Any implementations in this PR that should be carefully looked over, or that could/should have alternate solutions proposed._ 7 | 8 | ## Outcome 9 | _A short description of what this PR added/fixed/changed/removed._ 10 | _For correct linking of issues please use any of the Closes/Fixes/Resolves keywords. Example: When a PR is fixing a bug use "Fixes: #number-of-bug"_ 11 | 12 | ## Additional Information 13 | _This section is for screenshots to demonstrate any GUI or rendering changes, or any other additional information that reviewers should be aware of._ 14 | 15 | ## Potential Compatibility Issues 16 | _This section is for defining possible compatibility issues. It must be used when there are API changes, item/block/material/machine changes, or recipe changes._ 17 | 18 | **Please fill in as much useful information as possible. Also, please remove all unused sections, including this and the other explanations.** 19 | -------------------------------------------------------------------------------- /.github/workflows/manage_pr_labels.yml: -------------------------------------------------------------------------------- 1 | # Manages labels on PRs before allowing merging 2 | name: Pull Request Labels 3 | 4 | on: 5 | pull_request: 6 | types: 7 | - opened 8 | - labeled 9 | - unlabeled 10 | - synchronize 11 | 12 | # if a second commit is pushed quickly after the first, cancel the first one's build 13 | concurrency: 14 | group: pr-labels-${{ github.head_ref }} 15 | cancel-in-progress: true 16 | 17 | jobs: 18 | Labels: 19 | runs-on: ubuntu-latest 20 | 21 | permissions: 22 | pull-requests: read # needed to utilize required-labels 23 | 24 | steps: 25 | - name: Check for Merge-Blocking Labels # blocks merge if present 26 | uses: mheap/github-action-required-labels@v5 27 | with: 28 | mode: exactly 29 | count: 0 30 | labels: 'status: do not merge' 31 | exit_type: failure 32 | 33 | - name: Check for Required Labels # require at least one of these labels 34 | uses: mheap/github-action-required-labels@v5 35 | with: 36 | mode: minimum 37 | count: 1 38 | labels: 'type: feature, type: bug, type: refactor, type: translation, ignore changelog' 39 | exit_type: failure 40 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Gregicality Multiblocks 2 | 3 | **Gregicality Multiblocks** adds many new multiblock machines to **GregTech Community Edition Unofficial** and is one module of Gregicality for GTCEu. 4 | 5 | 6 | Every singleblock machine in GTCEu now has a **multiblock** variant capable of running up to **256** recipes simultaneously! 7 | 8 | 9 | With this mod, playing without high tier machines in GregTech is now made possible, and allows the player to achieve _significant material processing power_ in existing and new playthroughs of GTCEu. 10 | 11 | 12 | Additionally, this mod currently adds one multiblock power generator, with more to come in the future! The **Steam Engine** is an _inexpensive_ way to produce up to MV-Tier power. Perfect for powering your first Electric Blast Furnace! 13 | 14 | 15 | 16 | This mod has a major config option determining how the mod plays. When the config is **on**, the mod aggressively gates higher voltages of the new multiblock machines, requiring a **Voltage Control Unit** of the appropriate tier. With this config **off (default)**, you can expect regular behavior with your energy hatches. 17 | 18 | 19 | Join our Discord [**here!**](https://discord.gg/bWSWuYvURP) 20 | 21 | Gregicality Multiblocks requires requires [**GregTech CE: Unofficial**](https://github.com/GregTechCEu/GregTech) and [**CodeChickenLib**](https://www.curseforge.com/minecraft/mc-mods/codechicken-lib-1-8). 22 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/api/unification/GCYMMaterials.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.api.unification; 2 | 3 | import gregtech.api.unification.material.Material; 4 | 5 | public final class GCYMMaterials { 6 | 7 | /* 8 | * First Degree Materials 3000-3019 9 | */ 10 | public static Material Stellite100; 11 | public static Material WatertightSteel; 12 | public static Material MaragingSteel300; 13 | public static Material HastelloyC276; 14 | public static Material HastelloyX; 15 | public static Material Trinaquadalloy; 16 | public static Material Zeron100; 17 | public static Material TitaniumCarbide; 18 | public static Material TantalumCarbide; 19 | public static Material MolybdenumDisilicide; 20 | 21 | /* 22 | * Second Degree Materials 3020-3039 23 | */ 24 | public static Material HSLASteel; 25 | public static Material TitaniumTungstenCarbide; 26 | public static Material IncoloyMA956; 27 | 28 | private GCYMMaterials() {} 29 | 30 | /* 31 | * High Degree Materials 3040-3059 32 | */ 33 | 34 | /* 35 | * Gregicality: 3000-19999 36 | */ 37 | public static void init() { 38 | // First Degree 3000-3019 39 | GCYMFirstDegreeMaterials.init(); 40 | 41 | // Second Degree 3020-3039 42 | GCYMSecondDegreeMaterials.init(); 43 | 44 | // Flags 45 | GCYMMaterialFlagAddition.init(); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/common/GCYMEventHandlers.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.common; 2 | 3 | import net.minecraftforge.fml.common.Mod; 4 | import net.minecraftforge.fml.common.eventhandler.EventPriority; 5 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 6 | 7 | import org.jetbrains.annotations.ApiStatus; 8 | 9 | import gregtech.api.unification.material.event.MaterialEvent; 10 | import gregtech.api.unification.material.event.PostMaterialEvent; 11 | 12 | import gregicality.multiblocks.GregicalityMultiblocks; 13 | import gregicality.multiblocks.api.fluids.GeneratedFluidHandler; 14 | import gregicality.multiblocks.api.unification.GCYMMaterialFlagAddition; 15 | import gregicality.multiblocks.api.unification.GCYMMaterials; 16 | import gregicality.multiblocks.api.unification.properties.AlloyBlastPropertyAddition; 17 | 18 | @ApiStatus.Internal 19 | @Mod.EventBusSubscriber(modid = GregicalityMultiblocks.MODID) 20 | public final class GCYMEventHandlers { 21 | 22 | private GCYMEventHandlers() {} 23 | 24 | @SubscribeEvent(priority = EventPriority.HIGH) 25 | public static void registerMaterials(MaterialEvent event) { 26 | GCYMMaterials.init(); 27 | } 28 | 29 | @SubscribeEvent 30 | public static void registerMaterialsPost(PostMaterialEvent event) { 31 | AlloyBlastPropertyAddition.init(); 32 | GCYMMaterialFlagAddition.initLate(); 33 | GeneratedFluidHandler.init(); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/loaders/recipe/handlers/GCYMMaterialRecipeHandler.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.loaders.recipe.handlers; 2 | 3 | import org.jetbrains.annotations.NotNull; 4 | import org.jetbrains.annotations.Nullable; 5 | 6 | import gregtech.api.unification.material.Material; 7 | import gregtech.api.unification.material.properties.PropertyKey; 8 | import gregtech.api.unification.ore.OrePrefix; 9 | 10 | import gregicality.multiblocks.api.unification.properties.AlloyBlastProperty; 11 | import gregicality.multiblocks.api.unification.properties.GCYMPropertyKey; 12 | 13 | public final class GCYMMaterialRecipeHandler { 14 | 15 | private GCYMMaterialRecipeHandler() {} 16 | 17 | public static void register() { 18 | OrePrefix.ingot.addProcessingHandler(GCYMPropertyKey.ALLOY_BLAST, 19 | GCYMMaterialRecipeHandler::generateAlloyBlastRecipes); 20 | } 21 | 22 | /** 23 | * Generates alloy blast recipes for a material 24 | * 25 | * @param material the material to generate for 26 | * @param property the blast property of the material 27 | */ 28 | public static void generateAlloyBlastRecipes(@Nullable OrePrefix unused, @NotNull Material material, 29 | @NotNull AlloyBlastProperty property) { 30 | if (material.hasProperty(PropertyKey.BLAST)) { 31 | property.getRecipeProducer().produce(material, material.getProperty(PropertyKey.BLAST)); 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/GregicalityMultiblocks.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks; 2 | 3 | import net.minecraftforge.fml.common.Mod; 4 | import net.minecraftforge.fml.common.SidedProxy; 5 | import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; 6 | 7 | import org.jetbrains.annotations.NotNull; 8 | 9 | import gregtech.GTInternalTags; 10 | 11 | import gregicality.GCYMInternalTags; 12 | import gregicality.multiblocks.api.utils.GCYMLog; 13 | import gregicality.multiblocks.common.CommonProxy; 14 | import gregicality.multiblocks.common.block.GCYMMetaBlocks; 15 | import gregicality.multiblocks.common.metatileentities.GCYMMetaTileEntities; 16 | 17 | @Mod(modid = GregicalityMultiblocks.MODID, 18 | name = GregicalityMultiblocks.NAME, 19 | version = GregicalityMultiblocks.VERSION, 20 | dependencies = GTInternalTags.DEP_VERSION_STRING) 21 | public class GregicalityMultiblocks { 22 | 23 | public static final String MODID = "gcym"; 24 | public static final String NAME = "Gregicality Multiblocks"; 25 | public static final String VERSION = GCYMInternalTags.VERSION; 26 | 27 | @SidedProxy(modId = MODID, 28 | clientSide = "gregicality.multiblocks.common.ClientProxy", 29 | serverSide = "gregicality.multiblocks.common.CommonProxy") 30 | public static CommonProxy proxy; 31 | 32 | @Mod.EventHandler 33 | public void onPreInit(@NotNull FMLPreInitializationEvent event) { 34 | GCYMLog.init(event.getModLog()); 35 | 36 | GCYMMetaBlocks.init(); 37 | GCYMMetaTileEntities.init(); 38 | 39 | proxy.preLoad(); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/api/java/buildcraft/api/tools/IToolWrench.java: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com 2 | * 3 | * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which 4 | * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ 5 | package buildcraft.api.tools; 6 | 7 | import net.minecraft.entity.player.EntityPlayer; 8 | import net.minecraft.item.ItemStack; 9 | import net.minecraft.util.EnumHand; 10 | import net.minecraft.util.math.RayTraceResult; 11 | 12 | /*** Implement this interface on subclasses of Item to have that item work as a wrench for buildcraft */ 13 | public interface IToolWrench { 14 | 15 | /*** Called to ensure that the wrench can be used. 16 | * 17 | * @param player - The player doing the wrenching 18 | * @param hand - Which hand was holding the wrench 19 | * @param wrench - The item stack that holds the wrench 20 | * @param rayTrace - The object that is being wrenched 21 | * 22 | * @return true if wrenching is allowed, false if not */ 23 | boolean canWrench(EntityPlayer player, EnumHand hand, ItemStack wrench, RayTraceResult rayTrace); 24 | 25 | /*** Callback after the wrench has been used. This can be used to decrease durability or for other purposes. 26 | * 27 | * @param player - The player doing the wrenching 28 | * @param hand - Which hand was holding the wrench 29 | * @param wrench - The item stack that holds the wrench 30 | * @param rayTrace - The object that is being wrenched */ 31 | void wrenchUsed(EntityPlayer player, EnumHand hand, ItemStack wrench, RayTraceResult rayTrace); 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/loaders/recipe/GCYMMixerRecipes.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.loaders.recipe; 2 | 3 | import static gregicality.multiblocks.api.unification.GCYMMaterials.*; 4 | import static gregtech.api.GTValues.*; 5 | import static gregtech.api.unification.material.Materials.*; 6 | import static gregtech.api.unification.ore.OrePrefix.dust; 7 | 8 | import gregtech.api.recipes.RecipeMaps; 9 | import gregtech.api.recipes.ingredients.IntCircuitIngredient; 10 | 11 | public final class GCYMMixerRecipes { 12 | 13 | private GCYMMixerRecipes() {} 14 | 15 | public static void init() { 16 | RecipeMaps.MIXER_RECIPES.recipeBuilder() 17 | .input(dust, Titanium) 18 | .input(dust, Carbon) 19 | .notConsumable(new IntCircuitIngredient(1)) 20 | .output(dust, TitaniumCarbide, 2) 21 | .duration(160).EUt(VA[EV]).buildAndRegister(); 22 | 23 | RecipeMaps.MIXER_RECIPES.recipeBuilder() 24 | .input(dust, Tantalum) 25 | .input(dust, Carbon) 26 | .notConsumable(new IntCircuitIngredient(1)) 27 | .output(dust, TantalumCarbide, 2) 28 | .duration(150).EUt(VA[EV]).buildAndRegister(); 29 | 30 | RecipeMaps.MIXER_RECIPES.recipeBuilder() 31 | .input(dust, Molybdenum) 32 | .input(dust, Silicon, 2) 33 | .notConsumable(new IntCircuitIngredient(1)) 34 | .output(dust, MolybdenumDisilicide, 3) 35 | .duration(180).EUt(VA[EV]).buildAndRegister(); 36 | 37 | RecipeMaps.MIXER_RECIPES.recipeBuilder() 38 | .input(dust, Invar, 2) 39 | .input(dust, Vanadium, 1) 40 | .input(dust, Titanium, 1) 41 | .input(dust, Molybdenum, 1) 42 | .notConsumable(new IntCircuitIngredient(1)) 43 | .output(dust, HSLASteel, 5) 44 | .duration(140).EUt(VA[HV]).buildAndRegister(); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/api/recipes/alloyblast/CustomAlloyBlastRecipeProducer.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.api.recipes.alloyblast; 2 | 3 | import org.jetbrains.annotations.NotNull; 4 | 5 | import com.google.common.base.Preconditions; 6 | 7 | import gregtech.api.recipes.RecipeBuilder; 8 | import gregtech.api.recipes.builders.BlastRecipeBuilder; 9 | import gregtech.api.unification.material.Material; 10 | 11 | public class CustomAlloyBlastRecipeProducer extends AlloyBlastRecipeProducer { 12 | 13 | private final int circuitNum; 14 | private final int gasCircuitNum; 15 | private final int outputAmount; 16 | 17 | /** 18 | * @param circuitNum the custom circuit number to use 19 | * @param gasCircuitNum the custom gas circuit number to use 20 | * @param outputAmount the custom output amount in quantities of 21 | * {@link gregtech.api.unification.ore.OrePrefix#ingot} 22 | * / {@link gregtech.api.GTValues#M}) to use 23 | */ 24 | public CustomAlloyBlastRecipeProducer(int circuitNum, int gasCircuitNum, int outputAmount) { 25 | this.circuitNum = circuitNum; 26 | this.gasCircuitNum = gasCircuitNum; 27 | Preconditions.checkArgument(outputAmount != 0, "output amount cannot be zero"); 28 | this.outputAmount = outputAmount; 29 | } 30 | 31 | @Override 32 | protected int addInputs(@NotNull Material material, @NotNull RecipeBuilder builder) { 33 | int amount = super.addInputs(material, builder); // always must be called 34 | return this.outputAmount < 0 ? amount : this.outputAmount; 35 | } 36 | 37 | @Override 38 | protected int getCircuitNum(int componentAmount) { 39 | return this.circuitNum < 0 ? super.getCircuitNum(componentAmount) : this.circuitNum; 40 | } 41 | 42 | @Override 43 | protected int getGasCircuitNum(int componentAmount) { 44 | return this.gasCircuitNum < 0 ? super.getGasCircuitNum(componentAmount) : this.gasCircuitNum; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /.github/workflows/update_buildscript.yml: -------------------------------------------------------------------------------- 1 | # Checks daily to see if the buildscript is in need of an update 2 | name: Update Buildscript 3 | 4 | on: 5 | workflow_dispatch: 6 | schedule: 7 | - cron: '0 0 * * *' # "min hr day month year", so run once per day 8 | 9 | jobs: 10 | buildscript-update: 11 | runs-on: ubuntu-latest 12 | 13 | # Avoid running this workflow on forks 14 | if: github.repository == 'GregTechCEu/gregicality-multiblocks' 15 | 16 | permissions: 17 | contents: write 18 | pull-requests: write 19 | 20 | steps: 21 | - name: Checkout Repository 22 | uses: actions/checkout@v4 23 | 24 | - name: Setup Build 25 | uses: ./.github/actions/build_setup 26 | 27 | - name: Run Buildscript Updater 28 | run: ./gradlew updateBuildScript --warning-mode all --build-cache 29 | 30 | - name: Get New Buildscript Version 31 | id: version-check 32 | run: | 33 | new_version=$(head -1 build.gradle | sed -r 's|//version: (.*)|\1|g') 34 | echo "NEW_VERSION=$new_version" >> "$GITHUB_OUTPUT" 35 | 36 | - name: Create Pull Request 37 | id: create-pull-request 38 | uses: peter-evans/create-pull-request@v6 39 | env: 40 | GITHUB_TOKEN: ${{ secrets.BUILDSCRIPT_UPDATER_TOKEN }} 41 | with: 42 | token: ${{ secrets.BUILDSCRIPT_UPDATER_TOKEN }} 43 | commit-message: 'update build script version to ${{ steps.version-check.outputs.NEW_VERSION }}' 44 | branch: gha-update-buildscript 45 | title: Update build script version to ${{ steps.version-check.outputs.NEW_VERSION }} 46 | body: This pull request is created by the buildscript-update workflow 47 | labels: ignore changelog 48 | 49 | - name: Enable Pull-Request Auto-Merge 50 | if: steps.create-pull-request.outputs.pull-request-operation == 'created' 51 | run: gh pr merge --squash --auto "${{ steps.create-pull-request.outputs.pull-request-number }}" 52 | env: 53 | GH_TOKEN: ${{ secrets.BUILDSCRIPT_UPDATER_TOKEN }} 54 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/api/unification/GCYMMaterialFlagAddition.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.api.unification; 2 | 3 | import org.jetbrains.annotations.ApiStatus; 4 | 5 | import gregtech.api.unification.material.Materials; 6 | import gregtech.api.unification.material.info.MaterialFlags; 7 | 8 | import gregicality.multiblocks.api.recipes.alloyblast.CustomAlloyBlastRecipeProducer; 9 | import gregicality.multiblocks.api.unification.properties.AlloyBlastProperty; 10 | import gregicality.multiblocks.api.unification.properties.GCYMPropertyKey; 11 | 12 | @ApiStatus.Internal 13 | public final class GCYMMaterialFlagAddition { 14 | 15 | private GCYMMaterialFlagAddition() {} 16 | 17 | public static void init() { 18 | // Frames 19 | Materials.TungstenCarbide.addFlags(MaterialFlags.GENERATE_FRAME); 20 | Materials.Tungsten.addFlags(MaterialFlags.GENERATE_FRAME); 21 | Materials.Brass.addFlags(MaterialFlags.GENERATE_FRAME); 22 | 23 | // Small Gears 24 | Materials.TungstenCarbide.addFlags(MaterialFlags.GENERATE_SMALL_GEAR); 25 | 26 | // Long Rods 27 | Materials.Neutronium.addFlags(MaterialFlags.GENERATE_LONG_ROD); 28 | 29 | // Rotors 30 | Materials.Iridium.addFlags(MaterialFlags.GENERATE_RING, MaterialFlags.GENERATE_ROTOR); 31 | 32 | // Springs 33 | Materials.Neutronium.addFlags(MaterialFlags.GENERATE_SPRING); 34 | 35 | // Dense Plates 36 | Materials.Neutronium.addFlags(MaterialFlags.GENERATE_DENSE); 37 | 38 | // Foils 39 | Materials.Graphene.addFlags(MaterialFlags.GENERATE_FOIL); 40 | } 41 | 42 | public static void initLate() { 43 | // Alloy Blast Overriding 44 | AlloyBlastProperty property = Materials.NiobiumNitride.getProperty(GCYMPropertyKey.ALLOY_BLAST); 45 | property.setRecipeProducer(new CustomAlloyBlastRecipeProducer(1, 11, -1)); 46 | 47 | property = Materials.IndiumTinBariumTitaniumCuprate.getProperty(GCYMPropertyKey.ALLOY_BLAST); 48 | property.setRecipeProducer(new CustomAlloyBlastRecipeProducer(-1, -1, 16)); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/api/unification/properties/AlloyBlastPropertyAddition.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.api.unification.properties; 2 | 3 | import java.util.List; 4 | 5 | import org.jetbrains.annotations.ApiStatus; 6 | import org.jetbrains.annotations.NotNull; 7 | 8 | import gregtech.api.GregTechAPI; 9 | import gregtech.api.unification.material.Material; 10 | import gregtech.api.unification.material.properties.BlastProperty; 11 | import gregtech.api.unification.material.properties.PropertyKey; 12 | import gregtech.api.unification.stack.MaterialStack; 13 | 14 | import gregicality.multiblocks.api.unification.GCYMMaterialFlags; 15 | 16 | @ApiStatus.Internal 17 | public final class AlloyBlastPropertyAddition { 18 | 19 | private AlloyBlastPropertyAddition() {} 20 | 21 | public static void init() { 22 | for (Material material : GregTechAPI.materialManager.getRegisteredMaterials()) { 23 | if (!material.hasFlag(GCYMMaterialFlags.DISABLE_ALLOY_PROPERTY)) { 24 | addAlloyBlastProperty(material); 25 | } 26 | } 27 | } 28 | 29 | private static void addAlloyBlastProperty(@NotNull Material material) { 30 | final List components = material.getMaterialComponents(); 31 | // ignore materials which are not alloys 32 | if (components.size() < 2) return; 33 | 34 | BlastProperty blastProperty = material.getProperty(PropertyKey.BLAST); 35 | if (blastProperty == null) return; 36 | 37 | if (!material.hasProperty(PropertyKey.FLUID)) return; 38 | 39 | // if there are more than 2 fluid-only components in the material, do not generate a hot fluid 40 | if (components.stream().filter(AlloyBlastPropertyAddition::isMaterialStackFluidOnly).limit(3).count() > 2) { 41 | return; 42 | } 43 | 44 | material.setProperty(GCYMPropertyKey.ALLOY_BLAST, new AlloyBlastProperty(material.getBlastTemperature())); 45 | } 46 | 47 | private static boolean isMaterialStackFluidOnly(@NotNull MaterialStack ms) { 48 | return !ms.material.hasProperty(PropertyKey.DUST) && ms.material.hasProperty(PropertyKey.FLUID); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/api/unification/GCYMSecondDegreeMaterials.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.api.unification; 2 | 3 | import static gregicality.multiblocks.api.unification.GCYMMaterials.*; 4 | import static gregicality.multiblocks.api.utils.GCYMUtil.gcymId; 5 | import static gregtech.api.unification.material.Materials.*; 6 | import static gregtech.api.unification.material.info.MaterialFlags.*; 7 | 8 | import gregtech.api.GTValues; 9 | import gregtech.api.unification.material.Material; 10 | import gregtech.api.unification.material.info.MaterialIconSet; 11 | import gregtech.api.unification.material.properties.BlastProperty; 12 | 13 | public final class GCYMSecondDegreeMaterials { 14 | 15 | private GCYMSecondDegreeMaterials() {} 16 | 17 | public static void init() { 18 | HSLASteel = new Material.Builder(3020, gcymId("hsla_steel")) 19 | .ingot().fluid() 20 | .color(0x808080).iconSet(MaterialIconSet.METALLIC) 21 | .flags(EXT_METAL, GENERATE_DOUBLE_PLATE, GENERATE_LONG_ROD, GENERATE_SPRING, GENERATE_FRAME) 22 | .components(Invar, 2, Vanadium, 1, Titanium, 1, Molybdenum, 1) 23 | .blastTemp(1711, BlastProperty.GasTier.LOW, GTValues.VA[GTValues.HV], 1000) 24 | .build(); 25 | 26 | TitaniumTungstenCarbide = new Material.Builder(3021, gcymId("titanium_tungsten_carbide")) 27 | .ingot().fluid() 28 | .color(0x800D0D).iconSet(MaterialIconSet.METALLIC) 29 | .flags(GENERATE_PLATE) 30 | .components(TungstenCarbide, 1, TitaniumCarbide, 2) 31 | .blastTemp(3800, BlastProperty.GasTier.HIGH, GTValues.VA[GTValues.EV], 1000) 32 | .build(); 33 | 34 | IncoloyMA956 = new Material.Builder(3022, gcymId("incoloy_ma_956")) 35 | .ingot().fluid() 36 | .color(0x37BF7E).iconSet(MaterialIconSet.METALLIC) 37 | .flags(GENERATE_PLATE, GENERATE_ROD, GENERATE_FRAME) 38 | .components(VanadiumSteel, 4, Manganese, 2, Aluminium, 5, Yttrium, 2) 39 | .blastTemp(3625, BlastProperty.GasTier.MID, GTValues.VA[GTValues.EV], 800) 40 | .build(); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/api/capability/impl/GCYMMultiblockRecipeLogic.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.api.capability.impl; 2 | 3 | import java.util.List; 4 | 5 | import org.jetbrains.annotations.NotNull; 6 | 7 | import gregtech.api.GTValues; 8 | import gregtech.api.capability.impl.MultiblockRecipeLogic; 9 | import gregtech.api.metatileentity.ITieredMetaTileEntity; 10 | import gregtech.api.metatileentity.multiblock.RecipeMapMultiblockController; 11 | 12 | import gregicality.multiblocks.api.capability.IParallelMultiblock; 13 | import gregicality.multiblocks.api.metatileentity.GCYMMultiblockAbility; 14 | import gregicality.multiblocks.api.metatileentity.GCYMRecipeMapMultiblockController; 15 | import gregicality.multiblocks.common.GCYMConfigHolder; 16 | 17 | public class GCYMMultiblockRecipeLogic extends MultiblockRecipeLogic { 18 | 19 | public GCYMMultiblockRecipeLogic(RecipeMapMultiblockController tileEntity) { 20 | super(tileEntity); 21 | } 22 | 23 | public GCYMMultiblockRecipeLogic(RecipeMapMultiblockController tileEntity, boolean hasPerfectOC) { 24 | super(tileEntity, hasPerfectOC); 25 | } 26 | 27 | @Override 28 | public int getParallelLimit() { 29 | if (metaTileEntity instanceof IParallelMultiblock && ((IParallelMultiblock) metaTileEntity).isParallel()) 30 | return ((IParallelMultiblock) metaTileEntity).getMaxParallel(); 31 | 32 | return 1; 33 | } 34 | 35 | @Override 36 | public @NotNull RecipeMapMultiblockController getMetaTileEntity() { 37 | return (RecipeMapMultiblockController) super.getMetaTileEntity(); 38 | } 39 | 40 | @Override 41 | public long getMaxVoltage() { 42 | if (!GCYMConfigHolder.globalMultiblocks.enableTieredCasings) 43 | return super.getMaxVoltage(); 44 | 45 | if (getMetaTileEntity() instanceof GCYMRecipeMapMultiblockController controller && !controller.isTiered()) 46 | return super.getMaxVoltage(); 47 | 48 | List list = getMetaTileEntity().getAbilities(GCYMMultiblockAbility.TIERED_HATCH); 49 | 50 | if (list.isEmpty()) 51 | return super.getMaxVoltage(); 52 | 53 | return Math.min(GTValues.V[list.get(0).getTier()], super.getMaxVoltage()); 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /.github/workflows/publish_project.yml: -------------------------------------------------------------------------------- 1 | # Publishes the project to GitHub Releases, CurseForge, and Modrinth 2 | name: Publish Project 3 | 4 | on: 5 | push: 6 | tags: 7 | - 'v[0-9]+.[0-9]+.[0-9]+' # any SemVer tag, e.g. v1.2.3 8 | 9 | env: 10 | # link to the changelog with a format code for the version 11 | CHANGELOG_LOCATION: "Changelog is available [here](https://github.com/${{ github.repository }}/releases/tag/${{ github.ref_name }})" 12 | # type of release 13 | RELEASE_TYPE: 'beta' 14 | 15 | concurrency: 16 | group: publish-${{ github.head_ref || github.ref }} 17 | cancel-in-progress: true 18 | 19 | jobs: 20 | publish: 21 | name: Publish 22 | runs-on: ubuntu-latest 23 | 24 | permissions: 25 | contents: write # needed to create GitHub releases 26 | 27 | steps: 28 | - name: Checkout Repository 29 | uses: actions/checkout@v4 30 | 31 | - name: Setup Build 32 | uses: ./.github/actions/build_setup 33 | 34 | - name: Build Project 35 | run: ./gradlew build --warning-mode all --build-cache 36 | 37 | - name: Publish to GitHub 38 | uses: softprops/action-gh-release@v2 39 | with: 40 | files: "build/libs/*.jar" 41 | generate_release_notes: true 42 | fail_on_unmatched_files: true 43 | 44 | - name: Publish to Maven 45 | env: 46 | MAVEN_USER: "${{ secrets.MAVEN_USER }}" 47 | MAVEN_PASSWORD: "${{ secrets.MAVEN_PASSWORD }}" 48 | run: ./gradlew publish 49 | 50 | - name: Publish to Curseforge 51 | env: 52 | CURSEFORGE_API_KEY: "${{ secrets.CURSEFORGE_API_KEY }}" 53 | CURSEFORGE_PROJECT_ID: "${{ secrets.CURSEFORGE_PROJECT_ID }}" 54 | CHANGELOG_LOCATION: "${{ env.CHANGELOG_LOCATION }}" 55 | RELEASE_TYPE: "${{ env.RELEASE_TYPE }}" 56 | run: ./gradlew curseforge --warning-mode all --build-cache 57 | 58 | - name: Publish to Modrinth 59 | env: 60 | MODRINTH_API_KEY: "${{ secrets.MODRINTH_API_KEY }}" 61 | MODRINTH_PROJECT_ID: "${{ secrets.MODRINTH_PROJECT_ID }}" 62 | CHANGELOG_LOCATION: "${{ env.CHANGELOG_LOCATION }}" 63 | RELEASE_TYPE: "${{ env.RELEASE_TYPE }}" 64 | run: ./gradlew modrinth --warning-mode all --build-cache 65 | -------------------------------------------------------------------------------- /src/test/java/gregicality/multiblocks/api/material/AlloyBlastTest.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.api.material; 2 | 3 | import java.util.Set; 4 | 5 | import org.hamcrest.MatcherAssert; 6 | import org.hamcrest.Matchers; 7 | import org.junit.jupiter.api.BeforeAll; 8 | import org.junit.jupiter.api.Test; 9 | 10 | import com.google.common.collect.Sets; 11 | 12 | import gregtech.api.GregTechAPI; 13 | import gregtech.api.unification.material.Material; 14 | import gregtech.api.unification.material.properties.PropertyKey; 15 | 16 | import gregicality.multiblocks.Bootstrap; 17 | import gregicality.multiblocks.api.unification.properties.GCYMPropertyKey; 18 | 19 | import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet; 20 | 21 | public class AlloyBlastTest { 22 | 23 | @BeforeAll 24 | public static void prepare() { 25 | Bootstrap.perform(); 26 | } 27 | 28 | @Test 29 | public void testPropertyAddition() { 30 | Set blastMats = new ObjectOpenHashSet<>(); 31 | Set fluidMats = new ObjectOpenHashSet<>(); 32 | Set alloyMats = new ObjectOpenHashSet<>(); 33 | Set nonBinaryMats = new ObjectOpenHashSet<>(); 34 | 35 | for (Material material : GregTechAPI.materialManager.getRegisteredMaterials()) { 36 | if (material.hasProperty(PropertyKey.BLAST)) { 37 | blastMats.add(material); 38 | } 39 | if (material.hasProperty(PropertyKey.FLUID)) { 40 | fluidMats.add(material); 41 | } 42 | if (material.hasProperty(GCYMPropertyKey.ALLOY_BLAST)) { 43 | alloyMats.add(material); 44 | } 45 | if (material.getMaterialComponents().size() > 1) { 46 | nonBinaryMats.add(material); 47 | } 48 | } 49 | 50 | Set blastFluids = Sets.intersection(blastMats, fluidMats); 51 | Set alloyBlastFluids = Sets.intersection(nonBinaryMats, blastFluids); 52 | 53 | // ensure every appropriate material gets the alloy blast prop 54 | MatcherAssert.assertThat(alloyMats, Matchers.containsInAnyOrder(alloyBlastFluids.toArray(new Material[0]))); 55 | MatcherAssert.assertThat(alloyMats.size(), Matchers.is(alloyBlastFluids.size())); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/common/block/blocks/BlockLargeMultiblockCasing.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.common.block.blocks; 2 | 3 | import net.minecraft.block.SoundType; 4 | import net.minecraft.block.material.Material; 5 | import net.minecraft.block.state.IBlockState; 6 | import net.minecraft.entity.EntityLiving; 7 | import net.minecraft.util.IStringSerializable; 8 | import net.minecraft.util.math.BlockPos; 9 | import net.minecraft.world.IBlockAccess; 10 | 11 | import org.jetbrains.annotations.NotNull; 12 | 13 | import gregtech.api.block.VariantBlock; 14 | 15 | public class BlockLargeMultiblockCasing extends VariantBlock { 16 | 17 | public BlockLargeMultiblockCasing() { 18 | super(Material.IRON); 19 | setTranslationKey("large_multiblock_casing"); 20 | setHardness(5.0f); 21 | setResistance(10.0f); 22 | setSoundType(SoundType.METAL); 23 | setHarvestLevel("wrench", 2); 24 | setDefaultState(getState(CasingType.MACERATOR_CASING)); 25 | } 26 | 27 | @Override 28 | public boolean canCreatureSpawn(@NotNull IBlockState state, @NotNull IBlockAccess world, @NotNull BlockPos pos, 29 | @NotNull EntityLiving.SpawnPlacementType type) { 30 | return false; 31 | } 32 | 33 | public enum CasingType implements IStringSerializable { 34 | 35 | MACERATOR_CASING("macerator_casing"), 36 | HIGH_TEMPERATURE_CASING("blast_casing"), 37 | ASSEMBLING_CASING("assembler_casing"), 38 | STRESS_PROOF_CASING("stress_proof_casing"), 39 | CORROSION_PROOF_CASING("corrosion_proof_casing"), 40 | VIBRATION_SAFE_CASING("vibration_safe_casing"), 41 | WATERTIGHT_CASING("watertight_casing"), 42 | CUTTER_CASING("cutter_casing"), 43 | NONCONDUCTING_CASING("nonconducting_casing"), 44 | MIXER_CASING("mixer_casing"), 45 | ENGRAVER_CASING("engraver_casing"), 46 | ATOMIC_CASING("atomic_casing"), 47 | STEAM_CASING("steam_casing"); 48 | 49 | private final String name; 50 | 51 | CasingType(String name) { 52 | this.name = name; 53 | } 54 | 55 | @Override 56 | public @NotNull String getName() { 57 | return this.name; 58 | } 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/api/fluids/GeneratedFluidHandler.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.api.fluids; 2 | 3 | import org.jetbrains.annotations.ApiStatus; 4 | import org.jetbrains.annotations.NotNull; 5 | 6 | import gregtech.api.GregTechAPI; 7 | import gregtech.api.fluids.FluidBuilder; 8 | import gregtech.api.unification.material.Material; 9 | import gregtech.api.unification.material.properties.BlastProperty; 10 | import gregtech.api.unification.material.properties.FluidProperty; 11 | import gregtech.api.unification.material.properties.PropertyKey; 12 | 13 | import gregicality.multiblocks.api.unification.GCYMMaterialFlags; 14 | import gregicality.multiblocks.api.unification.properties.AlloyBlastProperty; 15 | import gregicality.multiblocks.api.unification.properties.GCYMPropertyKey; 16 | 17 | /** 18 | * Handles generation of fluids based on material properties 19 | */ 20 | @ApiStatus.Internal 21 | public final class GeneratedFluidHandler { 22 | 23 | private GeneratedFluidHandler() {} 24 | 25 | public static void init() { 26 | for (Material material : GregTechAPI.materialManager.getRegisteredMaterials()) { 27 | createMoltenFluid(material); 28 | } 29 | } 30 | 31 | public static void createMoltenFluid(@NotNull Material material) { 32 | // ignore materials set not to be alloy blast handled 33 | if (material.hasFlag(GCYMMaterialFlags.DISABLE_ALLOY_PROPERTY)) return; 34 | 35 | // ignore materials which are not alloys 36 | if (material.getMaterialComponents().size() <= 1) return; 37 | 38 | BlastProperty blastProperty = material.getProperty(PropertyKey.BLAST); 39 | if (blastProperty == null) return; 40 | 41 | AlloyBlastProperty alloyBlastProperty = material.getProperty(GCYMPropertyKey.ALLOY_BLAST); 42 | if (alloyBlastProperty == null) return; 43 | 44 | FluidProperty fluidProperty = material.getProperty(PropertyKey.FLUID); 45 | if (fluidProperty == null) return; 46 | 47 | if (alloyBlastProperty.shouldGenerateMolten(material)) { 48 | fluidProperty.enqueueRegistration(GCYMFluidStorageKeys.MOLTEN, new FluidBuilder() 49 | .temperature(alloyBlastProperty.getTemperature())); 50 | } 51 | // if it is not hot enough to produce molten fluid, ABS Producer grabs normal liquid, 52 | // thus we don't need to do anything. 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/common/block/GCYMMetaBlocks.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.common.block; 2 | 3 | import net.minecraft.block.Block; 4 | import net.minecraft.block.properties.IProperty; 5 | import net.minecraft.block.state.IBlockState; 6 | import net.minecraft.client.renderer.block.model.ModelResourceLocation; 7 | import net.minecraft.item.Item; 8 | import net.minecraftforge.client.model.ModelLoader; 9 | import net.minecraftforge.fml.relauncher.Side; 10 | import net.minecraftforge.fml.relauncher.SideOnly; 11 | 12 | import org.jetbrains.annotations.NotNull; 13 | 14 | import gregtech.common.blocks.MetaBlocks; 15 | 16 | import gregicality.multiblocks.common.block.blocks.BlockLargeMultiblockCasing; 17 | import gregicality.multiblocks.common.block.blocks.BlockUniqueCasing; 18 | 19 | public final class GCYMMetaBlocks { 20 | 21 | private GCYMMetaBlocks() {} 22 | 23 | public static BlockUniqueCasing UNIQUE_CASING; 24 | public static BlockLargeMultiblockCasing LARGE_MULTIBLOCK_CASING; 25 | 26 | public static void init() { 27 | UNIQUE_CASING = new BlockUniqueCasing(); 28 | UNIQUE_CASING.setRegistryName("unique_casing"); 29 | LARGE_MULTIBLOCK_CASING = new BlockLargeMultiblockCasing(); 30 | LARGE_MULTIBLOCK_CASING.setRegistryName("large_multiblock_casing"); 31 | } 32 | 33 | @SideOnly(Side.CLIENT) 34 | public static void registerItemModels() { 35 | UNIQUE_CASING.onModelRegister(); 36 | registerItemModel(LARGE_MULTIBLOCK_CASING); 37 | } 38 | 39 | @SideOnly(Side.CLIENT) 40 | private static void registerItemModel(@NotNull Block block) { 41 | for (IBlockState state : block.getBlockState().getValidStates()) { 42 | // noinspection ConstantConditions 43 | ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(block), 44 | block.getMetaFromState(state), 45 | new ModelResourceLocation(block.getRegistryName(), 46 | MetaBlocks.statePropertiesToString(state.getProperties()))); 47 | } 48 | } 49 | 50 | @SuppressWarnings("unchecked") 51 | private static > @NotNull String getPropertyName(@NotNull IProperty property, 52 | Comparable value) { 53 | return property.getName((T) value); 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/api/unification/properties/AlloyBlastProperty.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.api.unification.properties; 2 | 3 | import org.jetbrains.annotations.NotNull; 4 | 5 | import com.google.common.base.Preconditions; 6 | 7 | import gregtech.api.unification.material.Material; 8 | import gregtech.api.unification.material.properties.IMaterialProperty; 9 | import gregtech.api.unification.material.properties.MaterialProperties; 10 | import gregtech.api.unification.material.properties.PropertyKey; 11 | import gregtech.api.unification.ore.OrePrefix; 12 | 13 | import gregicality.multiblocks.api.recipes.alloyblast.AlloyBlastRecipeProducer; 14 | 15 | public class AlloyBlastProperty implements IMaterialProperty { 16 | 17 | private int temperature; 18 | private boolean canGenerateMolten = true; 19 | private boolean forceGenerateMolten = false; 20 | 21 | private AlloyBlastRecipeProducer recipeProducer = AlloyBlastRecipeProducer.DEFAULT_PRODUCER; 22 | 23 | public AlloyBlastProperty(int temperature) { 24 | this.temperature = temperature; 25 | } 26 | 27 | @Override 28 | public void verifyProperty(@NotNull MaterialProperties materialProperties) { 29 | materialProperties.ensureSet(PropertyKey.BLAST); 30 | materialProperties.ensureSet(PropertyKey.FLUID); 31 | this.temperature = materialProperties.getProperty(PropertyKey.BLAST).getBlastTemperature(); 32 | } 33 | 34 | public void setTemperature(int fluidTemperature) { 35 | Preconditions.checkArgument(fluidTemperature > 0, "Invalid temperature"); 36 | this.temperature = fluidTemperature; 37 | } 38 | 39 | public int getTemperature() { 40 | return temperature; 41 | } 42 | 43 | public void setRecipeProducer(@NotNull AlloyBlastRecipeProducer recipeProducer) { 44 | this.recipeProducer = recipeProducer; 45 | } 46 | 47 | public @NotNull AlloyBlastRecipeProducer getRecipeProducer() { 48 | return this.recipeProducer; 49 | } 50 | 51 | /** 52 | * @param canGenerateMolten if a molten fluid is allowed to generate 53 | */ 54 | public void setCanGenerateMolten(boolean canGenerateMolten) { 55 | this.canGenerateMolten = canGenerateMolten; 56 | } 57 | 58 | /** 59 | * @param forceGenerateMolten if a molten fluid should always generate 60 | */ 61 | public void setForceGenerateMolten(boolean forceGenerateMolten) { 62 | this.forceGenerateMolten = forceGenerateMolten; 63 | } 64 | 65 | public boolean shouldGenerateMolten(@NotNull Material material) { 66 | if (forceGenerateMolten) return true; 67 | return canGenerateMolten && OrePrefix.ingotHot.doGenerateItem(material); 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/common/metatileentities/multiblock/standard/MetaTileEntityLargePackager.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.common.metatileentities.multiblock.standard; 2 | 3 | import net.minecraft.block.state.IBlockState; 4 | import net.minecraft.util.ResourceLocation; 5 | 6 | import org.jetbrains.annotations.NotNull; 7 | 8 | import gregtech.api.metatileentity.MetaTileEntity; 9 | import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; 10 | import gregtech.api.metatileentity.multiblock.IMultiblockPart; 11 | import gregtech.api.pattern.BlockPattern; 12 | import gregtech.api.pattern.FactoryBlockPattern; 13 | import gregtech.api.recipes.RecipeMaps; 14 | import gregtech.client.renderer.ICubeRenderer; 15 | import gregtech.client.renderer.texture.Textures; 16 | import gregtech.client.renderer.texture.cube.OrientedOverlayRenderer; 17 | import gregtech.common.blocks.BlockMetalCasing; 18 | import gregtech.common.blocks.MetaBlocks; 19 | 20 | import gregicality.multiblocks.api.metatileentity.GCYMRecipeMapMultiblockController; 21 | import gregicality.multiblocks.api.render.GCYMTextures; 22 | 23 | public class MetaTileEntityLargePackager extends GCYMRecipeMapMultiblockController { 24 | 25 | public MetaTileEntityLargePackager(ResourceLocation metaTileEntityId) { 26 | super(metaTileEntityId, RecipeMaps.PACKER_RECIPES); 27 | } 28 | 29 | @Override 30 | public MetaTileEntity createMetaTileEntity(IGregTechTileEntity metaTileEntityHolder) { 31 | return new MetaTileEntityLargePackager(this.metaTileEntityId); 32 | } 33 | 34 | @Override 35 | protected @NotNull BlockPattern createStructurePattern() { 36 | return FactoryBlockPattern.start() 37 | .aisle("XXX", "XXX", "XXX") 38 | .aisle("XXX", "XAX", "XXX").setRepeatable(3) 39 | .aisle("XXX", "XSX", "XXX") 40 | .where('S', selfPredicate()) 41 | .where('X', states(getCasingState()).setMinGlobalLimited(30).or(autoAbilities())) 42 | .where('A', air()) 43 | .build(); 44 | } 45 | 46 | private static IBlockState getCasingState() { 47 | return MetaBlocks.METAL_CASING.getState(BlockMetalCasing.MetalCasingType.STEEL_SOLID); 48 | } 49 | 50 | @Override 51 | public ICubeRenderer getBaseTexture(IMultiblockPart iMultiblockPart) { 52 | return Textures.SOLID_STEEL_CASING; 53 | } 54 | 55 | @Override 56 | protected @NotNull OrientedOverlayRenderer getFrontOverlay() { 57 | return GCYMTextures.LARGE_PACKAGER_OVERLAY; 58 | } 59 | 60 | @Override 61 | public boolean canBeDistinct() { 62 | return true; 63 | } 64 | 65 | @Override 66 | public boolean isTiered() { 67 | return false; 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /src/main/resources/assets/gcym/blockstates/unique_casing.json: -------------------------------------------------------------------------------- 1 | { 2 | "forge_marker": 1, 3 | "variants": { 4 | "active=false,variant=crushing_wheels": { 5 | "model": "minecraft:cube_bottom_top", 6 | "textures": { 7 | "top": "gregtech:blocks/casings/unique/crushing_wheels", 8 | "side": "gregtech:blocks/casings/large_multiblock_casing/macerator_casing", 9 | "bottom": "#side" 10 | } 11 | }, 12 | "active=true,variant=crushing_wheels": { 13 | "model": "minecraft:cube_bottom_top", 14 | "textures": { 15 | "top": "gregtech:blocks/casings/unique/crushing_wheels_on", 16 | "side": "gregtech:blocks/casings/large_multiblock_casing/macerator_casing", 17 | "bottom": "#side" 18 | } 19 | }, 20 | "active=false,variant=slicing_blades": { 21 | "model": "minecraft:cube_bottom_top", 22 | "textures": { 23 | "top": "gregtech:blocks/casings/unique/slicing_blades", 24 | "side": "gregtech:blocks/casings/large_multiblock_casing/cutter_casing", 25 | "bottom": "#side" 26 | } 27 | }, 28 | "active=true,variant=slicing_blades": { 29 | "model": "minecraft:cube_bottom_top", 30 | "textures": { 31 | "top": "gregtech:blocks/casings/unique/slicing_blades_on", 32 | "side": "gregtech:blocks/casings/large_multiblock_casing/cutter_casing", 33 | "bottom": "#side" 34 | } 35 | }, 36 | "active=false,variant=electrolytic_cell": { 37 | "model": "minecraft:cube_all", 38 | "textures": { 39 | "all": "gregtech:blocks/casings/unique/electrolytic_cell" 40 | } 41 | }, 42 | "active=true,variant=electrolytic_cell": { 43 | "model": "minecraft:cube_all", 44 | "textures": { 45 | "all": "gregtech:blocks/casings/unique/electrolytic_cell_on" 46 | } 47 | }, 48 | "active=false,variant=heat_vent": { 49 | "model": "minecraft:cube_all", 50 | "textures": { 51 | "all": "gregtech:blocks/casings/unique/heat_vent" 52 | } 53 | }, 54 | "active=true,variant=heat_vent": { 55 | "model": "gregtech:cube_2_layer_all", 56 | "textures": { 57 | "bot_all": "gregtech:blocks/casings/unique/heat_vent", 58 | "top_all": "gregtech:blocks/casings/unique/heat_vent_bloom" 59 | } 60 | }, 61 | "active=false,variant=molybdenum_disilicide_coil": { 62 | "model": "minecraft:cube_all", 63 | "textures": { 64 | "all": "gregtech:blocks/casings/coils/machine_coil_molybdenum_disilicide" 65 | } 66 | }, 67 | "active=true,variant=molybdenum_disilicide_coil": { 68 | "model": "gregtech:cube_2_layer_all", 69 | "textures": { 70 | "bot_all": "gregtech:blocks/casings/coils/machine_coil_molybdenum_disilicide", 71 | "top_all": "gregtech:blocks/casings/coils/machine_coil_molybdenum_disilicide_bloom" 72 | } 73 | } 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/common/block/blocks/BlockUniqueCasing.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.common.block.blocks; 2 | 3 | import net.minecraft.block.SoundType; 4 | import net.minecraft.block.material.Material; 5 | import net.minecraft.block.state.IBlockState; 6 | import net.minecraft.entity.EntityLiving; 7 | import net.minecraft.util.BlockRenderLayer; 8 | import net.minecraft.util.IStringSerializable; 9 | import net.minecraft.util.math.BlockPos; 10 | import net.minecraft.world.IBlockAccess; 11 | 12 | import org.jetbrains.annotations.NotNull; 13 | 14 | import gregtech.api.block.VariantActiveBlock; 15 | import gregtech.client.utils.BloomEffectUtil; 16 | import gregtech.common.ConfigHolder; 17 | 18 | public class BlockUniqueCasing extends VariantActiveBlock { 19 | 20 | public BlockUniqueCasing() { 21 | super(Material.IRON); 22 | setTranslationKey("unique_casing"); 23 | setHardness(5.0f); 24 | setResistance(10.0f); 25 | setSoundType(SoundType.METAL); 26 | setHarvestLevel("wrench", 2); 27 | setDefaultState(getState(UniqueCasingType.CRUSHING_WHEELS)); 28 | } 29 | 30 | @Override 31 | public boolean canCreatureSpawn(@NotNull IBlockState state, @NotNull IBlockAccess world, @NotNull BlockPos pos, 32 | @NotNull EntityLiving.SpawnPlacementType type) { 33 | return false; 34 | } 35 | 36 | @Override 37 | public boolean canRenderInLayer(@NotNull IBlockState state, @NotNull BlockRenderLayer layer) { 38 | UniqueCasingType type = getState(state); 39 | if (type == UniqueCasingType.MOLYBDENUM_DISILICIDE_COIL) { 40 | if (layer == BlockRenderLayer.SOLID) return true; 41 | } else if (layer == BlockRenderLayer.CUTOUT) return true; 42 | 43 | if (isBloomEnabled(type)) return layer == BloomEffectUtil.getEffectiveBloomLayer(layer); 44 | return layer == BlockRenderLayer.CUTOUT; 45 | } 46 | 47 | @Override 48 | protected boolean isBloomEnabled(UniqueCasingType value) { 49 | if (ConfigHolder.client.coilsActiveEmissiveTextures && value == UniqueCasingType.MOLYBDENUM_DISILICIDE_COIL) { 50 | return true; 51 | } 52 | return value == UniqueCasingType.HEAT_VENT; 53 | } 54 | 55 | public enum UniqueCasingType implements IStringSerializable { 56 | 57 | CRUSHING_WHEELS("crushing_wheels"), 58 | SLICING_BLADES("slicing_blades"), 59 | ELECTROLYTIC_CELL("electrolytic_cell"), 60 | HEAT_VENT("heat_vent"), 61 | MOLYBDENUM_DISILICIDE_COIL("molybdenum_disilicide_coil"); 62 | 63 | private final String name; 64 | 65 | UniqueCasingType(String name) { 66 | this.name = name; 67 | } 68 | 69 | @Override 70 | public @NotNull String getName() { 71 | return this.name; 72 | } 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/common/CommonProxy.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.common; 2 | 3 | import java.util.Objects; 4 | import java.util.function.Function; 5 | 6 | import net.minecraft.block.Block; 7 | import net.minecraft.item.Item; 8 | import net.minecraft.item.ItemBlock; 9 | import net.minecraft.item.crafting.IRecipe; 10 | import net.minecraftforge.common.config.Config; 11 | import net.minecraftforge.common.config.ConfigManager; 12 | import net.minecraftforge.event.RegistryEvent; 13 | import net.minecraftforge.fml.client.event.ConfigChangedEvent; 14 | import net.minecraftforge.fml.common.Mod; 15 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 16 | import net.minecraftforge.registries.IForgeRegistry; 17 | 18 | import gregtech.api.block.VariantItemBlock; 19 | 20 | import gregicality.multiblocks.GregicalityMultiblocks; 21 | import gregicality.multiblocks.api.utils.GCYMLog; 22 | import gregicality.multiblocks.common.block.GCYMMetaBlocks; 23 | import gregicality.multiblocks.loaders.recipe.GCYMRecipeLoader; 24 | 25 | @Mod.EventBusSubscriber(modid = GregicalityMultiblocks.MODID) 26 | public class CommonProxy { 27 | 28 | public void preLoad() {} 29 | 30 | @SubscribeEvent 31 | public static void syncConfigValues(ConfigChangedEvent.OnConfigChangedEvent event) { 32 | if (event.getModID().equals(GregicalityMultiblocks.MODID)) { 33 | ConfigManager.sync(GregicalityMultiblocks.MODID, Config.Type.INSTANCE); 34 | } 35 | } 36 | 37 | @SubscribeEvent 38 | public static void registerBlocks(RegistryEvent.Register event) { 39 | GCYMLog.logger.info("Registering blocks..."); 40 | IForgeRegistry registry = event.getRegistry(); 41 | 42 | registry.register(GCYMMetaBlocks.UNIQUE_CASING); 43 | registry.register(GCYMMetaBlocks.LARGE_MULTIBLOCK_CASING); 44 | } 45 | 46 | @SubscribeEvent 47 | public static void registerItems(RegistryEvent.Register event) { 48 | GCYMLog.logger.info("Registering Items..."); 49 | IForgeRegistry registry = event.getRegistry(); 50 | 51 | registry.register(createItemBlock(GCYMMetaBlocks.UNIQUE_CASING, VariantItemBlock::new)); 52 | registry.register(createItemBlock(GCYMMetaBlocks.LARGE_MULTIBLOCK_CASING, VariantItemBlock::new)); 53 | } 54 | 55 | private static ItemBlock createItemBlock(T block, Function producer) { 56 | ItemBlock itemBlock = producer.apply(block); 57 | itemBlock.setRegistryName(Objects.requireNonNull(block.getRegistryName())); 58 | return itemBlock; 59 | } 60 | 61 | @SubscribeEvent() 62 | public static void registerRecipes(RegistryEvent.Register event) { 63 | GCYMLog.logger.info("Registering recipes..."); 64 | 65 | // Main recipe registration 66 | // This is called AFTER GregTech registers recipes, so 67 | // anything here is safe to call removals in 68 | GCYMRecipeLoader.init(); 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/common/metatileentities/multiblock/standard/MetaTileEntityLargeElectrolyzer.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.common.metatileentities.multiblock.standard; 2 | 3 | import net.minecraft.block.state.IBlockState; 4 | import net.minecraft.util.ResourceLocation; 5 | 6 | import org.jetbrains.annotations.NotNull; 7 | 8 | import gregtech.api.metatileentity.MetaTileEntity; 9 | import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; 10 | import gregtech.api.metatileentity.multiblock.IMultiblockPart; 11 | import gregtech.api.pattern.BlockPattern; 12 | import gregtech.api.pattern.FactoryBlockPattern; 13 | import gregtech.api.recipes.RecipeMaps; 14 | import gregtech.client.renderer.ICubeRenderer; 15 | import gregtech.client.renderer.texture.cube.OrientedOverlayRenderer; 16 | 17 | import gregicality.multiblocks.api.metatileentity.GCYMRecipeMapMultiblockController; 18 | import gregicality.multiblocks.api.render.GCYMTextures; 19 | import gregicality.multiblocks.common.block.GCYMMetaBlocks; 20 | import gregicality.multiblocks.common.block.blocks.BlockLargeMultiblockCasing; 21 | import gregicality.multiblocks.common.block.blocks.BlockUniqueCasing; 22 | 23 | public class MetaTileEntityLargeElectrolyzer extends GCYMRecipeMapMultiblockController { 24 | 25 | public MetaTileEntityLargeElectrolyzer(ResourceLocation metaTileEntityId) { 26 | super(metaTileEntityId, RecipeMaps.ELECTROLYZER_RECIPES); 27 | } 28 | 29 | @Override 30 | public MetaTileEntity createMetaTileEntity(IGregTechTileEntity metaTileEntityHolder) { 31 | return new MetaTileEntityLargeElectrolyzer(this.metaTileEntityId); 32 | } 33 | 34 | @Override 35 | protected @NotNull BlockPattern createStructurePattern() { 36 | return FactoryBlockPattern.start() 37 | .aisle("XXXXX", "XXXXX", "XXXXX") 38 | .aisle("XXXXX", "XCCCX", "XCCCX") 39 | .aisle("XXXXX", "XCTCX", "XCCCX") 40 | .aisle("XXXXX", "XXSXX", "XXXXX") 41 | .where('S', selfPredicate()) 42 | .where('X', states(getCasingState()).setMinGlobalLimited(30).or(autoAbilities())) 43 | .where('C', states(getCasingState2())) 44 | .where('T', tieredCasing().or(states(getCasingState2()))) 45 | .build(); 46 | } 47 | 48 | private static IBlockState getCasingState() { 49 | return GCYMMetaBlocks.LARGE_MULTIBLOCK_CASING 50 | .getState(BlockLargeMultiblockCasing.CasingType.NONCONDUCTING_CASING); 51 | } 52 | 53 | private static IBlockState getCasingState2() { 54 | return GCYMMetaBlocks.UNIQUE_CASING.getState(BlockUniqueCasing.UniqueCasingType.ELECTROLYTIC_CELL); 55 | } 56 | 57 | @Override 58 | public ICubeRenderer getBaseTexture(IMultiblockPart iMultiblockPart) { 59 | return GCYMTextures.NONCONDUCTING_CASING; 60 | } 61 | 62 | @Override 63 | protected @NotNull OrientedOverlayRenderer getFrontOverlay() { 64 | return GCYMTextures.LARGE_ELECTROLYZER_OVERLAY; 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/common/metatileentities/multiblock/standard/MetaTileEntityLargeExtractor.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.common.metatileentities.multiblock.standard; 2 | 3 | import static gregtech.api.util.RelativeDirection.*; 4 | 5 | import net.minecraft.block.state.IBlockState; 6 | import net.minecraft.util.ResourceLocation; 7 | 8 | import org.jetbrains.annotations.NotNull; 9 | 10 | import gregtech.api.metatileentity.MetaTileEntity; 11 | import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; 12 | import gregtech.api.metatileentity.multiblock.IMultiblockPart; 13 | import gregtech.api.pattern.BlockPattern; 14 | import gregtech.api.pattern.FactoryBlockPattern; 15 | import gregtech.api.recipes.RecipeMap; 16 | import gregtech.api.recipes.RecipeMaps; 17 | import gregtech.client.renderer.ICubeRenderer; 18 | import gregtech.client.renderer.texture.cube.OrientedOverlayRenderer; 19 | import gregtech.common.blocks.BlockBoilerCasing; 20 | import gregtech.common.blocks.MetaBlocks; 21 | 22 | import gregicality.multiblocks.api.metatileentity.GCYMRecipeMapMultiblockController; 23 | import gregicality.multiblocks.api.render.GCYMTextures; 24 | import gregicality.multiblocks.common.block.GCYMMetaBlocks; 25 | import gregicality.multiblocks.common.block.blocks.BlockLargeMultiblockCasing; 26 | 27 | public class MetaTileEntityLargeExtractor extends GCYMRecipeMapMultiblockController { 28 | 29 | public MetaTileEntityLargeExtractor(ResourceLocation metaTileEntityId) { 30 | super(metaTileEntityId, new RecipeMap[] { RecipeMaps.EXTRACTOR_RECIPES, RecipeMaps.CANNER_RECIPES }); 31 | } 32 | 33 | @Override 34 | public MetaTileEntity createMetaTileEntity(IGregTechTileEntity metaTileEntityHolder) { 35 | return new MetaTileEntityLargeExtractor(this.metaTileEntityId); 36 | } 37 | 38 | @Override 39 | protected @NotNull BlockPattern createStructurePattern() { 40 | return FactoryBlockPattern.start(RIGHT, FRONT, UP) 41 | .aisle("XXXXX", "XXXXX", "XXXXX") 42 | .aisle("XXSXX", "XCTCX", "XXXXX") 43 | .aisle("XXXXX", "XXXXX", "XXXXX") 44 | .where('S', selfPredicate()) 45 | .where('X', states(getCasingState()).setMinGlobalLimited(25).or(autoAbilities())) 46 | .where('C', states(getCasingState2())) 47 | .where('T', tieredCasing().or(air())) 48 | .build(); 49 | } 50 | 51 | private static IBlockState getCasingState() { 52 | return GCYMMetaBlocks.LARGE_MULTIBLOCK_CASING.getState(BlockLargeMultiblockCasing.CasingType.WATERTIGHT_CASING); 53 | } 54 | 55 | private static IBlockState getCasingState2() { 56 | return MetaBlocks.BOILER_CASING.getState(BlockBoilerCasing.BoilerCasingType.STEEL_PIPE); 57 | } 58 | 59 | @Override 60 | public ICubeRenderer getBaseTexture(IMultiblockPart iMultiblockPart) { 61 | return GCYMTextures.WATERTIGHT_CASING; 62 | } 63 | 64 | @Override 65 | protected @NotNull OrientedOverlayRenderer getFrontOverlay() { 66 | return GCYMTextures.LARGE_EXTRACTOR_OVERLAY; 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /src/main/resources/assets/gcym/blockstates/large_multiblock_casing.json: -------------------------------------------------------------------------------- 1 | { 2 | "forge_marker": 1, 3 | "defaults": { 4 | "model": "minecraft:cube_all", 5 | "textures": { 6 | "all": "gregtech:blocks/rendering_error" 7 | } 8 | }, 9 | "variants": { 10 | "variant": { 11 | "macerator_casing": { 12 | "model": "minecraft:cube_all", 13 | "textures": { 14 | "all": "gregtech:blocks/casings/large_multiblock_casing/macerator_casing" 15 | } 16 | }, 17 | "blast_casing": { 18 | "model": "minecraft:cube_all", 19 | "textures": { 20 | "all": "gregtech:blocks/casings/large_multiblock_casing/blast_casing" 21 | } 22 | }, 23 | "assembler_casing": { 24 | "model": "minecraft:cube_all", 25 | "textures": { 26 | "all": "gregtech:blocks/casings/large_multiblock_casing/assembler_casing" 27 | } 28 | }, 29 | "stress_proof_casing": { 30 | "model": "minecraft:cube_all", 31 | "textures": { 32 | "all": "gregtech:blocks/casings/large_multiblock_casing/stress_proof_casing" 33 | } 34 | }, 35 | "corrosion_proof_casing": { 36 | "model": "minecraft:cube_all", 37 | "textures": { 38 | "all": "gregtech:blocks/casings/large_multiblock_casing/corrosion_proof_casing" 39 | } 40 | }, 41 | "vibration_safe_casing": { 42 | "model": "minecraft:cube_all", 43 | "textures": { 44 | "all": "gregtech:blocks/casings/large_multiblock_casing/vibration_safe_casing" 45 | } 46 | }, 47 | "watertight_casing": { 48 | "model": "minecraft:cube_all", 49 | "textures": { 50 | "all": "gregtech:blocks/casings/large_multiblock_casing/watertight_casing" 51 | } 52 | }, 53 | "cutter_casing": { 54 | "model": "minecraft:cube_all", 55 | "textures": { 56 | "all": "gregtech:blocks/casings/large_multiblock_casing/cutter_casing" 57 | } 58 | }, 59 | "nonconducting_casing": { 60 | "model": "minecraft:cube_all", 61 | "textures": { 62 | "all": "gregtech:blocks/casings/large_multiblock_casing/nonconducting_casing" 63 | } 64 | }, 65 | "mixer_casing": { 66 | "model": "minecraft:cube_all", 67 | "textures": { 68 | "all": "gregtech:blocks/casings/large_multiblock_casing/mixer_casing" 69 | } 70 | }, 71 | "engraver_casing": { 72 | "model": "minecraft:cube_all", 73 | "textures": { 74 | "all": "gregtech:blocks/casings/large_multiblock_casing/engraver_casing" 75 | } 76 | }, 77 | "atomic_casing": { 78 | "model": "minecraft:cube_all", 79 | "textures": { 80 | "all": "gregtech:blocks/casings/large_multiblock_casing/atomic_casing" 81 | } 82 | }, 83 | "steam_casing": { 84 | "model": "minecraft:cube_all", 85 | "textures": { 86 | "all": "gregtech:blocks/casings/large_multiblock_casing/steam_casing" 87 | } 88 | } 89 | } 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/common/metatileentities/multiblock/standard/MetaTileEntityLargeAutoclave.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.common.metatileentities.multiblock.standard; 2 | 3 | import net.minecraft.block.state.IBlockState; 4 | import net.minecraft.util.ResourceLocation; 5 | 6 | import org.jetbrains.annotations.NotNull; 7 | 8 | import gregtech.api.metatileentity.MetaTileEntity; 9 | import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; 10 | import gregtech.api.metatileentity.multiblock.IMultiblockPart; 11 | import gregtech.api.pattern.BlockPattern; 12 | import gregtech.api.pattern.FactoryBlockPattern; 13 | import gregtech.api.recipes.RecipeMaps; 14 | import gregtech.client.renderer.ICubeRenderer; 15 | import gregtech.client.renderer.texture.cube.OrientedOverlayRenderer; 16 | import gregtech.common.blocks.BlockBoilerCasing; 17 | import gregtech.common.blocks.MetaBlocks; 18 | 19 | import gregicality.multiblocks.api.metatileentity.GCYMRecipeMapMultiblockController; 20 | import gregicality.multiblocks.api.render.GCYMTextures; 21 | import gregicality.multiblocks.common.block.GCYMMetaBlocks; 22 | import gregicality.multiblocks.common.block.blocks.BlockLargeMultiblockCasing; 23 | 24 | public class MetaTileEntityLargeAutoclave extends GCYMRecipeMapMultiblockController { 25 | 26 | public MetaTileEntityLargeAutoclave(ResourceLocation metaTileEntityId) { 27 | super(metaTileEntityId, RecipeMaps.AUTOCLAVE_RECIPES); 28 | } 29 | 30 | @Override 31 | public MetaTileEntity createMetaTileEntity(IGregTechTileEntity metaTileEntityHolder) { 32 | return new MetaTileEntityLargeAutoclave(this.metaTileEntityId); 33 | } 34 | 35 | @Override 36 | protected @NotNull BlockPattern createStructurePattern() { 37 | return FactoryBlockPattern.start() 38 | .aisle("XXX", "XXX", "XXX") 39 | .aisle("XXX", "XCX", "XXX") 40 | .aisle("XXX", "XTX", "XXX") 41 | .aisle("XXX", "XCX", "XXX") 42 | .aisle("XXX", "XSX", "XXX") 43 | .where('S', selfPredicate()) 44 | .where('X', states(getCasingState()).setMinGlobalLimited(30).or(autoAbilities())) 45 | .where('C', states(getCasingState2())) 46 | .where('A', air()) 47 | .where('T', tieredCasing().or(states(getCasingState2()))) 48 | .where('#', any()) 49 | .build(); 50 | } 51 | 52 | private static IBlockState getCasingState() { 53 | return GCYMMetaBlocks.LARGE_MULTIBLOCK_CASING.getState(BlockLargeMultiblockCasing.CasingType.WATERTIGHT_CASING); 54 | } 55 | 56 | private static IBlockState getCasingState2() { 57 | return MetaBlocks.BOILER_CASING.getState(BlockBoilerCasing.BoilerCasingType.STEEL_PIPE); 58 | } 59 | 60 | @Override 61 | public ICubeRenderer getBaseTexture(IMultiblockPart iMultiblockPart) { 62 | return GCYMTextures.WATERTIGHT_CASING; 63 | } 64 | 65 | @Override 66 | protected @NotNull OrientedOverlayRenderer getFrontOverlay() { 67 | return GCYMTextures.LARGE_AUTOCLAVE_OVERLAY; 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/common/metatileentities/multiblock/standard/MetaTileEntityLargeMacerator.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.common.metatileentities.multiblock.standard; 2 | 3 | import net.minecraft.block.state.IBlockState; 4 | import net.minecraft.util.ResourceLocation; 5 | 6 | import org.jetbrains.annotations.NotNull; 7 | 8 | import gregtech.api.metatileentity.MetaTileEntity; 9 | import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; 10 | import gregtech.api.metatileentity.multiblock.IMultiblockPart; 11 | import gregtech.api.pattern.BlockPattern; 12 | import gregtech.api.pattern.FactoryBlockPattern; 13 | import gregtech.api.recipes.RecipeMaps; 14 | import gregtech.client.renderer.ICubeRenderer; 15 | import gregtech.client.renderer.texture.cube.OrientedOverlayRenderer; 16 | 17 | import gregicality.multiblocks.api.metatileentity.GCYMRecipeMapMultiblockController; 18 | import gregicality.multiblocks.api.render.GCYMTextures; 19 | import gregicality.multiblocks.common.block.GCYMMetaBlocks; 20 | import gregicality.multiblocks.common.block.blocks.BlockLargeMultiblockCasing; 21 | import gregicality.multiblocks.common.block.blocks.BlockUniqueCasing; 22 | 23 | public class MetaTileEntityLargeMacerator extends GCYMRecipeMapMultiblockController { 24 | 25 | public MetaTileEntityLargeMacerator(ResourceLocation metaTileEntityId) { 26 | super(metaTileEntityId, RecipeMaps.MACERATOR_RECIPES); 27 | } 28 | 29 | @Override 30 | public MetaTileEntity createMetaTileEntity(IGregTechTileEntity metaTileEntityHolder) { 31 | return new MetaTileEntityLargeMacerator(this.metaTileEntityId); 32 | } 33 | 34 | @Override 35 | protected @NotNull BlockPattern createStructurePattern() { 36 | return FactoryBlockPattern.start() 37 | .aisle("XXXXX", "XXXXX", "XXXXX", "XXXXX") 38 | .aisle("XXXXX", "XCCCX", "XCCCX", "X###X") 39 | .aisle("XXXXX", "XCTCX", "XCCCX", "X###X") 40 | .aisle("XXXXX", "XCCCX", "XCCCX", "X###X") 41 | .aisle("XXXXX", "XXSXX", "XXXXX", "XXXXX") 42 | .where('S', selfPredicate()) 43 | .where('X', states(getCasingState()).setMinGlobalLimited(55).or(autoAbilities())) 44 | .where('C', states(getCasingState2())) 45 | .where('T', tieredCasing().or(states(getCasingState2()))) 46 | .where('#', air()) 47 | .build(); 48 | } 49 | 50 | private static IBlockState getCasingState() { 51 | return GCYMMetaBlocks.LARGE_MULTIBLOCK_CASING.getState(BlockLargeMultiblockCasing.CasingType.MACERATOR_CASING); 52 | } 53 | 54 | private static IBlockState getCasingState2() { 55 | return GCYMMetaBlocks.UNIQUE_CASING.getState(BlockUniqueCasing.UniqueCasingType.CRUSHING_WHEELS); 56 | } 57 | 58 | @Override 59 | public ICubeRenderer getBaseTexture(IMultiblockPart iMultiblockPart) { 60 | return GCYMTextures.MACERATOR_CASING; 61 | } 62 | 63 | @Override 64 | protected @NotNull OrientedOverlayRenderer getFrontOverlay() { 65 | return GCYMTextures.LARGE_MACERATOR_OVERLAY; 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/common/metatileentities/multiblockpart/MetaTileEntityTieredHatch.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.common.metatileentities.multiblockpart; 2 | 3 | import java.util.List; 4 | 5 | import net.minecraft.client.resources.I18n; 6 | import net.minecraft.entity.player.EntityPlayer; 7 | import net.minecraft.item.ItemStack; 8 | import net.minecraft.util.ResourceLocation; 9 | import net.minecraft.world.World; 10 | 11 | import org.jetbrains.annotations.NotNull; 12 | import org.jetbrains.annotations.Nullable; 13 | 14 | import gregtech.api.GTValues; 15 | import gregtech.api.gui.ModularUI; 16 | import gregtech.api.metatileentity.ITieredMetaTileEntity; 17 | import gregtech.api.metatileentity.MetaTileEntity; 18 | import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; 19 | import gregtech.api.metatileentity.multiblock.IMultiblockAbilityPart; 20 | import gregtech.api.metatileentity.multiblock.MultiblockAbility; 21 | import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityMultiblockPart; 22 | 23 | import gregicality.multiblocks.api.metatileentity.GCYMMultiblockAbility; 24 | import gregicality.multiblocks.api.render.GCYMTextures; 25 | 26 | import codechicken.lib.render.CCRenderState; 27 | import codechicken.lib.render.pipeline.IVertexOperation; 28 | import codechicken.lib.vec.Matrix4; 29 | 30 | public class MetaTileEntityTieredHatch extends MetaTileEntityMultiblockPart 31 | implements IMultiblockAbilityPart { 32 | 33 | public MetaTileEntityTieredHatch(ResourceLocation metaTileEntityId, int tier) { 34 | super(metaTileEntityId, tier); 35 | } 36 | 37 | @Override 38 | public MetaTileEntity createMetaTileEntity(IGregTechTileEntity metaTileEntityHolder) { 39 | return new MetaTileEntityTieredHatch(metaTileEntityId, getTier()); 40 | } 41 | 42 | @Override 43 | protected boolean openGUIOnRightClick() { 44 | return false; 45 | } 46 | 47 | @Override 48 | protected ModularUI createUI(EntityPlayer entityPlayer) { 49 | return null; 50 | } 51 | 52 | @Override 53 | public void renderMetaTileEntity(CCRenderState renderState, Matrix4 translation, IVertexOperation[] pipeline) { 54 | super.renderMetaTileEntity(renderState, translation, pipeline); 55 | GCYMTextures.TIERED_HATCH_OVERLAY.renderOrientedState(renderState, translation, pipeline, getFrontFacing(), 56 | false, false); 57 | } 58 | 59 | @Override 60 | public void addInformation(ItemStack stack, @Nullable World player, @NotNull List tooltip, 61 | boolean advanced) { 62 | super.addInformation(stack, player, tooltip, advanced); 63 | tooltip.add(I18n.format("gcym.machine.tiered_hatch.tooltip.1", GTValues.VNF[getTier()])); 64 | } 65 | 66 | @Override 67 | public MultiblockAbility getAbility() { 68 | return GCYMMultiblockAbility.TIERED_HATCH; 69 | } 70 | 71 | @Override 72 | public void registerAbilities(List list) { 73 | list.add(this); 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/common/metatileentities/multiblock/standard/MetaTileEntityLargePolarizer.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.common.metatileentities.multiblock.standard; 2 | 3 | import net.minecraft.block.state.IBlockState; 4 | import net.minecraft.util.ResourceLocation; 5 | 6 | import org.jetbrains.annotations.NotNull; 7 | 8 | import gregtech.api.metatileentity.MetaTileEntity; 9 | import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; 10 | import gregtech.api.metatileentity.multiblock.IMultiblockPart; 11 | import gregtech.api.pattern.BlockPattern; 12 | import gregtech.api.pattern.FactoryBlockPattern; 13 | import gregtech.api.recipes.RecipeMap; 14 | import gregtech.api.recipes.RecipeMaps; 15 | import gregtech.client.renderer.ICubeRenderer; 16 | import gregtech.client.renderer.texture.cube.OrientedOverlayRenderer; 17 | 18 | import gregicality.multiblocks.api.metatileentity.GCYMRecipeMapMultiblockController; 19 | import gregicality.multiblocks.api.render.GCYMTextures; 20 | import gregicality.multiblocks.common.block.GCYMMetaBlocks; 21 | import gregicality.multiblocks.common.block.blocks.BlockLargeMultiblockCasing; 22 | import gregicality.multiblocks.common.block.blocks.BlockUniqueCasing; 23 | 24 | public class MetaTileEntityLargePolarizer extends GCYMRecipeMapMultiblockController { 25 | 26 | public MetaTileEntityLargePolarizer(ResourceLocation metaTileEntityId) { 27 | super(metaTileEntityId, 28 | new RecipeMap[] { RecipeMaps.POLARIZER_RECIPES, RecipeMaps.ELECTROMAGNETIC_SEPARATOR_RECIPES }); 29 | } 30 | 31 | @Override 32 | public MetaTileEntity createMetaTileEntity(IGregTechTileEntity metaTileEntityHolder) { 33 | return new MetaTileEntityLargePolarizer(this.metaTileEntityId); 34 | } 35 | 36 | @Override 37 | protected @NotNull BlockPattern createStructurePattern() { 38 | return FactoryBlockPattern.start() 39 | .aisle("XXXXX", "XXXXX", "XXXXX") 40 | .aisle("XXXXX", "XCACX", "XCXCX") 41 | .aisle("XXXXX", "XCTCX", "XCXCX") 42 | .aisle("XXXXX", "XXSXX", "XXXXX") 43 | .where('S', selfPredicate()) 44 | .where('X', states(getCasingState()).setMinGlobalLimited(35).or(autoAbilities())) 45 | .where('C', states(getCasingState2())) 46 | .where('T', tieredCasing().or(air())) 47 | .where('A', air()) 48 | .build(); 49 | } 50 | 51 | private static IBlockState getCasingState() { 52 | return GCYMMetaBlocks.LARGE_MULTIBLOCK_CASING 53 | .getState(BlockLargeMultiblockCasing.CasingType.NONCONDUCTING_CASING); 54 | } 55 | 56 | private static IBlockState getCasingState2() { 57 | return GCYMMetaBlocks.UNIQUE_CASING.getState(BlockUniqueCasing.UniqueCasingType.MOLYBDENUM_DISILICIDE_COIL); 58 | } 59 | 60 | @Override 61 | public ICubeRenderer getBaseTexture(IMultiblockPart iMultiblockPart) { 62 | return GCYMTextures.NONCONDUCTING_CASING; 63 | } 64 | 65 | @Override 66 | protected @NotNull OrientedOverlayRenderer getFrontOverlay() { 67 | return GCYMTextures.LARGE_POLARIZER_OVERLAY; 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- 1 | @rem 2 | @rem Copyright 2015 the original author or authors. 3 | @rem 4 | @rem Licensed under the Apache License, Version 2.0 (the "License"); 5 | @rem you may not use this file except in compliance with the License. 6 | @rem You may obtain a copy of the License at 7 | @rem 8 | @rem https://www.apache.org/licenses/LICENSE-2.0 9 | @rem 10 | @rem Unless required by applicable law or agreed to in writing, software 11 | @rem distributed under the License is distributed on an "AS IS" BASIS, 12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | @rem See the License for the specific language governing permissions and 14 | @rem limitations under the License. 15 | @rem 16 | 17 | @if "%DEBUG%"=="" @echo off 18 | @rem ########################################################################## 19 | @rem 20 | @rem Gradle startup script for Windows 21 | @rem 22 | @rem ########################################################################## 23 | 24 | @rem Set local scope for the variables with windows NT shell 25 | if "%OS%"=="Windows_NT" setlocal 26 | 27 | set DIRNAME=%~dp0 28 | if "%DIRNAME%"=="" set DIRNAME=. 29 | @rem This is normally unused 30 | set APP_BASE_NAME=%~n0 31 | set APP_HOME=%DIRNAME% 32 | 33 | @rem Resolve any "." and ".." in APP_HOME to make it shorter. 34 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi 35 | 36 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 37 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" 38 | 39 | @rem Find java.exe 40 | if defined JAVA_HOME goto findJavaFromJavaHome 41 | 42 | set JAVA_EXE=java.exe 43 | %JAVA_EXE% -version >NUL 2>&1 44 | if %ERRORLEVEL% equ 0 goto execute 45 | 46 | echo. 47 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 48 | echo. 49 | echo Please set the JAVA_HOME variable in your environment to match the 50 | echo location of your Java installation. 51 | 52 | goto fail 53 | 54 | :findJavaFromJavaHome 55 | set JAVA_HOME=%JAVA_HOME:"=% 56 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 57 | 58 | if exist "%JAVA_EXE%" goto execute 59 | 60 | echo. 61 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 62 | echo. 63 | echo Please set the JAVA_HOME variable in your environment to match the 64 | echo location of your Java installation. 65 | 66 | goto fail 67 | 68 | :execute 69 | @rem Setup the command line 70 | 71 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 72 | 73 | 74 | @rem Execute Gradle 75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* 76 | 77 | :end 78 | @rem End local scope for the variables with windows NT shell 79 | if %ERRORLEVEL% equ 0 goto mainEnd 80 | 81 | :fail 82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 83 | rem the _cmd.exe /c_ return code! 84 | set EXIT_CODE=%ERRORLEVEL% 85 | if %EXIT_CODE% equ 0 set EXIT_CODE=1 86 | if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% 87 | exit /b %EXIT_CODE% 88 | 89 | :mainEnd 90 | if "%OS%"=="Windows_NT" endlocal 91 | 92 | :omega 93 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/common/metatileentities/multiblock/standard/MetaTileEntityLargeSolidifier.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.common.metatileentities.multiblock.standard; 2 | 3 | import static gregtech.api.util.RelativeDirection.*; 4 | 5 | import net.minecraft.block.state.IBlockState; 6 | import net.minecraft.util.ResourceLocation; 7 | 8 | import org.jetbrains.annotations.NotNull; 9 | 10 | import gregtech.api.metatileentity.MetaTileEntity; 11 | import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; 12 | import gregtech.api.metatileentity.multiblock.IMultiblockPart; 13 | import gregtech.api.pattern.BlockPattern; 14 | import gregtech.api.pattern.FactoryBlockPattern; 15 | import gregtech.api.recipes.RecipeMaps; 16 | import gregtech.client.renderer.ICubeRenderer; 17 | import gregtech.client.renderer.texture.cube.OrientedOverlayRenderer; 18 | import gregtech.common.blocks.BlockBoilerCasing; 19 | import gregtech.common.blocks.MetaBlocks; 20 | 21 | import gregicality.multiblocks.api.metatileentity.GCYMRecipeMapMultiblockController; 22 | import gregicality.multiblocks.api.render.GCYMTextures; 23 | import gregicality.multiblocks.common.block.GCYMMetaBlocks; 24 | import gregicality.multiblocks.common.block.blocks.BlockLargeMultiblockCasing; 25 | 26 | public class MetaTileEntityLargeSolidifier extends GCYMRecipeMapMultiblockController { 27 | 28 | public MetaTileEntityLargeSolidifier(ResourceLocation metaTileEntityId) { 29 | super(metaTileEntityId, RecipeMaps.FLUID_SOLIDFICATION_RECIPES); 30 | } 31 | 32 | @Override 33 | public MetaTileEntity createMetaTileEntity(IGregTechTileEntity metaTileEntityHolder) { 34 | return new MetaTileEntityLargeSolidifier(this.metaTileEntityId); 35 | } 36 | 37 | @Override 38 | protected @NotNull BlockPattern createStructurePattern() { 39 | return FactoryBlockPattern.start(RIGHT, FRONT, UP) 40 | .aisle("#XXX#", "XXXXX", "XXXXX", "XXXXX", "#XXX#") 41 | .aisle("#XSX#", "XCTCX", "XAAAX", "XCACX", "#XXX#") 42 | .aisle("#XXX#", "XCACX", "XAAAX", "XCACX", "#XXX#") 43 | .aisle("#XXX#", "XXXXX", "XXXXX", "XXXXX", "#XXX#") 44 | .where('S', selfPredicate()) 45 | .where('X', states(getCasingState()).setMinGlobalLimited(45).or(autoAbilities())) 46 | .where('C', states(getCasingState2())) 47 | .where('T', tieredCasing().or(air())) 48 | .where('A', air()) 49 | .where('#', any()) 50 | .build(); 51 | } 52 | 53 | private static IBlockState getCasingState() { 54 | return GCYMMetaBlocks.LARGE_MULTIBLOCK_CASING.getState(BlockLargeMultiblockCasing.CasingType.WATERTIGHT_CASING); 55 | } 56 | 57 | private static IBlockState getCasingState2() { 58 | return MetaBlocks.BOILER_CASING.getState(BlockBoilerCasing.BoilerCasingType.STEEL_PIPE); 59 | } 60 | 61 | @Override 62 | public ICubeRenderer getBaseTexture(IMultiblockPart iMultiblockPart) { 63 | return GCYMTextures.WATERTIGHT_CASING; 64 | } 65 | 66 | @Override 67 | protected @NotNull OrientedOverlayRenderer getFrontOverlay() { 68 | return GCYMTextures.LARGE_SOLIDIFIER_OVERLAY; 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/common/metatileentities/multiblock/standard/MetaTileEntityLargeWiremill.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.common.metatileentities.multiblock.standard; 2 | 3 | import static gregtech.api.util.RelativeDirection.*; 4 | 5 | import net.minecraft.block.state.IBlockState; 6 | import net.minecraft.util.ResourceLocation; 7 | 8 | import org.jetbrains.annotations.NotNull; 9 | 10 | import gregtech.api.metatileentity.MetaTileEntity; 11 | import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; 12 | import gregtech.api.metatileentity.multiblock.IMultiblockPart; 13 | import gregtech.api.pattern.BlockPattern; 14 | import gregtech.api.pattern.FactoryBlockPattern; 15 | import gregtech.api.recipes.RecipeMaps; 16 | import gregtech.client.renderer.ICubeRenderer; 17 | import gregtech.client.renderer.texture.cube.OrientedOverlayRenderer; 18 | import gregtech.common.blocks.BlockTurbineCasing; 19 | import gregtech.common.blocks.MetaBlocks; 20 | 21 | import gregicality.multiblocks.api.metatileentity.GCYMRecipeMapMultiblockController; 22 | import gregicality.multiblocks.api.render.GCYMTextures; 23 | import gregicality.multiblocks.common.block.GCYMMetaBlocks; 24 | import gregicality.multiblocks.common.block.blocks.BlockLargeMultiblockCasing; 25 | 26 | public class MetaTileEntityLargeWiremill extends GCYMRecipeMapMultiblockController { 27 | 28 | public MetaTileEntityLargeWiremill(ResourceLocation metaTileEntityId) { 29 | super(metaTileEntityId, RecipeMaps.WIREMILL_RECIPES); 30 | } 31 | 32 | @Override 33 | public MetaTileEntity createMetaTileEntity(IGregTechTileEntity metaTileEntityHolder) { 34 | return new MetaTileEntityLargeWiremill(this.metaTileEntityId); 35 | } 36 | 37 | @Override 38 | protected @NotNull BlockPattern createStructurePattern() { 39 | return FactoryBlockPattern.start(FRONT, UP, RIGHT) 40 | .aisle("XXX", "XXX", "XXX") 41 | .aisle("XXX", "STX", "XXX") 42 | .aisle("XXX", "XCX", "XX#") 43 | .aisle("XXX", "XCX", "#X#") 44 | .aisle("XXX", "XXX", "#X#") 45 | .where('S', selfPredicate()) 46 | .where('X', states(getCasingState()).setMinGlobalLimited(25).or(autoAbilities())) 47 | .where('C', states(getCasingState2())) 48 | .where('T', tieredCasing().or(air())) 49 | .where('#', any()) 50 | .build(); 51 | } 52 | 53 | private static IBlockState getCasingState() { 54 | return GCYMMetaBlocks.LARGE_MULTIBLOCK_CASING 55 | .getState(BlockLargeMultiblockCasing.CasingType.STRESS_PROOF_CASING); 56 | } 57 | 58 | private static IBlockState getCasingState2() { 59 | return MetaBlocks.TURBINE_CASING.getState(BlockTurbineCasing.TurbineCasingType.TITANIUM_GEARBOX); 60 | } 61 | 62 | @Override 63 | public ICubeRenderer getBaseTexture(IMultiblockPart iMultiblockPart) { 64 | return GCYMTextures.STRESS_PROOF_CASING; 65 | } 66 | 67 | @Override 68 | protected @NotNull OrientedOverlayRenderer getFrontOverlay() { 69 | return GCYMTextures.LARGE_WIREMILL_OVERLAY; 70 | } 71 | 72 | @Override 73 | public boolean canBeDistinct() { 74 | return true; 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/common/metatileentities/multiblock/standard/MetaTileEntityLargeCentrifuge.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.common.metatileentities.multiblock.standard; 2 | 3 | import static gregtech.api.util.RelativeDirection.*; 4 | 5 | import net.minecraft.block.state.IBlockState; 6 | import net.minecraft.util.ResourceLocation; 7 | 8 | import org.jetbrains.annotations.NotNull; 9 | 10 | import gregtech.api.metatileentity.MetaTileEntity; 11 | import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; 12 | import gregtech.api.metatileentity.multiblock.IMultiblockPart; 13 | import gregtech.api.pattern.BlockPattern; 14 | import gregtech.api.pattern.FactoryBlockPattern; 15 | import gregtech.api.recipes.RecipeMap; 16 | import gregtech.api.recipes.RecipeMaps; 17 | import gregtech.client.renderer.ICubeRenderer; 18 | import gregtech.client.renderer.texture.cube.OrientedOverlayRenderer; 19 | import gregtech.common.blocks.BlockBoilerCasing; 20 | import gregtech.common.blocks.MetaBlocks; 21 | 22 | import gregicality.multiblocks.api.metatileentity.GCYMRecipeMapMultiblockController; 23 | import gregicality.multiblocks.api.render.GCYMTextures; 24 | import gregicality.multiblocks.common.block.GCYMMetaBlocks; 25 | import gregicality.multiblocks.common.block.blocks.BlockLargeMultiblockCasing; 26 | 27 | public class MetaTileEntityLargeCentrifuge extends GCYMRecipeMapMultiblockController { 28 | 29 | public MetaTileEntityLargeCentrifuge(ResourceLocation metaTileEntityId) { 30 | super(metaTileEntityId, 31 | new RecipeMap[] { RecipeMaps.CENTRIFUGE_RECIPES, RecipeMaps.THERMAL_CENTRIFUGE_RECIPES }); 32 | } 33 | 34 | @Override 35 | public MetaTileEntity createMetaTileEntity(IGregTechTileEntity metaTileEntityHolder) { 36 | return new MetaTileEntityLargeCentrifuge(this.metaTileEntityId); 37 | } 38 | 39 | @Override 40 | protected @NotNull BlockPattern createStructurePattern() { 41 | return FactoryBlockPattern.start(RIGHT, FRONT, UP) 42 | .aisle("#XXX#", "XXXXX", "XXXXX", "XXXXX", "#XXX#") 43 | .aisle("XXSXX", "XACAX", "XCTCX", "XACAX", "XXXXX") 44 | .aisle("#XXX#", "XXXXX", "XXXXX", "XXXXX", "#XXX#") 45 | .where('S', selfPredicate()) 46 | .where('X', states(getCasingState()).setMinGlobalLimited(40).or(autoAbilities())) 47 | .where('C', states(getCasingState2())) 48 | .where('T', tieredCasing().or(air())) 49 | .where('A', air()) 50 | .where('#', any()) 51 | .build(); 52 | } 53 | 54 | private static IBlockState getCasingState() { 55 | return GCYMMetaBlocks.LARGE_MULTIBLOCK_CASING 56 | .getState(BlockLargeMultiblockCasing.CasingType.VIBRATION_SAFE_CASING); 57 | } 58 | 59 | private static IBlockState getCasingState2() { 60 | return MetaBlocks.BOILER_CASING.getState(BlockBoilerCasing.BoilerCasingType.STEEL_PIPE); 61 | } 62 | 63 | @Override 64 | public ICubeRenderer getBaseTexture(IMultiblockPart iMultiblockPart) { 65 | return GCYMTextures.VIBRATION_SAFE_CASING; 66 | } 67 | 68 | @Override 69 | protected @NotNull OrientedOverlayRenderer getFrontOverlay() { 70 | return GCYMTextures.LARGE_CENTRIFUGE_OVERLAY; 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /src/main/java/gregicality/multiblocks/common/metatileentities/multiblock/standard/MetaTileEntityLargeExtruder.java: -------------------------------------------------------------------------------- 1 | package gregicality.multiblocks.common.metatileentities.multiblock.standard; 2 | 3 | import net.minecraft.block.state.IBlockState; 4 | import net.minecraft.util.ResourceLocation; 5 | 6 | import org.jetbrains.annotations.NotNull; 7 | 8 | import gregtech.api.metatileentity.MetaTileEntity; 9 | import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; 10 | import gregtech.api.metatileentity.multiblock.IMultiblockPart; 11 | import gregtech.api.pattern.BlockPattern; 12 | import gregtech.api.pattern.FactoryBlockPattern; 13 | import gregtech.api.recipes.RecipeMaps; 14 | import gregtech.client.renderer.ICubeRenderer; 15 | import gregtech.client.renderer.texture.cube.OrientedOverlayRenderer; 16 | import gregtech.common.blocks.BlockBoilerCasing; 17 | import gregtech.common.blocks.BlockGlassCasing; 18 | import gregtech.common.blocks.MetaBlocks; 19 | 20 | import gregicality.multiblocks.api.metatileentity.GCYMRecipeMapMultiblockController; 21 | import gregicality.multiblocks.api.render.GCYMTextures; 22 | import gregicality.multiblocks.common.block.GCYMMetaBlocks; 23 | import gregicality.multiblocks.common.block.blocks.BlockLargeMultiblockCasing; 24 | 25 | public class MetaTileEntityLargeExtruder extends GCYMRecipeMapMultiblockController { 26 | 27 | public MetaTileEntityLargeExtruder(ResourceLocation metaTileEntityId) { 28 | super(metaTileEntityId, RecipeMaps.EXTRUDER_RECIPES); 29 | } 30 | 31 | @Override 32 | public MetaTileEntity createMetaTileEntity(IGregTechTileEntity metaTileEntityHolder) { 33 | return new MetaTileEntityLargeExtruder(this.metaTileEntityId); 34 | } 35 | 36 | @Override 37 | protected @NotNull BlockPattern createStructurePattern() { 38 | return FactoryBlockPattern.start() 39 | .aisle("##XXX", "##XXX", "##XXX") 40 | .aisle("##XXX", "##XPX", "##XGX").setRepeatable(2) 41 | .aisle("XXXXX", "XXXPX", "XXXGX") 42 | .aisle("XXXXX", "XTXPX", "XXXGX") 43 | .aisle("XXXXX", "XSXXX", "XXXXX") 44 | .where('S', selfPredicate()) 45 | .where('X', states(getCasingState()).setMinGlobalLimited(40).or(autoAbilities())) 46 | .where('P', states(getCasingState2())) 47 | .where('G', states(getCasingState3())) 48 | .where('T', tieredCasing().or(air())) 49 | .where('#', any()) 50 | .build(); 51 | } 52 | 53 | private static IBlockState getCasingState() { 54 | return GCYMMetaBlocks.LARGE_MULTIBLOCK_CASING 55 | .getState(BlockLargeMultiblockCasing.CasingType.STRESS_PROOF_CASING); 56 | } 57 | 58 | private static IBlockState getCasingState2() { 59 | return MetaBlocks.BOILER_CASING.getState(BlockBoilerCasing.BoilerCasingType.TITANIUM_PIPE); 60 | } 61 | 62 | private static IBlockState getCasingState3() { 63 | return MetaBlocks.TRANSPARENT_CASING.getState(BlockGlassCasing.CasingType.TEMPERED_GLASS); 64 | } 65 | 66 | @Override 67 | public ICubeRenderer getBaseTexture(IMultiblockPart iMultiblockPart) { 68 | return GCYMTextures.STRESS_PROOF_CASING; 69 | } 70 | 71 | @Override 72 | protected @NotNull OrientedOverlayRenderer getFrontOverlay() { 73 | return GCYMTextures.LARGE_EXTRUDER_OVERLAY; 74 | } 75 | 76 | @Override 77 | public boolean canBeDistinct() { 78 | return true; 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /dependencies.gradle: -------------------------------------------------------------------------------- 1 | //file:noinspection DependencyNotationArgument 2 | // TODO remove when fixed in RFG ^ 3 | /* 4 | * Add your dependencies here. Supported configurations: 5 | * - api("group:name:version:classifier"): if you use the types from this dependency in the public API of this mod 6 | * Available at runtime and compiletime for mods depending on this mod 7 | * - implementation("g:n:v:c"): if you need this for internal implementation details of the mod, but none of it is visible via the public API 8 | * Available at runtime but not compiletime for mods depending on this mod 9 | * - compileOnly("g:n:v:c"): if the mod you're building doesn't need this dependency during runtime at all, e.g. for optional mods 10 | * Not available at all for mods depending on this mod, only visible at compiletime for this mod 11 | * - compileOnlyApi("g:n:v:c"): like compileOnly, but also visible at compiletime for mods depending on this mod 12 | * Available at compiletime but not runtime for mods depending on this mod 13 | * - runtimeOnlyNonPublishable("g:n:v:c"): if you want to include a mod in this mod's runClient/runServer runs, but not publish it as a dependency 14 | * Not available at all for mods depending on this mod, only visible at runtime for this mod 15 | * - devOnlyNonPublishable("g:n:v:c"): a combination of runtimeOnlyNonPublishable and compileOnly for dependencies present at both compiletime and runtime, 16 | * but not published as Maven dependencies - useful for RFG-deobfuscated dependencies or local testing 17 | * - runtimeOnly("g:n:v:c"): if you don't need this at compile time, but want it to be present at runtime 18 | * Available at runtime for mods depending on this mod 19 | * - annotationProcessor("g:n:v:c"): mostly for java compiler plugins, if you know you need this, use it, otherwise don't worry 20 | * - testCONFIG("g:n:v:c") - replace CONFIG by one of the above (except api), same as above but for the test sources instead of main 21 | * 22 | * - shadowImplementation("g:n:v:c"): effectively the same as API, but the dependency is included in your jar under a renamed package name 23 | * Requires you to enable usesShadowedDependencies in gradle.properties 24 | * For more info, see https://github.com/GregTechCEu/Buildscripts/blob/master/docs/shadow.md 25 | * 26 | * You can exclude transitive dependencies (dependencies of the chosen dependency) by appending { transitive = false } if needed, 27 | * but use this sparingly as it can break using your mod as another mod's dependency if you're not careful. 28 | * 29 | * To depend on obfuscated jars you can use `devOnlyNonPublishable(rfg.deobf("dep:spec:1.2.3"))` to fetch an obfuscated jar from maven, 30 | * or `devOnlyNonPublishable(rfg.deobf(project.files("libs/my-mod-jar.jar")))` to use a file. 31 | * 32 | * To add a mod with CurseMaven, replace '("g:n:v:c")' in the above with 'rfg.deobf("curse.maven:project_slug-project_id:file_id")' 33 | * Example: devOnlyNonPublishable(rfg.deobf("curse.maven:top-245211:2667280")) 34 | * 35 | * Gradle names for some of the configuration can be misleading, compileOnlyApi and runtimeOnly both get published as dependencies in Maven, but compileOnly does not. 36 | * The buildscript adds runtimeOnlyNonPublishable to also have a runtime dependency that's not published. 37 | * 38 | * For more details, see https://docs.gradle.org/8.4/userguide/java_library_plugin.html#sec:java_library_configurations_graph 39 | */ 40 | dependencies { 41 | api("gregtech:gregtech:2.8.10-beta") 42 | } 43 | --------------------------------------------------------------------------------