From e38db3237aa6cbec2e71aa502b73bf924a1b9799 Mon Sep 17 00:00:00 2001 From: screret <68943070+screret@users.noreply.github.com> Date: Sun, 12 Nov 2023 22:14:11 +0200 Subject: [PATCH] Sc/cherrypick to 1.19 (#542) * Fixes (#520) * fix: return correct capability for lasers * feat: insert covers directly into inventory on crowbar use, if possible * fix: capability IO directions * feat: render locked contents for quantum storage when empty (#524) * Fix item pipe transfer rate (#530) * refactor: extract transfer rate counting from fluid pipe nets * fix: item pipes now limit their transfer correctly * Fix steam boilers (#532) * fix: small steam boilers output steam again * refactor: rename method in SteamBoilerMachine * fix: display correct temperature in large boilers * feat: add temperature tooltip in small boilers * Manual IO modes on covers (#536) * style: reformat some code in MetaMachine * refactor: allow covers to override item and fluid transfer capabilities * feat: UI controls for distribution & manual IO mode * feat: handle manual IO mode when transferring through covers * refactor: make previously added @ExpectPlatform method static * refactor: improve tooltip for insert_first distribution mode * Inject models into resource manager (#529) * fix: define outgoing API elements. * fuck this is annoying, @KilaBash fix the rendering system pls * feat: the thing. currently throws a shitton of errors. fun. * ok why does 1/15 items have a model wtf * would you rather have no errors and 5x memory usage or errors, infinite errors and 5x memory usage * remove unused stuff. * fix: remove texture generation, used too much ram; where'd my block textures go? * fix: add mixinextras version to deps. * IT FUCKING WORKS :LLEETTSS: * make ore blocks be able to accept 2 textures, signified by: 1. no suffix in the filename 2. `_layer2` in the filename * fix ore blocks' tint layers * feat: megacommit A la textures * feat: all the secondary colors. until @TTFTCUTS makes/gives me the block textures, I can't do the block models. * fix laser pipes * add possibility for secondary textures in cables/pipes/wires * fix: lang issues * feat: recipes for active transformer, high power casing, laser cable * fix: add blank texture to not have errors because of missing secondary sprites. * chore: reviews * fixes (#539) * feat: allow singleblock generators to face up * fix: allow tools to use their last durability point * fix: disable worldstripper in dev * fix: wrong operator on large boiler tooltip * chore: run data * fix: special check for diode in Cleanroom energy hatch collection * chore: update changelog --------- Co-authored-by: Mikerooni <139889766+mikerooni@users.noreply.github.com> --- CHANGELOG.md | 14 ++ common/build.gradle | 12 + .../com/gregtechceu/gtceu/api/GTValues.java | 10 + .../gtceu/api/block/MaterialBlock.java | 29 +-- .../gtceu/api/block/MetaMachineBlock.java | 2 +- .../gtceu/api/block/PipeBlock.java | 8 +- .../api/block/RendererMaterialBlock.java | 26 +++ .../api/blockentity/PipeBlockEntity.java | 12 +- .../gtceu/api/capability/ICoverable.java | 20 +- .../gtceu/api/cover/CoverBehavior.java | 15 ++ .../gtceu/api/cover/filter/FilterHandler.java | 4 + .../api/data/chemical/material/Material.java | 28 +++ .../material/info/MaterialIconType.java | 83 ++++++- .../gtceu/api/data/tag/TagPrefix.java | 1 + .../widget/CoverContainerConfigurator.java | 4 +- .../gtceu/api/item/GTToolItem.java | 17 +- .../gtceu/api/item/LaserPipeBlockItem.java | 2 +- .../gtceu/api/item/MaterialBlockItem.java | 12 +- .../gtceu/api/item/TagPrefixItem.java | 13 +- .../gtceu/api/item/tool/ToolHelper.java | 2 +- .../api/machine/MachineCoverContainer.java | 12 + .../gtceu/api/machine/MetaMachine.java | 58 +++-- .../api/machine/steam/SteamBoilerMachine.java | 25 +- .../machine/trait/FluidTankProxyTrait.java | 4 +- .../machine/trait/NotifiableFluidTank.java | 3 +- .../gtceu/api/misc/RateCounter.java | 65 ++++++ .../gtceu/api/pipenet/PipeCoverContainer.java | 24 ++ .../transfer/fluid/FluidTransferDelegate.java | 99 ++++++++ .../api/transfer/fluid/NoOpFluidTransfer.java | 75 ++++++ .../transfer/item/ItemTransferDelegate.java | 82 +++++++ .../api/transfer/item/NoOpItemTransfer.java | 62 +++++ .../gtceu/client/model/PipeModel.java | 37 ++- .../renderer/block/MaterialBlockRenderer.java | 101 ++++++-- .../renderer/block/OreBlockRenderer.java | 25 +- .../renderer/item/TagPrefixItemRenderer.java | 139 +++++------ .../renderer/item/ToolItemRenderer.java | 36 +-- .../machine/QuantumChestRenderer.java | 56 ++--- .../renderer/machine/QuantumTankRenderer.java | 57 ++--- .../gtceu/common/block/LaserPipeBlock.java | 19 +- .../blockentity/FluidPipeBlockEntity.java | 17 +- .../blockentity/ItemPipeBlockEntity.java | 26 +-- .../gtceu/common/cover/ConveyorCover.java | 85 +++++-- .../gtceu/common/cover/PumpCover.java | 64 +++++- .../common/cover/data/DistributionMode.java | 12 +- .../gtceu/common/cover/data/ManualIOMode.java | 29 +++ .../cover/data/ManualImportExportMode.java | 30 --- .../cover/voiding/FluidVoidingCover.java | 2 +- .../gtceu/common/data/GTBlocks.java | 22 +- .../gtceu/common/data/GTMachines.java | 4 +- .../gtceu/common/data/GTMaterials.java | 3 + .../data/materials/ElementMaterials.java | 174 +++++++------- .../data/materials/FirstDegreeMaterials.java | 186 ++++++++------- .../data/materials/HigherDegreeMaterials.java | 27 +-- .../materials/OrganicChemistryMaterials.java | 30 ++- .../data/materials/SecondDegreeMaterials.java | 56 +++-- .../UnknownCompositionMaterials.java | 40 ++-- .../multiblock/electric/CleanroomMachine.java | 2 + .../multiblock/steam/LargeBoilerMachine.java | 3 +- .../machine/storage/QuantumChestMachine.java | 7 +- .../machine/storage/QuantumTankMachine.java | 2 +- .../common/pipelike/cable/Insulation.java | 8 +- .../pipelike/fluidpipe/FluidPipeNet.java | 97 ++------ .../pipelike/fluidpipe/FluidPipeType.java | 5 +- .../common/pipelike/item/ItemNetHandler.java | 28 ++- .../common/pipelike/item/ItemPipeType.java | 5 +- .../common/pipelike/laser/LaserPipeType.java | 10 +- .../gtceu/config/ConfigHolder.java | 3 + .../gregtechceu/gtceu/core/MixinHelpers.java | 38 +++- .../gtceu/core/mixins/MinecraftMixin.java | 22 ++ .../core/mixins/MinecraftServerMixin.java | 2 +- .../mixins/WorldLoaderPackConfigMixin.java | 2 +- .../gtceu/data/lang/BlockLang.java | 85 +++---- .../gtceu/data/lang/LangHandler.java | 68 ++++-- .../gtceu/data/lang/MachineLang.java | 4 + .../gtceu/data/pack/GTDynamicDataPack.java | 20 +- .../data/pack/GTDynamicResourcePack.java | 208 +++++++++++++++++ .../data/recipe/misc/ComputerRecipes.java | 49 ++++ .../data/recipe/misc/MachineRecipeLoader.java | 2 + .../recipe/misc/MetaTileEntityLoader.java | 2 +- .../MetaTileEntityMachineRecipeLoader.java | 5 +- .../serialized/chemistry/MixerRecipes.java | 6 + .../serialized/chemistry/ReactorRecipes.java | 28 +++ .../gregtechceu/gtceu/utils/GradientUtil.java | 52 +++++ .../block/cube_2_layer_tintindex_both.json | 30 +++ .../block/material_sets/dull/block.json | 6 + .../block/material_sets/dull/frame_gt.json | 6 + .../material_sets/dull/raw_ore_block.json | 6 + .../block/material_sets/emerald/block.json | 6 + .../block/material_sets/fine/block.json | 6 + .../block/material_sets/glass/block.json | 6 + .../block/material_sets/lapis/block.json | 6 + .../block/material_sets/lignite/block.json | 6 + .../material_sets/lignite/raw_ore_block.json | 6 + .../material_sets/metallic/raw_ore_block.json | 6 + .../block/material_sets/netherstar/block.json | 6 + .../block/material_sets/opal/block.json | 6 + .../block/material_sets/paper/block.json | 6 + .../block/material_sets/paper/frame_gt.json | 6 + .../block/material_sets/powder/block.json | 6 + .../block/material_sets/powder/frame_gt.json | 6 + .../block/material_sets/quartz/block.json | 6 + .../block/material_sets/rough/block.json | 6 + .../material_sets/rough/raw_ore_block.json | 6 + .../block/material_sets/sand/block.json | 6 + .../block/material_sets/shiny/block.json | 6 + .../material_sets/shiny/raw_ore_block.json | 6 + .../block/material_sets/wood/block.json | 6 + .../gtceu/models/block/tinted_cube_all_0.json | 52 +++++ .../item/material_sets/bright/bolt.json | 2 +- .../bright/{dust.json => dust.json_old} | 2 +- .../{dust_small.json => dust_small.json_old} | 2 +- .../{dust_tiny.json => dust_tiny.json_old} | 2 +- .../item/material_sets/bright/foil.json | 8 + .../item/material_sets/bright/gear.json | 8 + .../item/material_sets/bright/gear_small.json | 8 + .../item/material_sets/bright/ingot.json | 6 +- .../material_sets/bright/ingot_double.json | 4 +- .../item/material_sets/bright/ingot_hot.json | 7 + .../item/material_sets/bright/nugget.json | 2 +- .../item/material_sets/bright/plate.json | 6 +- .../material_sets/bright/plate_dense.json | 2 +- .../material_sets/bright/plate_double.json | 2 +- .../models/item/material_sets/bright/rod.json | 2 +- .../item/material_sets/bright/rod_long.json | 2 +- .../item/material_sets/bright/rotor.json | 6 + .../item/material_sets/bright/round.json | 2 +- .../item/material_sets/bright/screw.json | 6 + .../item/material_sets/bright/spring.json | 6 + .../material_sets/bright/spring_small.json | 6 + .../material_sets/bright/turbine_blade.json | 6 + .../item/material_sets/bright/wire_fine.json | 6 + .../models/item/material_sets/certus/gem.json | 3 +- .../item/material_sets/diamond/gem.json | 3 +- .../item/material_sets/diamond/raw_ore.json | 3 +- .../models/item/material_sets/dull/bolt.json | 3 +- .../item/material_sets/dull/crushed.json | 3 +- .../material_sets/dull/crushed_purified.json | 3 +- .../material_sets/dull/crushed_refined.json | 4 +- .../models/item/material_sets/dull/dust.json | 3 +- .../item/material_sets/dull/dust_impure.json | 3 +- .../item/material_sets/dull/dust_pure.json | 3 +- .../item/material_sets/dull/dust_small.json | 3 +- .../item/material_sets/dull/dust_tiny.json | 3 +- .../models/item/material_sets/dull/foil.json | 3 +- .../models/item/material_sets/dull/gear.json | 3 +- .../item/material_sets/dull/gear_small.json | 3 +- .../models/item/material_sets/dull/gem.json | 3 +- .../item/material_sets/dull/gem_chipped.json | 3 +- .../material_sets/dull/gem_exquisite.json | 3 +- .../item/material_sets/dull/gem_flawed.json | 3 +- .../item/material_sets/dull/gem_flawless.json | 3 +- .../models/item/material_sets/dull/ingot.json | 4 +- .../item/material_sets/dull/ingot_double.json | 5 +- .../item/material_sets/dull/ingot_hot.json | 5 +- .../models/item/material_sets/dull/lens.json | 3 +- .../item/material_sets/dull/nugget.json | 3 +- .../models/item/material_sets/dull/plate.json | 3 +- .../item/material_sets/dull/plate_dense.json | 3 +- .../item/material_sets/dull/plate_double.json | 5 +- .../item/material_sets/dull/raw_ore.json | 3 +- .../models/item/material_sets/dull/ring.json | 3 +- .../models/item/material_sets/dull/rod.json | 3 +- .../item/material_sets/dull/rod_long.json | 3 +- .../models/item/material_sets/dull/rotor.json | 3 +- .../models/item/material_sets/dull/round.json | 3 +- .../models/item/material_sets/dull/screw.json | 3 +- .../item/material_sets/dull/spring.json | 3 +- .../item/material_sets/dull/spring_small.json | 3 +- .../dull/tool_head_buzz_saw.json | 3 +- .../dull/tool_head_chainsaw.json | 3 +- .../material_sets/dull/tool_head_drill.json | 3 +- .../dull/tool_head_screwdriver.json | 3 +- .../material_sets/dull/tool_head_wrench.json | 3 +- .../material_sets/dull/turbine_blade.json | 3 +- .../item/material_sets/dull/wire_fine.json | 3 +- .../item/material_sets/emerald/gem.json | 3 +- .../models/item/material_sets/fine/dust.json | 3 +- .../item/material_sets/fine/dust_impure.json | 3 +- .../item/material_sets/fine/dust_pure.json | 3 +- .../item/material_sets/fine/dust_small.json | 3 +- .../item/material_sets/fine/dust_tiny.json | 3 +- .../models/item/material_sets/fine/gem.json | 7 - .../item/material_sets/fine/gem_chipped.json | 7 - .../item/material_sets/fine/gem_flawed.json | 7 - .../item/material_sets/fine/raw_ore.json | 3 +- .../models/item/material_sets/flint/gem.json | 3 +- .../material_sets/gem_horizontal/gem.json | 3 +- .../item/material_sets/gem_vertical/gem.json | 3 +- .../models/item/material_sets/lapis/gem.json | 3 +- .../item/material_sets/lignite/gem.json | 3 +- .../item/material_sets/magnetic/bolt.json | 2 +- .../item/material_sets/magnetic/crushed.json | 2 +- .../magnetic/crushed_purified.json | 2 +- .../magnetic/crushed_refined.json | 2 +- .../item/material_sets/magnetic/dust.json | 2 +- .../material_sets/magnetic/dust_impure.json | 2 +- .../material_sets/magnetic/dust_pure.json | 2 +- .../material_sets/magnetic/dust_small.json | 2 +- .../material_sets/magnetic/dust_tiny.json | 2 +- .../item/material_sets/magnetic/foil.json | 2 +- .../item/material_sets/magnetic/gear.json | 2 +- .../material_sets/magnetic/gear_small.json | 2 +- .../item/material_sets/magnetic/gem.json | 2 +- .../material_sets/magnetic/gem_chipped.json | 3 +- .../material_sets/magnetic/gem_exquisite.json | 2 +- .../material_sets/magnetic/gem_flawed.json | 2 +- .../material_sets/magnetic/gem_flawless.json | 2 +- .../item/material_sets/magnetic/ingot.json | 2 +- .../material_sets/magnetic/ingot_double.json | 2 +- .../item/material_sets/magnetic/lens.json | 2 +- .../item/material_sets/magnetic/nugget.json | 2 +- .../item/material_sets/magnetic/plate.json | 2 +- .../material_sets/magnetic/plate_dense.json | 2 +- .../material_sets/magnetic/plate_double.json | 2 +- .../item/material_sets/magnetic/rod.json | 2 +- .../item/material_sets/magnetic/rod_long.json | 2 +- .../item/material_sets/magnetic/rotor.json | 2 +- .../item/material_sets/magnetic/round.json | 2 +- .../item/material_sets/magnetic/screw.json | 2 +- .../item/material_sets/magnetic/spring.json | 2 +- .../material_sets/magnetic/spring_small.json | 2 +- .../material_sets/magnetic/tool_head_axe.json | 2 +- .../magnetic/tool_head_buzz_saw.json | 2 +- .../magnetic/tool_head_chainsaw.json | 2 +- .../magnetic/tool_head_drill.json | 2 +- .../magnetic/tool_head_file.json | 2 +- .../magnetic/tool_head_hammer.json | 2 +- .../material_sets/magnetic/tool_head_hoe.json | 2 +- .../magnetic/tool_head_mallet.json | 2 +- .../magnetic/tool_head_pickaxe.json | 2 +- .../material_sets/magnetic/tool_head_saw.json | 2 +- .../magnetic/tool_head_screwdriver.json | 2 +- .../magnetic/tool_head_scythe.json | 2 +- .../magnetic/tool_head_shovel.json | 2 +- .../magnetic/tool_head_sword.json | 2 +- .../magnetic/tool_head_wrench.json | 2 +- .../material_sets/magnetic/turbine_blade.json | 2 +- .../material_sets/magnetic/wire_fine.json | 2 +- .../item/material_sets/metallic/bolt.json | 3 +- .../item/material_sets/metallic/dust.json | 3 +- .../material_sets/metallic/dust_impure.json | 3 +- .../material_sets/metallic/dust_pure.json | 3 +- .../material_sets/metallic/dust_small.json | 3 +- .../material_sets/metallic/dust_tiny.json | 3 +- .../item/material_sets/metallic/ingot.json | 4 +- .../material_sets/metallic/ingot_double.json | 4 +- .../material_sets/metallic/ingot_hot.json | 6 + .../item/material_sets/metallic/nugget.json | 3 +- .../item/material_sets/metallic/plate.json | 3 +- .../material_sets/metallic/plate_dense.json | 3 +- .../material_sets/metallic/plate_double.json | 5 +- .../item/material_sets/metallic/raw_ore.json | 3 +- .../item/material_sets/metallic/rod.json | 3 +- .../item/material_sets/metallic/rod_long.json | 3 +- .../item/material_sets/metallic/round.json | 3 +- .../item/material_sets/metallic/screw.json | 3 +- .../item/material_sets/netherstar/gem.json | 3 +- .../models/item/material_sets/opal/gem.json | 2 +- .../item/material_sets/quartz/dust.json | 3 +- .../material_sets/quartz/dust_impure.json | 3 +- .../item/material_sets/quartz/dust_pure.json | 3 +- .../item/material_sets/quartz/dust_small.json | 3 +- .../item/material_sets/quartz/dust_tiny.json | 3 +- .../models/item/material_sets/quartz/gem.json | 3 +- .../item/material_sets/radioactive/bolt.json | 6 + .../material_sets/radioactive/crushed.json | 6 + .../radioactive/crushed_purified.json | 6 + .../radioactive/crushed_refined.json | 6 + .../item/material_sets/radioactive/dust.json | 6 + .../radioactive/dust_impure.json | 6 + .../material_sets/radioactive/dust_pure.json | 6 + .../material_sets/radioactive/dust_small.json | 6 + .../material_sets/radioactive/dust_tiny.json | 6 + .../item/material_sets/radioactive/foil.json | 6 + .../item/material_sets/radioactive/gear.json | 6 + .../material_sets/radioactive/gear_small.json | 6 + .../item/material_sets/radioactive/gem.json | 6 + .../radioactive/gem_chipped.json | 6 + .../radioactive/gem_exquisite.json | 6 + .../material_sets/radioactive/gem_flawed.json | 6 + .../radioactive/gem_flawless.json | 6 + .../item/material_sets/radioactive/ingot.json | 6 + .../radioactive/ingot_double.json | 6 + .../material_sets/radioactive/ingot_hot.json | 6 + .../item/material_sets/radioactive/lens.json | 6 + .../material_sets/radioactive/nugget.json | 6 + .../item/material_sets/radioactive/plate.json | 6 + .../radioactive/plate_dense.json | 6 + .../radioactive/plate_double.json | 6 + .../material_sets/radioactive/raw_ore.json | 6 + .../item/material_sets/radioactive/ring.json | 6 + .../item/material_sets/radioactive/rod.json | 6 + .../material_sets/radioactive/rod_long.json | 6 + .../item/material_sets/radioactive/rotor.json | 6 + .../item/material_sets/radioactive/round.json | 6 + .../item/material_sets/radioactive/screw.json | 6 + .../material_sets/radioactive/spring.json | 6 + .../radioactive/spring_small.json | 6 + .../radioactive/tool_head_buzz_saw.json | 6 + .../radioactive/tool_head_chainsaw.json | 6 + .../radioactive/tool_head_drill.json | 6 + .../radioactive/tool_head_screwdriver.json | 6 + .../radioactive/tool_head_wrench.json | 6 + .../radioactive/turbine_blade.json | 6 + .../material_sets/radioactive/wire_fine.json | 6 + .../models/item/material_sets/rough/dust.json | 3 +- .../item/material_sets/rough/dust_impure.json | 3 +- .../item/material_sets/rough/dust_pure.json | 3 +- .../item/material_sets/rough/dust_small.json | 3 +- .../item/material_sets/rough/dust_tiny.json | 3 +- .../models/item/material_sets/rough/gear.json | 3 +- .../item/material_sets/rough/gear_small.json | 7 + .../item/material_sets/rough/ingot.json | 7 + .../item/material_sets/rough/plate.json | 4 +- .../item/material_sets/rough/plate_dense.json | 3 +- .../material_sets/rough/plate_double.json | 4 +- .../models/item/material_sets/ruby/gem.json | 3 +- .../item/material_sets/sand/crushed.json | 5 +- .../material_sets/sand/crushed_purified.json | 3 +- .../material_sets/sand/crushed_refined.json | 6 - .../models/item/material_sets/sand/dust.json | 3 +- .../item/material_sets/sand/dust_impure.json | 3 +- .../item/material_sets/sand/dust_pure.json | 3 +- .../item/material_sets/sand/dust_small.json | 3 +- .../item/material_sets/sand/dust_tiny.json | 3 +- .../models/item/material_sets/shiny/bolt.json | 3 +- .../material_sets/shiny/crushed_refined.json | 9 + .../models/item/material_sets/shiny/dust.json | 3 +- .../item/material_sets/shiny/dust_impure.json | 3 +- .../item/material_sets/shiny/dust_pure.json | 7 +- .../item/material_sets/shiny/dust_small.json | 3 +- .../item/material_sets/shiny/dust_tiny.json | 3 +- .../models/item/material_sets/shiny/foil.json | 8 + .../models/item/material_sets/shiny/gear.json | 3 +- .../item/material_sets/shiny/gear_small.json | 3 +- .../item/material_sets/shiny/ingot.json | 3 +- .../material_sets/shiny/ingot_double.json | 5 +- .../item/material_sets/shiny/ingot_hot.json | 6 + .../item/material_sets/shiny/nugget.json | 3 +- .../item/material_sets/shiny/plate.json | 3 +- .../item/material_sets/shiny/plate_dense.json | 3 +- .../material_sets/shiny/plate_double.json | 5 +- .../item/material_sets/shiny/raw_ore.json | 4 +- .../models/item/material_sets/shiny/ring.json | 6 +- .../models/item/material_sets/shiny/rod.json | 3 +- .../item/material_sets/shiny/rod_long.json | 3 +- .../item/material_sets/shiny/rotor.json | 8 + .../item/material_sets/shiny/round.json | 3 +- .../item/material_sets/shiny/screw.json | 3 +- .../item/material_sets/shiny/spring.json | 8 + .../material_sets/shiny/spring_small.json | 8 + .../shiny/tool_head_buzz_saw.json | 8 + .../shiny/tool_head_chainsaw.json | 7 + .../material_sets/shiny/tool_head_drill.json | 7 + .../shiny/tool_head_screwdriver.json | 8 + .../material_sets/shiny/tool_head_wrench.json | 8 + .../material_sets/shiny/turbine_blade.json | 8 + .../item/material_sets/shiny/wire_fine.json | 9 + .../models/item/material_sets/wood/gear.json | 3 +- .../models/item/material_sets/wood/plate.json | 3 +- .../item/material_sets/wood/plate_double.json | 3 +- .../models/item/material_sets/wood/rod.json | 3 +- .../item/material_sets/wood/rod_long.json | 3 +- .../models/item/material_sets/wood/screw.json | 3 +- .../dull/{wire.png => wire_end.png} | Bin .../block/material_sets/dull/wire_side.png | Bin 0 -> 747 bytes .../icon/distribution_mode/insert_first.png | Bin 0 -> 263 bytes .../distribution_mode/round_robin_global.png | Bin 0 -> 295 bytes .../distribution_mode/round_robin_prio.png | Bin 0 -> 299 bytes .../gui/icon/manual_io_mode/disabled.png | Bin 0 -> 254 bytes .../gui/icon/manual_io_mode/filtered.png | Bin 0 -> 329 bytes .../gui/icon/manual_io_mode/unfiltered.png | Bin 0 -> 303 bytes .../gui/widget/button_distribution_mode.png | Bin 765 -> 389 bytes .../textures/item/material_sets/blank.png | Bin 0 -> 1203 bytes .../material_sets/bright/foil_overlay.png | Bin 0 -> 128 bytes .../item/material_sets/bright/gear.png | Bin 0 -> 362 bytes .../material_sets/bright/gear_overlay.png | Bin 0 -> 111 bytes .../bright/gear_small_overlay.png | Bin 0 -> 105 bytes .../item/material_sets/bright/ingot.png | Bin 0 -> 5535 bytes .../material_sets/bright/ingot_overlay.png | Bin 276 -> 5377 bytes .../item/material_sets/bright/plate.png | Bin 0 -> 312 bytes .../material_sets/bright/plate_overlay.png | Bin 341 -> 138 bytes .../material_sets/bright/rotor_overlay.png | Bin 0 -> 135 bytes .../material_sets/bright/screw_overlay.png | Bin 182 -> 125 bytes .../material_sets/bright/spring_overlay.png | Bin 0 -> 155 bytes .../bright/spring_small_overlay.png | Bin 0 -> 130 bytes .../bright/turbine_blade_overlay.png | Bin 0 -> 113 bytes .../bright/wire_fine_overlay.png | Bin 0 -> 112 bytes .../item/material_sets/dull/crushed.png | Bin 252 -> 5937 bytes .../material_sets/dull/crushed_overlay.png | Bin 592 -> 5910 bytes .../material_sets/dull/crushed_refined.png | Bin 374 -> 5557 bytes .../dull/crushed_refined_overlay.png | Bin 0 -> 5561 bytes .../textures/item/material_sets/dull/dust.png | Bin 342 -> 346 bytes .../item/material_sets/dull/dust_impure.png | Bin 407 -> 374 bytes .../dull/dust_impure_overlay.png | Bin 540 -> 5905 bytes .../item/material_sets/dull/dust_pure.png | Bin 342 -> 348 bytes .../material_sets/dull/dust_pure_overlay.png | Bin 425 -> 4278 bytes .../item/material_sets/dull/gear_small.png | Bin 345 -> 316 bytes .../textures/item/material_sets/dull/gem.png | Bin 484 -> 393 bytes .../item/material_sets/dull/gem_chipped.png | Bin 306 -> 276 bytes .../dull/gem_chipped_overlay.png | Bin 219 -> 115 bytes .../item/material_sets/dull/gem_exquisite.png | Bin 571 -> 422 bytes .../dull/gem_exquisite_overlay.png | Bin 448 -> 154 bytes .../item/material_sets/dull/gem_flawed.png | Bin 510 -> 423 bytes .../material_sets/dull/gem_flawed_overlay.png | Bin 320 -> 129 bytes .../item/material_sets/dull/gem_flawless.png | Bin 549 -> 421 bytes .../dull/gem_flawless_overlay.png | Bin 358 -> 139 bytes .../item/material_sets/dull/gem_overlay.png | Bin 0 -> 139 bytes .../item/material_sets/dull/ingot.png | Bin 420 -> 303 bytes .../item/material_sets/dull/ingot_hot.png | Bin 420 -> 303 bytes .../material_sets/dull/ingot_hot_overlay.png | Bin 616 -> 5968 bytes .../item/material_sets/dull/ingot_overlay.png | Bin 0 -> 122 bytes .../item/material_sets/dull/plate.png | Bin 569 -> 342 bytes .../item/material_sets/dull/plate_overlay.png | Bin 333 -> 170 bytes .../item/material_sets/dull/raw_ore.png | Bin 4867 -> 4875 bytes .../item/material_sets/dull/rotor_overlay.png | Bin 299 -> 199 bytes .../item/material_sets/emerald/raw_ore.png | Bin 4812 -> 0 bytes .../textures/item/material_sets/fine/dust.png | Bin 333 -> 347 bytes .../item/material_sets/fine/raw_ore.png | Bin 1203 -> 4861 bytes .../material_sets/gem_horizontal/raw_ore.png | Bin 4812 -> 0 bytes .../material_sets/gem_vertical/raw_ore.png | Bin 4812 -> 0 bytes .../magnetic/magnetic_overlay.png | Bin 178 -> 4164 bytes .../item/material_sets/metallic/ingot.png | Bin 426 -> 298 bytes .../item/material_sets/metallic/ingot_hot.png | Bin 426 -> 298 bytes .../material_sets/metallic/ingot_overlay.png | Bin 0 -> 122 bytes .../item/material_sets/metallic/plate.png | Bin 569 -> 305 bytes .../material_sets/metallic/plate_overlay.png | Bin 333 -> 170 bytes .../item/material_sets/metallic/raw_ore.png | Bin 1203 -> 4433 bytes .../item/material_sets/opal/raw_ore.png | Bin 4812 -> 0 bytes .../item/material_sets/rough/dust.png | Bin 407 -> 346 bytes .../item/material_sets/rough/dust_impure.png | Bin 0 -> 374 bytes .../item/material_sets/rough/dust_pure.png | Bin 0 -> 348 bytes .../item/material_sets/rough/gear.png | Bin 598 -> 412 bytes .../item/material_sets/rough/gear_small.png | Bin 0 -> 305 bytes .../item/material_sets/rough/ingot.png | Bin 0 -> 247 bytes .../item/material_sets/rough/plate.png | Bin 569 -> 453 bytes .../item/material_sets/rough/plate_dense.png | Bin 557 -> 424 bytes .../material_sets/rough/plate_overlay.png | Bin 0 -> 113 bytes .../material_sets/sand/crushed_overlay.png | Bin 592 -> 5944 bytes .../sand/dust_impure_overlay.png | Bin 540 -> 5926 bytes .../shiny/crushed_refined_overlay.png | Bin 0 -> 5363 bytes .../item/material_sets/shiny/dust_overlay.png | Bin 279 -> 5142 bytes .../shiny/dust_small_overlay.png | Bin 234 -> 4153 bytes .../material_sets/shiny/dust_tiny_overlay.png | Bin 208 -> 4133 bytes .../item/material_sets/shiny/foil.png | Bin 0 -> 373 bytes .../item/material_sets/shiny/foil_overlay.png | Bin 0 -> 129 bytes .../item/material_sets/shiny/gear.png | Bin 451 -> 366 bytes .../item/material_sets/shiny/gear_overlay.png | Bin 314 -> 183 bytes .../item/material_sets/shiny/gear_small.png | Bin 345 -> 237 bytes .../shiny/gear_small_overlay.png | Bin 224 -> 105 bytes .../item/material_sets/shiny/ingot.png | Bin 411 -> 299 bytes .../item/material_sets/shiny/ingot_hot.png | Bin 405 -> 299 bytes .../material_sets/shiny/ingot_overlay.png | Bin 276 -> 122 bytes .../item/material_sets/shiny/plate.png | Bin 569 -> 298 bytes .../material_sets/shiny/plate_overlay.png | Bin 341 -> 169 bytes .../item/material_sets/shiny/raw_ore.png | Bin 4885 -> 4321 bytes .../material_sets/shiny/raw_ore_overlay.png | Bin 0 -> 4374 bytes .../item/material_sets/shiny/ring.png | Bin 337 -> 213 bytes .../item/material_sets/shiny/ring_overlay.png | Bin 152 -> 107 bytes .../textures/item/material_sets/shiny/rod.png | Bin 192 -> 153 bytes .../item/material_sets/shiny/rod_long.png | Bin 192 -> 148 bytes .../material_sets/shiny/rod_long_overlay.png | Bin 148 -> 95 bytes .../item/material_sets/shiny/rod_overlay.png | Bin 148 -> 97 bytes .../item/material_sets/shiny/rotor.png | Bin 0 -> 398 bytes .../material_sets/shiny/rotor_overlay.png | Bin 0 -> 118 bytes .../item/material_sets/shiny/round.png | Bin 240 -> 165 bytes .../item/material_sets/shiny/screw.png | Bin 285 -> 222 bytes .../material_sets/shiny/screw_overlay.png | Bin 182 -> 109 bytes .../item/material_sets/shiny/spring.png | Bin 0 -> 546 bytes .../material_sets/shiny/spring_overlay.png | Bin 0 -> 123 bytes .../item/material_sets/shiny/spring_small.png | Bin 0 -> 399 bytes .../shiny/spring_small_overlay.png | Bin 0 -> 113 bytes .../shiny/tool_head_buzz_saw.png | Bin 0 -> 275 bytes .../shiny/tool_head_chainsaw.png | Bin 0 -> 173 bytes .../material_sets/shiny/tool_head_drill.png | Bin 0 -> 209 bytes .../shiny/tool_head_screwdriver.png | Bin 0 -> 135 bytes .../material_sets/shiny/tool_head_wrench.png | Bin 0 -> 137 bytes .../material_sets/shiny/turbine_blade.png | Bin 0 -> 1203 bytes .../shiny/turbine_blade_overlay.png | Bin 0 -> 113 bytes .../item/material_sets/shiny/wire_fine.png | Bin 0 -> 292 bytes .../material_sets/shiny/wire_fine_overlay.png | Bin 0 -> 113 bytes .../main/resources/gtceu-common.mixins.json | 1 + fabric/build.gradle | 13 ++ .../nodes/materials/wire_and_cable.json | 45 ---- .../resources/assets/gtceu/lang/en_ud.json | 215 +++++++----------- .../resources/assets/gtceu/lang/en_us.json | 215 +++++++----------- .../fabric/MetaMachineBlockEntityImpl.java | 4 +- .../gtceu/api/item/fabric/GTBucketItem.java | 15 +- .../fabric/FluidPipeBlockEntityImpl.java | 11 + .../gtceu/core/fabric/MixinHelpersImpl.java | 11 + forge/build.gradle | 10 + .../nodes/materials/wire_and_cable.json | 45 ---- .../resources/assets/gtceu/lang/en_ud.json | 215 +++++++----------- .../resources/assets/gtceu/lang/en_us.json | 215 +++++++----------- .../forge/MetaMachineBlockEntityImpl.java | 8 +- .../forge/FluidPipeBlockEntityImpl.java | 6 + .../forge/ItemPipeBlockEntityImpl.java | 2 +- settings.gradle | 11 + 498 files changed, 3438 insertions(+), 1681 deletions(-) create mode 100644 common/src/main/java/com/gregtechceu/gtceu/api/block/RendererMaterialBlock.java create mode 100644 common/src/main/java/com/gregtechceu/gtceu/api/misc/RateCounter.java create mode 100644 common/src/main/java/com/gregtechceu/gtceu/api/transfer/fluid/FluidTransferDelegate.java create mode 100644 common/src/main/java/com/gregtechceu/gtceu/api/transfer/fluid/NoOpFluidTransfer.java create mode 100644 common/src/main/java/com/gregtechceu/gtceu/api/transfer/item/ItemTransferDelegate.java create mode 100644 common/src/main/java/com/gregtechceu/gtceu/api/transfer/item/NoOpItemTransfer.java create mode 100644 common/src/main/java/com/gregtechceu/gtceu/common/cover/data/ManualIOMode.java delete mode 100644 common/src/main/java/com/gregtechceu/gtceu/common/cover/data/ManualImportExportMode.java create mode 100644 common/src/main/java/com/gregtechceu/gtceu/core/mixins/MinecraftMixin.java create mode 100644 common/src/main/java/com/gregtechceu/gtceu/data/pack/GTDynamicResourcePack.java create mode 100644 common/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/ComputerRecipes.java create mode 100644 common/src/main/resources/assets/gtceu/models/block/cube_2_layer_tintindex_both.json create mode 100644 common/src/main/resources/assets/gtceu/models/block/material_sets/dull/block.json create mode 100644 common/src/main/resources/assets/gtceu/models/block/material_sets/dull/frame_gt.json create mode 100644 common/src/main/resources/assets/gtceu/models/block/material_sets/dull/raw_ore_block.json create mode 100644 common/src/main/resources/assets/gtceu/models/block/material_sets/emerald/block.json create mode 100644 common/src/main/resources/assets/gtceu/models/block/material_sets/fine/block.json create mode 100644 common/src/main/resources/assets/gtceu/models/block/material_sets/glass/block.json create mode 100644 common/src/main/resources/assets/gtceu/models/block/material_sets/lapis/block.json create mode 100644 common/src/main/resources/assets/gtceu/models/block/material_sets/lignite/block.json create mode 100644 common/src/main/resources/assets/gtceu/models/block/material_sets/lignite/raw_ore_block.json create mode 100644 common/src/main/resources/assets/gtceu/models/block/material_sets/metallic/raw_ore_block.json create mode 100644 common/src/main/resources/assets/gtceu/models/block/material_sets/netherstar/block.json create mode 100644 common/src/main/resources/assets/gtceu/models/block/material_sets/opal/block.json create mode 100644 common/src/main/resources/assets/gtceu/models/block/material_sets/paper/block.json create mode 100644 common/src/main/resources/assets/gtceu/models/block/material_sets/paper/frame_gt.json create mode 100644 common/src/main/resources/assets/gtceu/models/block/material_sets/powder/block.json create mode 100644 common/src/main/resources/assets/gtceu/models/block/material_sets/powder/frame_gt.json create mode 100644 common/src/main/resources/assets/gtceu/models/block/material_sets/quartz/block.json create mode 100644 common/src/main/resources/assets/gtceu/models/block/material_sets/rough/block.json create mode 100644 common/src/main/resources/assets/gtceu/models/block/material_sets/rough/raw_ore_block.json create mode 100644 common/src/main/resources/assets/gtceu/models/block/material_sets/sand/block.json create mode 100644 common/src/main/resources/assets/gtceu/models/block/material_sets/shiny/block.json create mode 100644 common/src/main/resources/assets/gtceu/models/block/material_sets/shiny/raw_ore_block.json create mode 100644 common/src/main/resources/assets/gtceu/models/block/material_sets/wood/block.json create mode 100644 common/src/main/resources/assets/gtceu/models/block/tinted_cube_all_0.json rename common/src/main/resources/assets/gtceu/models/item/material_sets/bright/{dust.json => dust.json_old} (55%) rename common/src/main/resources/assets/gtceu/models/item/material_sets/bright/{dust_small.json => dust_small.json_old} (56%) rename common/src/main/resources/assets/gtceu/models/item/material_sets/bright/{dust_tiny.json => dust_tiny.json_old} (56%) create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/bright/foil.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/bright/gear.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/bright/gear_small.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/bright/ingot_hot.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/bright/rotor.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/bright/screw.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/bright/spring.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/bright/spring_small.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/bright/turbine_blade.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/bright/wire_fine.json delete mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/fine/gem.json delete mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/fine/gem_chipped.json delete mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/fine/gem_flawed.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/ingot_hot.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/bolt.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/crushed.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/crushed_purified.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/crushed_refined.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/dust.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/dust_impure.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/dust_pure.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/dust_small.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/dust_tiny.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/foil.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/gear.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/gear_small.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/gem.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/gem_chipped.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/gem_exquisite.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/gem_flawed.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/gem_flawless.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/ingot.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/ingot_double.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/ingot_hot.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/lens.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/nugget.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/plate.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/plate_dense.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/plate_double.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/raw_ore.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/ring.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/rod.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/rod_long.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/rotor.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/round.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/screw.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/spring.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/spring_small.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/tool_head_buzz_saw.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/tool_head_chainsaw.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/tool_head_drill.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/tool_head_screwdriver.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/tool_head_wrench.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/turbine_blade.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/wire_fine.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/rough/gear_small.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/rough/ingot.json delete mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/sand/crushed_refined.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/crushed_refined.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/foil.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/ingot_hot.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/rotor.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/spring.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/spring_small.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/tool_head_buzz_saw.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/tool_head_chainsaw.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/tool_head_drill.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/tool_head_screwdriver.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/tool_head_wrench.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/turbine_blade.json create mode 100644 common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/wire_fine.json rename common/src/main/resources/assets/gtceu/textures/block/material_sets/dull/{wire.png => wire_end.png} (100%) create mode 100644 common/src/main/resources/assets/gtceu/textures/block/material_sets/dull/wire_side.png create mode 100644 common/src/main/resources/assets/gtceu/textures/gui/icon/distribution_mode/insert_first.png create mode 100644 common/src/main/resources/assets/gtceu/textures/gui/icon/distribution_mode/round_robin_global.png create mode 100644 common/src/main/resources/assets/gtceu/textures/gui/icon/distribution_mode/round_robin_prio.png create mode 100644 common/src/main/resources/assets/gtceu/textures/gui/icon/manual_io_mode/disabled.png create mode 100644 common/src/main/resources/assets/gtceu/textures/gui/icon/manual_io_mode/filtered.png create mode 100644 common/src/main/resources/assets/gtceu/textures/gui/icon/manual_io_mode/unfiltered.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/blank.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/foil_overlay.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/gear.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/gear_overlay.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/gear_small_overlay.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/ingot.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/plate.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/rotor_overlay.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/spring_overlay.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/spring_small_overlay.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/turbine_blade_overlay.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/wire_fine_overlay.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/crushed_refined_overlay.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/gem_overlay.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/ingot_overlay.png delete mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/emerald/raw_ore.png delete mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/gem_horizontal/raw_ore.png delete mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/gem_vertical/raw_ore.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/metallic/ingot_overlay.png delete mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/opal/raw_ore.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/rough/dust_impure.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/rough/dust_pure.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/rough/gear_small.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/rough/ingot.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/rough/plate_overlay.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/crushed_refined_overlay.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/foil.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/foil_overlay.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/raw_ore_overlay.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/rotor.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/rotor_overlay.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/spring.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/spring_overlay.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/spring_small.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/spring_small_overlay.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/tool_head_buzz_saw.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/tool_head_chainsaw.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/tool_head_drill.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/tool_head_screwdriver.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/tool_head_wrench.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/turbine_blade.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/turbine_blade_overlay.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/wire_fine.png create mode 100644 common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/wire_fine_overlay.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 8dae121ca4..837b0f68cb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,5 +3,19 @@ Version: 1.0.15 * Bump ldlib version for better compass +* add initial compass content +* inject models for items and blocks +* add manual IO mode on covers +* add temperature tooltip for small steam boilers +* return covers to inventory on crowbar use, instead of dropping them +* allow singleblock generators to face up +* allow tools to use their last durability point * fix lag with pattern checking * fix the Machine mode selector +* fix several missing recipes +* fix small steam boilers not producing steam +* fix wrong temperatures in the UI +* fix item pipes stopping transfer after their transfer rate per second has been reached once +* fix capability IO directions +* fix laser pipes not connecting to hatches +* fix diodes being counted as energy input in cleanrooms \ No newline at end of file diff --git a/common/build.gradle b/common/build.gradle index dfc4186c7c..46ea895897 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -31,6 +31,15 @@ configurations { // snapshotModImplementation { // resolutionStrategy.cacheChangingModulesFor(0, "seconds") // } + apiElements { + outgoing { + capability("net.fabricmc.fabric-api:fabric-api-${this.libs.versions.minecraft.get()}:${this.fabric.versions.fabricApi.get()}") + capability("com.lowdragmc.ldlib:ldlib-common-${this.libs.versions.minecraft.get()}:${this.fabric.versions.ldlib.get()}") + capability("com.tterrag.registrate_fabric:Registrate:${this.fabric.versions.registrate.get()}") + capability("dev.toma.configuration:configuration-fabric-${this.libs.versions.minecraft.get()}:${this.fabric.versions.configuration.get()}") + capability("io.github.llamalad7:mixinextras-common:${this.fabric.versions.mixinextras.get()}") + } + } } //configurations.all { @@ -81,6 +90,9 @@ dependencies { // KJS modCompileOnly fabric.kubejs + // Mixin Extras + implementation(annotationProcessor("io.github.llamalad7:mixinextras-common:${fabric.versions.mixinextras.get()}")) + // Configuration modCompileOnly fabric.configuration } diff --git a/common/src/main/java/com/gregtechceu/gtceu/api/GTValues.java b/common/src/main/java/com/gregtechceu/gtceu/api/GTValues.java index 8f4977f4ec..1802c0bcbd 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/api/GTValues.java +++ b/common/src/main/java/com/gregtechceu/gtceu/api/GTValues.java @@ -58,12 +58,22 @@ public class GTValues { */ public static final long[] V = new long[]{8, 32, 128, 512, 2048, 8192, 32768, 131072, 524288, 2097152, 8388608, 33554432, 134217728, 536870912, Integer.MAX_VALUE}; + /** + * The Voltage Tiers divided by 2. + */ + public static final int[] VH = {4, 16, 64, 256, 1024, 4096, 16384, 65536, 262144, 1048576, 4194304, 16777216, 67108864, 268435456, 1073741824}; + /** * The Voltage Tiers adjusted for cable loss. Use this for recipe EU/t to avoid full-amp recipes */ public static final int[] VA = new int[]{7, 30, 120, 480, 1920, 7680, 30720, 122880, 491520, 1966080, 7864320, 31457280, 125829120, 503316480, 2013265920}; + /** + * The Voltage Tiers adjusted for cable loss, divided by 2. + */ + public static final int[] VHA = {7, 16, 60, 240, 960, 3840, 15360, 61440, 245760, 983040, 3932160, 15728640, 62914560, 251658240, 1006632960}; + public static final int ULV = 0; public static final int LV = 1; public static final int MV = 2; diff --git a/common/src/main/java/com/gregtechceu/gtceu/api/block/MaterialBlock.java b/common/src/main/java/com/gregtechceu/gtceu/api/block/MaterialBlock.java index c43c608d81..36705dd861 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/api/block/MaterialBlock.java +++ b/common/src/main/java/com/gregtechceu/gtceu/api/block/MaterialBlock.java @@ -34,38 +34,33 @@ */ @MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault -public class MaterialBlock extends AppearanceBlock implements IBlockRendererProvider { +public class MaterialBlock extends AppearanceBlock { public final TagPrefix tagPrefix; public final Material material; - public final IRenderer renderer; - public MaterialBlock(Properties properties, TagPrefix tagPrefix, Material material) { - super(properties); - this.material = material; - this.tagPrefix = tagPrefix; - this.renderer = Platform.isClient() ? MaterialBlockRenderer.getOrCreate(tagPrefix.materialIconType(), material.getMaterialIconSet()) : null; - } - - public MaterialBlock(Properties properties, TagPrefix tagPrefix, Material material, IRenderer renderer) { + public MaterialBlock(Properties properties, TagPrefix tagPrefix, Material material, boolean registerModel) { super(properties); this.material = material; this.tagPrefix = tagPrefix; - this.renderer = renderer; + if (registerModel && Platform.isClient()) { + MaterialBlockRenderer.create(this, tagPrefix.materialIconType(), material.getMaterialIconSet()); + } } - @Nullable - @Override - @Environment(EnvType.CLIENT) - public IRenderer getRenderer(BlockState state) { - return renderer; + public MaterialBlock(Properties properties, TagPrefix tagPrefix, Material material) { + this(properties, tagPrefix, material, true); } @Environment(EnvType.CLIENT) public static BlockColor tintedColor() { return (state, reader, pos, tintIndex) -> { if (state.getBlock() instanceof MaterialBlock block) { - return block.material.getMaterialRGB(); + if (tintIndex == 1 && block.material.getMaterialSecondaryRGB() != -1) { + return block.material.getMaterialSecondaryRGB(); + } else { + return block.material.getMaterialRGB(); + } } return -1; }; diff --git a/common/src/main/java/com/gregtechceu/gtceu/api/block/MetaMachineBlock.java b/common/src/main/java/com/gregtechceu/gtceu/api/block/MetaMachineBlock.java index 3cd0c92991..510a66e0f2 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/api/block/MetaMachineBlock.java +++ b/common/src/main/java/com/gregtechceu/gtceu/api/block/MetaMachineBlock.java @@ -193,7 +193,7 @@ public List getDrops(BlockState pState, LootContext.Builder pBuilder) if (tileEntity instanceof IMachineBlockEntity holder) { var machine = holder.getMetaMachine(); for (Direction direction : Direction.values()) { - machine.getCoverContainer().removeCover(direction); + machine.getCoverContainer().removeCover(direction, null); } if (machine instanceof IMachineModifyDrops machineModifyDrops && entity instanceof Player) { machineModifyDrops.onDrops(drops, (Player) entity); diff --git a/common/src/main/java/com/gregtechceu/gtceu/api/block/PipeBlock.java b/common/src/main/java/com/gregtechceu/gtceu/api/block/PipeBlock.java index d54482da19..bf6b019810 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/api/block/PipeBlock.java +++ b/common/src/main/java/com/gregtechceu/gtceu/api/block/PipeBlock.java @@ -35,8 +35,10 @@ import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets; import net.minecraft.world.level.storage.loot.parameters.LootContextParams; -import net.minecraft.world.phys.shapes.*; -import org.apache.commons.lang3.ArrayUtils; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.EntityCollisionContext; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; import org.jetbrains.annotations.Nullable; import javax.annotation.ParametersAreNonnullByDefault; @@ -238,7 +240,7 @@ public List getDrops(BlockState state, LootContext.Builder builder) { BlockEntity tileEntity = context.getParamOrNull(LootContextParams.BLOCK_ENTITY); if (tileEntity instanceof IPipeNode pipeTile) { for (Direction direction : Direction.values()) { - pipeTile.getCoverContainer().removeCover(direction); + pipeTile.getCoverContainer().removeCover(direction, null); } } return super.getDrops(state, builder); diff --git a/common/src/main/java/com/gregtechceu/gtceu/api/block/RendererMaterialBlock.java b/common/src/main/java/com/gregtechceu/gtceu/api/block/RendererMaterialBlock.java new file mode 100644 index 0000000000..bf1cd690d0 --- /dev/null +++ b/common/src/main/java/com/gregtechceu/gtceu/api/block/RendererMaterialBlock.java @@ -0,0 +1,26 @@ +package com.gregtechceu.gtceu.api.block; + +import com.gregtechceu.gtceu.api.data.chemical.material.Material; +import com.gregtechceu.gtceu.api.data.tag.TagPrefix; +import com.lowdragmc.lowdraglib.client.renderer.IBlockRendererProvider; +import com.lowdragmc.lowdraglib.client.renderer.IRenderer; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.world.level.block.state.BlockState; +import org.jetbrains.annotations.Nullable; + +public class RendererMaterialBlock extends MaterialBlock implements IBlockRendererProvider { + public final IRenderer renderer; + + public RendererMaterialBlock(Properties properties, TagPrefix tagPrefix, Material material, @Nullable IRenderer renderer) { + super(properties, tagPrefix, material, false); + this.renderer = renderer; + } + + @Nullable + @Override + @Environment(EnvType.CLIENT) + public IRenderer getRenderer(BlockState state) { + return renderer; + } +} diff --git a/common/src/main/java/com/gregtechceu/gtceu/api/blockentity/PipeBlockEntity.java b/common/src/main/java/com/gregtechceu/gtceu/api/blockentity/PipeBlockEntity.java index 031e5ba217..a0ba774229 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/api/blockentity/PipeBlockEntity.java +++ b/common/src/main/java/com/gregtechceu/gtceu/api/blockentity/PipeBlockEntity.java @@ -1,20 +1,20 @@ package com.gregtechceu.gtceu.api.blockentity; import com.gregtechceu.gtceu.api.GTValues; +import com.gregtechceu.gtceu.api.block.BlockProperties; import com.gregtechceu.gtceu.api.block.MaterialPipeBlock; +import com.gregtechceu.gtceu.api.capability.ICoverable; +import com.gregtechceu.gtceu.api.capability.IToolable; import com.gregtechceu.gtceu.api.cover.CoverBehavior; import com.gregtechceu.gtceu.api.data.chemical.material.Material; import com.gregtechceu.gtceu.api.gui.GuiTextures; -import com.gregtechceu.gtceu.api.pipenet.IPipeNode; -import com.gregtechceu.gtceu.api.pipenet.PipeCoverContainer; -import com.gregtechceu.gtceu.api.block.BlockProperties; -import com.gregtechceu.gtceu.api.capability.ICoverable; -import com.gregtechceu.gtceu.api.capability.IToolable; import com.gregtechceu.gtceu.api.item.tool.GTToolType; import com.gregtechceu.gtceu.api.item.tool.IToolGridHighLight; import com.gregtechceu.gtceu.api.machine.TickableSubscription; import com.gregtechceu.gtceu.api.pipenet.IAttachData; +import com.gregtechceu.gtceu.api.pipenet.IPipeNode; import com.gregtechceu.gtceu.api.pipenet.IPipeType; +import com.gregtechceu.gtceu.api.pipenet.PipeCoverContainer; import com.gregtechceu.gtceu.api.registry.GTRegistries; import com.gregtechceu.gtceu.api.syncdata.EnhancedFieldManagedStorage; import com.gregtechceu.gtceu.api.syncdata.IEnhancedManaged; @@ -286,7 +286,7 @@ public InteractionResult onToolClick(@NotNull GTToolType toolType, ItemStack ite } else if (toolType == GTToolType.CROWBAR) { if (coverBehavior != null) { if (!isRemote()) { - getCoverContainer().removeCover(gridSide); + getCoverContainer().removeCover(gridSide, playerIn); } return InteractionResult.CONSUME; } diff --git a/common/src/main/java/com/gregtechceu/gtceu/api/capability/ICoverable.java b/common/src/main/java/com/gregtechceu/gtceu/api/capability/ICoverable.java index 5726d0d7a4..924f3cac42 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/api/capability/ICoverable.java +++ b/common/src/main/java/com/gregtechceu/gtceu/api/capability/ICoverable.java @@ -11,6 +11,8 @@ import com.lowdragmc.lowdraglib.LDLib; import com.lowdragmc.lowdraglib.gui.texture.IGuiTexture; import com.lowdragmc.lowdraglib.gui.widget.Widget; +import com.lowdragmc.lowdraglib.side.fluid.IFluidTransfer; +import com.lowdragmc.lowdraglib.side.item.IItemTransfer; import com.lowdragmc.lowdraglib.utils.RayTraceHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -61,10 +63,14 @@ public interface ICoverable extends ITickSubscription, IAppearance, IFancyConfig boolean shouldRenderBackSide(); + // TODO replace getItemTransferCap and getFluidTransferCap with a cross-platform capability implementation + IItemTransfer getItemTransferCap(@Nullable Direction side, boolean useCoverCapability); + IFluidTransfer getFluidTransferCap(@Nullable Direction side, boolean useCoverCapability); + /** * Its an internal method, you should never call it yourself. *
- * Use {@link ICoverable#removeCover(boolean, Direction)} and {@link ICoverable#placeCoverOnSide(Direction, ItemStack, CoverDefinition, ServerPlayer)} instead + * Use {@link ICoverable#removeCover(boolean, Direction, Player)} and {@link ICoverable#placeCoverOnSide(Direction, ItemStack, CoverDefinition, ServerPlayer)} instead * @param coverBehavior * @param side */ @@ -79,7 +85,7 @@ default boolean placeCoverOnSide(Direction side, ItemStack itemStack, CoverDefin return false; } if (getCoverAtSide(side) != null) { - removeCover(side); + removeCover(side, player); } coverBehavior.onAttached(itemStack, player); coverBehavior.onLoad(); @@ -92,7 +98,7 @@ default boolean placeCoverOnSide(Direction side, ItemStack itemStack, CoverDefin return true; } - default boolean removeCover(boolean dropItself, Direction side) { + default boolean removeCover(boolean dropItself, Direction side, @Nullable Player player) { CoverBehavior coverBehavior = getCoverAtSide(side); if (coverBehavior == null) { return false; @@ -104,7 +110,11 @@ default boolean removeCover(boolean dropItself, Direction side) { coverBehavior.onRemoved(); setCoverAtSide(null, side); for (ItemStack dropStack : drops) { + if (player != null && player.getInventory().add(dropStack)) + continue; + Block.popResource(getLevel(), getPos(), dropStack); + } notifyBlockUpdate(); markDirty(); @@ -112,8 +122,8 @@ default boolean removeCover(boolean dropItself, Direction side) { return true; } - default boolean removeCover(Direction side) { - return removeCover(true, side); + default boolean removeCover(Direction side, @Nullable Player player) { + return removeCover(true, side, player); } default List getCovers() { diff --git a/common/src/main/java/com/gregtechceu/gtceu/api/cover/CoverBehavior.java b/common/src/main/java/com/gregtechceu/gtceu/api/cover/CoverBehavior.java index 1f7ae51d98..59784e83a3 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/api/cover/CoverBehavior.java +++ b/common/src/main/java/com/gregtechceu/gtceu/api/cover/CoverBehavior.java @@ -9,6 +9,8 @@ import com.gregtechceu.gtceu.api.syncdata.IEnhancedManaged; import com.gregtechceu.gtceu.client.renderer.cover.ICoverRenderer; import com.lowdragmc.lowdraglib.gui.texture.ResourceTexture; +import com.lowdragmc.lowdraglib.side.fluid.IFluidTransfer; +import com.lowdragmc.lowdraglib.side.item.IItemTransfer; import com.lowdragmc.lowdraglib.syncdata.annotation.DescSynced; import com.lowdragmc.lowdraglib.syncdata.annotation.Persisted; import com.lowdragmc.lowdraglib.syncdata.field.ManagedFieldHolder; @@ -199,4 +201,17 @@ public BlockState getAppearance(BlockState sourceState, BlockPos sourcePos) { return null; } + ////////////////////////////////////// + //******* Capabilities *******// + ////////////////////////////////////// + + // TODO possibly refactor this in the future, using some sort of cross-platform capability-like system + + public IItemTransfer getItemTransferCap(Direction side, IItemTransfer defaultValue) { + return defaultValue; + } + + public IFluidTransfer getFluidTransferCap(Direction side, IFluidTransfer defaultValue) { + return defaultValue; + } } diff --git a/common/src/main/java/com/gregtechceu/gtceu/api/cover/filter/FilterHandler.java b/common/src/main/java/com/gregtechceu/gtceu/api/cover/filter/FilterHandler.java index 8bc6b787bc..83c4acb482 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/api/cover/filter/FilterHandler.java +++ b/common/src/main/java/com/gregtechceu/gtceu/api/cover/filter/FilterHandler.java @@ -82,6 +82,10 @@ public F getFilter() { return this.filter; } + public boolean test(T resource) { + return getFilter().test(resource); + } + public FilterHandler onFilterLoaded(Consumer onFilterLoaded) { this.onFilterLoaded = onFilterLoaded; return this; diff --git a/common/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/Material.java b/common/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/Material.java index e6a5d5f084..e09e88eba1 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/Material.java +++ b/common/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/Material.java @@ -282,10 +282,18 @@ public int getMaterialARGB() { return materialInfo.color | 0xff000000; } + public int getMaterialSecondaryARGB() { + return materialInfo.secondaryColor | 0xff000000; + } + public int getMaterialRGB() { return materialInfo.color; } + public int getMaterialSecondaryRGB() { + return materialInfo.secondaryColor; + } + public boolean hasFluidColor() { return materialInfo.hasFluidColor; } @@ -755,6 +763,18 @@ public Builder color(int color, boolean hasFluidColor) { return this; } + /** + * Set the secondary color of this Material.
+ * Defaults to 0xFFFFFF unless {@link Builder#colorAverage()} was called, where + * it will be a weighted average of the components of the Material. + * + * @param color The RGB-formatted Color. + */ + public Builder secondaryColor(int color) { + this.materialInfo.secondaryColor = color; + return this; + } + public Builder colorAverage() { this.averageRGB = true; return this; @@ -1036,6 +1056,14 @@ private static class MaterialInfo { */ private int color = -1; + /** + * The secondary color of this Material. + * If this is default, then it's not used. + *

+ * Default: 0xFFFFFF if no Components, otherwise it will be the average of Components. + */ + private int secondaryColor = -1; + /** * The color of this Material. *

diff --git a/common/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/info/MaterialIconType.java b/common/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/info/MaterialIconType.java index 6402f36f83..6178e58df5 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/info/MaterialIconType.java +++ b/common/src/main/java/com/gregtechceu/gtceu/api/data/chemical/material/info/MaterialIconType.java @@ -103,7 +103,10 @@ public record MaterialIconType(String name) { public static final MaterialIconType essence = new MaterialIconType("essence"); private static final Table ITEM_MODEL_CACHE = HashBasedTable.create(); + private static final Table ITEM_TEXTURE_CACHE = HashBasedTable.create(); + private static final Table BLOCK_MODEL_CACHE = HashBasedTable.create(); private static final Table BLOCK_TEXTURE_CACHE = HashBasedTable.create(); + private static final Table BLOCK_TEXTURE_CACHE_SECONDARY = HashBasedTable.create(); public MaterialIconType(String name) { this.name = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, name); @@ -121,20 +124,62 @@ public static MaterialIconType getByName(String name) { return ICON_TYPES.get(name); } - @Nullable // Safe: only null on registration on fabric, and no "required" textures are resolved at that point. + @Nullable public ResourceLocation getBlockTexturePath(@Nonnull MaterialIconSet materialIconSet, boolean doReadCache) { + return getBlockTexturePath(materialIconSet, null, doReadCache); + } + + @Nullable // Safe: only null on registration on fabric, and no "required" textures are resolved at that point. + public ResourceLocation getBlockTexturePath(@Nonnull MaterialIconSet materialIconSet, String suffix, boolean doReadCache) { if (doReadCache) { - if (BLOCK_TEXTURE_CACHE.contains(this, materialIconSet)) { - return BLOCK_TEXTURE_CACHE.get(this, materialIconSet); + if (suffix == null || suffix.isBlank()) { + if (BLOCK_TEXTURE_CACHE.contains(this, materialIconSet)) return BLOCK_TEXTURE_CACHE.get(this, materialIconSet); + } else { + if (BLOCK_TEXTURE_CACHE_SECONDARY.contains(this, materialIconSet)) return BLOCK_TEXTURE_CACHE_SECONDARY.get(this, materialIconSet); } } + suffix = suffix == null || suffix.isBlank() ? "" : "_" + suffix; + MaterialIconSet iconSet = materialIconSet; //noinspection ConstantConditions if (!Platform.isClient() || Minecraft.getInstance() == null || Minecraft.getInstance().getResourceManager() == null) return null; // check minecraft for null for CI environments if (!iconSet.isRootIconset) { while (!iconSet.isRootIconset) { - ResourceLocation location = GTCEu.id(String.format("textures/block/material_sets/%s/%s.png", iconSet.name, this.name)); + ResourceLocation location = GTCEu.id(String.format("textures/block/material_sets/%s/%s%s.png", iconSet.name, this.name, suffix)); + if (ResourceHelper.isResourceExist(location) || ResourceHelper.isResourceExistRaw(location)) + break; + iconSet = iconSet.parentIconset; + } + } + + ResourceLocation location = GTCEu.id(String.format("textures/block/material_sets/%s/%s%s.png", iconSet.name, this.name, suffix)); + if (!suffix.isEmpty() && !ResourceHelper.isResourceExist(location) && !ResourceHelper.isResourceExistRaw(location)) { + return null; + } + location = GTCEu.id(String.format("block/material_sets/%s/%s%s", iconSet.name, this.name, suffix)); + if (suffix.isEmpty()) { + BLOCK_TEXTURE_CACHE.put(this, materialIconSet, location); + } else { + BLOCK_TEXTURE_CACHE_SECONDARY.put(this, materialIconSet, location); + } + + return location; + } + + @Nonnull + public ResourceLocation getBlockModelPath(@Nonnull MaterialIconSet materialIconSet, boolean doReadCache) { + if (doReadCache) { + if (BLOCK_MODEL_CACHE.contains(this, materialIconSet)) { + return BLOCK_MODEL_CACHE.get(this, materialIconSet); + } + } + + MaterialIconSet iconSet = materialIconSet; + //noinspection ConstantConditions + if (!iconSet.isRootIconset && Platform.isClient() && Minecraft.getInstance() != null && Minecraft.getInstance().getResourceManager() != null) { // check minecraft for null for CI environments + while (!iconSet.isRootIconset) { + ResourceLocation location = GTCEu.id(String.format("models/block/material_sets/%s/%s.json", iconSet.name, this.name)); if (ResourceHelper.isResourceExist(location) || ResourceHelper.isResourceExistRaw(location)) break; iconSet = iconSet.parentIconset; @@ -142,7 +187,7 @@ public ResourceLocation getBlockTexturePath(@Nonnull MaterialIconSet materialIco } ResourceLocation location = GTCEu.id(String.format("block/material_sets/%s/%s", iconSet.name, this.name)); - BLOCK_TEXTURE_CACHE.put(this, materialIconSet, location); + ITEM_MODEL_CACHE.put(this, materialIconSet, location); return location; } @@ -160,7 +205,8 @@ public ResourceLocation getItemModelPath(@Nonnull MaterialIconSet materialIconSe if (!iconSet.isRootIconset && Platform.isClient() && Minecraft.getInstance() != null && Minecraft.getInstance().getResourceManager() != null) { // check minecraft for null for CI environments while (!iconSet.isRootIconset) { ResourceLocation location = GTCEu.id(String.format("models/item/material_sets/%s/%s.json", iconSet.name, this.name)); - if (ResourceHelper.isResourceExist(location)) break; + if (ResourceHelper.isResourceExist(location) || ResourceHelper.isResourceExistRaw(location)) + break; iconSet = iconSet.parentIconset; } } @@ -171,6 +217,31 @@ public ResourceLocation getItemModelPath(@Nonnull MaterialIconSet materialIconSe return location; } + @Nonnull + public ResourceLocation getItemTexturePath(@Nonnull MaterialIconSet materialIconSet, boolean doReadCache) { + if (doReadCache) { + if (ITEM_TEXTURE_CACHE.contains(this, materialIconSet)) { + return ITEM_TEXTURE_CACHE.get(this, materialIconSet); + } + } + + MaterialIconSet iconSet = materialIconSet; + //noinspection ConstantConditions + if (!iconSet.isRootIconset && Platform.isClient() && Minecraft.getInstance() != null && Minecraft.getInstance().getResourceManager() != null) { // check minecraft for null for CI environments + while (!iconSet.isRootIconset) { + ResourceLocation location = GTCEu.id(String.format("textures/item/material_sets/%s/%s.png", iconSet.name, this.name)); + if (ResourceHelper.isResourceExist(location) || ResourceHelper.isResourceExistRaw(location)) + break; + iconSet = iconSet.parentIconset; + } + } + + ResourceLocation location = GTCEu.id(String.format("item/material_sets/%s/%s", iconSet.name, this.name)); + ITEM_TEXTURE_CACHE.put(this, materialIconSet, location); + + return location; + } + @Override public String toString() { return this.name; diff --git a/common/src/main/java/com/gregtechceu/gtceu/api/data/tag/TagPrefix.java b/common/src/main/java/com/gregtechceu/gtceu/api/data/tag/TagPrefix.java index 28b0c8a68b..1954b6c2eb 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/api/data/tag/TagPrefix.java +++ b/common/src/main/java/com/gregtechceu/gtceu/api/data/tag/TagPrefix.java @@ -691,6 +691,7 @@ public static TagPrefix get(String name) { .unificationEnabled(true); // Prefix to determine which kind of Rock this is. + // Also has a base tag path of only the material, for things like obsidian etc. public static final TagPrefix rock = new TagPrefix("rock") .defaultTagPath(FORGE, "%s") .defaultTagPath(FABRIC, "%s") diff --git a/common/src/main/java/com/gregtechceu/gtceu/api/gui/widget/CoverContainerConfigurator.java b/common/src/main/java/com/gregtechceu/gtceu/api/gui/widget/CoverContainerConfigurator.java index a672313a59..92faf10a80 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/api/gui/widget/CoverContainerConfigurator.java +++ b/common/src/main/java/com/gregtechceu/gtceu/api/gui/widget/CoverContainerConfigurator.java @@ -25,9 +25,7 @@ import net.minecraft.core.Direction; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.server.level.ServerPlayer; -import net.minecraft.util.Mth; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.phys.Vec2; import javax.annotation.Nullable; import java.util.List; @@ -105,7 +103,7 @@ private void coverRemoved() { if (getGui().entityPlayer instanceof ServerPlayer serverPlayer && side != null) { var item = transfer.getStackInSlot(0); if (coverable.getCoverAtSide(side) != null) { - coverable.removeCover(false, side); + coverable.removeCover(false, side, serverPlayer); } if (!item.isEmpty() && coverable.getCoverAtSide(side) == null) { if (item.getItem() instanceof ComponentItem componentItem) { diff --git a/common/src/main/java/com/gregtechceu/gtceu/api/item/GTToolItem.java b/common/src/main/java/com/gregtechceu/gtceu/api/item/GTToolItem.java index bb57899239..ce13d4d20b 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/api/item/GTToolItem.java +++ b/common/src/main/java/com/gregtechceu/gtceu/api/item/GTToolItem.java @@ -7,8 +7,7 @@ import com.gregtechceu.gtceu.api.item.tool.TreeFellingHelper; import com.gregtechceu.gtceu.client.renderer.item.ToolItemRenderer; import com.gregtechceu.gtceu.data.recipe.CustomTags; -import com.lowdragmc.lowdraglib.client.renderer.IItemRendererProvider; -import com.lowdragmc.lowdraglib.client.renderer.IRenderer; +import com.lowdragmc.lowdraglib.Platform; import dev.architectury.injectables.annotations.ExpectPlatform; import lombok.Getter; import net.fabricmc.api.EnvType; @@ -27,7 +26,6 @@ import net.minecraft.world.item.context.UseOnContext; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.Nullable; import javax.annotation.ParametersAreNonnullByDefault; @@ -38,8 +36,7 @@ */ @MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault -public class GTToolItem extends DiggerItem implements IItemRendererProvider, IItemUseFirst { - public static boolean isReqairingRecipe = false; +public class GTToolItem extends DiggerItem implements IItemUseFirst { @Getter protected final GTToolType toolType; @@ -52,7 +49,9 @@ public static GTToolItem create(GTToolType toolType, MaterialToolTier tier, Prop protected GTToolItem(GTToolType toolType, MaterialToolTier tier, Properties properties) { super(toolType.attackDamageModifier, toolType.attackSpeedModifier, tier, toolType.harvestTag, properties); this.toolType = toolType; - ToolItemRenderer.getOrCreate(toolType); + if (Platform.isClient()) { + ToolItemRenderer.create(this, toolType); + } } @Override @@ -86,12 +85,6 @@ public static ItemColor tintColor() { }; } - @Nullable - @Override - public IRenderer getRenderer(ItemStack stack) { - return ToolItemRenderer.getOrCreate(toolType); - } - @Override public InteractionResult onItemUseFirst(ItemStack itemStack, UseOnContext context) { var toolable = GTCapabilityHelper.getToolable(context.getLevel(), context.getClickedPos(), context.getClickedFace()); diff --git a/common/src/main/java/com/gregtechceu/gtceu/api/item/LaserPipeBlockItem.java b/common/src/main/java/com/gregtechceu/gtceu/api/item/LaserPipeBlockItem.java index c427e84512..7e5f853459 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/api/item/LaserPipeBlockItem.java +++ b/common/src/main/java/com/gregtechceu/gtceu/api/item/LaserPipeBlockItem.java @@ -25,7 +25,7 @@ public LaserPipeBlock getBlock() { public static ItemColor tintColor() { return (itemStack, index) -> { if (itemStack.getItem() instanceof LaserPipeBlockItem materialBlockItem) { - return materialBlockItem.getBlock().tinted(materialBlockItem.getBlock().defaultBlockState(), null, null, index); + return LaserPipeBlock.tintedColor().getColor(materialBlockItem.getBlock().defaultBlockState(), null, null, index); } return -1; }; diff --git a/common/src/main/java/com/gregtechceu/gtceu/api/item/MaterialBlockItem.java b/common/src/main/java/com/gregtechceu/gtceu/api/item/MaterialBlockItem.java index cb244ac5b8..a75b05c5f8 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/api/item/MaterialBlockItem.java +++ b/common/src/main/java/com/gregtechceu/gtceu/api/item/MaterialBlockItem.java @@ -4,6 +4,7 @@ import com.gregtechceu.gtceu.api.block.MaterialBlock; import com.gregtechceu.gtceu.api.data.chemical.material.properties.DustProperty; import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; +import com.lowdragmc.lowdraglib.client.renderer.IBlockRendererProvider; import com.lowdragmc.lowdraglib.client.renderer.IItemRendererProvider; import com.lowdragmc.lowdraglib.client.renderer.IRenderer; import dev.architectury.injectables.annotations.ExpectPlatform; @@ -46,7 +47,11 @@ public MaterialBlock getBlock() { public static ItemColor tintColor() { return (itemStack, index) -> { if (itemStack.getItem() instanceof MaterialBlockItem materialBlockItem) { - return materialBlockItem.getBlock().material.getMaterialARGB(); + if (index == 1 && materialBlockItem.getBlock().material.getMaterialSecondaryRGB() != -1) { + return materialBlockItem.getBlock().material.getMaterialSecondaryARGB(); + } else { + return materialBlockItem.getBlock().material.getMaterialARGB(); + } } return -1; }; @@ -56,7 +61,10 @@ public static ItemColor tintColor() { @Override @Environment(EnvType.CLIENT) public IRenderer getRenderer(ItemStack stack) { - return getBlock().getRenderer(getBlock().defaultBlockState()); + if (getBlock() instanceof IBlockRendererProvider provider) { + return provider.getRenderer(getBlock().defaultBlockState()); + } + return null; } @Override diff --git a/common/src/main/java/com/gregtechceu/gtceu/api/item/TagPrefixItem.java b/common/src/main/java/com/gregtechceu/gtceu/api/item/TagPrefixItem.java index cb4061c81a..707bba5673 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/api/item/TagPrefixItem.java +++ b/common/src/main/java/com/gregtechceu/gtceu/api/item/TagPrefixItem.java @@ -1,6 +1,7 @@ package com.gregtechceu.gtceu.api.item; import com.gregtechceu.gtceu.api.GTValues; +import com.gregtechceu.gtceu.api.data.chemical.material.Material; import com.gregtechceu.gtceu.api.data.chemical.material.properties.DustProperty; import com.gregtechceu.gtceu.api.data.damagesource.DamageSources; import com.gregtechceu.gtceu.client.renderer.item.TagPrefixItemRenderer; @@ -35,7 +36,7 @@ */ @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault -public class TagPrefixItem extends Item implements IItemRendererProvider { +public class TagPrefixItem extends Item { public final TagPrefix tagPrefix; public final Material material; @@ -43,7 +44,9 @@ protected TagPrefixItem(Properties properties, TagPrefix tagPrefix, Material mat super(properties); this.tagPrefix = tagPrefix; this.material = material; - TagPrefixItemRenderer.getOrCreate(tagPrefix.materialIconType(), material.getMaterialIconSet()); + if (Platform.isClient()) { + TagPrefixItemRenderer.create(this, tagPrefix.materialIconType(), material.getMaterialIconSet()); + } } @ExpectPlatform @@ -125,10 +128,4 @@ public int getItemBurnTime() { } // TODO BEACON PAYMENT - - @Nullable - @Override - public IRenderer getRenderer(ItemStack stack) { - return TagPrefixItemRenderer.getOrCreate(tagPrefix.materialIconType(), material.getMaterialIconSet()); - } } diff --git a/common/src/main/java/com/gregtechceu/gtceu/api/item/tool/ToolHelper.java b/common/src/main/java/com/gregtechceu/gtceu/api/item/tool/ToolHelper.java index 0d344a1ce5..584bdbceab 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/api/item/tool/ToolHelper.java +++ b/common/src/main/java/com/gregtechceu/gtceu/api/item/tool/ToolHelper.java @@ -49,7 +49,7 @@ public static boolean is(ItemStack stack, GTToolType toolType) { } public static boolean canUse(ItemStack stack) { - return stack.getDamageValue() < stack.getMaxDamage(); + return stack.getDamageValue() <= stack.getMaxDamage(); } public static void damageItem(@Nonnull ItemStack stack, RandomSource random, @Nullable ServerPlayer user) { diff --git a/common/src/main/java/com/gregtechceu/gtceu/api/machine/MachineCoverContainer.java b/common/src/main/java/com/gregtechceu/gtceu/api/machine/MachineCoverContainer.java index 32f7b2be34..0603b2a237 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/api/machine/MachineCoverContainer.java +++ b/common/src/main/java/com/gregtechceu/gtceu/api/machine/MachineCoverContainer.java @@ -8,6 +8,8 @@ import com.gregtechceu.gtceu.api.syncdata.EnhancedFieldManagedStorage; import com.gregtechceu.gtceu.api.syncdata.IEnhancedManaged; import com.gregtechceu.gtceu.api.syncdata.UpdateListener; +import com.lowdragmc.lowdraglib.side.fluid.IFluidTransfer; +import com.lowdragmc.lowdraglib.side.item.IItemTransfer; import com.lowdragmc.lowdraglib.syncdata.annotation.DescSynced; import com.lowdragmc.lowdraglib.syncdata.annotation.Persisted; import com.lowdragmc.lowdraglib.syncdata.annotation.ReadOnlyManaged; @@ -172,6 +174,16 @@ public void setCoverAtSide(@Nullable CoverBehavior coverBehavior, Direction side } } + @Override + public IItemTransfer getItemTransferCap(@Nullable Direction side, boolean useCoverCapability) { + return machine.getItemTransferCap(side, useCoverCapability); + } + + @Override + public IFluidTransfer getFluidTransferCap(@Nullable Direction side, boolean useCoverCapability) { + return machine.getFluidTransferCap(side, useCoverCapability); + } + @SuppressWarnings("unused") private boolean onCoverDirty(CoverBehavior coverBehavior) { if (coverBehavior != null) { diff --git a/common/src/main/java/com/gregtechceu/gtceu/api/machine/MetaMachine.java b/common/src/main/java/com/gregtechceu/gtceu/api/machine/MetaMachine.java index 46f0c14a20..607319247f 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/api/machine/MetaMachine.java +++ b/common/src/main/java/com/gregtechceu/gtceu/api/machine/MetaMachine.java @@ -29,8 +29,6 @@ import com.lowdragmc.lowdraglib.LDLib; import com.lowdragmc.lowdraglib.gui.texture.IGuiTexture; import com.lowdragmc.lowdraglib.gui.texture.ResourceTexture; -import com.lowdragmc.lowdraglib.misc.FluidTransferList; -import com.lowdragmc.lowdraglib.misc.ItemTransferList; import com.lowdragmc.lowdraglib.side.fluid.FluidStack; import com.lowdragmc.lowdraglib.side.fluid.IFluidTransfer; import com.lowdragmc.lowdraglib.side.item.IItemTransfer; @@ -315,7 +313,7 @@ public final InteractionResult onToolClick(@NotNull GTToolType toolType, ItemSta } else if (toolType == GTToolType.CROWBAR) { if (coverBehavior != null) { if (!isRemote()) { - getCoverContainer().removeCover(gridSide); + getCoverContainer().removeCover(gridSide, playerIn); } return InteractionResult.CONSUME; } @@ -563,29 +561,47 @@ protected Predicate getFluidCapFilter(@Nullable Direction side) { } @Nullable - public ItemTransferList getItemTransferCap(@Nullable Direction side) { - var list = getTraits().stream().filter(IItemTransfer.class::isInstance).filter(t -> t.hasCapability(side)).map(IItemTransfer.class::cast).toList(); - if (!list.isEmpty()) { - var io = IO.BOTH; - if (side != null && this instanceof IAutoOutputItem autoOutput && autoOutput.getOutputFacingItems() == side && !autoOutput.isAllowInputFromOutputSideItems()) { - io = IO.OUT; - } - return new IOItemTransferList(list, io, getItemCapFilter(side)); + public IItemTransfer getItemTransferCap(@Nullable Direction side, boolean useCoverCapability) { + var list = getTraits().stream() + .filter(IItemTransfer.class::isInstance) + .filter(t -> t.hasCapability(side)) + .map(IItemTransfer.class::cast) + .toList(); + + if (list.isEmpty()) return null; + + var io = IO.BOTH; + if (side != null && this instanceof IAutoOutputItem autoOutput && autoOutput.getOutputFacingItems() == side && !autoOutput.isAllowInputFromOutputSideItems()) { + io = IO.OUT; } - return null; + + IOItemTransferList transferList = new IOItemTransferList(list, io, getItemCapFilter(side)); + if (!useCoverCapability || side == null) return transferList; + + CoverBehavior cover = getCoverContainer().getCoverAtSide(side); + return cover != null ? cover.getItemTransferCap(side, transferList) : transferList; } @Nullable - public FluidTransferList getFluidTransferCap(@Nullable Direction side) { - var list = getTraits().stream().filter(IFluidTransfer.class::isInstance).filter(t -> t.hasCapability(side)).map(IFluidTransfer.class::cast).toList(); - if (!list.isEmpty()) { - var io = IO.BOTH; - if (side != null && this instanceof IAutoOutputFluid autoOutput && autoOutput.getOutputFacingFluids() == side && !autoOutput.isAllowInputFromOutputSideFluids()) { - io = IO.OUT; - } - return new IOFluidTransferList(list, io, getFluidCapFilter(side)); + public IFluidTransfer getFluidTransferCap(@Nullable Direction side, boolean useCoverCapability) { + var list = getTraits().stream() + .filter(IFluidTransfer.class::isInstance) + .filter(t -> t.hasCapability(side)) + .map(IFluidTransfer.class::cast) + .toList(); + + if (list.isEmpty()) return null; + + var io = IO.BOTH; + if (side != null && this instanceof IAutoOutputFluid autoOutput && autoOutput.getOutputFacingFluids() == side && !autoOutput.isAllowInputFromOutputSideFluids()) { + io = IO.OUT; } - return null; + + IOFluidTransferList transferList = new IOFluidTransferList(list, io, getFluidCapFilter(side)); + if (!useCoverCapability || side == null) return transferList; + + CoverBehavior cover = getCoverContainer().getCoverAtSide(side); + return cover != null ? cover.getFluidTransferCap(side, transferList) : transferList; } ////////////////////////////////////// diff --git a/common/src/main/java/com/gregtechceu/gtceu/api/machine/steam/SteamBoilerMachine.java b/common/src/main/java/com/gregtechceu/gtceu/api/machine/steam/SteamBoilerMachine.java index 2b43221444..5ac8817be6 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/api/machine/steam/SteamBoilerMachine.java +++ b/common/src/main/java/com/gregtechceu/gtceu/api/machine/steam/SteamBoilerMachine.java @@ -22,10 +22,12 @@ import com.lowdragmc.lowdraglib.side.fluid.FluidHelper; import com.lowdragmc.lowdraglib.side.fluid.FluidTransferHelper; import com.lowdragmc.lowdraglib.syncdata.ISubscription; +import com.lowdragmc.lowdraglib.syncdata.annotation.DescSynced; import com.lowdragmc.lowdraglib.syncdata.annotation.Persisted; import com.lowdragmc.lowdraglib.syncdata.field.ManagedFieldHolder; import lombok.Getter; import net.minecraft.MethodsReturnNonnullByDefault; +import net.minecraft.client.resources.language.I18n; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.particles.ParticleTypes; @@ -59,7 +61,7 @@ public abstract class SteamBoilerMachine extends SteamWorkableMachine implements @Persisted public final NotifiableFluidTank waterTank; - @Persisted + @Persisted @DescSynced private int currentTemperature; @Persisted private int timeBeforeCoolingDown; @@ -165,10 +167,10 @@ protected void updateSteamSubscription() { protected void updateCurrentTemperature() { if (recipeLogic.isWorking()) { if (getOffsetTimer() % 12 == 0) { - if (currentTemperature < getMaxTemperate()) + if (currentTemperature < getMaxTemperature()) if (isHighPressure) { currentTemperature++; - } else if (getOffsetTimer() % 24 == 0){ + } else if (getOffsetTimer() % 24 == 0) { currentTemperature++; } } @@ -180,9 +182,9 @@ protected void updateCurrentTemperature() { } else --timeBeforeCoolingDown; if (getOffsetTimer() % 10 == 0) { - if (currentTemperature >= 100 ) { - long fillAmount = (long) (getBaseSteamOutput() * (currentTemperature / (getMaxTemperate() * 1.0)) / 2); - boolean hasDrainedWater = !waterTank.drain(FluidHelper.getBucket() / 1000, false).isEmpty(); + if (currentTemperature >= 100) { + long fillAmount = (long) (getBaseSteamOutput() * (currentTemperature / (getMaxTemperature() * 1.0)) / 2); + boolean hasDrainedWater = !waterTank.drainInternal(FluidHelper.getBucket() / 1000, false).isEmpty(); var filledSteam = 0L; if (hasDrainedWater) { filledSteam = steamTank.fillInternal(GTMaterials.Steam.getFluid(fillAmount * FluidHelper.getBucket() / 1000), false); @@ -225,12 +227,12 @@ protected int getCoolDownRate() { return 1; } - public int getMaxTemperate() { + public int getMaxTemperature() { return isHighPressure ? 1000 : 500; } private double getTemperaturePercent() { - return currentTemperature / (getMaxTemperate() * 1.0); + return currentTemperature / (getMaxTemperature() * 1.0); } protected abstract long getBaseSteamOutput(); @@ -248,7 +250,7 @@ public static GTRecipe recipeModifier(MetaMachine machine, @Nonnull GTRecipe rec @Override public void onWorking() { - if (currentTemperature < getMaxTemperate()) { + if (currentTemperature < getMaxTemperature()) { currentTemperature = Math.max(1, currentTemperature); updateSteamSubscription(); } @@ -279,8 +281,9 @@ public ModularUI createUI(Player entityPlayer) { .background(GuiTextures.BACKGROUND_STEAM.get(isHighPressure)) .widget(new LabelWidget(6, 6, getBlockState().getBlock().getDescriptionId())) .widget(new ProgressWidget(this::getTemperaturePercent, 96, 26, 10, 54) - .setProgressTexture(GuiTextures.PROGRESS_BAR_BOILER_EMPTY.get(isHighPressure), - GuiTextures.PROGRESS_BAR_BOILER_HEAT).setFillDirection(ProgressTexture.FillDirection.DOWN_TO_UP)) + .setProgressTexture(GuiTextures.PROGRESS_BAR_BOILER_EMPTY.get(isHighPressure), GuiTextures.PROGRESS_BAR_BOILER_HEAT) + .setFillDirection(ProgressTexture.FillDirection.DOWN_TO_UP) + .setDynamicHoverTips(pct -> I18n.get("gtceu.multiblock.large_boiler.temperature", (int) (currentTemperature + 274.15), (int) (getMaxTemperature() + 274.15)))) .widget(new TankWidget(waterTank.storages[0], 83, 26, 10, 54, false, true) .setShowAmount(false) .setFillDirection(ProgressTexture.FillDirection.DOWN_TO_UP) diff --git a/common/src/main/java/com/gregtechceu/gtceu/api/machine/trait/FluidTankProxyTrait.java b/common/src/main/java/com/gregtechceu/gtceu/api/machine/trait/FluidTankProxyTrait.java index f3c18b08be..6ca0771ac7 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/api/machine/trait/FluidTankProxyTrait.java +++ b/common/src/main/java/com/gregtechceu/gtceu/api/machine/trait/FluidTankProxyTrait.java @@ -116,7 +116,7 @@ public FluidStack drainInternal(FluidStack resource, boolean simulate) { @NotNull @Override public FluidStack drain(long maxDrain, boolean simulate, boolean notifyChanges) { - if (proxy != null && canCapInput()) { + if (proxy != null && canCapOutput()) { return proxy.drain(maxDrain, simulate, notifyChanges); } return FluidStack.empty(); @@ -125,7 +125,7 @@ public FluidStack drain(long maxDrain, boolean simulate, boolean notifyChanges) @NotNull @Override public FluidStack drain(FluidStack resource, boolean simulate, boolean notifyChanges) { - if (proxy != null && canCapInput()) { + if (proxy != null && canCapOutput()) { return proxy.drain(resource, simulate, notifyChanges); } return FluidStack.empty(); diff --git a/common/src/main/java/com/gregtechceu/gtceu/api/machine/trait/NotifiableFluidTank.java b/common/src/main/java/com/gregtechceu/gtceu/api/machine/trait/NotifiableFluidTank.java index d23f89225d..fcdd0804a9 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/api/machine/trait/NotifiableFluidTank.java +++ b/common/src/main/java/com/gregtechceu/gtceu/api/machine/trait/NotifiableFluidTank.java @@ -15,7 +15,6 @@ import lombok.Getter; import lombok.Setter; import net.minecraft.core.Direction; -import net.minecraft.world.item.ItemStack; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -335,7 +334,7 @@ public FluidStack drainInternal(FluidStack resource, boolean simulate) { @NotNull @Override public FluidStack drain(long maxDrain, boolean simulate) { - if (canCapInput()) { + if (canCapOutput()) { return drainInternal(maxDrain, simulate); } return FluidStack.empty(); diff --git a/common/src/main/java/com/gregtechceu/gtceu/api/misc/RateCounter.java b/common/src/main/java/com/gregtechceu/gtceu/api/misc/RateCounter.java new file mode 100644 index 0000000000..910377071f --- /dev/null +++ b/common/src/main/java/com/gregtechceu/gtceu/api/misc/RateCounter.java @@ -0,0 +1,65 @@ +package com.gregtechceu.gtceu.api.misc; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; +import java.util.Arrays; +import java.util.function.LongSupplier; + + +/** + * Limits a rate/throughput across a certain amount of time, without needing an active tick subscription + */ +@MethodsReturnNonnullByDefault +@ParametersAreNonnullByDefault +public class RateCounter { + private final LongSupplier timeSupplier; + + private final long[] usedAmounts; + private final long[] updateTimes; + + private final int countingTimeframe; + + public RateCounter(LongSupplier timeSupplier, int countingTimeframe) { + this.timeSupplier = timeSupplier; + this.countingTimeframe = countingTimeframe; + + this.usedAmounts = new long[countingTimeframe]; + this.updateTimes = new long[countingTimeframe]; + } + + public long getUsedSum() { + long excludeUntilTime = timeSupplier.getAsLong() - countingTimeframe; + long sum = 0L; + + for (int i = 0; i < countingTimeframe; i++) { + if (updateTimes[i] <= excludeUntilTime) continue; + sum += usedAmounts[i]; + } + + return sum; + } + + public void addUsed(long amount) { + long currentTime = timeSupplier.getAsLong(); + int idx = (int) (currentTime % countingTimeframe); + + if (updateTimes[idx] != currentTime) + usedAmounts[idx] = 0L; + + usedAmounts[idx] += amount; + updateTimes[idx] = currentTime; + } + + public void clear() { + Arrays.fill(usedAmounts, 0L); + } + + public RateCounter copy() { + var copied = new RateCounter(this.timeSupplier, this.countingTimeframe); + System.arraycopy(this.usedAmounts, 0, copied.usedAmounts, 0, usedAmounts.length); + System.arraycopy(this.updateTimes, 0, copied.updateTimes, 0, updateTimes.length); + + return copied; + } +} diff --git a/common/src/main/java/com/gregtechceu/gtceu/api/pipenet/PipeCoverContainer.java b/common/src/main/java/com/gregtechceu/gtceu/api/pipenet/PipeCoverContainer.java index bbe0c9855b..2497373a9e 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/api/pipenet/PipeCoverContainer.java +++ b/common/src/main/java/com/gregtechceu/gtceu/api/pipenet/PipeCoverContainer.java @@ -9,6 +9,12 @@ import com.gregtechceu.gtceu.api.syncdata.EnhancedFieldManagedStorage; import com.gregtechceu.gtceu.api.syncdata.IEnhancedManaged; import com.gregtechceu.gtceu.api.syncdata.UpdateListener; +import com.gregtechceu.gtceu.api.transfer.fluid.NoOpFluidTransfer; +import com.gregtechceu.gtceu.api.transfer.item.NoOpItemTransfer; +import com.gregtechceu.gtceu.common.blockentity.FluidPipeBlockEntity; +import com.gregtechceu.gtceu.common.blockentity.ItemPipeBlockEntity; +import com.lowdragmc.lowdraglib.side.fluid.IFluidTransfer; +import com.lowdragmc.lowdraglib.side.item.IItemTransfer; import com.lowdragmc.lowdraglib.syncdata.annotation.DescSynced; import com.lowdragmc.lowdraglib.syncdata.annotation.Persisted; import com.lowdragmc.lowdraglib.syncdata.annotation.ReadOnlyManaged; @@ -143,6 +149,24 @@ public void unsubscribe(@Nullable TickableSubscription current) { pipeTile.unsubscribe(current); } + @Override + public IItemTransfer getItemTransferCap(@Nullable Direction side, boolean useCoverCapability) { + if (pipeTile instanceof ItemPipeBlockEntity itemPipe) { + return itemPipe.getHandler(side, useCoverCapability); + } else { + return NoOpItemTransfer.INSTANCE; + } + } + + @Override + public IFluidTransfer getFluidTransferCap(@Nullable Direction side, boolean useCoverCapability) { + if (pipeTile instanceof FluidPipeBlockEntity fluidPipe) { + return fluidPipe.getHandler(side, useCoverCapability); + } else { + return NoOpFluidTransfer.INSTANCE; + } + } + @Override public CoverBehavior getCoverAtSide(Direction side) { return switch (side) { diff --git a/common/src/main/java/com/gregtechceu/gtceu/api/transfer/fluid/FluidTransferDelegate.java b/common/src/main/java/com/gregtechceu/gtceu/api/transfer/fluid/FluidTransferDelegate.java new file mode 100644 index 0000000000..9cf1813e76 --- /dev/null +++ b/common/src/main/java/com/gregtechceu/gtceu/api/transfer/fluid/FluidTransferDelegate.java @@ -0,0 +1,99 @@ +package com.gregtechceu.gtceu.api.transfer.fluid; + +import com.lowdragmc.lowdraglib.side.fluid.FluidStack; +import com.lowdragmc.lowdraglib.side.fluid.IFluidTransfer; +import net.minecraft.MethodsReturnNonnullByDefault; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; + +import javax.annotation.Nonnull; +import javax.annotation.ParametersAreNonnullByDefault; + + +@MethodsReturnNonnullByDefault +@ParametersAreNonnullByDefault +public abstract class FluidTransferDelegate implements IFluidTransfer { + protected IFluidTransfer delegate; + + public FluidTransferDelegate(IFluidTransfer delegate) { + this.delegate = delegate; + } + + protected void setDelegate(IFluidTransfer delegate) { + this.delegate = delegate; + } + + + ////////////////////////////////////// + //****** OVERRIDE THESE ******// + ////////////////////////////////////// + + + @Override + public int getTanks() { + return delegate.getTanks(); + } + + @Override + @Nonnull + public FluidStack getFluidInTank(int tank) { + return delegate.getFluidInTank(tank); + } + + @Override + @ApiStatus.Internal + public void setFluidInTank(int tank, @NotNull FluidStack fluidStack) { + delegate.setFluidInTank(tank, fluidStack); + } + + @Override + public long getTankCapacity(int tank) { + return delegate.getTankCapacity(tank); + } + + @Override + public boolean isFluidValid(int tank, @NotNull FluidStack stack) { + return delegate.isFluidValid(tank, stack); + } + + @Override + @ApiStatus.Internal + public long fill(int tank, FluidStack resource, boolean simulate, boolean notifyChanges) { + return delegate.fill(tank, resource, simulate, notifyChanges); + } + + @Override + public boolean supportsFill(int tank) { + return delegate.supportsFill(tank); + } + + @Override + @ApiStatus.Internal + @Nonnull + public FluidStack drain(int tank, FluidStack resource, boolean simulate, boolean notifyChanges) { + return delegate.drain(tank, resource, simulate, notifyChanges); + } + + @Override + public boolean supportsDrain(int tank) { + return delegate.supportsDrain(tank); + } + + @Override + @ApiStatus.Internal + @Nonnull + public Object createSnapshot() { + return delegate.createSnapshot(); + } + + @Override + @ApiStatus.Internal + public void restoreFromSnapshot(Object snapshot) { + delegate.restoreFromSnapshot(snapshot); + } + + @Override + public void onContentsChanged() { + delegate.onContentsChanged(); + } +} diff --git a/common/src/main/java/com/gregtechceu/gtceu/api/transfer/fluid/NoOpFluidTransfer.java b/common/src/main/java/com/gregtechceu/gtceu/api/transfer/fluid/NoOpFluidTransfer.java new file mode 100644 index 0000000000..6102f0f06b --- /dev/null +++ b/common/src/main/java/com/gregtechceu/gtceu/api/transfer/fluid/NoOpFluidTransfer.java @@ -0,0 +1,75 @@ +package com.gregtechceu.gtceu.api.transfer.fluid; + +import com.lowdragmc.lowdraglib.side.fluid.FluidStack; +import com.lowdragmc.lowdraglib.side.fluid.IFluidTransfer; +import net.minecraft.MethodsReturnNonnullByDefault; +import org.jetbrains.annotations.NotNull; + +import javax.annotation.ParametersAreNonnullByDefault; + + +@MethodsReturnNonnullByDefault +@ParametersAreNonnullByDefault +public class NoOpFluidTransfer implements IFluidTransfer { + public static final NoOpFluidTransfer INSTANCE = new NoOpFluidTransfer(); + + private NoOpFluidTransfer() { + } + + @Override + public int getTanks() { + return 0; + } + + @NotNull + @Override + public FluidStack getFluidInTank(int tank) { + return FluidStack.empty(); + } + + @Override + public void setFluidInTank(int tank, @NotNull FluidStack fluidStack) { + } + + @Override + public long getTankCapacity(int tank) { + return 0; + } + + @Override + public boolean isFluidValid(int tank, @NotNull FluidStack stack) { + return false; + } + + @Override + public long fill(int tank, FluidStack resource, boolean simulate, boolean notifyChanges) { + return 0; + } + + @Override + public boolean supportsFill(int tank) { + return false; + } + + @NotNull + @Override + public FluidStack drain(int tank, FluidStack resource, boolean simulate, boolean notifyChanges) { + return FluidStack.empty(); + } + + @Override + public boolean supportsDrain(int tank) { + return false; + } + + @NotNull + @Override + public Object createSnapshot() { + return new Object(); + } + + @Override + public void restoreFromSnapshot(Object snapshot) { + + } +} diff --git a/common/src/main/java/com/gregtechceu/gtceu/api/transfer/item/ItemTransferDelegate.java b/common/src/main/java/com/gregtechceu/gtceu/api/transfer/item/ItemTransferDelegate.java new file mode 100644 index 0000000000..1cdd098680 --- /dev/null +++ b/common/src/main/java/com/gregtechceu/gtceu/api/transfer/item/ItemTransferDelegate.java @@ -0,0 +1,82 @@ +package com.gregtechceu.gtceu.api.transfer.item; + +import com.lowdragmc.lowdraglib.side.item.IItemTransfer; +import net.minecraft.MethodsReturnNonnullByDefault; +import net.minecraft.world.item.ItemStack; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; + +import javax.annotation.Nonnull; +import javax.annotation.ParametersAreNonnullByDefault; + + +@MethodsReturnNonnullByDefault +@ParametersAreNonnullByDefault +public abstract class ItemTransferDelegate implements IItemTransfer { + protected IItemTransfer delegate; + + public ItemTransferDelegate(IItemTransfer delegate) { + this.delegate = delegate; + } + + protected void setDelegate(IItemTransfer delegate) { + this.delegate = delegate; + } + + + ////////////////////////////////////// + //****** OVERRIDE THESE ******// + ////////////////////////////////////// + + @Override + public int getSlots() { + return delegate.getSlots(); + } + + @Override + @Nonnull + public ItemStack getStackInSlot(int slot) { + return delegate.getStackInSlot(slot); + } + + @Override + @Nonnull + public ItemStack insertItem(int slot, @NotNull ItemStack stack, boolean simulate, boolean notifyChanges) { + return delegate.insertItem(slot, stack, simulate, notifyChanges); + } + + @Override + @Nonnull + public ItemStack extractItem(int slot, int amount, boolean simulate, boolean notifyChanges) { + return delegate.extractItem(slot, amount, simulate, notifyChanges); + } + + @Override + public int getSlotLimit(int slot) { + return delegate.getSlotLimit(slot); + } + + @Override + public boolean isItemValid(int slot, @NotNull ItemStack stack) { + return delegate.isItemValid(slot, stack); + } + + @Override + @ApiStatus.Internal + @Nonnull + public Object createSnapshot() { + return delegate.createSnapshot(); + } + + @Override + @ApiStatus.Internal + public void restoreFromSnapshot(Object snapshot) { + delegate.restoreFromSnapshot(snapshot); + } + + + @Override + public void onContentsChanged() { + delegate.onContentsChanged(); + } +} diff --git a/common/src/main/java/com/gregtechceu/gtceu/api/transfer/item/NoOpItemTransfer.java b/common/src/main/java/com/gregtechceu/gtceu/api/transfer/item/NoOpItemTransfer.java new file mode 100644 index 0000000000..b53d4a48ab --- /dev/null +++ b/common/src/main/java/com/gregtechceu/gtceu/api/transfer/item/NoOpItemTransfer.java @@ -0,0 +1,62 @@ +package com.gregtechceu.gtceu.api.transfer.item; + +import com.lowdragmc.lowdraglib.side.item.IItemTransfer; +import net.minecraft.MethodsReturnNonnullByDefault; +import net.minecraft.world.item.ItemStack; +import org.jetbrains.annotations.NotNull; + +import javax.annotation.ParametersAreNonnullByDefault; + + +@MethodsReturnNonnullByDefault +@ParametersAreNonnullByDefault +public class NoOpItemTransfer implements IItemTransfer { + public static final NoOpItemTransfer INSTANCE = new NoOpItemTransfer(); + + private NoOpItemTransfer() { + } + + @Override + public int getSlots() { + return 0; + } + + @NotNull + @Override + public ItemStack getStackInSlot(int slot) { + return ItemStack.EMPTY; + } + + @NotNull + @Override + public ItemStack insertItem(int slot, @NotNull ItemStack stack, boolean simulate, boolean notifyChanges) { + return ItemStack.EMPTY; + } + + @NotNull + @Override + public ItemStack extractItem(int slot, int amount, boolean simulate, boolean notifyChanges) { + return ItemStack.EMPTY; + } + + @Override + public int getSlotLimit(int slot) { + return 0; + } + + @Override + public boolean isItemValid(int slot, @NotNull ItemStack stack) { + return false; + } + + @NotNull + @Override + public Object createSnapshot() { + return new Object(); + } + + @Override + public void restoreFromSnapshot(Object snapshot) { + + } +} diff --git a/common/src/main/java/com/gregtechceu/gtceu/client/model/PipeModel.java b/common/src/main/java/com/gregtechceu/gtceu/client/model/PipeModel.java index c6ad3af887..f6df7bfb81 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/client/model/PipeModel.java +++ b/common/src/main/java/com/gregtechceu/gtceu/client/model/PipeModel.java @@ -38,15 +38,19 @@ public class PipeModel { public final Map sideCubes; public Supplier sideTexture, endTexture; + @Nullable + public Supplier<@Nullable ResourceLocation> secondarySideTexture, secondaryEndTexture; @Setter public ResourceLocation sideOverlayTexture, endOverlayTexture; @Environment(EnvType.CLIENT) - TextureAtlasSprite sideSprite, endSprite, sideOverlaySprite, endOverlaySprite; + TextureAtlasSprite sideSprite, endSprite, secondarySideSprite, secondaryEndSprite, sideOverlaySprite, endOverlaySprite; - public PipeModel(float thickness, Supplier sideTexture, Supplier endTexture) { + public PipeModel(float thickness, Supplier sideTexture, Supplier endTexture, @Nullable Supplier<@Nullable ResourceLocation> secondarySideTexture, @Nullable Supplier<@Nullable ResourceLocation> secondaryEndTexture) { this.sideTexture = sideTexture; this.endTexture = endTexture; + this.secondarySideTexture = secondarySideTexture; + this.secondaryEndTexture = secondaryEndTexture; this.thickness = thickness; double min = (1d - thickness) / 2; double max = min + thickness; @@ -87,6 +91,12 @@ public List bakeQuads(@Nullable Direction side, int connections) { if (endSprite == null) { endSprite = ModelFactory.getBlockSprite(endTexture.get()); } + if (secondarySideTexture != null && secondarySideTexture.get() != null && secondarySideSprite == null) { + secondarySideSprite = ModelFactory.getBlockSprite(secondarySideTexture.get()); + } + if (secondaryEndTexture != null && secondaryEndTexture.get() != null && secondaryEndSprite == null) { + secondaryEndSprite = ModelFactory.getBlockSprite(secondaryEndTexture.get()); + } if (sideOverlayTexture != null && sideOverlaySprite == null) { sideOverlaySprite = ModelFactory.getBlockSprite(sideOverlayTexture); } @@ -96,19 +106,27 @@ public List bakeQuads(@Nullable Direction side, int connections) { if (side != null) { if (thickness == 1) { // full block - return List.of(FaceQuad.builder(side, sideSprite).cube(coreCube).cubeUV().tintIndex(0).bake()); + List quads = new ArrayList<>(); + quads.add(FaceQuad.builder(side, sideSprite).cube(coreCube).cubeUV().tintIndex(0).bake()); + if (secondarySideSprite != null) { + quads.add(FaceQuad.builder(side, secondarySideSprite).cube(coreCube).cubeUV().tintIndex(0).bake()); + } + return quads; } if (isConnected(connections, side)) { // side connected List quads = new ArrayList<>(); quads.add(FaceQuad.builder(side, endSprite).cube(sideCubes.get(side).inflate(-0.001)).cubeUV().tintIndex(1).bake()); + if (secondaryEndSprite != null) { + quads.add(FaceQuad.builder(side, secondaryEndSprite).cube(sideCubes.get(side)).cubeUV().tintIndex(1).bake()); + } if (endOverlaySprite != null) { - quads.add(FaceQuad.builder(side, endOverlaySprite).cube(sideCubes.get(side).inflate(-0.000)).cubeUV().tintIndex(0).bake()); + quads.add(FaceQuad.builder(side, endOverlaySprite).cube(sideCubes.get(side)).cubeUV().tintIndex(0).bake()); } if (sideOverlaySprite != null) { for (Direction face : Direction.values()) { if (face != side && face != side.getOpposite()) { - quads.add(FaceQuad.builder(face, sideOverlaySprite).cube(sideCubes.get(side).inflate(-0.000)).cubeUV().tintIndex(2).bake()); + quads.add(FaceQuad.builder(face, sideOverlaySprite).cube(sideCubes.get(side)).cubeUV().tintIndex(2).bake()); } } } @@ -124,15 +142,18 @@ public List bakeQuads(@Nullable Direction side, int connections) { for (Direction face : Direction.values()) { if (!isConnected(connections, face)) { quads.add(FaceQuad.builder(face, sideSprite).cube(coreCube).cubeUV().tintIndex(0).bake()); + if (secondarySideSprite != null) { + quads.add(FaceQuad.builder(face, secondarySideSprite).cube(coreCube).cubeUV().tintIndex(0).bake()); + } } // render each connected side for (Direction facing : Direction.values()) { if (facing.getAxis() != face.getAxis()) { if (isConnected(connections, facing)) { quads.add(FaceQuad.builder(face, sideSprite).cube(sideCubes.get(facing)).cubeUV().tintIndex(0).bake()); - //if (endOverlaySprite != null) { - // quads.add(FaceQuad.builder(face, endOverlaySprite).cube(sideCubes.get(facing).inflate(0.01)).cubeUV().tintIndex(0).bake()); - //} + if (secondarySideSprite != null) { + quads.add(FaceQuad.builder(face, secondarySideSprite).cube(sideCubes.get(facing)).cubeUV().tintIndex(0).bake()); + } if (sideOverlaySprite != null) { quads.add(FaceQuad.builder(face, sideOverlaySprite).cube(sideCubes.get(facing).inflate(0.001)).cubeUV().tintIndex(2).bake()); } diff --git a/common/src/main/java/com/gregtechceu/gtceu/client/renderer/block/MaterialBlockRenderer.java b/common/src/main/java/com/gregtechceu/gtceu/client/renderer/block/MaterialBlockRenderer.java index 9b670b735c..0e5320e7cc 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/client/renderer/block/MaterialBlockRenderer.java +++ b/common/src/main/java/com/gregtechceu/gtceu/client/renderer/block/MaterialBlockRenderer.java @@ -1,39 +1,102 @@ package com.gregtechceu.gtceu.client.renderer.block; -import com.google.common.collect.Table; -import com.google.common.collect.Tables; -import com.gregtechceu.gtceu.GTCEu; +import com.google.common.collect.ImmutableList; +import com.gregtechceu.gtceu.api.block.MaterialBlock; import com.gregtechceu.gtceu.api.data.chemical.material.info.MaterialIconSet; import com.gregtechceu.gtceu.api.data.chemical.material.info.MaterialIconType; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; +import com.gregtechceu.gtceu.data.pack.GTDynamicResourcePack; +import com.gregtechceu.gtceu.utils.GradientUtil; +import com.mojang.blaze3d.platform.NativeImage; +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.metadata.animation.AnimationFrame; +import net.minecraft.client.resources.metadata.animation.AnimationMetadataSection; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.data.models.BlockModelGenerators; +import net.minecraft.data.models.model.*; import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.packs.resources.Resource; +import net.minecraft.world.level.block.Block; -import java.util.HashMap; -import java.util.Map; +import java.io.IOException; +import java.io.InputStream; +import java.util.HashSet; +import java.util.Set; /** * @author KilaBash * @date 2023/2/27 * @implNote MaterialBlockRenderer */ -public class MaterialBlockRenderer extends TextureOverrideRenderer { - private static final Table MODELS = Tables.newCustomTable(new HashMap<>(), HashMap::new); +public class MaterialBlockRenderer { + public static final String LAYER_2_SUFFIX = "_layer2"; + private static final Set MODELS = new HashSet<>(); - public static MaterialBlockRenderer getOrCreate(MaterialIconType type, MaterialIconSet iconSet) { - if (!MODELS.contains(type, iconSet)) { - MODELS.put(type, iconSet, new MaterialBlockRenderer(type, iconSet)); + public static void create(Block block, MaterialIconType type, MaterialIconSet iconSet) { + MODELS.add(new MaterialBlockRenderer(block, type, iconSet)); + } + + public static void reinitModels() { + for (MaterialBlockRenderer model : MODELS) { + ResourceLocation blockId = BuiltInRegistries.BLOCK.getKey(model.block); + ResourceLocation modelId = blockId.withPrefix("block/"); + GTDynamicResourcePack.addBlockModel(modelId, new DelegatedModel(model.type.getBlockModelPath(model.iconSet, true))); + GTDynamicResourcePack.addBlockState(blockId, BlockModelGenerators.createSimpleBlock(model.block, modelId)); + // ModelTemplates.CUBE_ALL.create(model.block, + // cubeTwoLayer(model.type.getBlockTexturePath(model.iconSet, true), model.type.getBlockTexturePath(model.iconSet, true).withSuffix(LAYER_2_SUFFIX)), + // GTDynamicResourcePack::addBlockModel))); + GTDynamicResourcePack.addItemModel(BuiltInRegistries.ITEM.getKey(model.block.asItem()), new DelegatedModel(ModelLocationUtils.getModelLocation(model.block))); } - return MODELS.get(type, iconSet); } - protected MaterialBlockRenderer(MaterialIconType type, MaterialIconSet iconSet) { - super(GTCEu.id("block/tinted_cube_all"), () -> Map.of("all", type.getBlockTexturePath(iconSet, true))); + public static void initTextures() { + for (MaterialBlockRenderer model : MODELS) { + ResourceLocation blockId = BuiltInRegistries.BLOCK.getKey(model.block); + + Resource file1 = Minecraft.getInstance().getResourceManager().getResource(GTDynamicResourcePack.getTextureLocation(null, model.type.getBlockTexturePath(model.iconSet, true)/*.withSuffix("_layer1")*/)).orElse(null); + if (file1 == null) continue; + try(InputStream stream1 = file1.open()) { + if (!(model.block instanceof MaterialBlock materialBlock)) continue; + int materialRGBA = GradientUtil.argbToRgba(materialBlock.material.getMaterialARGB()); + + NativeImage image1 = NativeImage.read(stream1); + try (NativeImage result = new NativeImage(image1.getWidth(), image1.getHeight(), true)) { + for (int x = 0; x < image1.getWidth(); ++x) { + for (int y = 0; y < image1.getHeight(); ++y) { + int color = image1.getPixelRGBA(x, y); + result.setPixelRGBA(x, y, GradientUtil.multiplyBlendRGBA(color, materialRGBA)); + } + } + if (materialBlock.material.getMaterialSecondaryRGB() != -1) { + int materialSecondaryRGBA = GradientUtil.argbToRgba(materialBlock.material.getMaterialSecondaryARGB()); + Resource file2 = Minecraft.getInstance().getResourceManager().getResource(GTDynamicResourcePack.getTextureLocation(null, model.type.getBlockTexturePath(model.iconSet, true).withSuffix(LAYER_2_SUFFIX))).orElse(null); + if (file2 != null) { + try(InputStream stream2 = file2.open()) { + NativeImage image2 = NativeImage.read(stream2); + for (int x = 0; x < image1.getWidth(); ++x) { + for (int y = 0; y < image1.getHeight(); ++y) { + int color = image2.getPixelRGBA(x, y); + result.blendPixel(x, y, GradientUtil.multiplyBlendRGBA(color, materialSecondaryRGBA)); + } + } + } + } + } + + GTDynamicResourcePack.addBlockTexture(blockId, result.asByteArray()); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + } } - @Override - @Environment(EnvType.CLIENT) - public boolean useAO() { - return true; + private final Block block; + private final MaterialIconType type; + private final MaterialIconSet iconSet; + + protected MaterialBlockRenderer(Block block, MaterialIconType type, MaterialIconSet iconSet) { + this.block = block; + this.type = type; + this.iconSet = iconSet; } } diff --git a/common/src/main/java/com/gregtechceu/gtceu/client/renderer/block/OreBlockRenderer.java b/common/src/main/java/com/gregtechceu/gtceu/client/renderer/block/OreBlockRenderer.java index f07d90f131..78c935eddb 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/client/renderer/block/OreBlockRenderer.java +++ b/common/src/main/java/com/gregtechceu/gtceu/client/renderer/block/OreBlockRenderer.java @@ -11,6 +11,7 @@ import com.mojang.blaze3d.vertex.PoseStack; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; +import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.block.BlockRenderDispatcher; @@ -23,6 +24,8 @@ import net.minecraft.core.Direction; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.RandomSource; +import net.minecraft.world.inventory.InventoryMenu; +import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.BlockAndTintGetter; import net.minecraft.world.level.block.state.BlockState; @@ -38,15 +41,17 @@ * @date 2023/2/27 * @implNote OreBlockRenderer */ +@MethodsReturnNonnullByDefault public class OreBlockRenderer extends BlockStateRenderer { private final Supplier stone; - private Supplier overlaySupplier; - private ResourceLocation overlay; + private final Supplier overlaySupplier; + private final Supplier<@Nullable ResourceLocation> secondaryOverlaySupplier; private final boolean emissive; - public OreBlockRenderer(Supplier stone, Supplier overlaySupplier, boolean emissive) { + public OreBlockRenderer(Supplier stone, Supplier overlaySupplier, Supplier<@Nullable ResourceLocation> secondaryOverlaySupplier, boolean emissive) { this.stone = Suppliers.memoize(stone::get); this.overlaySupplier = overlaySupplier; + this.secondaryOverlaySupplier = secondaryOverlaySupplier; this.emissive = emissive; if (LDLib.isClient()) { registerEvent(); @@ -70,7 +75,8 @@ public void renderItem(ItemStack stack, ItemTransforms.TransformType transformTy public List getQuads(@Nullable BlockState state, @Nullable Direction direction, RandomSource random) { List quads = new LinkedList<>(); if (direction != null) { - quads.add(FaceQuad.bakeFace(direction, ModelFactory.getBlockSprite(overlay), BlockModelRotation.X0_Y0, 1, emissive ? 15 : 0, true, !emissive)); + quads.add(FaceQuad.bakeFace(direction, ModelFactory.getBlockSprite(overlaySupplier.get()), BlockModelRotation.X0_Y0, 0, emissive ? 15 : 0, true, !emissive)); + if (secondaryOverlaySupplier.get() != null) quads.add(FaceQuad.bakeFace(direction, ModelFactory.getBlockSprite(secondaryOverlaySupplier.get()), BlockModelRotation.X0_Y0, 1, emissive ? 15 : 0, true, !emissive)); } return quads; } @@ -83,7 +89,8 @@ public List getQuads(@Nullable BlockState state, @Nullable Direction public List renderModel(BlockAndTintGetter level, BlockPos pos, BlockState state, Direction side, RandomSource rand) { List quads = new LinkedList<>(super.renderModel(level, pos, state, side, rand)); if (side != null) { - quads.add(FaceQuad.bakeFace(side, ModelFactory.getBlockSprite(overlay), BlockModelRotation.X0_Y0, 1, emissive ? 15 : 0, true, !emissive)); + quads.add(FaceQuad.bakeFace(side, ModelFactory.getBlockSprite(overlaySupplier.get()), BlockModelRotation.X0_Y0, 0, emissive ? 15 : 0, true, !emissive)); + if (secondaryOverlaySupplier.get() != null) quads.add(FaceQuad.bakeFace(side, ModelFactory.getBlockSprite(secondaryOverlaySupplier.get()), BlockModelRotation.X0_Y0, 1, emissive ? 15 : 0, true, !emissive)); } return quads; } @@ -92,11 +99,9 @@ public List renderModel(BlockAndTintGetter level, BlockPos pos, Block @Environment(EnvType.CLIENT) public void onPrepareTextureAtlas(ResourceLocation atlasName, Consumer register) { super.onPrepareTextureAtlas(atlasName, register); - if (atlasName.equals(TextureAtlas.LOCATION_BLOCKS)) { - if (overlaySupplier != null) { - overlay = overlaySupplier.get(); - } - register.accept(overlay); + if (atlasName.equals(InventoryMenu.BLOCK_ATLAS)) { + register.accept(overlaySupplier.get()); + if (secondaryOverlaySupplier.get() != null) register.accept(secondaryOverlaySupplier.get()); } } diff --git a/common/src/main/java/com/gregtechceu/gtceu/client/renderer/item/TagPrefixItemRenderer.java b/common/src/main/java/com/gregtechceu/gtceu/client/renderer/item/TagPrefixItemRenderer.java index 9a8c5ce6ae..2f9db1b31e 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/client/renderer/item/TagPrefixItemRenderer.java +++ b/common/src/main/java/com/gregtechceu/gtceu/client/renderer/item/TagPrefixItemRenderer.java @@ -4,92 +4,93 @@ import com.google.common.collect.Tables; import com.gregtechceu.gtceu.api.data.chemical.material.info.MaterialIconSet; import com.gregtechceu.gtceu.api.data.chemical.material.info.MaterialIconType; -import com.lowdragmc.lowdraglib.client.model.ModelFactory; -import com.lowdragmc.lowdraglib.client.renderer.impl.IModelRenderer; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.client.renderer.block.model.BlockModel; -import net.minecraft.client.resources.model.*; -import net.minecraft.core.Direction; +import com.gregtechceu.gtceu.api.item.TagPrefixItem; +import com.gregtechceu.gtceu.data.pack.GTDynamicResourcePack; +import com.gregtechceu.gtceu.utils.GradientUtil; +import com.mojang.blaze3d.platform.NativeImage; +import net.minecraft.client.Minecraft; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.data.models.model.DelegatedModel; import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.packs.resources.Resource; +import net.minecraft.world.item.Item; -import javax.annotation.Nullable; -import java.util.HashMap; -import java.util.function.Consumer; -import java.util.function.Supplier; +import java.io.IOException; +import java.io.InputStream; +import java.util.HashSet; +import java.util.Set; + +import static com.gregtechceu.gtceu.client.renderer.block.MaterialBlockRenderer.LAYER_2_SUFFIX; /** - * @author KilaBash - * @date 2023/2/16 + * @author Screret + * @date 2023/11/10 * @implNote TagPrefixItemRenderer */ -public class TagPrefixItemRenderer extends IModelRenderer { - private static final Table MODELS = Tables.newCustomTable(new HashMap<>(), HashMap::new); - - @Nullable - private ResourceLocation modelLocation; - @Nullable - private Supplier modelLocationSupplier; +public class TagPrefixItemRenderer { + private static final Set MODELS = new HashSet<>(); - private TagPrefixItemRenderer(MaterialIconType type, MaterialIconSet iconSet) { - super(null); - this.modelLocationSupplier = () -> type.getItemModelPath(iconSet, true); + public static void create(Item item, MaterialIconType type, MaterialIconSet iconSet) { + MODELS.add(new TagPrefixItemRenderer(item, type, iconSet)); } - public static TagPrefixItemRenderer getOrCreate(MaterialIconType type, MaterialIconSet iconSet) { - if (!MODELS.contains(type, iconSet)) { - MODELS.put(type, iconSet, new TagPrefixItemRenderer(type, iconSet)); + public static void reinitModels() { + for (TagPrefixItemRenderer model : MODELS) { + ResourceLocation itemId = BuiltInRegistries.ITEM.getKey(model.item); + GTDynamicResourcePack.addItemModel(itemId, new DelegatedModel(model.type.getItemModelPath(model.iconSet, true))); + //ModelTemplates.FLAT_ITEM.create(GTDynamicResourcePack.getItemModelLocation(itemId), TextureMapping.layer0(itemId.withPrefix("item/")), GTDynamicResourcePack::addItemModel); } - return MODELS.get(type, iconSet); } - @Environment(EnvType.CLIENT) - @Override - protected UnbakedModel getModel() { - return ModelFactory.getUnBakedModel(modelLocation); - } + public static void initTextures() { + for (TagPrefixItemRenderer model : MODELS) { + ResourceLocation itemId = BuiltInRegistries.ITEM.getKey(model.item); - @Environment(EnvType.CLIENT) - @Nullable - @Override - protected BakedModel getItemBakedModel() { - if (itemModel == null) { - var model = getModel(); - if (model instanceof BlockModel blockModel && blockModel.getRootModel() == ModelBakery.GENERATION_MARKER) { - // fabric doesn't help us to fix vanilla bakery, so we have to do it ourselves - model = ModelFactory.ITEM_MODEL_GENERATOR.generateBlockModel(Material::sprite, blockModel); - } - itemModel = model.bake( - ModelFactory.getModeBakery(), - Material::sprite, - BlockModelRotation.X0_Y0, - modelLocation); - } - return itemModel; - } + Resource file1 = Minecraft.getInstance().getResourceManager().getResource(GTDynamicResourcePack.getTextureLocation(null, model.type.getItemTexturePath(model.iconSet, true)/*.withSuffix("_layer1")*/)).orElse(null); + if (file1 == null) continue; + try(InputStream stream1 = file1.open()) { + if (!(model.item instanceof TagPrefixItem prefixItem)) continue; + int materialRGBA = GradientUtil.argbToRgba(prefixItem.material.getMaterialARGB()); + int materialSecondaryRGBA = GradientUtil.argbToRgba(prefixItem.material.getMaterialSecondaryARGB()); - @Environment(EnvType.CLIENT) - @Override - public BakedModel getRotatedModel(Direction frontFacing) { - return blockModels.computeIfAbsent(frontFacing, facing -> getModel().bake( - ModelFactory.getModeBakery(), - Material::sprite, - ModelFactory.getRotation(facing), - modelLocation)); - } + NativeImage image1 = NativeImage.read(stream1); + try (NativeImage result = new NativeImage(image1.getWidth(), image1.getHeight(), true)) { + for (int x = 0; x < image1.getWidth(); ++x) { + for (int y = 0; y < image1.getHeight(); ++y) { + int color = image1.getPixelRGBA(x, y); + result.setPixelRGBA(x, y, GradientUtil.multiplyBlendRGBA(color, materialRGBA)); + } + } + if (prefixItem.material.getMaterialSecondaryRGB() != -1) { + Resource file2 = Minecraft.getInstance().getResourceManager().getResource(GTDynamicResourcePack.getTextureLocation(null, model.type.getItemTexturePath(model.iconSet, true).withSuffix(LAYER_2_SUFFIX))).orElse(null); + if (file2 != null) { + try(InputStream stream2 = file2.open()) { + NativeImage image2 = NativeImage.read(stream2); + for (int x = 0; x < image1.getWidth(); ++x) { + for (int y = 0; y < image1.getHeight(); ++y) { + int color = image2.getPixelRGBA(x, y); + result.blendPixel(x, y, GradientUtil.multiplyBlendRGBA(color, materialSecondaryRGBA)); + } + } + } + } + } - @Override - @Environment(EnvType.CLIENT) - public void onAdditionalModel(Consumer registry) { - if (modelLocationSupplier != null) { - modelLocation = modelLocationSupplier.get(); + GTDynamicResourcePack.addItemTexture(itemId, result.asByteArray()); + } + } catch (IOException e) { + throw new RuntimeException(e); + } } - registry.accept(modelLocation); } - @Override - @Environment(EnvType.CLIENT) - public boolean isGui3d() { - return false; + private final Item item; + private final MaterialIconType type; + private final MaterialIconSet iconSet; + + private TagPrefixItemRenderer(Item item, MaterialIconType type, MaterialIconSet iconSet) { + this.item = item; + this.type = type; + this.iconSet = iconSet; } } diff --git a/common/src/main/java/com/gregtechceu/gtceu/client/renderer/item/ToolItemRenderer.java b/common/src/main/java/com/gregtechceu/gtceu/client/renderer/item/ToolItemRenderer.java index cf73c3b08d..86220c9694 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/client/renderer/item/ToolItemRenderer.java +++ b/common/src/main/java/com/gregtechceu/gtceu/client/renderer/item/ToolItemRenderer.java @@ -1,35 +1,39 @@ package com.gregtechceu.gtceu.client.renderer.item; import com.gregtechceu.gtceu.api.item.tool.GTToolType; -import com.lowdragmc.lowdraglib.client.renderer.impl.IModelRenderer; +import com.gregtechceu.gtceu.data.pack.GTDynamicResourcePack; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.data.models.model.DelegatedModel; +import net.minecraft.world.item.Item; -import java.util.EnumMap; -import java.util.Map; +import java.util.HashSet; +import java.util.Set; /** * @author KilaBash * @date 2023/2/16 * @implNote TagPrefixItemRenderer */ -public class ToolItemRenderer extends IModelRenderer { - private static final Map MODELS = new EnumMap<>(GTToolType.class); +public class ToolItemRenderer { + private static final Set MODELS = new HashSet<>(); - protected ToolItemRenderer(GTToolType toolType) { - super(toolType.modelLocation); + public static void reinitModels() { + for (ToolItemRenderer model : MODELS) { + GTDynamicResourcePack.addItemModel(BuiltInRegistries.ITEM.getKey(model.item), new DelegatedModel(model.toolType.modelLocation)); + } } - public static ToolItemRenderer getOrCreate(GTToolType toolType) { - if (!MODELS.containsKey(toolType)) { - MODELS.put(toolType, new ToolItemRenderer(toolType)); - } - return MODELS.get(toolType); + private final Item item; + private final GTToolType toolType; + + protected ToolItemRenderer(Item item, GTToolType toolType) { + this.item = item; + this.toolType = toolType; } - @Override - @Environment(EnvType.CLIENT) - public boolean isGui3d() { - return false; + public static void create(Item item, GTToolType toolType) { + MODELS.add(new ToolItemRenderer(item, toolType)); } } diff --git a/common/src/main/java/com/gregtechceu/gtceu/client/renderer/machine/QuantumChestRenderer.java b/common/src/main/java/com/gregtechceu/gtceu/client/renderer/machine/QuantumChestRenderer.java index 94022e18eb..ba046885d4 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/client/renderer/machine/QuantumChestRenderer.java +++ b/common/src/main/java/com/gregtechceu/gtceu/client/renderer/machine/QuantumChestRenderer.java @@ -52,7 +52,8 @@ public void renderItem(ItemStack stack, ItemTransforms.TransformType transformTy ItemStack itemStack = ItemStack.of(stack.getOrCreateTagElement("stored")); int storedAmount = stack.getOrCreateTag().getInt("storedAmount"); float tick = Minecraft.getInstance().level.getGameTime() + Minecraft.getInstance().getFrameTime(); - renderChest(poseStack, buffer, Direction.NORTH, itemStack, storedAmount, tick); + // Don't need to handle locked items here since they don't get saved to the item + renderChest(poseStack, buffer, Direction.NORTH, itemStack, storedAmount, tick, ItemStack.EMPTY); poseStack.popPose(); } @@ -66,39 +67,40 @@ public void render(BlockEntity blockEntity, float partialTicks, PoseStack poseSt var level = machine.getLevel(); var frontFacing = machine.getFrontFacing(); float tick = level.getGameTime() + partialTicks; - renderChest(poseStack, buffer, frontFacing, machine.getStored(), machine.getStoredAmount(), tick); + renderChest(poseStack, buffer, frontFacing, machine.getStored(), machine.getStoredAmount(), tick, machine.getLockedItem().getStackInSlot(0)); } } @Environment(EnvType.CLIENT) - public void renderChest(PoseStack poseStack, MultiBufferSource buffer, Direction frontFacing, ItemStack itemStack, int storedAmount, float tick) { - if (!itemStack.isEmpty()) { - var itemRenderer = Minecraft.getInstance().getItemRenderer(); - poseStack.pushPose(); - BakedModel bakedmodel = itemRenderer.getModel(itemStack, Minecraft.getInstance().level, null, Item.getId(itemStack.getItem()) + itemStack.getDamageValue()); - poseStack.translate(0.5D, 0.5d, 0.5D); - poseStack.mulPose(Vector3f.YP.rotation(tick * Mth.TWO_PI / 80)); - poseStack.scale(0.6f, 0.6f, 0.6f); - itemRenderer.render(itemStack, ItemTransforms.TransformType.FIXED, false, poseStack, buffer, 0xf000f0, OverlayTexture.NO_OVERLAY, bakedmodel); - poseStack.popPose(); + public void renderChest(PoseStack poseStack, MultiBufferSource buffer, Direction frontFacing, ItemStack stored, int storedAmount, float tick, ItemStack locked) { + ItemStack itemStack = !stored.isEmpty() ? stored : locked; + if (itemStack.isEmpty()) return; + var itemRenderer = Minecraft.getInstance().getItemRenderer(); + poseStack.pushPose(); + BakedModel bakedmodel = itemRenderer.getModel(itemStack, Minecraft.getInstance().level, null, Item.getId(itemStack.getItem()) + itemStack.getDamageValue()); + poseStack.translate(0.5D, 0.5d, 0.5D); + poseStack.mulPose(Vector3f.YP.rotation(tick * Mth.TWO_PI / 80)); + poseStack.scale(0.6f, 0.6f, 0.6f); + itemRenderer.render(itemStack, ItemTransforms.TransformType.FIXED, false, poseStack, buffer, 0xf000f0, OverlayTexture.NO_OVERLAY, bakedmodel); + poseStack.popPose(); - poseStack.pushPose(); - RenderSystem.disableDepthTest(); - poseStack.translate(frontFacing.getStepX() * -1 / 16f, frontFacing.getStepY() * -1 / 16f, frontFacing.getStepZ() * -1 / 16f); - RenderUtils.moveToFace(poseStack, 0, 0, 0, frontFacing); - if (frontFacing.getAxis() == Direction.Axis.Y) { - RenderUtils.rotateToFace(poseStack, frontFacing, frontFacing == Direction.UP ? Direction.SOUTH : Direction.NORTH); - } else { - RenderUtils.rotateToFace(poseStack, frontFacing, null); - } - var amount = TextFormattingUtil.formatLongToCompactString(storedAmount, 4); - poseStack.scale(1f / 64, 1f / 64, 0); - poseStack.translate(-32, -32, 0); - new TextTexture(amount).draw(poseStack, 0, 0, 0, 24, 64, 28); - RenderSystem.enableDepthTest(); - poseStack.popPose(); + + poseStack.pushPose(); + RenderSystem.disableDepthTest(); + poseStack.translate(frontFacing.getStepX() * -1 / 16f, frontFacing.getStepY() * -1 / 16f, frontFacing.getStepZ() * -1 / 16f); + RenderUtils.moveToFace(poseStack, 0, 0, 0, frontFacing); + if (frontFacing.getAxis() == Direction.Axis.Y) { + RenderUtils.rotateToFace(poseStack, frontFacing, frontFacing == Direction.UP ? Direction.SOUTH : Direction.NORTH); + } else { + RenderUtils.rotateToFace(poseStack, frontFacing, null); } + var amount = stored.isEmpty() ? "*" : TextFormattingUtil.formatLongToCompactString(storedAmount, 4); + poseStack.scale(1f / 64, 1f / 64, 0); + poseStack.translate(-32, -32, 0); + new TextTexture(amount).draw(poseStack, 0, 0, 0, 24, 64, 28); + RenderSystem.enableDepthTest(); + poseStack.popPose(); } @Environment(EnvType.CLIENT) diff --git a/common/src/main/java/com/gregtechceu/gtceu/client/renderer/machine/QuantumTankRenderer.java b/common/src/main/java/com/gregtechceu/gtceu/client/renderer/machine/QuantumTankRenderer.java index 8d715b4df2..75d92f109c 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/client/renderer/machine/QuantumTankRenderer.java +++ b/common/src/main/java/com/gregtechceu/gtceu/client/renderer/machine/QuantumTankRenderer.java @@ -17,7 +17,6 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.Sheets; -import net.minecraft.client.renderer.block.model.ItemTransforms; import net.minecraft.client.renderer.texture.MissingTextureAtlasSprite; import net.minecraft.client.renderer.texture.TextureAtlas; import net.minecraft.client.resources.model.BakedModel; @@ -51,7 +50,8 @@ public void renderItem(ItemStack stack, ItemTransforms.TransformType transformTy poseStack.translate(-0.5D, -0.5D, -0.5D); FluidStack tank = FluidStack.loadFromTag(stack.getOrCreateTagElement("stored")); - renderTank(poseStack, buffer, Direction.NORTH, tank); + // Don't need to handle locked fluids here since they don't get saved to the item + renderTank(poseStack, buffer, Direction.NORTH, tank, FluidStack.empty()); poseStack.popPose(); } @@ -62,38 +62,39 @@ public void renderItem(ItemStack stack, ItemTransforms.TransformType transformTy @Environment(EnvType.CLIENT) public void render(BlockEntity blockEntity, float partialTicks, PoseStack poseStack, MultiBufferSource buffer, int combinedLight, int combinedOverlay) { if (blockEntity instanceof IMachineBlockEntity machineBlockEntity && machineBlockEntity.getMetaMachine() instanceof QuantumTankMachine machine) { - renderTank(poseStack, buffer, machine.getFrontFacing(), machine.getStored()); + renderTank(poseStack, buffer, machine.getFrontFacing(), machine.getStored(), machine.getLockedFluid().getFluid()); } } @Environment(EnvType.CLIENT) - public void renderTank(PoseStack poseStack, MultiBufferSource buffer, Direction frontFacing, FluidStack stored) { - if (!stored.isEmpty()) { - var fluidTexture = FluidHelper.getStillTexture(stored); - if (fluidTexture == null) { - fluidTexture = Minecraft.getInstance().getTextureAtlas(TextureAtlas.LOCATION_BLOCKS).apply(MissingTextureAtlasSprite.getLocation()); - } - poseStack.pushPose(); - VertexConsumer builder = buffer.getBuffer(Sheets.translucentCullBlockSheet()); - RenderBufferUtils.renderCubeFace(poseStack, builder, 2.5f / 16, 2.5f / 16, 2.5f / 16, 13.5f / 16, 13.5f / 16, 13.5f / 16, FluidHelper.getColor(stored) | 0xff000000, 0xf000f0, fluidTexture); - poseStack.popPose(); + public void renderTank(PoseStack poseStack, MultiBufferSource buffer, Direction frontFacing, FluidStack stored, FluidStack locked) { + FluidStack fluid = !stored.isEmpty() ? stored : locked; + if (fluid.isEmpty()) return; - poseStack.pushPose(); - RenderSystem.disableDepthTest(); - poseStack.translate(frontFacing.getStepX() * -1 / 16f, frontFacing.getStepY() * -1 / 16f, frontFacing.getStepZ() * -1 / 16f); - RenderUtils.moveToFace(poseStack, 0, 0, 0, frontFacing); - if (frontFacing.getAxis() == Direction.Axis.Y) { - RenderUtils.rotateToFace(poseStack, frontFacing, frontFacing == Direction.UP ? Direction.SOUTH : Direction.NORTH); - } else { - RenderUtils.rotateToFace(poseStack, frontFacing, null); - } - var amount = TextFormattingUtil.formatLongToCompactString(stored.getAmount() / (FluidHelper.getBucket() / 1000), 4); - poseStack.scale(1f / 64, 1f / 64, 0); - poseStack.translate(-32, -32, 0); - new TextTexture(amount).draw(poseStack, 0, 0, 0, 24, 64, 28); - RenderSystem.enableDepthTest(); - poseStack.popPose(); + var fluidTexture = FluidHelper.getStillTexture(fluid); + if (fluidTexture == null) { + fluidTexture = Minecraft.getInstance().getTextureAtlas(TextureAtlas.LOCATION_BLOCKS).apply(MissingTextureAtlasSprite.getLocation()); + } + poseStack.pushPose(); + VertexConsumer builder = buffer.getBuffer(Sheets.translucentCullBlockSheet()); + RenderBufferUtils.renderCubeFace(poseStack, builder, 2.5f / 16, 2.5f / 16, 2.5f / 16, 13.5f / 16, 13.5f / 16, 13.5f / 16, FluidHelper.getColor(fluid) | 0xff000000, 0xf000f0, fluidTexture); + poseStack.popPose(); + + poseStack.pushPose(); + RenderSystem.disableDepthTest(); + poseStack.translate(frontFacing.getStepX() * -1 / 16f, frontFacing.getStepY() * -1 / 16f, frontFacing.getStepZ() * -1 / 16f); + RenderUtils.moveToFace(poseStack, 0, 0, 0, frontFacing); + if (frontFacing.getAxis() == Direction.Axis.Y) { + RenderUtils.rotateToFace(poseStack, frontFacing, frontFacing == Direction.UP ? Direction.SOUTH : Direction.NORTH); + } else { + RenderUtils.rotateToFace(poseStack, frontFacing, null); } + var amount = stored.isEmpty() ? "*" : TextFormattingUtil.formatLongToCompactString(fluid.getAmount() / (FluidHelper.getBucket() / 1000), 4); + poseStack.scale(1f / 64, 1f / 64, 0); + poseStack.translate(-32, -32, 0); + new TextTexture(amount).draw(poseStack, 0, 0, 0, 24, 64, 28); + RenderSystem.enableDepthTest(); + poseStack.popPose(); } @Environment(EnvType.CLIENT) diff --git a/common/src/main/java/com/gregtechceu/gtceu/common/block/LaserPipeBlock.java b/common/src/main/java/com/gregtechceu/gtceu/common/block/LaserPipeBlock.java index b08a21921c..4326a35a93 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/common/block/LaserPipeBlock.java +++ b/common/src/main/java/com/gregtechceu/gtceu/common/block/LaserPipeBlock.java @@ -31,34 +31,25 @@ @MethodsReturnNonnullByDefault public class LaserPipeBlock extends PipeBlock { - public final DyeColor color; public final PipeBlockRenderer renderer; public final PipeModel model; - public LaserPipeBlock(Properties properties, DyeColor color) { - super(properties, LaserPipeType.NORMAL); - this.color = color; - this.model = new PipeModel(LaserPipeType.NORMAL.getThickness(), () -> GTCEu.id("block/pipe/pipe_laser_side"), () -> GTCEu.id("block/pipe/pipe_laser_in")); + public LaserPipeBlock(Properties properties, LaserPipeType type) { + super(properties, type); + this.model = new PipeModel(LaserPipeType.NORMAL.getThickness(), () -> GTCEu.id("block/pipe/pipe_laser_side"), () -> GTCEu.id("block/pipe/pipe_laser_in"), null, null); this.renderer = new PipeBlockRenderer(this.model); } @Environment(EnvType.CLIENT) public static BlockColor tintedColor() { return (blockState, level, blockPos, index) -> { - if (blockState.getBlock() instanceof LaserPipeBlock block) { - if (blockPos != null && level != null && level.getBlockEntity(blockPos) instanceof PipeBlockEntity pipe && pipe.isPainted()) { - return pipe.getRealColor(); - } - return block.tinted(blockState, level, blockPos, index); + if (blockPos != null && level != null && level.getBlockEntity(blockPos) instanceof PipeBlockEntity pipe && pipe.isPainted()) { + return pipe.getRealColor(); } return -1; }; } - public int tinted(BlockState blockState, @Nullable BlockAndTintGetter blockAndTintGetter, @Nullable BlockPos blockPos, int index) { - return color.getTextColor(); - } - @Override public LevelLaserPipeNet getWorldPipeNet(ServerLevel world) { return LevelLaserPipeNet.getOrCreate(world); diff --git a/common/src/main/java/com/gregtechceu/gtceu/common/blockentity/FluidPipeBlockEntity.java b/common/src/main/java/com/gregtechceu/gtceu/common/blockentity/FluidPipeBlockEntity.java index dd04142129..f7aef70d53 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/common/blockentity/FluidPipeBlockEntity.java +++ b/common/src/main/java/com/gregtechceu/gtceu/common/blockentity/FluidPipeBlockEntity.java @@ -1,11 +1,13 @@ package com.gregtechceu.gtceu.common.blockentity; -import com.gregtechceu.gtceu.common.block.FluidPipeBlock; import com.gregtechceu.gtceu.api.blockentity.PipeBlockEntity; +import com.gregtechceu.gtceu.api.cover.CoverBehavior; +import com.gregtechceu.gtceu.common.block.FluidPipeBlock; import com.gregtechceu.gtceu.common.pipelike.fluidpipe.FluidPipeData; import com.gregtechceu.gtceu.common.pipelike.fluidpipe.FluidPipeNet; import com.gregtechceu.gtceu.common.pipelike.fluidpipe.FluidPipeType; import com.lowdragmc.lowdraglib.side.fluid.FluidTransferHelper; +import com.lowdragmc.lowdraglib.side.fluid.IFluidTransfer; import dev.architectury.injectables.annotations.ExpectPlatform; import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.core.BlockPos; @@ -42,6 +44,11 @@ public static void onBlockEntityRegister(BlockEntityType c throw new AssertionError(); } + @ExpectPlatform + public static IFluidTransfer getNetHandler(FluidPipeBlockEntity pipe, @Nullable Direction side) { + throw new AssertionError(); + } + @Override public boolean canAttachTo(Direction side) { if (level != null) { @@ -66,4 +73,12 @@ public FluidPipeNet getFluidPipeNet() { } return this.currentFluidPipeNet.get(); } + + public IFluidTransfer getHandler(@Nullable Direction side, boolean useCoverCapability) { + IFluidTransfer handler = getNetHandler(this, side); + if (!useCoverCapability || side == null) return handler; + + CoverBehavior cover = getCoverContainer().getCoverAtSide(side); + return cover != null ? cover.getFluidTransferCap(side, handler) : handler; + } } diff --git a/common/src/main/java/com/gregtechceu/gtceu/common/blockentity/ItemPipeBlockEntity.java b/common/src/main/java/com/gregtechceu/gtceu/common/blockentity/ItemPipeBlockEntity.java index 9f359460b8..51e073b0af 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/common/blockentity/ItemPipeBlockEntity.java +++ b/common/src/main/java/com/gregtechceu/gtceu/common/blockentity/ItemPipeBlockEntity.java @@ -1,13 +1,14 @@ package com.gregtechceu.gtceu.common.blockentity; import com.gregtechceu.gtceu.api.blockentity.PipeBlockEntity; -import com.gregtechceu.gtceu.api.machine.TickableSubscription; +import com.gregtechceu.gtceu.api.cover.CoverBehavior; import com.gregtechceu.gtceu.common.block.ItemPipeBlock; import com.gregtechceu.gtceu.common.pipelike.item.ItemNetHandler; import com.gregtechceu.gtceu.common.pipelike.item.ItemPipeData; import com.gregtechceu.gtceu.common.pipelike.item.ItemPipeNet; import com.gregtechceu.gtceu.common.pipelike.item.ItemPipeType; import com.gregtechceu.gtceu.utils.FacingPos; +import com.lowdragmc.lowdraglib.side.item.IItemTransfer; import com.lowdragmc.lowdraglib.side.item.ItemTransferHelper; import dev.architectury.injectables.annotations.ExpectPlatform; import lombok.Getter; @@ -33,15 +34,8 @@ public class ItemPipeBlockEntity extends PipeBlockEntity type, BlockPos pos, BlockState blockState) { super(type, pos, blockState); - this.serverTick = subscribeServerTick(this::update); } @ExpectPlatform @@ -100,17 +94,15 @@ public ItemPipeNet getItemPipeNet() { return this.currentItemPipeNet.get(); } - public void update() { - if (++timer % 20 == 0) { - transferredItems = 0; - } + public void resetTransferred() { + transferred.clear(); } - public void transferItems(int amount) { - transferredItems += amount; - } + public IItemTransfer getHandler(@Nullable Direction side, boolean useCoverCapability) { + ItemNetHandler handler = getHandlers().getOrDefault(side, getDefaultHandler()); + if (!useCoverCapability || side == null) return handler; - public void resetTransferred() { - transferred.clear(); + CoverBehavior cover = getCoverContainer().getCoverAtSide(side); + return cover != null ? cover.getItemTransferCap(side, handler) : handler; } } diff --git a/common/src/main/java/com/gregtechceu/gtceu/common/cover/ConveyorCover.java b/common/src/main/java/com/gregtechceu/gtceu/common/cover/ConveyorCover.java index 09827f85a3..fcc1348d64 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/common/cover/ConveyorCover.java +++ b/common/src/main/java/com/gregtechceu/gtceu/common/cover/ConveyorCover.java @@ -15,9 +15,10 @@ import com.gregtechceu.gtceu.api.gui.widget.IntInputWidget; import com.gregtechceu.gtceu.api.machine.ConditionalSubscriptionHandler; import com.gregtechceu.gtceu.api.syncdata.RequireRerender; +import com.gregtechceu.gtceu.api.transfer.item.ItemTransferDelegate; import com.gregtechceu.gtceu.common.blockentity.ItemPipeBlockEntity; import com.gregtechceu.gtceu.common.cover.data.DistributionMode; -import com.gregtechceu.gtceu.common.cover.data.ManualImportExportMode; +import com.gregtechceu.gtceu.common.cover.data.ManualIOMode; import com.gregtechceu.gtceu.utils.ItemStackHashStrategy; import com.lowdragmc.lowdraglib.gui.texture.GuiTextureGroup; import com.lowdragmc.lowdraglib.gui.widget.LabelWidget; @@ -45,6 +46,7 @@ import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; +import java.util.EnumMap; import java.util.List; import java.util.Map; @@ -66,7 +68,7 @@ public class ConveyorCover extends CoverBehavior implements IUICover, IControlla @Persisted @DescSynced @Getter protected DistributionMode distributionMode; @Persisted @DescSynced @Getter - protected ManualImportExportMode manualImportExportMode = ManualImportExportMode.DISABLED; + protected ManualIOMode manualIOMode = ManualIOMode.DISABLED; @Persisted @Getter protected boolean isWorkingEnabled = true; protected int itemsLeftToTransferLastSecond; @@ -97,7 +99,7 @@ protected boolean isSubscriptionActive() { } protected @Nullable IItemTransfer getOwnItemTransfer() { - return ItemTransferHelper.getItemTransfer(coverHolder.getLevel(), coverHolder.getPos(), attachedSide); + return coverHolder.getItemTransferCap(attachedSide, false); } protected @Nullable IItemTransfer getAdjacentItemTransfer() { @@ -135,8 +137,8 @@ public void setDistributionMode(DistributionMode distributionMode) { coverHolder.markDirty(); } - protected void setManualImportExportMode(ManualImportExportMode manualImportExportMode) { - this.manualImportExportMode = manualImportExportMode; + protected void setManualIOMode(ManualIOMode manualIOMode) { + this.manualIOMode = manualIOMode; coverHolder.markDirty(); } @@ -391,7 +393,7 @@ protected static class GroupItemInfo { ////////////////////////////////////// @Override public Widget createUIWidget() { - final var group = new WidgetGroup(0, 0, 176, 135); + final var group = new WidgetGroup(0, 0, 176, 137); group.addWidget(new LabelWidget(10, 5, LocalizationUtils.format(getUITitle(), GTValues.VN[tier]))); group.addWidget(new IntInputWidget(10, 20, 156, 20, () -> this.transferRate, this::setTransferRate) @@ -410,26 +412,29 @@ public Widget createUIWidget() { .setPressed(io == IO.IN) .setHoverTooltips(LocalizationUtils.format("cover.conveyor.mode", LocalizationUtils.format(io.tooltip))); group.addWidget(ioModeSwitch); - group.addWidget(new EnumSelectorWidget<>(7, 166, 116, 20, - ManualImportExportMode.VALUES, ManualImportExportMode.DISABLED, - this::setManualImportExportMode) - .setHoverTooltips("cover.universal.manual_import_export.mode.description")); - if (coverHolder.getLevel().getBlockEntity(coverHolder.getPos()) instanceof ItemPipeBlockEntity || - coverHolder.getLevel().getBlockEntity(coverHolder.getPos().relative(attachedSide)) instanceof ItemPipeBlockEntity) { - group.addWidget(new EnumSelectorWidget<>(149, 166, 20, 20, - DistributionMode.VALUES, DistributionMode.INSERT_FIRST, - this::setDistributionMode)); + if (shouldDisplayDistributionMode()) { + group.addWidget(new EnumSelectorWidget<>(146, 67, 20, 20, + DistributionMode.VALUES, distributionMode, this::setDistributionMode)); } - group.addWidget(filterHandler.createFilterSlotUI(148, 107)); - group.addWidget(filterHandler.createFilterConfigUI(10, 70, 156, 60)); + group.addWidget(new EnumSelectorWidget<>(146, 107, 20, 20, + ManualIOMode.VALUES, manualIOMode, this::setManualIOMode) + .setHoverTooltips("cover.universal.manual_import_export.mode.description")); + + group.addWidget(filterHandler.createFilterSlotUI(125, 108)); + group.addWidget(filterHandler.createFilterConfigUI(10, 72, 156, 60)); buildAdditionalUI(group); return group; } + private boolean shouldDisplayDistributionMode() { + return coverHolder.getLevel().getBlockEntity(coverHolder.getPos()) instanceof ItemPipeBlockEntity || + coverHolder.getLevel().getBlockEntity(coverHolder.getPos().relative(attachedSide)) instanceof ItemPipeBlockEntity; + } + @NotNull protected String getUITitle() { return "cover.conveyor.title"; @@ -442,4 +447,50 @@ protected void buildAdditionalUI(WidgetGroup group) { protected void configureFilter() { // Do nothing in the base implementation. This is intended to be overridden by subclasses. } + + + ///////////////////////////////////// + //*** CAPABILITY OVERRIDE ***// + ///////////////////////////////////// + + private final Map itemTransferWrappers = new EnumMap<>(Direction.class); + + @Override + public IItemTransfer getItemTransferCap(Direction side, IItemTransfer defaultValue) { + return itemTransferWrappers.computeIfAbsent(side, s -> new CoverableItemTransferWrapper(defaultValue)); + } + + private class CoverableItemTransferWrapper extends ItemTransferDelegate { + public CoverableItemTransferWrapper(IItemTransfer delegate) { + super(delegate); + } + + @NotNull + @Override + public ItemStack insertItem(int slot, @NotNull ItemStack stack, boolean simulate, boolean notifyChanges) { + if (io == IO.OUT && manualIOMode == ManualIOMode.DISABLED) { + return stack; + } + if (manualIOMode == ManualIOMode.FILTERED && !filterHandler.test(stack)) { + return stack; + } + return super.insertItem(slot, stack, simulate, notifyChanges); + } + + @NotNull + @Override + public ItemStack extractItem(int slot, int amount, boolean simulate, boolean notifyChanges) { + if (io == IO.IN && manualIOMode == ManualIOMode.DISABLED) { + return ItemStack.EMPTY; + } + if (manualIOMode == ManualIOMode.FILTERED) { + ItemStack result = super.extractItem(slot, amount, true, notifyChanges); + if (result.isEmpty() || !filterHandler.test(result)) { + return ItemStack.EMPTY; + } + return simulate ? result : super.extractItem(slot, amount, false, notifyChanges); + } + return super.extractItem(slot, amount, simulate, notifyChanges); + } + } } diff --git a/common/src/main/java/com/gregtechceu/gtceu/common/cover/PumpCover.java b/common/src/main/java/com/gregtechceu/gtceu/common/cover/PumpCover.java index ac37c8feaa..46c7fb80cf 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/common/cover/PumpCover.java +++ b/common/src/main/java/com/gregtechceu/gtceu/common/cover/PumpCover.java @@ -15,7 +15,9 @@ import com.gregtechceu.gtceu.api.gui.widget.NumberInputWidget; import com.gregtechceu.gtceu.api.machine.ConditionalSubscriptionHandler; import com.gregtechceu.gtceu.api.syncdata.RequireRerender; +import com.gregtechceu.gtceu.api.transfer.fluid.FluidTransferDelegate; import com.gregtechceu.gtceu.common.cover.data.BucketMode; +import com.gregtechceu.gtceu.common.cover.data.ManualIOMode; import com.gregtechceu.gtceu.utils.FluidStackHashStrategy; import com.lowdragmc.lowdraglib.gui.widget.LabelWidget; import com.lowdragmc.lowdraglib.gui.widget.Widget; @@ -34,7 +36,6 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.network.chat.Component; -import net.minecraft.util.Mth; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Block; import org.jetbrains.annotations.NotNull; @@ -42,6 +43,7 @@ import javax.annotation.ParametersAreNonnullByDefault; import java.util.Arrays; +import java.util.EnumMap; import java.util.List; import java.util.Map; @@ -66,6 +68,8 @@ public class PumpCover extends CoverBehavior implements IUICover, IControllable protected IO io = IO.OUT; @Persisted @DescSynced @Getter protected BucketMode bucketMode = BucketMode.MILLI_BUCKET; + @Persisted @DescSynced @Getter + protected ManualIOMode manualIOMode = ManualIOMode.DISABLED; @Persisted @Getter protected boolean isWorkingEnabled = true; @@ -102,7 +106,7 @@ protected boolean isSubscriptionActive() { } protected @Nullable IFluidTransfer getOwnFluidTransfer() { - return FluidTransferHelper.getFluidTransfer(coverHolder.getLevel(), coverHolder.getPos(), attachedSide); + return coverHolder.getFluidTransferCap(attachedSide, false); } protected @Nullable IFluidTransfer getAdjacentFluidTransfer() { @@ -191,6 +195,11 @@ public void setBucketMode(BucketMode bucketMode) { } } + protected void setManualIOMode(ManualIOMode manualIOMode) { + this.manualIOMode = manualIOMode; + coverHolder.markDirty(); + } + protected void update() { long timer = coverHolder.getOffsetTimer(); if (timer % 5 != 0) @@ -271,7 +280,7 @@ private static boolean canTransfer(IFluidTransfer fluidTransfer, TransferDirecti @Override public Widget createUIWidget() { - final var group = new WidgetGroup(0, 0, 176, 135); + final var group = new WidgetGroup(0, 0, 176, 137); group.addWidget(new LabelWidget(10, 5, LocalizationUtils.format(getUITitle(), GTValues.VN[tier]))); transferRateWidget = new LongInputWidget(10, 20, 134, 20, @@ -287,8 +296,12 @@ public Widget createUIWidget() { group.addWidget(new EnumSelectorWidget<>(10, 45, 20, 20, List.of(IO.IN, IO.OUT), io, this::setIo)); - group.addWidget(filterHandler.createFilterSlotUI(148, 107)); - group.addWidget(filterHandler.createFilterConfigUI(10, 70, 156, 60)); + group.addWidget(new EnumSelectorWidget<>(146, 107, 20, 20, + ManualIOMode.VALUES, manualIOMode, this::setManualIOMode) + .setHoverTooltips("cover.universal.manual_import_export.mode.description")); + + group.addWidget(filterHandler.createFilterSlotUI(125, 108)); + group.addWidget(filterHandler.createFilterConfigUI(10, 72, 156, 60)); buildAdditionalUI(group); @@ -321,4 +334,45 @@ protected void buildAdditionalUI(WidgetGroup group) { protected void configureFilter() { // Do nothing in the base implementation. This is intended to be overridden by subclasses. } + + + ///////////////////////////////////// + //*** CAPABILITY OVERRIDE ***// + ///////////////////////////////////// + + private final Map fluidTransferWrappers = new EnumMap<>(Direction.class); + + @Override + public IFluidTransfer getFluidTransferCap(Direction side, IFluidTransfer defaultValue) { + return fluidTransferWrappers.computeIfAbsent(side, s -> new CoverableFluidTransferWrapper(defaultValue)); + } + + private class CoverableFluidTransferWrapper extends FluidTransferDelegate { + + public CoverableFluidTransferWrapper(IFluidTransfer delegate) { + super(delegate); + } + + @Override + public long fill(int tank, FluidStack resource, boolean simulate, boolean notifyChanges) { + if (io == IO.OUT && manualIOMode == ManualIOMode.DISABLED) { + return 0; + } + if (!filterHandler.test(resource) && manualIOMode == ManualIOMode.FILTERED) { + return 0; + } + return super.fill(tank, resource, simulate, notifyChanges); + } + + @Override + public FluidStack drain(int tank, FluidStack resource, boolean simulate, boolean notifyChanges) { + if (io == IO.IN && manualIOMode == ManualIOMode.DISABLED) { + return FluidStack.empty(); + } + if (manualIOMode == ManualIOMode.FILTERED && !filterHandler.test(resource)) { + return FluidStack.empty(); + } + return super.drain(tank, resource, simulate, notifyChanges); + } + } } diff --git a/common/src/main/java/com/gregtechceu/gtceu/common/cover/data/DistributionMode.java b/common/src/main/java/com/gregtechceu/gtceu/common/cover/data/DistributionMode.java index d5f0beaf3f..dfeab2d0d9 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/common/cover/data/DistributionMode.java +++ b/common/src/main/java/com/gregtechceu/gtceu/common/cover/data/DistributionMode.java @@ -1,13 +1,13 @@ package com.gregtechceu.gtceu.common.cover.data; -import com.gregtechceu.gtceu.api.gui.GuiTextures; import com.gregtechceu.gtceu.api.gui.widget.EnumSelectorWidget; import com.lowdragmc.lowdraglib.gui.texture.IGuiTexture; +import com.lowdragmc.lowdraglib.gui.texture.ResourceTexture; public enum DistributionMode implements EnumSelectorWidget.SelectableEnum { - ROUND_ROBIN_GLOBAL("cover.conveyor.distribution.round_robin_enhanced"), - ROUND_ROBIN_PRIO("cover.conveyor.distribution.round_robin"), - INSERT_FIRST("cover.conveyor.distribution.first_insert"); + ROUND_ROBIN_GLOBAL("round_robin_global"), + ROUND_ROBIN_PRIO("round_robin_prio"), + INSERT_FIRST("insert_first"); public static final DistributionMode[] VALUES = values(); private static final float OFFSET = 1.0f / VALUES.length; @@ -20,11 +20,11 @@ public enum DistributionMode implements EnumSelectorWidget.SelectableEnum { @Override public String getTooltip() { - return localeName; + return "cover.conveyor.distribution." + localeName; } @Override public IGuiTexture getIcon() { - return GuiTextures.DISTRIBUTION_MODE.getSubTexture(0, this.ordinal() * OFFSET, 1, OFFSET); + return new ResourceTexture("gtceu:textures/gui/icon/distribution_mode/" + localeName + ".png"); } } diff --git a/common/src/main/java/com/gregtechceu/gtceu/common/cover/data/ManualIOMode.java b/common/src/main/java/com/gregtechceu/gtceu/common/cover/data/ManualIOMode.java new file mode 100644 index 0000000000..672648c21a --- /dev/null +++ b/common/src/main/java/com/gregtechceu/gtceu/common/cover/data/ManualIOMode.java @@ -0,0 +1,29 @@ +package com.gregtechceu.gtceu.common.cover.data; + +import com.gregtechceu.gtceu.api.gui.widget.EnumSelectorWidget; +import com.lowdragmc.lowdraglib.gui.texture.IGuiTexture; +import com.lowdragmc.lowdraglib.gui.texture.ResourceTexture; + +public enum ManualIOMode implements EnumSelectorWidget.SelectableEnum { + DISABLED("disabled"), + FILTERED("filtered"), + UNFILTERED("unfiltered"); + + public static final ManualIOMode[] VALUES = values(); + + public final String localeName; + + ManualIOMode(String localeName) { + this.localeName = localeName; + } + + @Override + public String getTooltip() { + return "cover.universal.manual_import_export.mode." + localeName; + } + + @Override + public IGuiTexture getIcon() { + return new ResourceTexture("gtceu:textures/gui/icon/manual_io_mode/" + localeName + ".png"); + } +} \ No newline at end of file diff --git a/common/src/main/java/com/gregtechceu/gtceu/common/cover/data/ManualImportExportMode.java b/common/src/main/java/com/gregtechceu/gtceu/common/cover/data/ManualImportExportMode.java deleted file mode 100644 index 91f65cccd2..0000000000 --- a/common/src/main/java/com/gregtechceu/gtceu/common/cover/data/ManualImportExportMode.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.gregtechceu.gtceu.common.cover.data; - -import com.gregtechceu.gtceu.api.gui.GuiTextures; -import com.gregtechceu.gtceu.api.gui.widget.EnumSelectorWidget; -import com.lowdragmc.lowdraglib.gui.texture.IGuiTexture; -import com.lowdragmc.lowdraglib.gui.texture.TextTexture; - -public enum ManualImportExportMode implements EnumSelectorWidget.SelectableEnum { - DISABLED("cover.universal.manual_import_export.mode.disabled"), - FILTERED("cover.universal.manual_import_export.mode.filtered"), - UNFILTERED("cover.universal.manual_import_export.mode.unfiltered"); - - public static final ManualImportExportMode[] VALUES = values(); - - public final String localeName; - - ManualImportExportMode(String localeName) { - this.localeName = localeName; - } - - @Override - public String getTooltip() { - return localeName; - } - - @Override - public IGuiTexture getIcon() { - return new TextTexture(localeName); - } -} \ No newline at end of file diff --git a/common/src/main/java/com/gregtechceu/gtceu/common/cover/voiding/FluidVoidingCover.java b/common/src/main/java/com/gregtechceu/gtceu/common/cover/voiding/FluidVoidingCover.java index 863f800c65..166f824e7a 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/common/cover/voiding/FluidVoidingCover.java +++ b/common/src/main/java/com/gregtechceu/gtceu/common/cover/voiding/FluidVoidingCover.java @@ -60,7 +60,7 @@ void voidAny(IFluidTransfer fluidTransfer) { final Map fluidAmounts = enumerateDistinctFluids(fluidTransfer, TransferDirection.EXTRACT); for (FluidStack fluidStack : fluidAmounts.keySet()) { - if (!filterHandler.getFilter().test(fluidStack)) + if (!filterHandler.test(fluidStack)) continue; var toDrain = fluidStack.copy(); diff --git a/common/src/main/java/com/gregtechceu/gtceu/common/data/GTBlocks.java b/common/src/main/java/com/gregtechceu/gtceu/common/data/GTBlocks.java index d3be2af4e6..4dc1b47cb7 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/common/data/GTBlocks.java +++ b/common/src/main/java/com/gregtechceu/gtceu/common/data/GTBlocks.java @@ -31,6 +31,7 @@ import com.gregtechceu.gtceu.common.pipelike.fluidpipe.longdistance.LDFluidPipeType; import com.gregtechceu.gtceu.common.pipelike.item.ItemPipeType; import com.gregtechceu.gtceu.common.pipelike.item.longdistance.LDItemPipeType; +import com.gregtechceu.gtceu.common.pipelike.laser.LaserPipeType; import com.gregtechceu.gtceu.data.recipe.CustomTags; import com.gregtechceu.gtceu.utils.FormattingUtil; import com.lowdragmc.lowdraglib.Platform; @@ -110,7 +111,7 @@ public static void generateMaterialBlocks() { var entry = REGISTRATE.block("%s_block".formatted(material.getName()), properties -> new MaterialBlock(properties.noLootTable(), TagPrefix.block, material)) .initialProperties(() -> Blocks.IRON_BLOCK) .transform(unificationBlock(TagPrefix.block, material)) - .addLayer(() -> RenderType::solid) + .addLayer(() -> RenderType::translucent) .setData(ProviderType.BLOCKSTATE, NonNullBiConsumer.noop()) .setData(ProviderType.LANG, NonNullBiConsumer.noop()) .setData(ProviderType.LOOT, NonNullBiConsumer.noop()) @@ -130,7 +131,7 @@ public static void generateMaterialBlocks() { .initialProperties(() -> Blocks.IRON_BLOCK) .properties(properties -> properties.noOcclusion().noLootTable()) .transform(unificationBlock(TagPrefix.frameGt, material)) - .addLayer(() -> RenderType::cutoutMipped) + .addLayer(() -> RenderType::translucent) .blockstate(NonNullBiConsumer.noop()) .setData(ProviderType.LANG, NonNullBiConsumer.noop()) .setData(ProviderType.LOOT, NonNullBiConsumer.noop()) @@ -150,7 +151,7 @@ public static void generateMaterialBlocks() { var entry = REGISTRATE.block("raw_%s_block".formatted(material.getName()), properties -> new MaterialBlock(properties.noLootTable(), TagPrefix.rawOreBlock, material)) .initialProperties(() -> Blocks.IRON_BLOCK) .transform(unificationBlock(TagPrefix.rawOreBlock, material)) - .addLayer(() -> RenderType::solid) + .addLayer(() -> RenderType::translucent) .setData(ProviderType.BLOCKSTATE, NonNullBiConsumer.noop()) .setData(ProviderType.LANG, NonNullBiConsumer.noop()) .setData(ProviderType.LOOT, NonNullBiConsumer.noop()) @@ -172,8 +173,9 @@ public static void generateMaterialBlocks() { final TagPrefix.OreType oreType = ore.getValue(); var entry = REGISTRATE.block("%s%s_ore".formatted(oreTag != TagPrefix.ore ? FormattingUtil.toLowerCaseUnder(oreTag.name) + "_" : "", material.getName()), oreType.material(), - properties -> new MaterialBlock(properties, oreTag, material, Platform.isClient() ? new OreBlockRenderer(oreType.stoneType(), - () -> Objects.requireNonNull(oreTag.materialIconType()).getBlockTexturePath(material.getMaterialIconSet(), true), + properties -> new RendererMaterialBlock(properties, oreTag, material, Platform.isClient() ? new OreBlockRenderer(oreType.stoneType(), + Suppliers.memoize(() -> Objects.requireNonNull(oreTag.materialIconType()).getBlockTexturePath(material.getMaterialIconSet(), true)), + Suppliers.memoize(() -> Objects.requireNonNull(oreTag.materialIconType()).getBlockTexturePath(material.getMaterialIconSet(), "layer2", true)), oreProperty.isEmissive()) : null)) .initialProperties(() -> { if (oreType.stoneType().get().isAir()) { // if the block is not registered (yet), fallback to stone @@ -220,7 +222,7 @@ public static void generateCableBlocks() { ImmutableTable.Builder> builder = ImmutableTable.builder(); for (Insulation insulation : Insulation.values()) { for (Material material : GTRegistries.MATERIALS) { - if (material.hasProperty(PropertyKey.WIRE) && !insulation.tagPrefix.isIgnored(material)) { + if (material.hasProperty(PropertyKey.WIRE) && !insulation.tagPrefix.isIgnored(material) && !(insulation.isCable && material.getProperty(PropertyKey.WIRE).isSuperconductor())) { var entry = REGISTRATE.block("%s_%s".formatted(material.getName(), insulation.name), p -> new CableBlock(p, insulation, material)) .initialProperties(() -> Blocks.IRON_BLOCK) .properties(p -> p.dynamicShape().noOcclusion().noLootTable()) @@ -313,14 +315,14 @@ public static void generatePipeBlocks() { ////////////////////////////////////// //***** General Pipes ******// ////////////////////////////////////// - public static final BlockEntry[] LASER_PIPES = new BlockEntry[DyeColor.values().length]; + public static final BlockEntry[] LASER_PIPES = new BlockEntry[LaserPipeType.values().length]; public static void generateLaserPipeBlocks() { REGISTRATE.creativeModeTab(() -> GTCreativeModeTabs.MATERIAL_PIPE); - for (int i = 0; i < DyeColor.values().length; ++i) { - var color = DyeColor.values()[i]; - LASER_PIPES[i] = REGISTRATE.block("%s_laser_pipe".formatted(color.getSerializedName()), p -> new LaserPipeBlock(p, color)) + for (int i = 0; i < LaserPipeType.values().length; ++i) { + var type = LaserPipeType.values()[i]; + LASER_PIPES[i] = REGISTRATE.block("%s_laser_pipe".formatted(type.getSerializedName()), (p) -> new LaserPipeBlock(p, type)) .initialProperties(() -> Blocks.IRON_BLOCK) .properties(p -> p.dynamicShape().noOcclusion().noLootTable()) .blockstate(NonNullBiConsumer.noop()) diff --git a/common/src/main/java/com/gregtechceu/gtceu/common/data/GTMachines.java b/common/src/main/java/com/gregtechceu/gtceu/common/data/GTMachines.java index d1c4e3722d..39a4e3a7c7 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/common/data/GTMachines.java +++ b/common/src/main/java/com/gregtechceu/gtceu/common/data/GTMachines.java @@ -1547,7 +1547,7 @@ public static MachineDefinition[] registerSimpleGenerator(String name, return registerTieredMachines(name, (holder, tier) -> new SimpleGeneratorMachine(holder, tier, tankScalingFunction), (tier, builder) -> builder .langValue("%s %s Generator %s".formatted(VLVH[tier], toEnglishName(name), VLVT[tier])) .editableUI(SimpleGeneratorMachine.EDITABLE_UI_CREATOR.apply(GTCEu.id(name), recipeType)) - .rotationState(RotationState.NON_Y_AXIS) + .rotationState(RotationState.ALL) .recipeType(recipeType) .recipeModifier(SimpleGeneratorMachine::recipeModifier, true) .renderer(() -> new SimpleGeneratorMachineRenderer(tier, GTCEu.id("block/generators/" + name))) @@ -1648,7 +1648,7 @@ public static MultiblockMachineDefinition registerLargeBoiler(String name, Suppl .recoveryItems(() -> new ItemLike[]{GTItems.MATERIAL_ITEMS.get(TagPrefix.dustTiny, GTMaterials.Ash).get()}) .renderer(() -> new LargeBoilerRenderer(texture, firebox, GTCEu.id("block/multiblock/generator/large_%s_boiler".formatted(name)))) .tooltips( - Component.translatable("gtceu.multiblock.large_boiler.max_temperature", (int)(maxTemperature * 274.15), maxTemperature), + Component.translatable("gtceu.multiblock.large_boiler.max_temperature", (int)(maxTemperature + 274.15), maxTemperature), Component.translatable("gtceu.multiblock.large_boiler.heat_time_tooltip", maxTemperature / heatSpeed / 20), Component.translatable("gtceu.multiblock.large_boiler.explosion_tooltip").withStyle(ChatFormatting.DARK_RED)) .compassSections(GTCompassSections.STEAM) diff --git a/common/src/main/java/com/gregtechceu/gtceu/common/data/GTMaterials.java b/common/src/main/java/com/gregtechceu/gtceu/common/data/GTMaterials.java index e54e7c29de..f5a8c3b232 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/common/data/GTMaterials.java +++ b/common/src/main/java/com/gregtechceu/gtceu/common/data/GTMaterials.java @@ -799,6 +799,8 @@ private static boolean isMaterialStackFluidOnly(@Nonnull MaterialStack ms) { public static Material RhodiumPlatedPalladium; public static Material Butyraldehyde; public static Material PolyvinylButyral; + public static Material Biphenyl; + public static Material PolychlorinatedBiphenyl; /** * Not possible to determine exact Components @@ -930,6 +932,7 @@ private static boolean isMaterialStackFluidOnly(@Nonnull MaterialStack ms) { public static Material NaquadriaWaste; public static Material Lapotron; public static Material UUMatter; + public static Material PCBCoolant; /** * Second Degree Compounds diff --git a/common/src/main/java/com/gregtechceu/gtceu/common/data/materials/ElementMaterials.java b/common/src/main/java/com/gregtechceu/gtceu/common/data/materials/ElementMaterials.java index 357df92a75..0a2eb26bc1 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/common/data/materials/ElementMaterials.java +++ b/common/src/main/java/com/gregtechceu/gtceu/common/data/materials/ElementMaterials.java @@ -21,7 +21,7 @@ public class ElementMaterials { public static void register() { Actinium = new Material.Builder("actinium") - .color(0xC3D1FF).iconSet(METALLIC) + .color(0xC3D1FF).secondaryColor(0x353d41).iconSet(METALLIC) .element(GTElements.Ac) .buildAndRegister(); @@ -29,7 +29,7 @@ public static void register() { .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(933)) .ore() - .color(0x80C8F0) + .color(0xb6e5ff).secondaryColor(0x7ca29b) .appendFlags(EXT2_METAL, GENERATE_GEAR, GENERATE_SMALL_GEAR, GENERATE_RING, GENERATE_FRAME, GENERATE_SPRING, GENERATE_SPRING_SMALL, GENERATE_FINE_WIRE) .element(GTElements.Al) .toolStats(ToolProperty.Builder.of(6.0F, 7.5F, 768, 2) @@ -52,7 +52,7 @@ public static void register() { Antimony = new Material.Builder("antimony") .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(904)) - .color(0xDCDCF0).iconSet(SHINY) + .color(0xDCDCF0).secondaryColor(0xa2a2bc).iconSet(SHINY) .flags(MORTAR_GRINDABLE) .element(GTElements.Sb) .buildAndRegister(); @@ -68,18 +68,18 @@ public static void register() { .fluid(FluidStorageKeys.GAS, new FluidBuilder() .state(FluidState.GAS) .temperature(887)) - .color(0x676756) + .color(0x9c9c8d).secondaryColor(0x676756) .element(GTElements.As) .buildAndRegister(); Astatine = new Material.Builder("astatine") - .color(0x241A24) + .color(0xffd52e).secondaryColor(0x17212b) .element(GTElements.At) .buildAndRegister(); Barium = new Material.Builder("barium") .dust() - .color(0x83824C).iconSet(METALLIC) + .color(0xede192).secondaryColor(0x5d9b8d).iconSet(METALLIC) .element(GTElements.Ba) .buildAndRegister(); @@ -92,7 +92,7 @@ public static void register() { .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1560)) .ore() - .color(0x64B464).iconSet(METALLIC) + .color(0x98d677).secondaryColor(0x254d40).iconSet(METALLIC) .appendFlags(STD_METAL) .element(GTElements.Be) .buildAndRegister(); @@ -100,35 +100,35 @@ public static void register() { Bismuth = new Material.Builder("bismuth") .ingot(1) .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(545)) - .color(0x64A0A0).iconSet(METALLIC) + .color(0x89dbdb).secondaryColor(0x845c6a).iconSet(METALLIC) .element(GTElements.Bi) .buildAndRegister(); Bohrium = new Material.Builder("bohrium") - .color(0xDC57FF).iconSet(SHINY) + .color(0x4c3e50).secondaryColor(0xDC57FF).iconSet(SHINY) .element(GTElements.Bh) .buildAndRegister(); Boron = new Material.Builder("boron") .dust() - .color(0xD2FAD2) + .color(0xDC57FF) .element(GTElements.B) .buildAndRegister(); Bromine = new Material.Builder("bromine") - .color(0x500A0A).iconSet(SHINY) + .color(0x912200).secondaryColor(0x080101).iconSet(SHINY) .element(GTElements.Br) .buildAndRegister(); Caesium = new Material.Builder("caesium") .dust() - .color(0x80620B).iconSet(METALLIC) + .color(0xe9e5d2).secondaryColor(0xaa9864).iconSet(METALLIC) .element(GTElements.Cs) .buildAndRegister(); Calcium = new Material.Builder("calcium") .dust() - .color(0xFFF5DE).iconSet(METALLIC) + .color(0xFFF5DE).secondaryColor(0xa4a4a4).iconSet(METALLIC) .element(GTElements.Ca) .buildAndRegister(); @@ -146,14 +146,14 @@ public static void register() { Cadmium = new Material.Builder("cadmium") .dust() - .color(0x32323C).iconSet(SHINY) + .color(0x636377).secondaryColor(0x412738).iconSet(SHINY) .element(GTElements.Cd) .buildAndRegister(); Cerium = new Material.Builder("cerium") .dust() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1068)) - .color(0x87917D).iconSet(METALLIC) + .color(0xd3d7c3).secondaryColor(0x87917D).iconSet(METALLIC) .element(GTElements.Ce) .buildAndRegister(); @@ -165,7 +165,7 @@ public static void register() { Chromium = new Material.Builder("chromium") .ingot(3) .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(2180)) - .color(0xEAC4D8).iconSet(SHINY) + .color(0xf3e0ea).secondaryColor(0x441f2e).iconSet(SHINY) .appendFlags(EXT_METAL, GENERATE_ROTOR) .element(GTElements.Cr) .rotorStats(12.0f, 3.0f, 512) @@ -177,7 +177,7 @@ public static void register() { .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1768)) .ore() // leave for TiCon ore processing - .color(0x5050FA).iconSet(METALLIC) + .color(0xf1e2d1).secondaryColor(0x1d1dd6).iconSet(METALLIC) .appendFlags(EXT_METAL) .element(GTElements.Co) .cableProperties(GTValues.V[LV], 2, 2) @@ -193,7 +193,7 @@ public static void register() { .ingot(1) .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1358)) .ore() - .color(0xFF6400).iconSet(SHINY) + .color(0xe77c56).secondaryColor(0xe4673e).iconSet(SHINY) .appendFlags(EXT_METAL, MORTAR_GRINDABLE, GENERATE_SPRING, GENERATE_SPRING_SMALL, GENERATE_FINE_WIRE) .element(GTElements.Cu) .cableProperties(GTValues.V[2], 1, 2) @@ -218,11 +218,12 @@ public static void register() { .buildAndRegister(); Dubnium = new Material.Builder("dubnium") - .color(0xD3FDFF).iconSet(SHINY) + .color(0xc7ddde).secondaryColor(0x00f3ff).iconSet(SHINY) .element(GTElements.Db) .buildAndRegister(); Dysprosium = new Material.Builder("dysprosium") + .color(0x6a664b).secondaryColor(0x423307) .iconSet(METALLIC) .element(GTElements.Dy) .buildAndRegister(); @@ -233,6 +234,7 @@ public static void register() { .buildAndRegister(); Erbium = new Material.Builder("erbium") + .color(0xeccbdb).secondaryColor(0x5d625a) .iconSet(METALLIC) .element(GTElements.Er) .buildAndRegister(); @@ -240,7 +242,7 @@ public static void register() { Europium = new Material.Builder("europium") .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1099)) - .color(0x20FFFF).iconSet(METALLIC) + .color(0x988b33).secondaryColor(0x032a52).iconSet(METALLIC) .appendFlags(STD_METAL, GENERATE_LONG_ROD, GENERATE_FINE_WIRE, GENERATE_SPRING, GENERATE_FOIL, GENERATE_FRAME) .element(GTElements.Eu) .cableProperties(GTValues.V[GTValues.UHV], 2, 32) @@ -249,11 +251,12 @@ public static void register() { .buildAndRegister(); Fermium = new Material.Builder("fermium") - .color(0x984ACF).iconSet(METALLIC) + .color(0xc99fe7).secondaryColor(0x3e0022).iconSet(METALLIC) .element(GTElements.Fm) .buildAndRegister(); Flerovium = new Material.Builder("flerovium") + .color(0x393d43).secondaryColor(0xd2ff00) .iconSet(SHINY) .element(GTElements.Fl) .buildAndRegister(); @@ -264,25 +267,25 @@ public static void register() { .buildAndRegister(); Francium = new Material.Builder("francium") - .color(0xAAAAAA).iconSet(SHINY) + .color(0xAAAAAA).secondaryColor(0x0000ff).iconSet(SHINY) .element(GTElements.Fr) .buildAndRegister(); Gadolinium = new Material.Builder("gadolinium") - .color(0xDDDDFF).iconSet(METALLIC) + .color(0x828a7a).secondaryColor(0x363420).iconSet(METALLIC) .element(GTElements.Gd) .buildAndRegister(); Gallium = new Material.Builder("gallium") .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(303)) - .color(0xDCDCFF).iconSet(SHINY) + .color(0xdadbf3).secondaryColor(0x787955).iconSet(SHINY) .appendFlags(STD_METAL, GENERATE_FOIL) .element(GTElements.Ga) .buildAndRegister(); Germanium = new Material.Builder("germanium") - .color(0x434343).iconSet(SHINY) + .color(0xe1e1e1).secondaryColor(0x6a6248).iconSet(SHINY) .element(GTElements.Ge) .buildAndRegister(); @@ -290,7 +293,7 @@ public static void register() { .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1337)) .ore() - .color(0xFFE650).iconSet(SHINY) + .color(0xfdf55f).secondaryColor(0xf25833).iconSet(SHINY) .appendFlags(EXT2_METAL, GENERATE_RING, MORTAR_GRINDABLE, EXCLUDE_BLOCK_CRAFTING_BY_HAND_RECIPES, GENERATE_SPRING, GENERATE_SPRING_SMALL, GENERATE_FINE_WIRE, GENERATE_FOIL) .element(GTElements.Au) .cableProperties(GTValues.V[3], 3, 2) @@ -298,7 +301,7 @@ public static void register() { .buildAndRegister(); Hafnium = new Material.Builder("hafnium") - .color(0x99999A).iconSet(SHINY) + .color(0x99999A).secondaryColor(0x2b4a3a).iconSet(SHINY) .element(GTElements.Hf) .buildAndRegister(); @@ -308,6 +311,7 @@ public static void register() { .buildAndRegister(); Holmium = new Material.Builder("holmium") + .color(0x5c706d).secondaryColor(0x1d2b2d) .iconSet(METALLIC) .element(GTElements.Ho) .buildAndRegister(); @@ -340,19 +344,19 @@ public static void register() { Indium = new Material.Builder("indium") .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(430)) - .color(0x400080).iconSet(SHINY) + .color(0xd0c8d9).secondaryColor(0x400080).iconSet(SHINY) .element(GTElements.In) .buildAndRegister(); Iodine = new Material.Builder("iodine") - .color(0x2C344F).iconSet(SHINY) + .color(0x67686d).secondaryColor(0x773000).iconSet(SHINY) .element(GTElements.I) .buildAndRegister(); Iridium = new Material.Builder("iridium") .ingot(3) .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(2719)) - .color(0xA1E4E4).iconSet(METALLIC) + .color(0xfdfce9).secondaryColor(0x3d011b).iconSet(METALLIC) .appendFlags(EXT2_METAL, GENERATE_FINE_WIRE, GENERATE_GEAR) .element(GTElements.Ir) .rotorStats(7.0f, 3.0f, 2560) @@ -365,7 +369,7 @@ public static void register() { .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1811)) .plasma() .ore() - .color(0xC8C8C8).iconSet(METALLIC) + .color(0xeeeeee).secondaryColor(0x979797).iconSet(METALLIC) .appendFlags(EXT2_METAL, MORTAR_GRINDABLE, GENERATE_ROTOR, GENERATE_SMALL_GEAR, GENERATE_GEAR, GENERATE_SPRING_SMALL, GENERATE_SPRING, EXCLUDE_BLOCK_CRAFTING_BY_HAND_RECIPES, BLAST_FURNACE_CALCITE_TRIPLE) .element(GTElements.Fe) .toolStats(ToolProperty.Builder.of(2.0F, 2.0F, 256, 2) @@ -385,11 +389,12 @@ public static void register() { Lanthanum = new Material.Builder("lanthanum") .dust() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1193)) - .color(0x5D7575).iconSet(METALLIC) + .color(0xe8e0c2).secondaryColor(0x5D7575).iconSet(METALLIC) .element(GTElements.La) .buildAndRegister(); Lawrencium = new Material.Builder("lawrencium") + .color(0x5D7575) .iconSet(METALLIC) .element(GTElements.Lr) .buildAndRegister(); @@ -414,21 +419,21 @@ public static void register() { .buildAndRegister(); Livermorium = new Material.Builder("livermorium") - .color(0xAAAAAA).iconSet(SHINY) + .color(0x939393).secondaryColor(0xff8b8b).iconSet(SHINY) .element(GTElements.Lv) .buildAndRegister(); Lutetium = new Material.Builder("lutetium") .dust() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1925)) - .color(0x00AAFF).iconSet(METALLIC) + .color(0xff8b8b).secondaryColor(0x231809).iconSet(METALLIC) .element(GTElements.Lu) .buildAndRegister(); Magnesium = new Material.Builder("magnesium") .dust() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(923)) - .color(0xFFC8C8).iconSet(METALLIC) + .color(0xffd6d6).secondaryColor(0x594d19).iconSet(METALLIC) .element(GTElements.Mg) .buildAndRegister(); @@ -447,7 +452,7 @@ public static void register() { .buildAndRegister(); Meitnerium = new Material.Builder("meitnerium") - .color(0x2246BE).iconSet(SHINY) + .color(0x454854).secondaryColor(0x6e90ff).iconSet(SHINY) .element(GTElements.Mt) .buildAndRegister(); @@ -461,20 +466,20 @@ public static void register() { .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(2896)) .ore() - .color(0xB4B4DC).iconSet(SHINY) + .color(0xc1c1ce).secondaryColor(0x404068).iconSet(SHINY) .element(GTElements.Mo) .flags(GENERATE_FOIL, GENERATE_BOLT_SCREW) .rotorStats(7.0f, 2.0f, 512) .buildAndRegister(); Moscovium = new Material.Builder("moscovium") - .color(0x7854AD).iconSet(SHINY) + .color(0x2a1b40).secondaryColor(0xbd91ff).iconSet(SHINY) .element(GTElements.Mc) .buildAndRegister(); Neodymium = new Material.Builder("neodymium") .ingot().fluid().ore() - .color(0x646464).iconSet(METALLIC) + .color(0x9a8b94).secondaryColor(0x2c2c2c).iconSet(METALLIC) .appendFlags(STD_METAL, GENERATE_ROD, GENERATE_BOLT_SCREW) .element(GTElements.Nd) .rotorStats(7.0f, 2.0f, 512) @@ -497,7 +502,7 @@ public static void register() { .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1728)) .plasma() .ore() - .color(0xC8C8FA).iconSet(METALLIC) + .color(0xccdff5).secondaryColor(0x59563a).iconSet(METALLIC) .appendFlags(STD_METAL, MORTAR_GRINDABLE) .element(GTElements.Ni) .cableProperties(GTValues.V[LV], 3, 3) @@ -505,13 +510,13 @@ public static void register() { .buildAndRegister(); Nihonium = new Material.Builder("nihonium") - .color(0x08269E).iconSet(SHINY) + .color(0x323957).secondaryColor(0xa68bff).iconSet(SHINY) .element(GTElements.Nh) .buildAndRegister(); Niobium = new Material.Builder("niobium") .ingot().fluid() - .color(0xBEB4C8).iconSet(METALLIC) + .color(0xe9eacb).secondaryColor(0x2f4c35).iconSet(METALLIC) .element(GTElements.Nb) .blastTemp(2750, GasTier.MID, GTValues.VA[GTValues.HV], 900) .buildAndRegister(); @@ -523,6 +528,7 @@ public static void register() { .buildAndRegister(); Nobelium = new Material.Builder("nobelium") + .color(0x3e4758).secondaryColor(0x43deff) .iconSet(SHINY) .element(GTElements.No) .buildAndRegister(); @@ -535,7 +541,7 @@ public static void register() { Osmium = new Material.Builder("osmium") .ingot(4) .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(3306)) - .color(0x3232FF).iconSet(METALLIC) + .color(0xf9f9f9).secondaryColor(0x307fc2).iconSet(METALLIC) .appendFlags(EXT2_METAL, GENERATE_FOIL) .element(GTElements.Os) .rotorStats(16.0f, 4.0f, 1280) @@ -559,7 +565,7 @@ public static void register() { Palladium = new Material.Builder("palladium") .ingot().fluid().ore() - .color(0x808080).iconSet(SHINY) + .color(0xA0A0A0).secondaryColor(0x4b4a3a).iconSet(SHINY) .appendFlags(EXT_METAL, GENERATE_FOIL, GENERATE_FINE_WIRE) .element(GTElements.Pd) .blastTemp(1828, GasTier.LOW, GTValues.VA[GTValues.HV], 900) @@ -580,7 +586,7 @@ public static void register() { .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(2041)) .ore() - .color(0xFFFFC8).iconSet(SHINY) + .color(0xfff9da).secondaryColor(0x4e4e45).iconSet(SHINY) .appendFlags(EXT2_METAL, GENERATE_FOIL, GENERATE_FINE_WIRE, GENERATE_RING) .element(GTElements.Pt) .cableProperties(GTValues.V[5], 2, 1) @@ -591,14 +597,14 @@ public static void register() { .ingot(3) .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(913)) .ore(true) - .color(0xF03232).iconSet(METALLIC) + .color(0x222730).secondaryColor(0xba2727).iconSet(METALLIC) .element(GTElements.Pu239) .buildAndRegister(); Plutonium241 = new Material.Builder("plutonium_241") .ingot(3) .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(913)) - .color(0xFA4646).iconSet(SHINY) + .color(0x222730).secondaryColor(0xfa7272).iconSet(SHINY) .appendFlags(EXT_METAL) .element(GTElements.Pu241) .buildAndRegister(); @@ -606,12 +612,12 @@ public static void register() { Potassium = new Material.Builder("potassium") .dust(1) .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(337)) - .color(0xBEDCFF).iconSet(METALLIC) + .color(0xd2e1f2).secondaryColor(0x6189b8).iconSet(METALLIC) .element(GTElements.K) .buildAndRegister(); Praseodymium = new Material.Builder("praseodymium") - .color(0xCECECE).iconSet(METALLIC) + .color(0xCECECE).secondaryColor(0x424d33).iconSet(METALLIC) .element(GTElements.Pr) .buildAndRegister(); @@ -632,73 +638,74 @@ public static void register() { .buildAndRegister(); Radium = new Material.Builder("radium") - .color(0xFFFFCD).iconSet(SHINY) + .color(0x838361).secondaryColor(0x90ff2d).iconSet(SHINY) .element(GTElements.Ra) .buildAndRegister(); Rhenium = new Material.Builder("rhenium") - .color(0xB6BAC3).iconSet(SHINY) + .color(0xcbcfd7).secondaryColor(0x37393d).iconSet(SHINY) .element(GTElements.Re) .buildAndRegister(); Rhodium = new Material.Builder("rhodium") .ingot().fluid() - .color(0xDC0C58).iconSet(BRIGHT) + .color(0xf36bba).secondaryColor(0xDC0C58).iconSet(BRIGHT) .appendFlags(EXT2_METAL, GENERATE_GEAR, GENERATE_FINE_WIRE) .element(GTElements.Rh) .blastTemp(2237, GasTier.MID, GTValues.VA[GTValues.EV], 1200) .buildAndRegister(); Roentgenium = new Material.Builder("roentgenium") - .color(0xE3FDEC).iconSet(SHINY) + .color(0x3e4840).secondaryColor(0xE3FDEC).iconSet(SHINY) .element(GTElements.Rg) .buildAndRegister(); Rubidium = new Material.Builder("rubidium") - .color(0xF01E1E).iconSet(SHINY) + .color(0xbdb0b0).secondaryColor(0x451c1c).iconSet(SHINY) .element(GTElements.Rb) .buildAndRegister(); Ruthenium = new Material.Builder("ruthenium") .ingot().fluid() - .color(0x50ACCD).iconSet(SHINY) + .color(0xc7ced1).secondaryColor(0x3c7285).iconSet(SHINY) .flags(GENERATE_FOIL, GENERATE_GEAR) .element(GTElements.Ru) .blastTemp(2607, GasTier.MID, GTValues.VA[GTValues.EV], 900) .buildAndRegister(); Rutherfordium = new Material.Builder("rutherfordium") - .color(0xFFF6A1).iconSet(SHINY) + .color(0x6b6157).secondaryColor(0xFFF6A1).iconSet(SHINY) .element(GTElements.Rf) .buildAndRegister(); Samarium = new Material.Builder("samarium") .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1345)) - .color(0xFFFFCC).iconSet(METALLIC) + .color(0xc5c5b3).secondaryColor(0x183e3f).iconSet(METALLIC) .flags(GENERATE_LONG_ROD) .element(GTElements.Sm) .blastTemp(5400, GasTier.HIGH, GTValues.VA[GTValues.EV], 1500) .buildAndRegister(); Scandium = new Material.Builder("scandium") + .color(0xb1b2ac).secondaryColor(0x1c3433) .iconSet(METALLIC) .element(GTElements.Sc) .buildAndRegister(); Seaborgium = new Material.Builder("seaborgium") - .color(0x19C5FF).iconSet(SHINY) + .color(0x807c76).secondaryColor(0x19C5FF).iconSet(SHINY) .element(GTElements.Sg) .buildAndRegister(); Selenium = new Material.Builder("selenium") - .color(0xB6BA6B).iconSet(SHINY) + .color(0x58587b).secondaryColor(0x401b24).iconSet(SHINY) .element(GTElements.Se) .buildAndRegister(); Silicon = new Material.Builder("silicon") .ingot().fluid() - .color(0x3C3C50).iconSet(METALLIC) + .color(0xaaaab5).secondaryColor(0x10293b).iconSet(METALLIC) .flags(GENERATE_FOIL) .element(GTElements.Si) .blastTemp(2273) // no gas tier for silicon @@ -708,7 +715,7 @@ public static void register() { .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1235)) .ore() - .color(0xDCDCFF).iconSet(SHINY) + .color(0xDCDCFF).secondaryColor(0x5a4705).iconSet(SHINY) .appendFlags(EXT2_METAL, MORTAR_GRINDABLE, GENERATE_FINE_WIRE, GENERATE_RING) .element(GTElements.Ag) .cableProperties(GTValues.V[3], 1, 1) @@ -716,12 +723,12 @@ public static void register() { Sodium = new Material.Builder("sodium") .dust() - .color(0x000096).iconSet(METALLIC) + .color(0xabb1ba).secondaryColor(0x2b30a3).iconSet(METALLIC) .element(GTElements.Na) .buildAndRegister(); Strontium = new Material.Builder("strontium") - .color(0xC8C8C8).iconSet(METALLIC) + .color(0x7a7953).secondaryColor(0x4c0b06).iconSet(METALLIC) .element(GTElements.Sr) .buildAndRegister(); @@ -735,13 +742,13 @@ public static void register() { Tantalum = new Material.Builder("tantalum") .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(3290)) - .color(0x78788c).iconSet(METALLIC) + .color(0xa8a7c6).secondaryColor(0x1f2b20).iconSet(METALLIC) .appendFlags(STD_METAL, GENERATE_FOIL, GENERATE_FINE_WIRE) .element(GTElements.Ta) .buildAndRegister(); Technetium = new Material.Builder("technetium") - .color(0x545455).iconSet(SHINY) + .color(0xb1d0d8).secondaryColor(0xd7fce2).iconSet(SHINY) .element(GTElements.Tc) .buildAndRegister(); @@ -751,11 +758,12 @@ public static void register() { .buildAndRegister(); Tennessine = new Material.Builder("tennessine") - .color(0x977FD6).iconSet(SHINY) + .color(0x768189).secondaryColor(0xbca3ff).iconSet(SHINY) .element(GTElements.Ts) .buildAndRegister(); Terbium = new Material.Builder("terbium") + .color(0xcedab4).secondaryColor(0x263640) .iconSet(METALLIC) .element(GTElements.Tb) .buildAndRegister(); @@ -764,17 +772,18 @@ public static void register() { .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(2023)) .ore() - .color(0x001E00).iconSet(SHINY) + .color(0x323528).secondaryColor(0x051E05).iconSet(SHINY) .appendFlags(STD_METAL, GENERATE_ROD) .element(GTElements.Th) .buildAndRegister(); Thallium = new Material.Builder("thallium") - .color(0xC1C1DE).iconSet(SHINY) + .color(0xc1c9de).secondaryColor(0x1e576a).iconSet(SHINY) .element(GTElements.Tl) .buildAndRegister(); Thulium = new Material.Builder("thulium") + .color(0xafb0a4).secondaryColor(0x420b0b) .iconSet(METALLIC) .element(GTElements.Tm) .buildAndRegister(); @@ -792,7 +801,7 @@ public static void register() { Titanium = new Material.Builder("titanium") // todo Ore? Look at EBF recipe here if we do Ti ores .ingot(3).fluid() - .color(0xDCA0F0).iconSet(METALLIC) + .color(0xd8d5d9).secondaryColor(0x440050).iconSet(METALLIC) .appendFlags(EXT2_METAL, GENERATE_ROTOR, GENERATE_SMALL_GEAR, GENERATE_GEAR, GENERATE_FRAME) .element(GTElements.Ti) .toolStats(ToolProperty.Builder.of(8.0F, 6.0F, 1536, 3) @@ -804,6 +813,7 @@ public static void register() { Tritium = new Material.Builder("tritium") .fluid(FluidStorageKeys.GAS, new FluidBuilder().state(FluidState.GAS).customStill()) + .color(0xff316b).secondaryColor(0xd00000) .iconSet(METALLIC) .element(GTElements.T) .buildAndRegister(); @@ -811,7 +821,7 @@ public static void register() { Tungsten = new Material.Builder("tungsten") .ingot(3) .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(3695)) - .color(0x323232).iconSet(METALLIC) + .color(0x3b3a32).secondaryColor(0x2a2800).iconSet(METALLIC) .appendFlags(EXT2_METAL, GENERATE_SPRING, GENERATE_SPRING_SMALL, GENERATE_FOIL, GENERATE_GEAR, GENERATE_FRAME) .element(GTElements.W) .rotorStats(7.0f, 3.0f, 2560) @@ -823,7 +833,7 @@ public static void register() { Uranium238 = new Material.Builder("uranium") .ingot(3) .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1405)) - .color(0x32F032).iconSet(METALLIC) + .color(0x33342c).secondaryColor(0x1d891d).iconSet(METALLIC) .appendFlags(EXT_METAL) .element(GTElements.U238) .buildAndRegister(); @@ -831,14 +841,14 @@ public static void register() { Uranium235 = new Material.Builder("uranium_235") .ingot(3) .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1405)) - .color(0x46FA46).iconSet(SHINY) + .color(0x33342c).secondaryColor(0x46FA46).iconSet(SHINY) .appendFlags(EXT_METAL) .element(GTElements.U235) .buildAndRegister(); Vanadium = new Material.Builder("vanadium") .ingot().fluid() - .color(0x323232).iconSet(METALLIC) + .color(0x696d76).secondaryColor(0x240808).iconSet(METALLIC) .element(GTElements.V) .blastTemp(2183, GasTier.MID) .buildAndRegister(); @@ -856,7 +866,7 @@ public static void register() { Yttrium = new Material.Builder("yttrium") .ingot().fluid() - .color(0x76524C).iconSet(METALLIC) + .color(0x7d8072).secondaryColor(0x15161a).iconSet(METALLIC) .element(GTElements.Y) .blastTemp(1799) .buildAndRegister(); @@ -864,13 +874,13 @@ public static void register() { Zinc = new Material.Builder("zinc") .ingot(1) .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(693)) - .color(0xEBEBFA).iconSet(METALLIC) + .color(0xEBEBFA).secondaryColor(0x232c30).iconSet(METALLIC) .appendFlags(STD_METAL, MORTAR_GRINDABLE, GENERATE_FOIL, GENERATE_RING, GENERATE_FINE_WIRE) .element(GTElements.Zn) .buildAndRegister(); Zirconium = new Material.Builder("zirconium") - .color(0xC8FFFF).iconSet(METALLIC) + .color(0xfff0e2).secondaryColor(0x271813).iconSet(METALLIC) .element(GTElements.Zr) .buildAndRegister(); @@ -878,7 +888,7 @@ public static void register() { .ingot(4) .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().customStill()) .ore() - .color(0x323232, false).iconSet(METALLIC) + .color(0x323232, false).secondaryColor(0x1e251b).iconSet(METALLIC) .appendFlags(EXT_METAL, GENERATE_FOIL, GENERATE_SPRING, GENERATE_FINE_WIRE, GENERATE_BOLT_SCREW) .element(GTElements.Nq) .rotorStats(6.0f, 4.0f, 1280) @@ -890,7 +900,7 @@ public static void register() { NaquadahEnriched = new Material.Builder("enriched_naquadah") .ingot(4) .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().customStill()) - .color(0x3C3C3C, false).iconSet(METALLIC) + .color(0x3C3C3C, false).secondaryColor(0x122f06).iconSet(METALLIC) .appendFlags(EXT_METAL, GENERATE_FOIL) .element(GTElements.Nq1) .blastTemp(7000, GasTier.HIGH, GTValues.VA[GTValues.IV], 1000) @@ -899,7 +909,7 @@ public static void register() { Naquadria = new Material.Builder("naquadria") .ingot(3) .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().customStill()) - .color(0x1E1E1E, false).iconSet(SHINY) + .color(0x1E1E1E, false).secondaryColor(0x59b3ff).iconSet(SHINY) .appendFlags(EXT_METAL, GENERATE_FOIL, GENERATE_GEAR, GENERATE_FINE_WIRE, GENERATE_BOLT_SCREW) .element(GTElements.Nq2) .blastTemp(9000, GasTier.HIGH, GTValues.VA[GTValues.ZPM], 1200) @@ -920,7 +930,7 @@ public static void register() { Tritanium = new Material.Builder("tritanium") .ingot(6) .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(25_000)) - .color(0x600000).iconSet(METALLIC) + .color(0xc35769).secondaryColor(0x210840).iconSet(METALLIC) .appendFlags(EXT2_METAL, GENERATE_FRAME, GENERATE_RING, GENERATE_SMALL_GEAR, GENERATE_ROUND, GENERATE_FOIL, GENERATE_FINE_WIRE, GENERATE_GEAR) .element(GTElements.Tr) .cableProperties(GTValues.V[8], 1, 8) @@ -930,7 +940,7 @@ public static void register() { Duranium = new Material.Builder("duranium") .ingot(5) .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(7500)) - .color(0x4BAFAF).iconSet(BRIGHT) + .color(0xf3e7a9).secondaryColor(0x9c9487).iconSet(BRIGHT) .appendFlags(EXT_METAL, GENERATE_FOIL, GENERATE_GEAR) .element(GTElements.Dr) .toolStats(ToolProperty.Builder.of(14.0F, 12.0F, 8192, 5) @@ -940,7 +950,7 @@ public static void register() { Trinium = new Material.Builder("trinium") .ingot(7).fluid() - .color(0x9973BD).iconSet(SHINY) + .color(0x81808a).secondaryColor(0x351d4b).iconSet(SHINY) .flags(GENERATE_FOIL, GENERATE_BOLT_SCREW, GENERATE_GEAR) .element(GTElements.Ke) .cableProperties(GTValues.V[7], 6, 4) diff --git a/common/src/main/java/com/gregtechceu/gtceu/common/data/materials/FirstDegreeMaterials.java b/common/src/main/java/com/gregtechceu/gtceu/common/data/materials/FirstDegreeMaterials.java index 12b3bf14f0..276029598b 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/common/data/materials/FirstDegreeMaterials.java +++ b/common/src/main/java/com/gregtechceu/gtceu/common/data/materials/FirstDegreeMaterials.java @@ -6,6 +6,7 @@ import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; import com.gregtechceu.gtceu.api.data.chemical.material.properties.ToolProperty; import com.gregtechceu.gtceu.api.fluids.FluidBuilder; +import com.gregtechceu.gtceu.api.fluids.FluidState; import com.gregtechceu.gtceu.api.fluids.attribute.FluidAttributes; import com.gregtechceu.gtceu.api.fluids.store.FluidStorageKeys; import com.gregtechceu.gtceu.api.item.tool.GTToolType; @@ -21,7 +22,7 @@ public class FirstDegreeMaterials { public static void register() { Almandine = new Material.Builder("almandine") .gem(1).ore(3, 1) - .color(0xFF0000) + .color(0xa21717).secondaryColor(0x4b1e0c) .components(Aluminium, 2, Iron, 3, Silicon, 3, Oxygen, 12) .buildAndRegister(); @@ -34,7 +35,7 @@ public static void register() { AnnealedCopper = new Material.Builder("annealed_copper") .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1358)) - .color(0xFF8D3B).iconSet(BRIGHT) + .color(0xf2c079).secondaryColor(0xe45534).iconSet(BRIGHT) .appendFlags(EXT2_METAL, MORTAR_GRINDABLE, GENERATE_FINE_WIRE) .components(Copper, 1) .cableProperties(GTValues.V[2], 1, 1) @@ -43,13 +44,13 @@ public static void register() { Asbestos = new Material.Builder("asbestos") .dust(1).ore(3, 1) - .color(0xE6E6E6) + .color(0xE6E6E6).secondaryColor(0xdbd7bf) .components(Magnesium, 3, Silicon, 2, Hydrogen, 4, Oxygen, 9) .buildAndRegister(); Ash = new Material.Builder("ash") .dust(1) - .color(0x969696) + .color(0xd1d1d1).secondaryColor(0x8b8989) .flags(DISABLE_DECOMPOSITION) .components(Carbon, 1) .buildAndRegister(); @@ -85,7 +86,7 @@ public static void register() { Brass = new Material.Builder("brass") .ingot(1) .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1160)) - .color(0xFFB400).iconSet(METALLIC) + .color(0xffe36e).secondaryColor(0x935828).iconSet(METALLIC) .appendFlags(EXT2_METAL, MORTAR_GRINDABLE) .components(Zinc, 1, Copper, 3) .rotorStats(8.0f, 3.0f, 152) @@ -95,7 +96,7 @@ public static void register() { Bronze = new Material.Builder("bronze") .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1357)) - .color(0xFF8000).iconSet(METALLIC) + .color(0xffc370).secondaryColor(0x806752).iconSet(METALLIC) .appendFlags(EXT2_METAL, MORTAR_GRINDABLE, GENERATE_ROTOR, GENERATE_FRAME, GENERATE_SMALL_GEAR, GENERATE_FOIL, GENERATE_GEAR) .components(Tin, 1, Copper, 3) .toolStats(ToolProperty.Builder.of(3.0F, 2.0F, 192, 2) @@ -106,7 +107,7 @@ public static void register() { Goethite = new Material.Builder("goethite") .dust(1).ore() - .color(0xC86400).iconSet(METALLIC) + .color(0x97873a).secondaryColor(0x313131).iconSet(METALLIC) .flags(DECOMPOSITION_BY_CENTRIFUGING, BLAST_FURNACE_CALCITE_TRIPLE) .components(Iron, 1, Hydrogen, 1, Oxygen, 2) .buildAndRegister(); @@ -119,7 +120,7 @@ public static void register() { Cassiterite = new Material.Builder("cassiterite") .dust(1).ore(2, 1) - .color(0xDCDCDC).iconSet(METALLIC) + .color(0x89847e).secondaryColor(0x3b3b35).iconSet(METALLIC) .components(Tin, 1, Oxygen, 2) .buildAndRegister(); @@ -137,14 +138,14 @@ public static void register() { Charcoal = new Material.Builder("charcoal") .gem(1, 1600) //default charcoal burn time in vanilla - .color(0x644646).iconSet(FINE) + .color(0x7d6f58).secondaryColor(0x13110d).iconSet(FINE) .flags(FLAMMABLE, NO_SMELTING, NO_SMASHING, MORTAR_GRINDABLE) .components(Carbon, 1) .buildAndRegister(); Chromite = new Material.Builder("chromite") .dust(1).ore() - .color(0x23140F).iconSet(METALLIC) + .color(0xc5c1a8).secondaryColor(0x4c1a69).iconSet(METALLIC) .components(Iron, 1, Chromium, 2, Oxygen, 4) .buildAndRegister(); @@ -171,20 +172,20 @@ public static void register() { Cobaltite = new Material.Builder("cobaltite") .dust(1).ore() - .color(0x5050FA).iconSet(METALLIC) + .color(0x1975ff).secondaryColor(0x56071f).iconSet(METALLIC) .components(Cobalt, 1, Arsenic, 1, Sulfur, 1) .buildAndRegister(); Cooperite = new Material.Builder("cooperite") .dust(1).ore() - .color(0xFFFFC8).iconSet(METALLIC) + .color(0xe9ffa7).secondaryColor(0x665f2f).iconSet(METALLIC) .components(Platinum, 3, Nickel, 1, Sulfur, 1, Palladium, 1) .buildAndRegister(); Cupronickel = new Material.Builder("cupronickel") .ingot(1) .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1542)) - .color(0xE39680).iconSet(METALLIC) + .color(0xffda8a).secondaryColor(0xcd2b00).iconSet(METALLIC) .appendFlags(EXT_METAL, GENERATE_SPRING, GENERATE_FINE_WIRE) .components(Copper, 1, Nickel, 1) .itemPipeProperties(2048, 1) @@ -211,7 +212,7 @@ public static void register() { Electrum = new Material.Builder("electrum") .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1285)) - .color(0xFFFF64).iconSet(SHINY) + .color(0xffff8b).secondaryColor(0xff8533).iconSet(SHINY) .appendFlags(EXT2_METAL, MORTAR_GRINDABLE, GENERATE_FINE_WIRE, GENERATE_RING) .components(Silver, 1, Gold, 1) .itemPipeProperties(1024, 2) @@ -234,7 +235,7 @@ public static void register() { Garnierite = new Material.Builder("garnierite") .dust(3).ore() - .color(0x32C846).iconSet(METALLIC) + .color(0x32c880).secondaryColor(0x344028).iconSet(METALLIC) .components(Nickel, 1, Oxygen, 1) .buildAndRegister(); @@ -256,14 +257,14 @@ public static void register() { .fluid(FluidStorageKeys.LIQUID, new FluidBuilder() .temperature(273) .customStill()) - .color(0xC8C8FF, false).iconSet(SHINY) + .color(0xeef6ff, false).secondaryColor(0x6389c9).iconSet(SHINY) .flags(NO_SMASHING, EXCLUDE_BLOCK_CRAFTING_BY_HAND_RECIPES, DISABLE_DECOMPOSITION) .components(Hydrogen, 2, Oxygen, 1) .buildAndRegister(); Ilmenite = new Material.Builder("ilmenite") .dust(3).ore() - .color(0x463732).iconSet(METALLIC) + .color(0x2b2a24).secondaryColor(0x2b1700).iconSet(METALLIC) .flags(DISABLE_DECOMPOSITION) .components(Iron, 1, Titanium, 1, Oxygen, 3) .buildAndRegister(); @@ -285,7 +286,7 @@ public static void register() { Invar = new Material.Builder("invar") .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1916)) - .color(0xB4B478).iconSet(METALLIC) + .color(0xe2e8e1).secondaryColor(0x495d57).iconSet(METALLIC) .appendFlags(EXT2_METAL, MORTAR_GRINDABLE, GENERATE_FRAME, GENERATE_GEAR) .components(Iron, 2, Nickel, 1) .toolStats(ToolProperty.Builder.of(4.0F, 3.0F, 384, 2) @@ -299,7 +300,7 @@ public static void register() { Kanthal = new Material.Builder("kanthal") .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1708)) - .color(0xC2D2DF).iconSet(METALLIC) + .color(0xC2D2DF).secondaryColor(0x4c4238).iconSet(METALLIC) .appendFlags(EXT_METAL, GENERATE_SPRING) .components(Iron, 1, Aluminium, 1, Chromium, 1) .cableProperties(GTValues.V[3], 4, 3) @@ -308,7 +309,7 @@ public static void register() { Lazurite = new Material.Builder("lazurite") .gem(1).ore(6, 4) - .color(0x6478FF).iconSet(LAPIS) + .color(0xC8BEFF).iconSet(LAPIS) .flags(GENERATE_PLATE, NO_SMASHING, NO_SMELTING, CRYSTALLIZABLE, GENERATE_ROD, DECOMPOSITION_BY_ELECTROLYZING) .components(Aluminium, 6, Silicon, 6, Calcium, 8, Sodium, 8) .buildAndRegister(); @@ -325,26 +326,26 @@ public static void register() { Magnesite = new Material.Builder("magnesite") .dust().ore() - .color(0xFAFAB4).iconSet(METALLIC) + .color(0xfbfbf6).secondaryColor(0x80705e).iconSet(METALLIC) .components(Magnesium, 1, Carbon, 1, Oxygen, 3) .buildAndRegister(); Magnetite = new Material.Builder("magnetite") .dust().ore() - .color(0x1E1E1E).iconSet(METALLIC) + .color(0x9d9d9d).secondaryColor(0x06070e).iconSet(METALLIC) .components(Iron, 3, Oxygen, 4) .buildAndRegister(); Molybdenite = new Material.Builder("molybdenite") .dust().ore() - .color(0x191919).iconSet(METALLIC) + .color(0xe3ddc3).secondaryColor(0x191919).iconSet(METALLIC) .components(Molybdenum, 1, Sulfur, 2) .buildAndRegister(); Nichrome = new Material.Builder("nichrome") .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1818)) - .color(0xCDCEF6).iconSet(METALLIC) + .color(0xebe6d6).secondaryColor(0x282b42).iconSet(METALLIC) .appendFlags(EXT_METAL, GENERATE_SPRING) .components(Nickel, 4, Chromium, 1) .cableProperties(GTValues.V[EV], 4, 4) @@ -373,7 +374,7 @@ public static void register() { Obsidian = new Material.Builder("obsidian") .dust(3) - .color(0x503264) + .color(0x3b2754).secondaryColor(0x000001) .flags(NO_SMASHING, EXCLUDE_BLOCK_CRAFTING_RECIPES, GENERATE_PLATE) .components(Magnesium, 1, Iron, 1, Silicon, 2, Oxygen, 4) .buildAndRegister(); @@ -387,7 +388,7 @@ public static void register() { PlatinumRaw = new Material.Builder("platinum_raw") .dust() - .color(0xFFFFC8).iconSet(METALLIC) + .color(0xa09a7b).secondaryColor(0x4e4e45).iconSet(METALLIC) .flags(DISABLE_DECOMPOSITION) .components(Platinum, 1, Chlorine, 2) .buildAndRegister(); @@ -395,7 +396,7 @@ public static void register() { SterlingSilver = new Material.Builder("sterling_silver") .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1258)) - .color(0xFADCE1).iconSet(SHINY) + .color(0xfaf4dc).secondaryColor(0x484434).iconSet(SHINY) .appendFlags(EXT2_METAL) .components(Copper, 1, Silver, 4) .toolStats(ToolProperty.Builder.of(3.0F, 8.0F, 768, 2) @@ -409,7 +410,7 @@ public static void register() { RoseGold = new Material.Builder("rose_gold") .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1341)) - .color(0xFFE61E).iconSet(SHINY) + .color(0xecd5b8).secondaryColor(0xd85f2d).iconSet(SHINY) .appendFlags(EXT2_METAL, GENERATE_RING) .components(Copper, 1, Gold, 4) .toolStats(ToolProperty.Builder.of(12.0F, 2.0F, 768, 2) @@ -423,7 +424,7 @@ public static void register() { BlackBronze = new Material.Builder("black_bronze") .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1328)) - .color(0x64327D) + .color(0x8b7c70).secondaryColor(0x4b3d32) .appendFlags(EXT2_METAL, GENERATE_GEAR) .components(Gold, 1, Silver, 1, Copper, 3) .rotorStats(12.0f, 2.0f, 256) @@ -434,7 +435,7 @@ public static void register() { BismuthBronze = new Material.Builder("bismuth_bronze") .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1036)) - .color(0x647D7D) + .color(0xffd26f).secondaryColor(0x895f3d) .appendFlags(EXT2_METAL) .components(Bismuth, 1, Zinc, 1, Copper, 3) .rotorStats(8.0f, 3.0f, 256) @@ -443,7 +444,7 @@ public static void register() { Biotite = new Material.Builder("biotite") .dust(1) - .color(0x141E14).iconSet(METALLIC) + .color(0x343b34).secondaryColor(0x121200).iconSet(METALLIC) .components(Potassium, 1, Magnesium, 3, Aluminium, 3, Fluorine, 2, Silicon, 3, Oxygen, 10) .buildAndRegister(); @@ -455,7 +456,7 @@ public static void register() { Pyrite = new Material.Builder("pyrite") .dust(1).ore() - .color(0x967828).iconSet(ROUGH) + .color(0xfffee6).secondaryColor(0xb69f4e).iconSet(ROUGH) .flags(BLAST_FURNACE_CALCITE_DOUBLE) .components(Iron, 1, Sulfur, 2) .buildAndRegister(); @@ -474,14 +475,14 @@ public static void register() { RockSalt = new Material.Builder("rock_salt") .gem(1).ore(2, 1) - .color(0xF0C8C8).iconSet(FINE) + .color(0xffeae1).secondaryColor(0xF0C8C8).iconSet(FINE) .flags(NO_SMASHING) .components(Potassium, 1, Chlorine, 1) .buildAndRegister(); Ruridit = new Material.Builder("ruridit") .ingot(3) - .colorAverage().iconSet(BRIGHT) + .color(0xFFFFFF).secondaryColor(0xc5c5c5).iconSet(BRIGHT) .flags(GENERATE_FINE_WIRE, GENERATE_GEAR, GENERATE_LONG_ROD) .components(Ruthenium, 2, Iridium, 1) .blastTemp(4500, GasTier.HIGH, GTValues.VA[GTValues.EV], 1600) @@ -503,7 +504,7 @@ public static void register() { Saltpeter = new Material.Builder("saltpeter") .dust(1).ore(2, 1) - .color(0xE6E6E6).iconSet(FINE) + .color(0xE6E6E6).secondaryColor(0xe6e1cf).iconSet(FINE) .flags(NO_SMASHING, NO_SMELTING, FLAMMABLE) .components(Potassium, 1, Nitrogen, 1, Oxygen, 3) .buildAndRegister(); @@ -532,13 +533,13 @@ public static void register() { AluminiumSulfite = new Material.Builder("aluminium_sulfite") .dust() - .color(0xCC4BBB).iconSet(DULL) + .color(0xd4ecf9).secondaryColor(0xa6b9b6).iconSet(DULL) .components(Aluminium, 2, Sulfur, 3, Oxygen, 9) .buildAndRegister().setFormula("Al2(SO3)3", true); Tantalite = new Material.Builder("tantalite") .dust(3).ore() - .color(0x915028).iconSet(METALLIC) + .color(0x4e6b94).secondaryColor(0x632300).iconSet(METALLIC) .components(Manganese, 1, Tantalum, 2, Oxygen, 6) .buildAndRegister(); @@ -572,7 +573,7 @@ public static void register() { StainlessSteel = new Material.Builder("stainless_steel") .ingot(3) .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(2011)) - .color(0xC8C8DC).iconSet(SHINY) + .color(0xededfd).secondaryColor(0x19191d).iconSet(SHINY) .appendFlags(EXT2_METAL, GENERATE_ROTOR, GENERATE_SMALL_GEAR, GENERATE_FRAME, GENERATE_LONG_ROD, GENERATE_FOIL, GENERATE_GEAR) .components(Iron, 6, Chromium, 1, Manganese, 1, Nickel, 1) .toolStats(ToolProperty.Builder.of(7.0F, 5.0F, 1024, 3) @@ -585,7 +586,7 @@ public static void register() { Steel = new Material.Builder("steel") .ingot(3) .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(2046)) - .color(0x808080).iconSet(METALLIC) + .color(0xa7a7a7).secondaryColor(0x121c37).iconSet(METALLIC) .appendFlags(EXT2_METAL, MORTAR_GRINDABLE, GENERATE_ROTOR, GENERATE_SMALL_GEAR, GENERATE_SPRING, GENERATE_SPRING_SMALL, GENERATE_FRAME, DISABLE_DECOMPOSITION, GENERATE_FINE_WIRE, GENERATE_GEAR) .components(Iron, 1) @@ -600,7 +601,7 @@ public static void register() { Stibnite = new Material.Builder("stibnite") .dust().ore() - .color(0x464646).iconSet(METALLIC) + .color(0x656565).secondaryColor(0x0a1432).iconSet(METALLIC) .flags(DECOMPOSITION_BY_CENTRIFUGING) .components(Antimony, 2, Sulfur, 3) .buildAndRegister(); @@ -616,7 +617,7 @@ public static void register() { TinAlloy = new Material.Builder("tin_alloy") .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1258)) - .color(0xC8C8C8).iconSet(METALLIC) + .color(0xC8C8C8).secondaryColor(0x8b8b8b).iconSet(METALLIC) .appendFlags(EXT2_METAL) .components(Tin, 1, Iron, 1) .fluidPipeProperties(1572, 20, true) @@ -640,7 +641,7 @@ public static void register() { Ultimet = new Material.Builder("ultimet") .ingot(4) .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1980)) - .color(0xB4B4E6).iconSet(SHINY) + .color(0x9f9fb1).secondaryColor(0x385086).iconSet(SHINY) .appendFlags(EXT2_METAL, GENERATE_GEAR) .components(Cobalt, 5, Chromium, 2, Nickel, 1, Molybdenum, 1) .toolStats(ToolProperty.Builder.of(10.0F, 7.0F, 2048, 4) @@ -652,7 +653,7 @@ public static void register() { Uraninite = new Material.Builder("uraninite") .dust(3).ore(true) - .color(0x232323).iconSet(METALLIC) + .color(0xffd52e).secondaryColor(0x17212b).iconSet(METALLIC) .flags(DISABLE_DECOMPOSITION) .components(Uranium238, 1, Oxygen, 2) .buildAndRegister() @@ -667,7 +668,7 @@ public static void register() { VanadiumGallium = new Material.Builder("vanadium_gallium") .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1712)) - .color(0x80808C).iconSet(SHINY) + .color(0x89aeec).secondaryColor(0x00379d).iconSet(SHINY) .appendFlags(STD_METAL, GENERATE_FOIL, GENERATE_SPRING, GENERATE_SPRING_SMALL) .components(Vanadium, 3, Gallium, 1) .cableProperties(GTValues.V[7], 4, 2) @@ -677,7 +678,7 @@ public static void register() { WroughtIron = new Material.Builder("wrought_iron") .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(2011)) - .color(0xC8B4B4).iconSet(METALLIC) + .color(0xbcbcbc).secondaryColor(0x521c0b).iconSet(METALLIC) .appendFlags(EXT_METAL, GENERATE_GEAR, GENERATE_FOIL, MORTAR_GRINDABLE, GENERATE_RING, GENERATE_LONG_ROD, GENERATE_BOLT_SCREW, DISABLE_DECOMPOSITION, BLAST_FURNACE_CALCITE_TRIPLE) .components(Iron, 1) .toolStats(ToolProperty.Builder.of(2.0F, 2.0F, 384, 2) @@ -696,7 +697,7 @@ public static void register() { YellowLimonite = new Material.Builder("yellow_limonite") .dust().ore() - .color(0xC8C800).iconSet(METALLIC) + .color(0xf5e315).secondaryColor(0xc06f33).iconSet(METALLIC) .flags(DECOMPOSITION_BY_CENTRIFUGING, BLAST_FURNACE_CALCITE_DOUBLE) .components(Iron, 1, Hydrogen, 1, Oxygen, 2) .buildAndRegister(); @@ -704,7 +705,7 @@ public static void register() { YttriumBariumCuprate = new Material.Builder("yttrium_barium_cuprate") .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1799)) - .color(0x504046).iconSet(METALLIC) + .color(0x796d72).secondaryColor(0x260a3a).iconSet(METALLIC) .appendFlags(EXT_METAL, GENERATE_FINE_WIRE, GENERATE_SPRING, GENERATE_SPRING_SMALL, GENERATE_FOIL, GENERATE_BOLT_SCREW) .components(Yttrium, 1, Barium, 2, Copper, 3, Oxygen, 7) .cableProperties(GTValues.V[8], 4, 4) @@ -741,7 +742,7 @@ public static void register() { Graphene = new Material.Builder("graphene") .dust().ingot() - .color(0x808080).iconSet(SHINY) + .color(0x808080).secondaryColor(0x3d3838).iconSet(SHINY) .flags(DISABLE_DECOMPOSITION, GENERATE_FOIL) .components(Carbon, 1) .cableProperties(GTValues.V[5], 1, 1) @@ -749,7 +750,7 @@ public static void register() { TungsticAcid = new Material.Builder("tungstic_acid") .dust() - .color(0xBCC800).iconSet(SHINY) + .color(0xfffc03).secondaryColor(0x886217).iconSet(SHINY) .flags(DISABLE_DECOMPOSITION) .components(Hydrogen, 2, Tungsten, 1, Oxygen, 4) .buildAndRegister(); @@ -757,7 +758,7 @@ public static void register() { Osmiridium = new Material.Builder("osmiridium") .ingot(3) .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(3012)) - .color(0x6464FF).iconSet(METALLIC) + .color(0xe5dcef).secondaryColor(0x241a44).iconSet(METALLIC) .appendFlags(EXT2_METAL, GENERATE_SMALL_GEAR, GENERATE_RING, GENERATE_ROTOR, GENERATE_ROUND, GENERATE_FINE_WIRE, GENERATE_GEAR) .components(Iridium, 3, Osmium, 1) .rotorStats(9.0f, 3.0f, 3152) @@ -773,13 +774,13 @@ public static void register() { CalciumChloride = new Material.Builder("calcium_chloride") .dust() - .color(0xEBEBFA).iconSet(FINE) + .color(0xFFFFFF).secondaryColor(0xe7e7d7).iconSet(FINE) .components(Calcium, 1, Chlorine, 2) .buildAndRegister(); Bornite = new Material.Builder("bornite") .dust(1).ore() - .color(0x97662B).iconSet(METALLIC) + .color(0xffe05a).secondaryColor(0x442602).iconSet(METALLIC) .components(Copper, 5, Iron, 1, Sulfur, 4) .buildAndRegister(); @@ -789,10 +790,6 @@ public static void register() { .components(Copper, 2, Sulfur, 1) .buildAndRegister(); - // Free ID 349 - - // Free ID 350 - GalliumArsenide = new Material.Builder("gallium_arsenide") .ingot(1) .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1511)) @@ -825,7 +822,7 @@ public static void register() { NickelZincFerrite = new Material.Builder("nickel_zinc_ferrite") .ingot(0) .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1410)) - .color(0x3C3C3C).iconSet(METALLIC) + .color(0x3f2821).secondaryColor(0x2c2725).iconSet(METALLIC) .flags(GENERATE_RING) .components(Nickel, 1, Zinc, 1, Iron, 4, Oxygen, 8) .buildAndRegister(); @@ -871,7 +868,7 @@ public static void register() { FerriteMixture = new Material.Builder("ferrite_mixture") .dust(1) - .color(0xB4B4B4).iconSet(METALLIC) + .color(0xB4B4B4).secondaryColor(0x763200).iconSet(METALLIC) .flags(DECOMPOSITION_BY_CENTRIFUGING) .components(Nickel, 1, Zinc, 1, Iron, 4) .buildAndRegister(); @@ -884,7 +881,7 @@ public static void register() { PlatinumGroupSludge = new Material.Builder("platinum_group_sludge") .dust(1) - .color(0x001E00).iconSet(FINE) + .color(0x343228).secondaryColor(0x001E00).iconSet(FINE) .flags(DISABLE_DECOMPOSITION) .buildAndRegister(); @@ -897,7 +894,7 @@ public static void register() { SodiumBicarbonate = new Material.Builder("sodium_bicarbonate") .dust(1) - .color(0x565b96).iconSet(ROUGH) + .color(0xFFFFFF).secondaryColor(0xa7d2df).iconSet(ROUGH) .components(Sodium, 1, Hydrogen, 1, Carbon, 1, Oxygen, 3) .buildAndRegister(); @@ -915,7 +912,7 @@ public static void register() { AntimonyTrioxide = new Material.Builder("antimony_trioxide") .dust(1) - .color(0xE6E6F0) + .color(0xf5f5ff).secondaryColor(0xc4c4d6) .components(Antimony, 2, Oxygen, 3) .buildAndRegister(); @@ -957,7 +954,7 @@ public static void register() { MetalMixture = new Material.Builder("metal_mixture") .dust(1) - .color(0x502d16).iconSet(METALLIC) + .color(0x697077).secondaryColor(0x502d16).iconSet(METALLIC) .flags(DISABLE_DECOMPOSITION) .buildAndRegister(); @@ -975,7 +972,7 @@ public static void register() { Bastnasite = new Material.Builder("bastnasite") .dust().ore(2, 1) - .color(0xC86E2D).iconSet(FINE) + .color(0xcaab60).secondaryColor(0xc8502d).iconSet(FINE) .components(Cerium, 1, Carbon, 1, Fluorine, 1, Oxygen, 3) .buildAndRegister(); @@ -993,7 +990,7 @@ public static void register() { Lepidolite = new Material.Builder("lepidolite") .dust().ore(2, 1) - .color(0xF0328C).iconSet(FINE) + .color(0xffdae4).secondaryColor(0x75376f).iconSet(FINE) .components(Potassium, 1, Lithium, 3, Aluminium, 4, Fluorine, 2, Oxygen, 10) .buildAndRegister(); @@ -1013,7 +1010,7 @@ public static void register() { Mica = new Material.Builder("mica") .dust().ore(2, 1) - .color(0xC3C3CD).iconSet(FINE) + .color(0xecfeff).secondaryColor(0xc2a03c).iconSet(FINE) .components(Potassium, 1, Aluminium, 3, Silicon, 3, Fluorine, 2, Oxygen, 10) .buildAndRegister(); @@ -1025,19 +1022,13 @@ public static void register() { Alunite = new Material.Builder("alunite") .dust().ore(3, 1) - .color(0xE1B441).iconSet(METALLIC) + .color(0xfbd677).secondaryColor(0xe11e0a).iconSet(METALLIC) .components(Potassium, 1, Aluminium, 3, Silicon, 2, Hydrogen, 6, Oxygen, 14) .buildAndRegister(); - // Free ID 389 - - // Free ID 390 - - // Free ID 391 - Talc = new Material.Builder("talc") .dust().ore(2, 1) - .color(0x5AB45A).iconSet(FINE) + .color(0xebffe9).secondaryColor(0x6fe19b).iconSet(FINE) .components(Magnesium, 3, Silicon, 4, Hydrogen, 2, Oxygen, 12) .buildAndRegister(); @@ -1066,7 +1057,7 @@ public static void register() { TungstenCarbide = new Material.Builder("tungsten_carbide") .ingot(4).fluid() - .color(0x330066).iconSet(METALLIC) + .color(0x6b6478).secondaryColor(0x392e44).iconSet(METALLIC) .appendFlags(EXT2_METAL, GENERATE_FOIL, GENERATE_GEAR, GENERATE_SMALL_GEAR, GENERATE_FRAME, DECOMPOSITION_BY_CENTRIFUGING) .components(Tungsten, 1, Carbon, 1) .toolStats(ToolProperty.Builder.of(60.0F, 2.0F, 1024, 4) @@ -1128,7 +1119,7 @@ public static void register() { SulfurDioxide = new Material.Builder("sulfur_dioxide") .gas() - .color(0xC8C819) + .color(0x0E4880) .components(Sulfur, 1, Oxygen, 2) .buildAndRegister(); @@ -1146,7 +1137,7 @@ public static void register() { Ammonia = new Material.Builder("ammonia") .gas() - .color(0x3F3480) + .color(0x4465a2).secondaryColor(0x3F3480) .components(Nitrogen, 1, Hydrogen, 3) .buildAndRegister(); @@ -1206,7 +1197,7 @@ public static void register() { PotassiumFeldspar = new Material.Builder("potassium_feldspar") .dust(1) - .color(0x782828).iconSet(FINE) + .color(0xffe3bc).secondaryColor(0xd4918a).iconSet(FINE) .components(Potassium, 1, Aluminium, 1, Silicon, 1, Oxygen, 8) .buildAndRegister(); @@ -1228,6 +1219,7 @@ public static void register() { Steam = new Material.Builder("steam") .fluid(FluidStorageKeys.GAS, new FluidBuilder() + .state(FluidState.GAS) .temperature(373) .customStill()) .flags(DISABLE_DECOMPOSITION) @@ -1262,7 +1254,7 @@ public static void register() { ManganesePhosphide = new Material.Builder("manganese_phosphide") .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1368)) - .color(0xE1B454).iconSet(METALLIC) + .color(0xE1B454).secondaryColor(0x223033).iconSet(METALLIC) .flags(DECOMPOSITION_BY_ELECTROLYZING) .components(Manganese, 1, Phosphorus, 1) .cableProperties(GTValues.V[GTValues.LV], 2, 0, true, 78) @@ -1272,7 +1264,7 @@ public static void register() { MagnesiumDiboride = new Material.Builder("magnesium_diboride") .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1103)) - .color(0x331900).iconSet(METALLIC) + .color(0x603c1a).secondaryColor(0x423e39).iconSet(METALLIC) .flags(DECOMPOSITION_BY_ELECTROLYZING) .components(Magnesium, 1, Boron, 2) .cableProperties(GTValues.V[MV], 4, 0, true, 78) @@ -1282,7 +1274,7 @@ public static void register() { MercuryBariumCalciumCuprate = new Material.Builder("mercury_barium_calcium_cuprate") .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1075)) - .color(0x555555).iconSet(SHINY) + .color(0x777777).secondaryColor(0x3f2e2e).iconSet(SHINY) .flags(DECOMPOSITION_BY_ELECTROLYZING) .components(Mercury, 1, Barium, 2, Calcium, 2, Copper, 3, Oxygen, 8) .cableProperties(GTValues.V[HV], 4, 0, true, 78) @@ -1292,7 +1284,7 @@ public static void register() { UraniumTriplatinum = new Material.Builder("uranium_triplatinum") .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1882)) - .color(0x008700).iconSet(SHINY) + .color(0x457045).secondaryColor(0x66ff00).iconSet(SHINY) .flags(DECOMPOSITION_BY_CENTRIFUGING) .components(Uranium238, 1, Platinum, 3) .cableProperties(GTValues.V[GTValues.EV], 6, 0, true, 30) @@ -1303,7 +1295,7 @@ public static void register() { SamariumIronArsenicOxide = new Material.Builder("samarium_iron_arsenic_oxide") .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1347)) - .color(0x330033).iconSet(SHINY) + .color(0x850e85).secondaryColor(0x332f33).iconSet(SHINY) .flags(DECOMPOSITION_BY_CENTRIFUGING) .components(Samarium, 1, Iron, 1, Arsenic, 1, Oxygen, 1) .cableProperties(GTValues.V[GTValues.IV], 6, 0, true, 30) @@ -1313,7 +1305,7 @@ public static void register() { IndiumTinBariumTitaniumCuprate = new Material.Builder("indium_tin_barium_titanium_cuprate") .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1012)) - .color(0x994C00).iconSet(METALLIC) + .color(0x686760).secondaryColor(0x673300).iconSet(METALLIC) .flags(DECOMPOSITION_BY_ELECTROLYZING, GENERATE_FINE_WIRE) .components(Indium, 4, Tin, 2, Barium, 2, Titanium, 1, Copper, 7, Oxygen, 14) .cableProperties(GTValues.V[GTValues.LuV], 8, 0, true, 5) @@ -1334,7 +1326,7 @@ public static void register() { EnrichedNaquadahTriniumEuropiumDuranide = new Material.Builder("enriched_naquadah_trinium_europium_duranide") .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(5930)) - .color(0x7D9673).iconSet(METALLIC) + .color(0xc5c1a4).secondaryColor(0x2b0645).iconSet(METALLIC) .flags(DECOMPOSITION_BY_CENTRIFUGING, GENERATE_FINE_WIRE) .components(NaquadahEnriched, 4, Trinium, 3, Europium, 2, Duranium, 1) .cableProperties(GTValues.V[GTValues.UV], 16, 0, true, 3) @@ -1353,7 +1345,7 @@ public static void register() { InertMetalMixture = new Material.Builder("inert_metal_mixture") .dust() - .color(0xE2AE72).iconSet(METALLIC) + .color(0x2b0645).secondaryColor(0x6a1600).iconSet(METALLIC) .flags(DISABLE_DECOMPOSITION) .components(Rhodium, 1, Ruthenium, 1, Oxygen, 4) .buildAndRegister(); @@ -1374,14 +1366,14 @@ public static void register() { OsmiumTetroxide = new Material.Builder("osmium_tetroxide") .dust() - .color(0xACAD71).iconSet(METALLIC) + .color(0xACAD71).secondaryColor(0x291f34).iconSet(METALLIC) .flags(DISABLE_DECOMPOSITION) .components(Osmium, 1, Oxygen, 4) .buildAndRegister(); IridiumChloride = new Material.Builder("iridium_chloride") .dust() - .color(0x013220).iconSet(METALLIC) + .color(0x373c09).secondaryColor(0x012213).iconSet(METALLIC) .flags(DISABLE_DECOMPOSITION) .components(Iridium, 1, Chlorine, 3) .buildAndRegister(); @@ -1393,33 +1385,33 @@ public static void register() { TitaniumTrifluoride = new Material.Builder("titanium_trifluoride") .dust() - .color(0x8F00FF).iconSet(SHINY) + .color(0x8F00FF).secondaryColor(0x341465).iconSet(SHINY) .flags(DISABLE_DECOMPOSITION) .components(Titanium, 1, Fluorine, 3) .buildAndRegister(); CalciumPhosphide = new Material.Builder("calcium_phosphide") .dust() - .color(0xA52A2A).iconSet(METALLIC) + .color(0xFFF5DE).secondaryColor(0xf6baba).iconSet(METALLIC) .components(Calcium, 1, Phosphorus, 1) .buildAndRegister(); IndiumPhosphide = new Material.Builder("indium_phosphide") .dust() - .color(0x582E5C).iconSet(SHINY) + .color(0x734d77).secondaryColor(0x2c272d).iconSet(SHINY) .flags(DISABLE_DECOMPOSITION) .components(Indium, 1, Phosphorus, 1) .buildAndRegister(); BariumSulfide = new Material.Builder("barium_sulfide") .dust() - .color(0xF0EAD6).iconSet(METALLIC) + .color(0x80784a).secondaryColor(0x2c333b).iconSet(METALLIC) .components(Barium, 1, Sulfur, 1) .buildAndRegister(); TriniumSulfide = new Material.Builder("trinium_sulfide") .dust() - .color(0xE68066).iconSet(SHINY) + .color(0xE68066).secondaryColor(0x6f143a).iconSet(SHINY) .flags(DISABLE_DECOMPOSITION) .components(Trinium, 1, Sulfur, 1) .buildAndRegister(); @@ -1432,34 +1424,34 @@ public static void register() { GalliumSulfide = new Material.Builder("gallium_sulfide") .dust() - .color(0xFFF59E).iconSet(SHINY) + .color(0xffee5d).secondaryColor(0xedf008).iconSet(SHINY) .components(Gallium, 1, Sulfur, 1) .buildAndRegister(); AntimonyTrifluoride = new Material.Builder("antimony_trifluoride") .dust() - .color(0xF7EABC).iconSet(METALLIC) + .color(0xfffbef).secondaryColor(0xF7EABC).iconSet(METALLIC) .flags(DISABLE_DECOMPOSITION) .components(Antimony, 1, Fluorine, 3) .buildAndRegister(); EnrichedNaquadahSulfate = new Material.Builder("enriched_naquadah_sulfate") .dust() - .color(0x2E2E1C).iconSet(METALLIC) + .color(0xff8023).secondaryColor(0x044610).iconSet(METALLIC) .flags(DISABLE_DECOMPOSITION) .components(NaquadahEnriched, 1, Sulfur, 1, Oxygen, 4) .buildAndRegister(); NaquadriaSulfate = new Material.Builder("naquadria_sulfate") .dust() - .color(0x006633).iconSet(SHINY) + .color(0x85ff5a).secondaryColor(0x006633).iconSet(SHINY) .flags(DISABLE_DECOMPOSITION) .components(Naquadria, 1, Sulfur, 1, Oxygen, 4) .buildAndRegister(); Pyrochlore = new Material.Builder("pyrochlore") .dust().ore() - .color(0x2B1100).iconSet(METALLIC) + .color(0x5b4838).secondaryColor(0x331400).iconSet(METALLIC) .flags() .components(Calcium, 2, Niobium, 2, Oxygen, 7) .buildAndRegister(); diff --git a/common/src/main/java/com/gregtechceu/gtceu/common/data/materials/HigherDegreeMaterials.java b/common/src/main/java/com/gregtechceu/gtceu/common/data/materials/HigherDegreeMaterials.java index c7863f825f..dad7b44a53 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/common/data/materials/HigherDegreeMaterials.java +++ b/common/src/main/java/com/gregtechceu/gtceu/common/data/materials/HigherDegreeMaterials.java @@ -17,7 +17,7 @@ public static void register() { Electrotine = new Material.Builder("electrotine") .dust().ore(5, 1, true) - .color(0x3CB4C8).iconSet(SHINY) + .color(0x83cbf5).secondaryColor(0x004585).iconSet(SHINY) .flags(DISABLE_DECOMPOSITION) .components(Redstone, 1, Electrum, 1) .buildAndRegister(); @@ -36,7 +36,7 @@ public static void register() { RedSteel = new Material.Builder("red_steel") .ingot(3).fluid() - .color(0x8C6464).iconSet(METALLIC) + .color(0xa09191).secondaryColor(0x500404).iconSet(METALLIC) .appendFlags(EXT_METAL, GENERATE_GEAR) .components(SterlingSilver, 1, BismuthBronze, 1, Steel, 2, BlackSteel, 4) .toolStats(ToolProperty.Builder.of(7.0F, 6.0F, 2560, 3) @@ -46,7 +46,7 @@ public static void register() { BlueSteel = new Material.Builder("blue_steel") .ingot(3).fluid() - .color(0x64648C).iconSet(METALLIC) + .color(0xa5bdda).secondaryColor(0x24245f).iconSet(METALLIC) .appendFlags(EXT_METAL, GENERATE_FRAME, GENERATE_GEAR) .components(RoseGold, 1, Brass, 1, Steel, 2, BlackSteel, 4) .toolStats(ToolProperty.Builder.of(15.0F, 6.0F, 1024, 3) @@ -56,7 +56,7 @@ public static void register() { Basalt = new Material.Builder("basalt") .dust(1) - .color(0x3C3232).iconSet(ROUGH) + .color(0x5c5c5c).secondaryColor(0x1b2632).iconSet(ROUGH) .flags(NO_SMASHING, DECOMPOSITION_BY_CENTRIFUGING) .components(Olivine, 1, Calcite, 3, Flint, 8, DarkAsh, 4) .buildAndRegister(); @@ -70,7 +70,7 @@ public static void register() { Redrock = new Material.Builder("redrock") .dust(1) - .color(0xFF5032).iconSet(ROUGH) + .color(0xffa49e).secondaryColor(0x52362a).iconSet(ROUGH) .flags(NO_SMASHING, DECOMPOSITION_BY_CENTRIFUGING) .components(Calcite, 2, Flint, 1) .buildAndRegister(); @@ -84,7 +84,7 @@ public static void register() { HSSG = new Material.Builder("hssg") .ingot(3).fluid() - .color(0x999900).iconSet(METALLIC) + .color(0x9cbabe).secondaryColor(0x032550).iconSet(METALLIC) .appendFlags(EXT2_METAL, GENERATE_SMALL_GEAR, GENERATE_FRAME, GENERATE_SPRING, GENERATE_FINE_WIRE, GENERATE_FOIL, GENERATE_GEAR) .components(TungstenSteel, 5, Chromium, 1, Molybdenum, 2, Vanadium, 1) .rotorStats(10.0f, 5.5f, 4000) @@ -95,7 +95,7 @@ public static void register() { RedAlloy = new Material.Builder("red_alloy") .ingot(0) .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1400)) - .color(0xC80000) + .color(0xc55252).secondaryColor(0xC80000) .appendFlags(STD_METAL, GENERATE_FINE_WIRE, GENERATE_BOLT_SCREW, DISABLE_DECOMPOSITION) .components(Copper, 1, Redstone, 4) .cableProperties(GTValues.V[0], 1, 0) @@ -110,7 +110,7 @@ public static void register() { HSSE = new Material.Builder("hsse") .ingot(4).fluid() - .color(0x336600).iconSet(METALLIC) + .color(0x9d9cbe).secondaryColor(0x2b0350).iconSet(METALLIC) .appendFlags(EXT2_METAL, GENERATE_FRAME, GENERATE_RING) .components(HSSG, 6, Cobalt, 1, Manganese, 1, Silicon, 1) .toolStats(ToolProperty.Builder.of(5.0F, 10.0F, 3072, 4) @@ -121,7 +121,7 @@ public static void register() { HSSS = new Material.Builder("hsss") .ingot(4).fluid() - .color(0x660033).iconSet(METALLIC) + .color(0xae9abe).secondaryColor(0x66000e).iconSet(METALLIC) .appendFlags(EXT2_METAL, GENERATE_SMALL_GEAR, GENERATE_RING, GENERATE_FRAME, GENERATE_ROTOR, GENERATE_ROUND, GENERATE_FOIL, GENERATE_GEAR) .components(HSSG, 6, Iridium, 2, Osmium, 1) .rotorStats(15.0f, 7.0f, 3000) @@ -132,34 +132,35 @@ public static void register() { IridiumMetalResidue = new Material.Builder("iridium_metal_residue") .dust() - .color(0x5C5D68).iconSet(METALLIC) + .color(0x5C5D68).secondaryColor(0x462941).iconSet(METALLIC) .flags(DISABLE_DECOMPOSITION) .components(Iridium, 1, Chlorine, 3, PlatinumSludgeResidue, 1) .buildAndRegister(); Granite = new Material.Builder("granite") .dust() - .color(0xCFA18C).iconSet(ROUGH) + .color(0xd69077).secondaryColor(0x71352c).iconSet(ROUGH) .flags(DECOMPOSITION_BY_CENTRIFUGING) .components(SiliconDioxide, 4, Redrock, 1) .buildAndRegister(); Brick = new Material.Builder("brick") .dust() - .color(0x9B5643).iconSet(ROUGH) + .color(0xc76245).secondaryColor(0x2d1610).iconSet(ROUGH) .flags(EXCLUDE_BLOCK_CRAFTING_RECIPES, NO_SMELTING, DECOMPOSITION_BY_CENTRIFUGING) .components(Clay, 1) .buildAndRegister(); Fireclay = new Material.Builder("fireclay") .dust() - .color(0xADA09B).iconSet(ROUGH) + .color(0xffeab6).secondaryColor(0x84581c).iconSet(ROUGH) .flags(DECOMPOSITION_BY_CENTRIFUGING, NO_SMELTING) .components(Clay, 1, Brick, 1) .buildAndRegister(); Diorite = new Material.Builder("diorite") .dust() + .color(0xe9e9e9).secondaryColor(0x7b7b7b) .iconSet(ROUGH) .flags(DECOMPOSITION_BY_CENTRIFUGING) .components(Mirabilite, 2, Clay, 7) diff --git a/common/src/main/java/com/gregtechceu/gtceu/common/data/materials/OrganicChemistryMaterials.java b/common/src/main/java/com/gregtechceu/gtceu/common/data/materials/OrganicChemistryMaterials.java index 56fbe61511..ddd1df9906 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/common/data/materials/OrganicChemistryMaterials.java +++ b/common/src/main/java/com/gregtechceu/gtceu/common/data/materials/OrganicChemistryMaterials.java @@ -19,7 +19,7 @@ public static void register() { SiliconeRubber = new Material.Builder("silicone_rubber") .polymer() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(900)) - .color(0xDCDCDC) + .color(0xF0F0F0).secondaryColor(0xE8E8E0) .flags(GENERATE_GEAR, GENERATE_RING, GENERATE_FOIL) .components(Carbon, 2, Hydrogen, 6, Oxygen, 1, Silicon, 1) .buildAndRegister(); @@ -33,13 +33,13 @@ public static void register() { RawRubber = new Material.Builder("raw_rubber") .polymer() - .color(0xCCC789) + .color(0x54503D).secondaryColor(0x54403D) .components(Carbon, 5, Hydrogen, 8) .buildAndRegister(); RawStyreneButadieneRubber = new Material.Builder("raw_styrene_butadiene_rubber") .dust() - .color(0x54403D).iconSet(SHINY) + .color(0x54403D).secondaryColor(0x241520).iconSet(SHINY) .flags(DISABLE_DECOMPOSITION, FLAMMABLE) .components(Carbon, 20, Hydrogen, 26) .buildAndRegister() @@ -48,7 +48,7 @@ public static void register() { StyreneButadieneRubber = new Material.Builder("styrene_butadiene_rubber") .polymer() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1000)) - .color(0x211A18).iconSet(SHINY) + .color(0x34312b).secondaryColor(0x110B09).iconSet(SHINY) .flags(GENERATE_FOIL, GENERATE_RING) .components(Carbon, 20, Hydrogen, 26) .buildAndRegister() @@ -72,7 +72,7 @@ public static void register() { PolyvinylChloride = new Material.Builder("polyvinyl_chloride") .polymer() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(373)) - .color(0xD7E6E6) + .color(0xFF9955) .appendFlags(EXT_METAL, GENERATE_FOIL) .components(Carbon, 2, Hydrogen, 3, Chlorine, 1) .itemPipeProperties(512, 4) @@ -147,7 +147,7 @@ public static void register() { Sugar = new Material.Builder("sugar") .gem(1) - .color(0xFAFAFA).iconSet(FINE) + .color(0xFFFFFF).secondaryColor(0x545468).iconSet(FINE) .flags(DISABLE_DECOMPOSITION) .components(Carbon, 6, Hydrogen, 12, Oxygen, 6) .buildAndRegister(); @@ -485,7 +485,7 @@ public static void register() { Rubber = new Material.Builder("rubber") .polymer(0) .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(400)) - .color(0x000000).iconSet(SHINY) + .color(0x353529).secondaryColor(0x080808).iconSet(SHINY) .toolStats(ToolProperty.Builder.of(1.0F, 1.0F, 128, 1, GTToolType.SOFT_MALLET).build()) .flags(GENERATE_GEAR, GENERATE_RING, GENERATE_FOIL, GENERATE_BOLT_SCREW) .components(Carbon, 5, Hydrogen, 8) @@ -533,5 +533,21 @@ public static void register() { .flags(GENERATE_PLATE, DISABLE_DECOMPOSITION, NO_SMASHING) .components(Butyraldehyde, 1, PolyvinylAcetate, 1) .buildAndRegister(); + + Biphenyl = new Material.Builder("biphenyl") + .dust() + .color(0x8B8C4F).iconSet(FINE) + .flags(DISABLE_DECOMPOSITION) + .components(Carbon, 12, Hydrogen, 10) + .buildAndRegister() + .setFormula("(C6H5)2", true); + + PolychlorinatedBiphenyl = new Material.Builder("polychlorinated_biphenyl") + .fluid() + .color(0xCACC0E) + .flags(DISABLE_DECOMPOSITION) + .components(Carbon, 12, Hydrogen, 8, Chlorine, 2) + .buildAndRegister() + .setFormula("(C6H4Cl)2", true); } } diff --git a/common/src/main/java/com/gregtechceu/gtceu/common/data/materials/SecondDegreeMaterials.java b/common/src/main/java/com/gregtechceu/gtceu/common/data/materials/SecondDegreeMaterials.java index 5a94594cf4..393c5bac99 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/common/data/materials/SecondDegreeMaterials.java +++ b/common/src/main/java/com/gregtechceu/gtceu/common/data/materials/SecondDegreeMaterials.java @@ -37,7 +37,7 @@ public static void register() { Borax = new Material.Builder("borax") .dust(1) - .color(0xFAFAFA).iconSet(FINE) + .color(0xFAFAFA).secondaryColor(0xd7e7e7).iconSet(FINE) .components(Sodium, 2, Boron, 4, Water, 10, Oxygen, 7) .buildAndRegister(); @@ -82,7 +82,7 @@ public static void register() { .fluid(FluidStorageKeys.LIQUID, new FluidBuilder() .temperature(4000) .customStill()) - .color(0xFFC800, false).iconSet(FINE) + .color(0xfff94d, false).secondaryColor(0xff330c).iconSet(FINE) .flags(NO_SMELTING, MORTAR_GRINDABLE, DECOMPOSITION_BY_CENTRIFUGING) //todo burning flag .components(DarkAsh, 1, Sulfur, 1) .buildAndRegister(); @@ -98,7 +98,7 @@ public static void register() { BlackSteel = new Material.Builder("black_steel") .ingot().fluid() - .color(0x646464).iconSet(METALLIC) + .color(0x666666).secondaryColor(0x1a120e).iconSet(METALLIC) .appendFlags(EXT_METAL, GENERATE_FINE_WIRE, GENERATE_GEAR, GENERATE_FRAME) .components(Nickel, 1, BlackBronze, 1, Steel, 3) .cableProperties(GTValues.V[4], 3, 2) @@ -107,7 +107,7 @@ public static void register() { DamascusSteel = new Material.Builder("damascus_steel") .ingot(3).fluid() - .color(0x6E6E6E).iconSet(METALLIC) + .color(0x6E6E6E).secondaryColor(0x302222).iconSet(METALLIC) .appendFlags(EXT_METAL) .components(Steel, 1) .toolStats(ToolProperty.Builder.of(6.0F, 4.0F, 1024, 3) @@ -120,7 +120,7 @@ public static void register() { TungstenSteel = new Material.Builder("tungsten_steel") .ingot(4).fluid() - .color(0x6464A0).iconSet(METALLIC) + .color(0xadb8df).secondaryColor(0x03192f).iconSet(METALLIC) .appendFlags(EXT2_METAL, GENERATE_ROTOR, GENERATE_SMALL_GEAR, GENERATE_DENSE, GENERATE_FRAME, GENERATE_SPRING, GENERATE_FOIL, GENERATE_FINE_WIRE, GENERATE_GEAR) .components(Steel, 1, Tungsten, 1) .toolStats(ToolProperty.Builder.of(9.0F, 7.0F, 2048, 4) @@ -134,7 +134,7 @@ public static void register() { CobaltBrass = new Material.Builder("cobalt_brass") .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1202)) - .color(0xB4B4A0).iconSet(METALLIC) + .color(0xbbac82).secondaryColor(0x596338).iconSet(METALLIC) .appendFlags(EXT2_METAL, GENERATE_GEAR) .components(Brass, 7, Aluminium, 1, Cobalt, 1) .toolStats(ToolProperty.Builder.of(2.5F, 2.0F, 1024, 2) @@ -167,14 +167,14 @@ public static void register() { Marble = new Material.Builder("marble") .dust() - .color(0xC8C8C8).iconSet(ROUGH) + .color(0xf0f5f4).secondaryColor(0xb3b3b3).iconSet(ROUGH) .flags(NO_SMASHING, DECOMPOSITION_BY_CENTRIFUGING) .components(Magnesium, 1, Calcite, 7) .buildAndRegister(); Deepslate = new Material.Builder("deepslate") .dust() - .color(0x0A0A0A).iconSet(ROUGH) + .color(0x797979).secondaryColor(0x2f2f37).iconSet(ROUGH) .flags(NO_SMASHING, DECOMPOSITION_BY_CENTRIFUGING) .components(SiliconDioxide, 4, Biotite, 1) .buildAndRegister(); @@ -190,7 +190,7 @@ public static void register() { VanadiumMagnetite = new Material.Builder("vanadium_magnetite") .dust().ore() - .color(0x23233C).iconSet(METALLIC) + .color(0x8a94a2).secondaryColor(0x170322).iconSet(METALLIC) .flags(DECOMPOSITION_BY_CENTRIFUGING) .components(Magnetite, 1, Vanadium, 1) .buildAndRegister(); @@ -212,14 +212,14 @@ public static void register() { Bentonite = new Material.Builder("bentonite") .dust().ore(3, 1) - .color(0xF5D7D2).iconSet(ROUGH) + .color(0xede8a3).secondaryColor(0xcdb44c).iconSet(ROUGH) .flags(DISABLE_DECOMPOSITION) .components(Sodium, 1, Magnesium, 6, Silicon, 12, Hydrogen, 4, Water, 5, Oxygen, 36) .buildAndRegister(); FullersEarth = new Material.Builder("fullers_earth") .dust().ore(2, 1) - .color(0xA0A078).iconSet(FINE) + .color(0xf3efbb).secondaryColor(0xb8d066).iconSet(FINE) .components(Magnesium, 1, Silicon, 4, Hydrogen, 1, Water, 4, Oxygen, 11) .buildAndRegister(); @@ -246,7 +246,7 @@ public static void register() { Trona = new Material.Builder("trona") .dust(1).ore(2, 1) - .color(0x87875F).iconSet(METALLIC) + .color(0xe7e7b4).secondaryColor(0x87875F).iconSet(METALLIC) .flags(DISABLE_DECOMPOSITION) .components(Sodium, 3, Carbon, 2, Hydrogen, 1, Water, 2, Oxygen, 6) .buildAndRegister(); @@ -267,14 +267,14 @@ public static void register() { Concrete = new Material.Builder("concrete") .dust() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(286)) - .color(0x646464).iconSet(ROUGH) + .color(0xfaf3e8).secondaryColor(0xbbbaba).iconSet(ROUGH) .flags(NO_SMASHING, EXCLUDE_BLOCK_CRAFTING_BY_HAND_RECIPES) .components(Stone, 1) .buildAndRegister(); SteelMagnetic = new Material.Builder("magnetic_steel") .ingot() - .color(0x808080).iconSet(MAGNETIC) + .color(0xa7a7a7).secondaryColor(0x121c37).iconSet(MAGNETIC) .flags(GENERATE_ROD, IS_MAGNETIC) .components(Steel, 1) .ingotSmeltInto(Steel) @@ -286,7 +286,7 @@ public static void register() { VanadiumSteel = new Material.Builder("vanadium_steel") .ingot(3) .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(2073)) - .color(0xc0c0c0).iconSet(METALLIC) + .color(0xd4d1f1).secondaryColor(0x19140d).iconSet(METALLIC) .appendFlags(EXT2_METAL, GENERATE_FOIL, GENERATE_GEAR) .components(Vanadium, 1, Chromium, 1, Steel, 7) .toolStats(ToolProperty.Builder.of(3.0F, 3.0F, 1536, 3) @@ -299,7 +299,7 @@ public static void register() { Potin = new Material.Builder("potin") .ingot() .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1084)) - .color(0xc99781).iconSet(METALLIC) + .color(0xaaada3).secondaryColor(0x5e3320).iconSet(METALLIC) .appendFlags(EXT2_METAL, GENERATE_GEAR) .components(Copper, 6, Tin, 2, Lead, 1) .fluidPipeProperties(1456, 32, true) @@ -308,25 +308,21 @@ public static void register() { BorosilicateGlass = new Material.Builder("borosilicate_glass") .ingot(1) .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(1921)) - .color(0xE6F3E6).iconSet(SHINY) + .color(0xFAFAFA).secondaryColor(0xfaf5c0).iconSet(SHINY) .flags(GENERATE_FINE_WIRE, GENERATE_PLATE) .components(Boron, 1, SiliconDioxide, 7) .buildAndRegister(); Andesite = new Material.Builder("andesite") .dust() - .color(0xBEBEBE).iconSet(ROUGH) + .color(0xa8aa9a).iconSet(ROUGH) .flags(DECOMPOSITION_BY_CENTRIFUGING) .components(Asbestos, 4, Saltpeter, 1) .buildAndRegister(); - // FREE ID 2040 - - // FREE ID 2041 - NaquadahAlloy = new Material.Builder("naquadah_alloy") .ingot(5).fluid() - .color(0x282828).iconSet(METALLIC) + .color(0x323232).secondaryColor(0x301131).iconSet(METALLIC) .appendFlags(EXT2_METAL, GENERATE_SPRING, GENERATE_RING, GENERATE_ROTOR, GENERATE_SMALL_GEAR, GENERATE_FRAME, GENERATE_DENSE, GENERATE_FOIL, GENERATE_GEAR) .components(Naquadah, 2, Osmiridium, 1, Trinium, 1) .toolStats(ToolProperty.Builder.of(40.0F, 12.0F, 3072, 5) @@ -444,35 +440,35 @@ public static void register() { PalladiumRaw = new Material.Builder("palladium_raw") .dust() - .color(Palladium.getMaterialARGB()).iconSet(METALLIC) + .color(0x5d4e1a).secondaryColor(0x33352d).iconSet(METALLIC) .flags(DISABLE_DECOMPOSITION) .components(Palladium, 1, Ammonia, 1) .buildAndRegister(); RarestMetalMixture = new Material.Builder("rarest_metal_mixture") .dust() - .color(0x832E11).iconSet(SHINY) + .color(0xca8832).secondaryColor(0xb21900).iconSet(SHINY) .flags(DISABLE_DECOMPOSITION) .components(Iridium, 1, Osmium, 1, Oxygen, 4, Water, 1) .buildAndRegister(); AmmoniumChloride = new Material.Builder("ammonium_chloride") .dust() - .color(0x9711A6) + .color(0x60a1c5).secondaryColor(0x48619c) .components(Ammonia, 1, HydrochloricAcid, 1) .buildAndRegister() .setFormula("NH4Cl", true); AcidicOsmiumSolution = new Material.Builder("acidic_osmium_solution") .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().attribute(FluidAttributes.ACID)) - .color(0xA3AA8A) + .color(0xDAC5C5) .flags(DISABLE_DECOMPOSITION) .components(Osmium, 1, Oxygen, 4, Water, 1, HydrochloricAcid, 1) .buildAndRegister(); RhodiumPlatedPalladium = new Material.Builder("rhodium_plated_palladium") .ingot().fluid() - .color(0xDAC5C5).iconSet(SHINY) + .color(0xd1d1d1).secondaryColor(0x000000).iconSet(SHINY) .appendFlags(EXT2_METAL, GENERATE_ROTOR, GENERATE_DENSE, GENERATE_SMALL_GEAR) .components(Palladium, 3, Rhodium, 1) .rotorStats(12.0f, 3.0f, 1024) @@ -481,7 +477,7 @@ public static void register() { Clay = new Material.Builder("clay") .dust(1) - .color(0xC8C8DC).iconSet(ROUGH) + .color(0xbec9e8).secondaryColor(0x373944).iconSet(ROUGH) .flags(MORTAR_GRINDABLE, EXCLUDE_BLOCK_CRAFTING_BY_HAND_RECIPES) .components(Sodium, 2, Lithium, 1, Aluminium, 2, Silicon, 2, Water, 6) .buildAndRegister(); @@ -489,7 +485,7 @@ public static void register() { Redstone = new Material.Builder("redstone") .dust().ore(5, 1, true) .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(500)) - .color(0xC80000).iconSet(ROUGH) + .color(0xff0000).secondaryColor(0x340605).iconSet(ROUGH) .flags(GENERATE_PLATE, NO_SMASHING, NO_SMELTING, EXCLUDE_BLOCK_CRAFTING_BY_HAND_RECIPES, EXCLUDE_PLATE_COMPRESSOR_RECIPE, DECOMPOSITION_BY_CENTRIFUGING) .components(Silicon, 1, Pyrite, 5, Ruby, 1, Mercury, 3) diff --git a/common/src/main/java/com/gregtechceu/gtceu/common/data/materials/UnknownCompositionMaterials.java b/common/src/main/java/com/gregtechceu/gtceu/common/data/materials/UnknownCompositionMaterials.java index b10b4c8162..41db08f40d 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/common/data/materials/UnknownCompositionMaterials.java +++ b/common/src/main/java/com/gregtechceu/gtceu/common/data/materials/UnknownCompositionMaterials.java @@ -16,13 +16,18 @@ public class UnknownCompositionMaterials { public static void register() { WoodGas = new Material.Builder("wood_gas") - .gas().color(0xDECD87).buildAndRegister(); + .gas() + .color(0xDECD87).secondaryColor(0xdeb287) + .buildAndRegister(); WoodVinegar = new Material.Builder("wood_vinegar") - .fluid().color(0xD45500).buildAndRegister(); + .fluid() + .color(0xD45500).secondaryColor(0x905800) + .buildAndRegister(); WoodTar = new Material.Builder("wood_tar") - .fluid().color(0x28170B) + .fluid() + .color(0x3a271a).secondaryColor(0x28170B) .flags(STICKY, FLAMMABLE).buildAndRegister(); CharcoalByproducts = new Material.Builder("charcoal_byproducts") @@ -331,7 +336,7 @@ public static void register() { Gunpowder = new Material.Builder("gunpowder") .dust(0) - .color(0x808080).iconSet(ROUGH) + .color(0xa4a4a4).secondaryColor(0x767676).iconSet(ROUGH) .flags(FLAMMABLE, EXPLOSIVE, NO_SMELTING, NO_SMASHING) .buildAndRegister(); @@ -343,12 +348,12 @@ public static void register() { RareEarth = new Material.Builder("rare_earth") .dust(0) - .color(0x808064).iconSet(FINE) + .color(0xffdc88).secondaryColor(0xe99673).iconSet(FINE) .buildAndRegister(); Stone = new Material.Builder("stone") .dust(2) - .color(0xCDCDCD).iconSet(ROUGH) + .color(0x8f8f8f).secondaryColor(0x898989).iconSet(ROUGH) .flags(MORTAR_GRINDABLE, GENERATE_GEAR, NO_SMASHING, NO_SMELTING) .buildAndRegister(); @@ -358,7 +363,7 @@ public static void register() { Glowstone = new Material.Builder("glowstone") .dust(1) .fluid(FluidStorageKeys.LIQUID, new FluidBuilder().temperature(500)) - .color(0xFFFF00).iconSet(SHINY) + .color(0xfcb34c).secondaryColor(0xce7533).iconSet(SHINY) .flags(NO_SMASHING, GENERATE_PLATE, EXCLUDE_PLATE_COMPRESSOR_RECIPE, EXCLUDE_BLOCK_CRAFTING_BY_HAND_RECIPES) .buildAndRegister(); @@ -388,34 +393,34 @@ public static void register() { Collagen = new Material.Builder("collagen") .dust(1) - .color(0x80471C).iconSet(ROUGH) + .color(0xffadb7).secondaryColor(0x80471C).iconSet(ROUGH) .buildAndRegister(); Gelatin = new Material.Builder("gelatin") .dust(1) - .color(0x588BAE).iconSet(ROUGH) + .color(0xfaf7cb).secondaryColor(0x693d00).iconSet(ROUGH) .buildAndRegister(); Agar = new Material.Builder("agar") .dust(1) - .color(0x4F7942).iconSet(ROUGH) + .color(0xbdd168).secondaryColor(0x403218).iconSet(ROUGH) .buildAndRegister(); Milk = new Material.Builder("milk") .fluid(FluidStorageKeys.LIQUID, new FluidBuilder() .temperature(295) .customStill()) - .color(0xFEFEFE).iconSet(FINE) + .color(0xfffbf0).secondaryColor(0xf6eac8).iconSet(FINE) .buildAndRegister(); Cocoa = new Material.Builder("cocoa") .dust(0) - .color(0x643200).iconSet(FINE) + .color(0x976746).secondaryColor(0x301a0a).iconSet(FINE) .buildAndRegister(); Wheat = new Material.Builder("wheat") .dust(0) - .color(0xFFFFC4).iconSet(FINE) + .color(0xdcbb65).secondaryColor(0x565138).iconSet(FINE) .buildAndRegister(); Meat = new Material.Builder("meat") @@ -425,7 +430,7 @@ public static void register() { Wood = new Material.Builder("wood") .wood() - .color(0x643200).iconSet(WOOD) + .color(0xfcfcf2).secondaryColor(0x643200).iconSet(WOOD) .fluidPipeProperties(340, 5, false) .toolStats(ToolProperty.Builder.of(1.0F, 1.0F, 128, 1, GTToolType.SOFT_MALLET).build()) .flags(GENERATE_PLATE, GENERATE_ROD, GENERATE_BOLT_SCREW, GENERATE_LONG_ROD, FLAMMABLE, GENERATE_GEAR, GENERATE_FRAME) @@ -433,7 +438,7 @@ public static void register() { Paper = new Material.Builder("paper") .dust(0) - .color(0xFAFAFA).iconSet(FINE) + .color(0xFAFAFA).secondaryColor(0x878787).iconSet(FINE) .flags(GENERATE_PLATE, FLAMMABLE, NO_SMELTING, NO_SMASHING, MORTAR_GRINDABLE, EXCLUDE_PLATE_COMPRESSOR_RECIPE) .buildAndRegister(); @@ -536,7 +541,7 @@ public static void register() { TreatedWood = new Material.Builder("treated_wood") .wood() - .color(0x502800).iconSet(WOOD) + .color(0x644218).secondaryColor(0x4e0b00).iconSet(WOOD) .fluidPipeProperties(340, 10, false) .flags(GENERATE_PLATE, FLAMMABLE, GENERATE_ROD, GENERATE_FRAME) .buildAndRegister(); @@ -546,5 +551,8 @@ public static void register() { .temperature(300) .customStill()) .buildAndRegister(); + + PCBCoolant = new Material.Builder("pcb_coolant") + .fluid().color(0xD5D69C).buildAndRegister(); } } diff --git a/common/src/main/java/com/gregtechceu/gtceu/common/machine/multiblock/electric/CleanroomMachine.java b/common/src/main/java/com/gregtechceu/gtceu/common/machine/multiblock/electric/CleanroomMachine.java index 6a5d8bfd20..0c8dc42ea8 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/common/machine/multiblock/electric/CleanroomMachine.java +++ b/common/src/main/java/com/gregtechceu/gtceu/common/machine/multiblock/electric/CleanroomMachine.java @@ -7,6 +7,7 @@ import com.gregtechceu.gtceu.api.capability.GTCapabilityHelper; import com.gregtechceu.gtceu.api.capability.ICleanroomReceiver; import com.gregtechceu.gtceu.api.capability.IEnergyContainer; +import com.gregtechceu.gtceu.common.machine.multiblock.part.DiodePartMachine; import com.gregtechceu.gtceu.common.machine.trait.CleanroomLogic; import com.gregtechceu.gtceu.api.capability.recipe.EURecipeCapability; import com.gregtechceu.gtceu.api.capability.recipe.IO; @@ -157,6 +158,7 @@ protected void initializeAbilities() { List energyContainers = new ArrayList<>(); Map ioMap = getMultiblockState().getMatchContext().getOrCreate("ioMap", Long2ObjectMaps::emptyMap); for (IMultiPart part : getParts()) { + if (part instanceof DiodePartMachine) continue; IO io = ioMap.getOrDefault(part.self().getPos().asLong(), IO.BOTH); if(io == IO.NONE || io == IO.OUT) continue; for (var handler : part.getRecipeHandlers()) { diff --git a/common/src/main/java/com/gregtechceu/gtceu/common/machine/multiblock/steam/LargeBoilerMachine.java b/common/src/main/java/com/gregtechceu/gtceu/common/machine/multiblock/steam/LargeBoilerMachine.java index 3bb985b502..0da3d31e64 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/common/machine/multiblock/steam/LargeBoilerMachine.java +++ b/common/src/main/java/com/gregtechceu/gtceu/common/machine/multiblock/steam/LargeBoilerMachine.java @@ -14,7 +14,6 @@ import com.gregtechceu.gtceu.api.recipe.GTRecipe; import com.gregtechceu.gtceu.api.recipe.ingredient.FluidIngredient; import com.gregtechceu.gtceu.common.data.GTMaterials; -import com.gregtechceu.gtceu.data.recipe.CustomTags; import com.lowdragmc.lowdraglib.gui.texture.IGuiTexture; import com.lowdragmc.lowdraglib.gui.util.ClickData; import com.lowdragmc.lowdraglib.gui.widget.ComponentPanelWidget; @@ -191,7 +190,7 @@ public static GTRecipe recipeModifier(MetaMachine machine, @Nonnull GTRecipe rec public void addDisplayText(List textList) { IDisplayUIMachine.super.addDisplayText(textList); if (isFormed()){ - textList.add(Component.translatable("gtceu.multiblock.large_boiler.temperature", (int) (currentTemperature * 274.15), (int) (maxTemperature * 274.15))); + textList.add(Component.translatable("gtceu.multiblock.large_boiler.temperature", (int) (currentTemperature + 274.15), (int) (maxTemperature + 274.15))); textList.add(Component.translatable("gtceu.multiblock.large_boiler.steam_output", currentTemperature)); var throttleText = Component.translatable("gtceu.multiblock.large_boiler.throttle", diff --git a/common/src/main/java/com/gregtechceu/gtceu/common/machine/storage/QuantumChestMachine.java b/common/src/main/java/com/gregtechceu/gtceu/common/machine/storage/QuantumChestMachine.java index b3207d6ae5..8a2475314e 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/common/machine/storage/QuantumChestMachine.java +++ b/common/src/main/java/com/gregtechceu/gtceu/common/machine/storage/QuantumChestMachine.java @@ -9,7 +9,10 @@ import com.gregtechceu.gtceu.api.machine.MetaMachine; import com.gregtechceu.gtceu.api.machine.TickableSubscription; import com.gregtechceu.gtceu.api.machine.TieredMachine; -import com.gregtechceu.gtceu.api.machine.feature.*; +import com.gregtechceu.gtceu.api.machine.feature.IAutoOutputItem; +import com.gregtechceu.gtceu.api.machine.feature.IDropSaveMachine; +import com.gregtechceu.gtceu.api.machine.feature.IFancyUIMachine; +import com.gregtechceu.gtceu.api.machine.feature.IInteractedMachine; import com.gregtechceu.gtceu.api.machine.trait.NotifiableItemStackHandler; import com.gregtechceu.gtceu.api.syncdata.RequireRerender; import com.lowdragmc.lowdraglib.gui.editor.Icons; @@ -74,7 +77,7 @@ public class QuantumChestMachine extends TieredMachine implements IAutoOutputIte protected ISubscription exportItemSubs; @Persisted @Getter @Setter private boolean isVoiding; - @Persisted @Getter + @Persisted @DescSynced @Getter private final ItemStackTransfer lockedItem; public QuantumChestMachine(IMachineBlockEntity holder, int tier, int maxStoredItems, Object... args) { diff --git a/common/src/main/java/com/gregtechceu/gtceu/common/machine/storage/QuantumTankMachine.java b/common/src/main/java/com/gregtechceu/gtceu/common/machine/storage/QuantumTankMachine.java index 112348955c..23b3205f6a 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/common/machine/storage/QuantumTankMachine.java +++ b/common/src/main/java/com/gregtechceu/gtceu/common/machine/storage/QuantumTankMachine.java @@ -74,7 +74,7 @@ public class QuantumTankMachine extends TieredMachine implements IAutoOutputFlui protected FluidStack stored = FluidStack.empty(); @Persisted @Getter @Setter private boolean isVoiding; - @Persisted @Getter + @Persisted @DescSynced @Getter private final FluidStorage lockedFluid; public QuantumTankMachine(IMachineBlockEntity holder, int tier, long maxStoredFluids, Object... args) { diff --git a/common/src/main/java/com/gregtechceu/gtceu/common/pipelike/cable/Insulation.java b/common/src/main/java/com/gregtechceu/gtceu/common/pipelike/cable/Insulation.java index 4e770f14e3..cf3471e587 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/common/pipelike/cable/Insulation.java +++ b/common/src/main/java/com/gregtechceu/gtceu/common/pipelike/cable/Insulation.java @@ -9,6 +9,7 @@ import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import lombok.Getter; import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.Nullable; import java.util.function.Supplier; @@ -78,8 +79,11 @@ public ResourceLocation type() { } public PipeModel createPipeModel(Material material) { - Supplier wireTexturePath = () -> MaterialIconType.wire.getBlockTexturePath(material.getMaterialIconSet(), true); - PipeModel model = new PipeModel(thickness, isCable ? () -> GTCEu.id("block/cable/insulation_5") : wireTexturePath, wireTexturePath); + Supplier wireSideTexturePath = () -> MaterialIconType.wire.getBlockTexturePath(material.getMaterialIconSet(), true).withSuffix("_side"); + Supplier wireEndTexturePath = () -> MaterialIconType.wire.getBlockTexturePath(material.getMaterialIconSet(), true).withSuffix("_end"); + Supplier<@Nullable ResourceLocation> wireSideOverlayTexturePath = () -> MaterialIconType.wire.getBlockTexturePath(material.getMaterialIconSet(), "side_overlay", true); + Supplier<@Nullable ResourceLocation> wireEndOverlayTexturePath = () -> MaterialIconType.wire.getBlockTexturePath(material.getMaterialIconSet(), "end_overlay", true); + PipeModel model = new PipeModel(thickness, isCable ? () -> GTCEu.id("block/cable/insulation_5") : wireSideTexturePath, wireEndTexturePath, wireSideOverlayTexturePath, wireEndOverlayTexturePath); if (isCable) { model.setEndOverlayTexture(GTCEu.id("block/cable/insulation_%s".formatted(insulationLevel))); } diff --git a/common/src/main/java/com/gregtechceu/gtceu/common/pipelike/fluidpipe/FluidPipeNet.java b/common/src/main/java/com/gregtechceu/gtceu/common/pipelike/fluidpipe/FluidPipeNet.java index 2934e9e640..5823f41fed 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/common/pipelike/fluidpipe/FluidPipeNet.java +++ b/common/src/main/java/com/gregtechceu/gtceu/common/pipelike/fluidpipe/FluidPipeNet.java @@ -1,6 +1,7 @@ package com.gregtechceu.gtceu.common.pipelike.fluidpipe; import com.gregtechceu.gtceu.api.data.chemical.material.properties.FluidPipeProperties; +import com.gregtechceu.gtceu.api.misc.RateCounter; import com.lowdragmc.lowdraglib.pipelike.LevelPipeNet; import com.lowdragmc.lowdraglib.pipelike.PipeNet; import it.unimi.dsi.fastutil.longs.Long2ObjectMap; @@ -8,11 +9,9 @@ import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.material.Fluid; -import org.apache.commons.lang3.mutable.MutableLong; import org.jetbrains.annotations.NotNull; import java.util.*; -import java.util.function.Consumer; import java.util.stream.Stream; /** @@ -25,7 +24,7 @@ public class FluidPipeNet extends PipeNet { private final Map> NET_DATA = new HashMap<>(); private final Long2ObjectMap channelFluidsByBlock = new Long2ObjectOpenHashMap<>(); - private final Long2ObjectMap throughputUsagesByBlock = new Long2ObjectOpenHashMap<>(); + private final Long2ObjectMap throughputsCountersByBlock = new Long2ObjectOpenHashMap<>(); private long lastUpdate; public FluidPipeNet(LevelPipeNet world) { @@ -38,7 +37,7 @@ public List getNetData(BlockPos pipePos) { if (data == null) { data = FluidPipeNetWalker.createNetData(this, pipePos); if (data == null) { - // walker failed, don't cache so it tries again on next insertion + // walker failed. don't cache, so it tries again on next insertion return Collections.emptyList(); } data.sort(Comparator.comparingInt(PipeNetRoutePath::getDistance)); @@ -67,13 +66,7 @@ public void onPipeConnectionsUpdate() { * @return The throughput over the last second */ public long getLastSecondTotalThroughput(BlockPos blockPos, int channel) { - MutableLong totalAmount = new MutableLong(0L); - - withLastSecondUsages(blockPos.asLong(), (used) -> { - totalAmount.add(used.channelAmounts[channel]); - }); - - return totalAmount.longValue(); + return getThroughputCounters(blockPos.asLong())[channel].getUsedSum(); } /** @@ -121,7 +114,7 @@ public int useChannel(BlockPos pos, Fluid fluid) { */ public void useThroughput(BlockPos pos, int channel, long amount) { updateTick(); - getCurrentTickUsage(pos.asLong()).channelAmounts[channel] += amount; + getThroughputCounters(pos.asLong())[channel].addUsed(amount); } public Fluid getFluid(BlockPos pos, int channel) { @@ -145,71 +138,23 @@ private void updateTick() { } - private static class ThroughputUsage { - public long tick = 0L; - public long[] channelAmounts = new long[FluidPipeProperties.MAX_PIPE_CHANNELS]; - - public ThroughputUsage() { - resetAmounts(); - } - - public ThroughputUsage(ThroughputUsage value) { - this.tick = value.tick; - this.channelAmounts = Arrays.copyOf(value.channelAmounts, value.channelAmounts.length); - } - - public void resetAmounts() { - Arrays.fill(channelAmounts, 0L); - } - } - @NotNull - private ThroughputUsage[] getThroughputUsages(long blockPos) { - return throughputUsagesByBlock.computeIfAbsent(blockPos, bp -> - Stream.generate(ThroughputUsage::new).limit(20).toArray(ThroughputUsage[]::new) + private RateCounter[] getThroughputCounters(long blockPos) { + return throughputsCountersByBlock.computeIfAbsent(blockPos, bp -> + Stream.generate(() -> new RateCounter(() -> getLevel().getGameTime(), 20)) + .limit(FluidPipeProperties.MAX_PIPE_CHANNELS) + .toArray(RateCounter[]::new) ); } - private ThroughputUsage getCurrentTickUsage(long blockPos) { - var currentTick = getLevel().getGameTime(); - var lastSecondThroughputs = getThroughputUsages(blockPos); - var currentThroughput = lastSecondThroughputs[(int) (currentTick % 20)]; - - if (currentThroughput.tick != currentTick) { - currentThroughput.tick = currentTick; - currentThroughput.resetAmounts(); - } - - return currentThroughput; - } - - private void withLastSecondUsages(long blockPos, Consumer consumer) { - var minTick = getLevel().getGameTime() - 19; - var lastSecondThroughputs = getThroughputUsages(blockPos); - - for (int i = 0; i < 20; i++) { - ThroughputUsage throughputUsage = lastSecondThroughputs[i]; - if (throughputUsage.tick < minTick) - continue; - - consumer.accept(throughputUsage); - } - } - private Fluid[] getChannelFluids(long blockPos) { return channelFluidsByBlock.computeIfAbsent(blockPos, bp -> new Fluid[FluidPipeProperties.MAX_PIPE_CHANNELS]); } private long[] getLastSecondTotalUsagePerChannel(long blockPos) { - var totalAmounts = new long[FluidPipeProperties.MAX_PIPE_CHANNELS]; - - withLastSecondUsages(blockPos, (used) -> { - for (int channel = 0; channel < FluidPipeProperties.MAX_PIPE_CHANNELS; channel++) { - totalAmounts[channel] += used.channelAmounts[channel]; - } - }); - - return totalAmounts; + return Arrays.stream(getThroughputCounters(blockPos)) + .mapToLong(RateCounter::getUsedSum) + .toArray(); } private int findBestFreeChannel(long pos) { @@ -261,27 +206,27 @@ protected FluidPipeData readNodeData(CompoundTag tagCompound) { } - public record Snapshot(Long2ObjectMap channelFluids, Long2ObjectMap throughputUsage) { + public record Snapshot(Long2ObjectMap channelFluids, Long2ObjectMap throughputCounters) { } public Snapshot createSnapshot() { Long2ObjectMap channelUsedCopied = new Long2ObjectOpenHashMap<>(); channelFluidsByBlock.forEach((k, v) -> channelUsedCopied.put(k.longValue(), Arrays.copyOf(v, v.length))); - Long2ObjectOpenHashMap throughputUsedCopied = new Long2ObjectOpenHashMap<>(); - throughputUsagesByBlock.forEach((k, v) -> throughputUsedCopied.put(k.longValue(), Arrays.stream(v) - .map(ThroughputUsage::new) - .toArray(ThroughputUsage[]::new) + Long2ObjectOpenHashMap throughputCountersCopied = new Long2ObjectOpenHashMap<>(); + throughputsCountersByBlock.forEach((k, v) -> throughputCountersCopied.put(k.longValue(), Arrays.stream(v) + .map(RateCounter::copy) + .toArray(RateCounter[]::new) )); - return new Snapshot(channelUsedCopied, throughputUsedCopied); + return new Snapshot(channelUsedCopied, throughputCountersCopied); } public void resetData(Snapshot snapshot) { channelFluidsByBlock.clear(); channelFluidsByBlock.putAll(snapshot.channelFluids); - throughputUsagesByBlock.clear(); - throughputUsagesByBlock.putAll(snapshot.throughputUsage); + throughputsCountersByBlock.clear(); + throughputsCountersByBlock.putAll(snapshot.throughputCounters); } } diff --git a/common/src/main/java/com/gregtechceu/gtceu/common/pipelike/fluidpipe/FluidPipeType.java b/common/src/main/java/com/gregtechceu/gtceu/common/pipelike/fluidpipe/FluidPipeType.java index 150a573524..112acd1aa6 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/common/pipelike/fluidpipe/FluidPipeType.java +++ b/common/src/main/java/com/gregtechceu/gtceu/common/pipelike/fluidpipe/FluidPipeType.java @@ -74,8 +74,9 @@ public ResourceLocation type() { public PipeModel createPipeModel(Material material) { if (material.hasProperty(PropertyKey.WOOD)) { - return new PipeModel(thickness, () -> GTCEu.id("block/pipe/pipe_side_wood"), () -> GTCEu.id("block/pipe/pipe_%s_in_wood".formatted(name))); + return new PipeModel(thickness, () -> GTCEu.id("block/pipe/pipe_side_wood"), () -> GTCEu.id("block/pipe/pipe_%s_in_wood".formatted(name)), null, null); } - return new PipeModel(thickness, () -> GTCEu.id("block/pipe/pipe_side"), () -> GTCEu.id("block/pipe/pipe_%s_in".formatted(name))); + return new PipeModel(thickness, () -> GTCEu.id("block/pipe/pipe_side"), () -> GTCEu.id("block/pipe/pipe_%s_in".formatted(name)), + null, null/*() -> GTCEu.id("block/pipe/pipe_side_secondary"), () -> GTCEu.id("block/pipe/pipe_%s_in_secondary".formatted(name)) TODO enable once the textures are added*/); } } diff --git a/common/src/main/java/com/gregtechceu/gtceu/common/pipelike/item/ItemNetHandler.java b/common/src/main/java/com/gregtechceu/gtceu/common/pipelike/item/ItemNetHandler.java index 1f596f31f3..b2ca4d4d9e 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/common/pipelike/item/ItemNetHandler.java +++ b/common/src/main/java/com/gregtechceu/gtceu/common/pipelike/item/ItemNetHandler.java @@ -4,6 +4,7 @@ import com.gregtechceu.gtceu.api.capability.ICoverable; import com.gregtechceu.gtceu.api.capability.recipe.IO; import com.gregtechceu.gtceu.api.cover.CoverBehavior; +import com.gregtechceu.gtceu.api.misc.RateCounter; import com.gregtechceu.gtceu.common.blockentity.ItemPipeBlockEntity; import com.gregtechceu.gtceu.common.cover.ConveyorCover; import com.gregtechceu.gtceu.common.cover.ItemFilterCover; @@ -34,7 +35,10 @@ public class ItemNetHandler implements IItemTransfer { private final Level world; private final Direction facing; private final Map simulatedTransfersGlobalRoundRobin = new HashMap<>(); - private int simulatedTransfers = 0; + + private final RateCounter simulatedCounter = new RateCounter(this::getLevelTime, 20); + private final RateCounter transferredCounter = new RateCounter(this::getLevelTime, 20); + private final ItemStackTransfer testHandler = new ItemStackTransfer(1); public ItemNetHandler(ItemPipeNet net, ItemPipeBlockEntity pipe, Direction facing) { @@ -44,12 +48,18 @@ public ItemNetHandler(ItemPipeNet net, ItemPipeBlockEntity pipe, Direction facin this.world = pipe.getPipeLevel(); } + private long getLevelTime() { + return net.getLevel().getGameTime(); + } + public void updateNetwork(ItemPipeNet net) { this.net = net; } private void copyTransferred() { - simulatedTransfers = pipe.getTransferredItems(); + simulatedCounter.clear(); + simulatedCounter.addUsed(transferredCounter.getUsedSum()); + simulatedTransfersGlobalRoundRobin.clear(); simulatedTransfersGlobalRoundRobin.putAll(pipe.getTransferred()); } @@ -390,17 +400,15 @@ public static int countStack(IItemTransfer handler, ItemStack stack, RobotArmCov private int checkTransferable(float rate, int amount, boolean simulate) { int max = (int) ((rate * 64) + 0.5); - if (simulate) - return Math.max(0, Math.min(max - simulatedTransfers, amount)); - else - return Math.max(0, Math.min(max - pipe.getTransferredItems(), amount)); + RateCounter rateCounter = simulate ? simulatedCounter : transferredCounter; + + return Math.max(0, Math.min(max - (int) rateCounter.getUsedSum(), amount)); } private void transfer(boolean simulate, int amount) { - if (simulate) - simulatedTransfers += amount; - else - pipe.transferItems(amount); + RateCounter rateCounter = simulate ? simulatedCounter : transferredCounter; + + rateCounter.addUsed(amount); } @Override diff --git a/common/src/main/java/com/gregtechceu/gtceu/common/pipelike/item/ItemPipeType.java b/common/src/main/java/com/gregtechceu/gtceu/common/pipelike/item/ItemPipeType.java index 4c4f1717ba..b4a8e98207 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/common/pipelike/item/ItemPipeType.java +++ b/common/src/main/java/com/gregtechceu/gtceu/common/pipelike/item/ItemPipeType.java @@ -73,9 +73,10 @@ public ResourceLocation type() { public PipeModel createPipeModel(Material material) { PipeModel model; if (material.hasProperty(PropertyKey.WOOD)) { - model = new PipeModel(thickness, () -> GTCEu.id("block/pipe/pipe_side_wood"), () -> GTCEu.id("block/pipe/pipe_%s_in_wood".formatted(this.isRestrictive() ? values()[this.ordinal() - 4].name : name))); + model = new PipeModel(thickness, () -> GTCEu.id("block/pipe/pipe_side_wood"), () -> GTCEu.id("block/pipe/pipe_%s_in_wood".formatted(this.isRestrictive() ? values()[this.ordinal() - 4].name : name)), null, null); } else { - model = new PipeModel(thickness, () -> GTCEu.id("block/pipe/pipe_side"), () -> GTCEu.id("block/pipe/pipe_%s_in".formatted(this.isRestrictive() ? values()[this.ordinal() - 4].name : name))); + model = new PipeModel(thickness, () -> GTCEu.id("block/pipe/pipe_side"), () -> GTCEu.id("block/pipe/pipe_%s_in".formatted(this.isRestrictive() ? values()[this.ordinal() - 4].name : name)), + null, null/*() -> GTCEu.id("block/pipe/pipe_side_secondary"), () -> GTCEu.id("block/pipe/pipe_%s_in_secondary".formatted(this.isRestrictive() ? values()[this.ordinal() - 4].name : name)) TODO enable once the textures are added*/); } if (isRestrictive()) { model.setSideOverlayTexture(GTCEu.id("block/pipe/pipe_restrictive")); diff --git a/common/src/main/java/com/gregtechceu/gtceu/common/pipelike/laser/LaserPipeType.java b/common/src/main/java/com/gregtechceu/gtceu/common/pipelike/laser/LaserPipeType.java index b41fdab78f..a13604b1f7 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/common/pipelike/laser/LaserPipeType.java +++ b/common/src/main/java/com/gregtechceu/gtceu/common/pipelike/laser/LaserPipeType.java @@ -3,8 +3,11 @@ import com.gregtechceu.gtceu.GTCEu; import com.gregtechceu.gtceu.api.pipenet.IPipeType; import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.StringRepresentable; -public enum LaserPipeType implements IPipeType { +import java.util.Locale; + +public enum LaserPipeType implements IPipeType, StringRepresentable { NORMAL; public static final ResourceLocation TYPE_ID = GTCEu.id("laser"); @@ -28,4 +31,9 @@ public boolean isPaintable() { public ResourceLocation type() { return TYPE_ID; } + + @Override + public String getSerializedName() { + return name().toLowerCase(Locale.ROOT); + } } diff --git a/common/src/main/java/com/gregtechceu/gtceu/config/ConfigHolder.java b/common/src/main/java/com/gregtechceu/gtceu/config/ConfigHolder.java index 2ce69bb251..91b02e99ba 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/config/ConfigHolder.java +++ b/common/src/main/java/com/gregtechceu/gtceu/config/ConfigHolder.java @@ -301,5 +301,8 @@ public static class DeveloperConfigs { @Configurable @Configurable.Comment({"Dump all registered GT recipes?", "Default: false"}) public boolean dumpRecipes = false; + @Configurable + @Configurable.Comment({"Dump all registered GT models/blockstates/etc?", "Default: false"}) + public boolean dumpAssets = false; } } diff --git a/common/src/main/java/com/gregtechceu/gtceu/core/MixinHelpers.java b/common/src/main/java/com/gregtechceu/gtceu/core/MixinHelpers.java index 1631f88406..e4c827eb01 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/core/MixinHelpers.java +++ b/common/src/main/java/com/gregtechceu/gtceu/core/MixinHelpers.java @@ -10,10 +10,15 @@ import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.api.fluids.store.FluidStorage; +import com.gregtechceu.gtceu.client.renderer.block.MaterialBlockRenderer; +import com.gregtechceu.gtceu.client.renderer.item.TagPrefixItemRenderer; +import com.gregtechceu.gtceu.client.renderer.item.ToolItemRenderer; +import com.gregtechceu.gtceu.common.data.GTModels; import com.gregtechceu.gtceu.common.data.GTRecipes; import com.gregtechceu.gtceu.config.ConfigHolder; import com.gregtechceu.gtceu.core.mixins.BlockBehaviourAccessor; import com.gregtechceu.gtceu.data.pack.GTDynamicDataPack; +import com.gregtechceu.gtceu.data.pack.GTDynamicResourcePack; import com.gregtechceu.gtceu.data.recipe.CustomTags; import com.tterrag.registrate.util.entry.BlockEntry; import dev.architectury.injectables.annotations.ExpectPlatform; @@ -28,10 +33,9 @@ import net.minecraft.world.level.storage.loot.LootTable; import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.function.Consumer; +import java.util.function.Supplier; import java.util.stream.Collectors; public class MixinHelpers { @@ -78,7 +82,7 @@ public static void addFluidTexture(Material material, FluidStorage.FluidEntry va throw new AssertionError(); } - public static List addDynamicData(Collection packs) { + public static List addDynamicDataPack(Collection packs) { List packResources = new ArrayList<>(packs); // Clear old data GTDynamicDataPack.clearServer(); @@ -93,4 +97,28 @@ public static List addDynamicData(Collection packs packResources.add(new GTDynamicDataPack("gtceu:dynamic_data", AddonFinder.getAddons().stream().map(IGTAddon::addonModId).collect(Collectors.toSet()))); return packResources; } + + public static List addDynamicResourcePack(Collection packs) { + List packResources = new ArrayList<>(packs); + // Clear old data + GTDynamicResourcePack.clearClient(); + + // Register recipes & unification data again + long startTime = System.currentTimeMillis(); + MaterialBlockRenderer.reinitModels(); + TagPrefixItemRenderer.reinitModels(); + ToolItemRenderer.reinitModels(); + GTModels.registerMaterialFluidModels(); + GTCEu.LOGGER.info("GregTech Model loading took {}ms", System.currentTimeMillis() - startTime); + + // Load the data + packResources.add(new GTDynamicResourcePack("gtceu:dynamic_assets", AddonFinder.getAddons().stream().map(IGTAddon::addonModId).collect(Collectors.toSet()))); + return packResources; + } + + // unused on purpose. Do not call, will destroy ram usage. + public static void initializeDynamicTextures() { + //MaterialBlockRenderer.initTextures(); + //TagPrefixItemRenderer.initTextures(); + } } diff --git a/common/src/main/java/com/gregtechceu/gtceu/core/mixins/MinecraftMixin.java b/common/src/main/java/com/gregtechceu/gtceu/core/mixins/MinecraftMixin.java new file mode 100644 index 0000000000..6cd79e3f9c --- /dev/null +++ b/common/src/main/java/com/gregtechceu/gtceu/core/mixins/MinecraftMixin.java @@ -0,0 +1,22 @@ +package com.gregtechceu.gtceu.core.mixins; + +import com.gregtechceu.gtceu.core.MixinHelpers; +import com.llamalad7.mixinextras.injector.ModifyExpressionValue; +import net.minecraft.client.Minecraft; +import net.minecraft.server.packs.PackResources; +import net.minecraft.server.packs.resources.ReloadInstance; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; + +import java.util.List; + +@Mixin(Minecraft.class) +public class MinecraftMixin { + @ModifyExpressionValue( + method = {"reloadResourcePacks(Z)Ljava/util/concurrent/CompletableFuture;", ""}, + at = @At(value = "INVOKE", target = "Lnet/minecraft/server/packs/repository/PackRepository;openAllSelected()Ljava/util/List;") + ) + private List gtceu$loadPacks(List resources) { + return MixinHelpers.addDynamicResourcePack(resources); + } +} diff --git a/common/src/main/java/com/gregtechceu/gtceu/core/mixins/MinecraftServerMixin.java b/common/src/main/java/com/gregtechceu/gtceu/core/mixins/MinecraftServerMixin.java index 8d6a9b12d7..a2239d6fdd 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/core/mixins/MinecraftServerMixin.java +++ b/common/src/main/java/com/gregtechceu/gtceu/core/mixins/MinecraftServerMixin.java @@ -14,6 +14,6 @@ public class MinecraftServerMixin { @ModifyArg(method = "*", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/packs/resources/MultiPackResourceManager;(Lnet/minecraft/server/packs/PackType;Ljava/util/List;)V"), index = 1) public List gtceu$injectDynamicData(PackType type, List packs) { - return MixinHelpers.addDynamicData(packs); + return MixinHelpers.addDynamicDataPack(packs); } } diff --git a/common/src/main/java/com/gregtechceu/gtceu/core/mixins/WorldLoaderPackConfigMixin.java b/common/src/main/java/com/gregtechceu/gtceu/core/mixins/WorldLoaderPackConfigMixin.java index 7f506580ba..c6e1573029 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/core/mixins/WorldLoaderPackConfigMixin.java +++ b/common/src/main/java/com/gregtechceu/gtceu/core/mixins/WorldLoaderPackConfigMixin.java @@ -14,6 +14,6 @@ public class WorldLoaderPackConfigMixin { @ModifyArg(method = "*", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/packs/resources/MultiPackResourceManager;(Lnet/minecraft/server/packs/PackType;Ljava/util/List;)V"), index = 1) public List gtceu$injectDynamicData(PackType type, List packs) { - return MixinHelpers.addDynamicData(packs); + return MixinHelpers.addDynamicDataPack(packs); } } diff --git a/common/src/main/java/com/gregtechceu/gtceu/data/lang/BlockLang.java b/common/src/main/java/com/gregtechceu/gtceu/data/lang/BlockLang.java index 8a509c06f1..6fff7c135e 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/data/lang/BlockLang.java +++ b/common/src/main/java/com/gregtechceu/gtceu/data/lang/BlockLang.java @@ -13,14 +13,7 @@ public static void init(RegistrateLangProvider provider) { private static void initCasingLang(RegistrateLangProvider provider) { // Coils - replace(provider, "block.gtceu.wire_coil_cupronickel", "Cupronickel Coil Block"); - replace(provider, "block.gtceu.wire_coil_kanthal", "Kanthal Coil Block"); - replace(provider, "block.gtceu.wire_coil_nichrome", "Nichrome Coil Block"); - replace(provider, "block.gtceu.wire_coil_tungstensteel", "Tungstensteel Coil Block"); - replace(provider, "block.gtceu.wire_coil_hss_g", "HSS-G Coil Block"); - replace(provider, "block.gtceu.wire_coil_naquadah", "Naquadah Coil Block"); - replace(provider, "block.gtceu.wire_coil_trinium", "Trinium Coil Block"); - replace(provider, "block.gtceu.wire_coil_tritanium", "Tritanium Coil Block"); + replace(provider, "block.gtceu.hssg_coil_block", "HSS-G Coil Block"); replace(provider, "block.gtceu.wire_coil.tooltip_extended_info", "§7Hold SHIFT to show Coil Bonus Info"); replace(provider, "block.gtceu.wire_coil.tooltip_heat", "§cBase Heat Capacity: §f%d K"); @@ -35,33 +28,30 @@ private static void initCasingLang(RegistrateLangProvider provider) { // Casings replace(provider, "block.gtceu.casing_bronze_bricks", "Bronze Machine Casing"); replace(provider, "block.gtceu.casing_primitive_bricks", "Firebricks"); - replace(provider, "block.gtceu.casing_invar_heatproof", "Heat Proof Invar Machine Casing"); - replace(provider, "block.gtceu.casing_aluminium_frostproof", "Frost Proof Aluminium Machine Casing"); - replace(provider, "block.gtceu.casing_steel_solid", "Solid Steel Machine Casing"); - replace(provider, "block.gtceu.casing_stainless_clean", "Clean Stainless Steel Casing"); - replace(provider, "block.gtceu.casing_titanium_stable", "Stable Titanium Machine Casing"); - replace(provider, "block.gtceu.casing_tungstensteel_robust", "Robust Tungstensteel Machine Casing"); + replace(provider, "block.gtceu.heatproof_machine_casing", "Heat Proof Invar Machine Casing"); + replace(provider, "block.gtceu.frostproof_machine_casing", "Frost Proof Aluminium Machine Casing"); + replace(provider, "block.gtceu.steel_machine_casing", "Solid Steel Machine Casing"); + replace(provider, "block.gtceu.clean_machine_casing", "Clean Stainless Steel Casing"); + replace(provider, "block.gtceu.stable_machine_casing", "Stable Titanium Machine Casing"); + replace(provider, "block.gtceu.robust_machine_casing", "Robust Tungstensteel Machine Casing"); replace(provider, "block.gtceu.casing_coke_bricks", "Coke Oven Bricks"); - replace(provider, "block.gtceu.casing_ptfe_inert", "Chemically Inert PTFE Machine Casing"); - replace(provider, "block.gtceu.casing_hsse_sturdy", "Sturdy HSS-E Machine Casing"); + replace(provider, "block.gtceu.inert_machine_casing", "Chemically Inert PTFE Machine Casing"); + replace(provider, "block.gtceu.sturdy_machine_casing", "Sturdy HSS-E Machine Casing"); replace(provider, "block.gtceu.casing_grate", "Grate Machine Casing"); - replace(provider, "block.gtceu.casing_assembly_control", "Assembly Control Casing"); - replace(provider, "block.gtceu.casing_polytetrafluoroethylene_pipe", "PTFE Pipe Casing"); - replace(provider, "block.gtceu.casing_laminated_glass", "Laminated Glass"); - replace(provider, "block.gtceu.casing_bronze_gearbox", "Bronze Gearbox Casing"); - replace(provider, "block.gtceu.casing_steel_gearbox", "Steel Gearbox Casing"); - replace(provider, "block.gtceu.casing_stainless_steel_gearbox", "Stainless Steel Gearbox Casing"); - replace(provider, "block.gtceu.casing_titanium_gearbox", "Titanium Gearbox Casing"); - replace(provider, "block.gtceu.casing_tungstensteel_gearbox", "Tungstensteel Gearbox Casing"); - replace(provider, "block.gtceu.casing_steel_turbine", "Steel Turbine Casing"); - replace(provider, "block.gtceu.casing_titanium_turbine", "Titanium Turbine Casing"); - replace(provider, "block.gtceu.casing_stainless_turbine", "Stainless Turbine Casing"); - replace(provider, "block.gtceu.casing_tungstensteel_turbine", "Tungstensteel Turbine Casing"); - replace(provider, "block.gtceu.casing_bronze_pipe", "Bronze Pipe Casing"); - replace(provider, "block.gtceu.casing_steel_pipe", "Steel Pipe Casing"); - replace(provider, "block.gtceu.casing_titanium_pipe", "Titanium Pipe Casing"); - replace(provider, "block.gtceu.casing_tungstensteel_pipe", "Tungstensteel Pipe Casing"); - replace(provider, "block.gtceu.casing_pump_deck", "Pump Deck"); + replace(provider, "block.gtceu.assembly_line_unit", "Assembly Control Casing"); + replace(provider, "block.gtceu.ptfe_pipe_casing", "PTFE Pipe Casing"); + replace(provider, "block.gtceu.bronze_gearbox", "Bronze Gearbox Casing"); + replace(provider, "block.gtceu.steel_gearbox", "Steel Gearbox Casing"); + replace(provider, "block.gtceu.stainless_steel_gearbox", "Stainless Steel Gearbox Casing"); + replace(provider, "block.gtceu.titanium_gearbox", "Titanium Gearbox Casing"); + replace(provider, "block.gtceu.tungstensteel_gearbox", "Tungstensteel Gearbox Casing"); + replace(provider, "block.gtceu.titanium_turbine_casing", "Titanium Turbine Casing"); + replace(provider, "block.gtceu.stainless_steel_turbine_casing", "Stainless Turbine Casing"); + replace(provider, "block.gtceu.tungstensteel_turbine_casing", "Tungstensteel Turbine Casing"); + replace(provider, "block.gtceu.bronze_pipe_casing", "Bronze Pipe Casing"); + replace(provider, "block.gtceu.steel_pipe_casing", "Steel Pipe Casing"); + replace(provider, "block.gtceu.titanium_pipe_casing", "Titanium Pipe Casing"); + replace(provider, "block.gtceu.tungstensteel_pipe_casing", "Tungstensteel Pipe Casing"); replace(provider, "block.gtceu.steam_casing_bronze", "Bronze Hull"); provider.add("block.gtceu.steam_casing_bronze.tooltip", "§7For your first Steam Machines"); @@ -72,15 +62,6 @@ private static void initCasingLang(RegistrateLangProvider provider) { replace(provider, "block.gtceu.steam_casing_bricked_steel", "Bricked Wrought Iron Hull"); provider.add("block.gtceu.steam_casing_bricked_steel.tooltip", "§7For improved Steam Machines"); - replace(provider, "block.gtceu.active_casing_engine_intake", "Engine Intake Casing"); - replace(provider, "block.gtceu.active_casing_extreme_engine_intake", "Extreme Engine Intake Casing"); - replace(provider, "block.gtceu.active_casing_assembly_line", "Assembly Line Casing"); - - replace(provider, "block.gtceu.bronze_firebox", "Bronze Firebox Casing"); - replace(provider, "block.gtceu.steel_firebox", "Steel Firebox Casing"); - replace(provider, "block.gtceu.titanium_firebox", "Titanium Firebox Casing"); - replace(provider, "block.gtceu.tungstensteel_firebox", "Tungstensteel Firebox Casing"); - //GCyM Casings replace(provider, "block.gtceu.laser_safe_engraving_casing", "Laser-Safe Engraving Casing"); replace(provider, "block.gtceu.large_scale_assembler_casing", "Large-Scale Assembler Casing"); @@ -91,11 +72,11 @@ private static void initCasingLang(RegistrateLangProvider provider) { //replace(provider, "tile.steam_casing.wood_wall.name", "Wooden Wall"); // todo fusion - replace(provider, "block.superconducting_coil", "Superconducting Coil Block"); - replace(provider, "block.fusion_coil", "Fusion Coil Block"); - replace(provider, "block.fusion_casing", "Fusion Machine Casing"); - replace(provider, "block.fusion_casing_mk2", "Fusion Machine Casing MK II"); - replace(provider, "block.fusion_casing_mk3", "Fusion Machine Casing MK III"); + replace(provider, "block.gtceu.superconducting_coil", "Superconducting Coil Block"); + replace(provider, "block.gtceu.fusion_coil", "Fusion Coil Block"); + replace(provider, "block.gtceu.fusion_casing", "Fusion Machine Casing"); + replace(provider, "block.gtceu.fusion_casing_mk2", "Fusion Machine Casing MK II"); + replace(provider, "block.gtceu.fusion_casing_mk3", "Fusion Machine Casing MK III"); provider.add("block.filter.tooltip", "Creates a §aParticle-Free§7 environment"); provider.add("block.filter_sterile.tooltip", "Creates a §aSterilized§7 environment"); @@ -218,15 +199,5 @@ private static void initCasingLang(RegistrateLangProvider provider) { provider.add("tile.stone_bricks_square.concrete_light.name", "Square Light Concrete Bricks"); provider.add("tile.stone_bricks_square.concrete_dark.name", "Square Dark Concrete Bricks"); */ - provider.add("tile.stone_bricks_square.concrete_dark.name", "Square Dark Concrete Bricks"); - provider.add("tile.wire_coil.tooltip_extended_info", "Hold SHIFT to show Coil Bonus Info"); - provider.add("tile.wire_coil.tooltip_heat", "§cBase Heat Capacity: §f%d K"); - provider.add("tile.wire_coil.tooltip_smelter", "§8Multi Smelter:"); - provider.add("tile.wire_coil.tooltip_parallel_smelter", " §5Max Parallel: §f%s"); - provider.add("tile.wire_coil.tooltip_energy_smelter", " §aEnergy Usage: §f%s EU/t §8per recipe"); - provider.add("tile.wire_coil.tooltip_pyro", "§8Pyrolyse Oven:"); - provider.add("tile.wire_coil.tooltip_speed_pyro", " §bProcessing Speed: §f%s%%"); - provider.add("tile.wire_coil.tooltip_cracking", "§8Cracking Unit:"); - provider.add("tile.wire_coil.tooltip_energy_cracking", " §aEnergy Usage: §f%s%%"); } } diff --git a/common/src/main/java/com/gregtechceu/gtceu/data/lang/LangHandler.java b/common/src/main/java/com/gregtechceu/gtceu/data/lang/LangHandler.java index 772799536b..39e1aa28f1 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/data/lang/LangHandler.java +++ b/common/src/main/java/com/gregtechceu/gtceu/data/lang/LangHandler.java @@ -1,6 +1,5 @@ package com.gregtechceu.gtceu.data.lang; -import com.gregtechceu.gtceu.common.data.GTCreativeModeTabs; import com.gregtechceu.gtceu.common.data.GTMaterials; import com.lowdragmc.lowdraglib.utils.LocalizationUtils; import com.tterrag.registrate.providers.RegistrateLangProvider; @@ -13,8 +12,6 @@ import java.util.List; import java.util.stream.Collectors; -import static com.gregtechceu.gtceu.utils.FormattingUtil.toEnglishName; - /** * @author KilaBash * @date 2023/3/19 @@ -316,14 +313,14 @@ public static void init(RegistrateLangProvider provider) { provider.add("cover.conveyor.mode", "Mode: %s"); provider.add("cover.conveyor.mode.export", "Mode: Export"); provider.add("cover.conveyor.mode.import", "Mode: Import"); - multilineLang(provider, "cover.conveyor.distribution.round_robin_enhanced", "Distribution Mode\n§bEnhanced Round Robin§r\n§7Splits items equally to all inventories"); - multilineLang(provider, "cover.conveyor.distribution.round_robin", "Distribution Mode\n§bRound Robin§r with Priority\n§7Tries to split items equally to inventories"); - multilineLang(provider, "cover.conveyor.distribution.first_insert", "Distribution Mode\n§bFirst Insert§r\n§7Will insert into the first inventory it finds"); + multilineLang(provider, "cover.conveyor.distribution.round_robin_global", "Distribution Mode: §bRound Robin\n§7Splits items equally across connected inventories"); + multilineLang(provider, "cover.conveyor.distribution.round_robin_prio", "Distribution Mode: §bRound Robin with Priority\n§7Tries to split items across connected inventories and considers higher priorities first.\n§7Restrictive item pipes lower the priority of a path."); + multilineLang(provider, "cover.conveyor.distribution.insert_first", "Distribution Mode: §bPriority\n§7Will insert into the first inventory with the highest priority it can find.\n§7Restrictive item pipes lower the priority of a path."); multilineLang(provider, "cover.conveyor.blocks_input.enabled", "If enabled, items will not be inserted when cover is set to pull items from the inventory into pipe.\n§aEnabled"); multilineLang(provider, "cover.conveyor.blocks_input.disabled", "If enabled, items will not be inserted when cover is set to pull items from the inventory into pipe.\n§cDisabled"); - provider.add("cover.universal.manual_import_export.mode.disabled", "Manual I/O: Disabled"); - provider.add("cover.universal.manual_import_export.mode.filtered", "Manual I/O: Filtered"); - provider.add("cover.universal.manual_import_export.mode.unfiltered", "Manual I/O: Unfiltered"); + provider.add("cover.universal.manual_import_export.mode.disabled", "Manual I/O: §bDisabled\n§7Items / Fluids will only move as specified by the cover and its filter."); + provider.add("cover.universal.manual_import_export.mode.filtered", "Manual I/O: §bFiltered\n§7Items / Fluids can be extracted and inserted independently of the cover mode, as long as its filter matches (if any)"); + provider.add("cover.universal.manual_import_export.mode.unfiltered", "Manual I/O: §bUnfiltered\n§7Items / Fluids can be moved independently of the cover mode. The filter only applies to what is inserted or extracted by this cover itself."); multilineLang(provider, "cover.universal.manual_import_export.mode.description", "§eDisabled§r - Items/fluids will only move as specified by the cover and its filter. \n§eAllow Filtered§r - Items/fluids can be extracted and inserted independently of the cover mode, as long as its filter matches (if any). \n§eAllow Unfiltered§r - Items/fluids can be moved independently of the cover mode. Filter applies to the items inserted or extracted by this cover"); provider.add("cover.conveyor.item_filter.title", "Item Filter"); multiLang(provider, "cover.conveyor.ore_dictionary.title", "Ore Dictionary Name", "(use * for wildcard)"); @@ -397,11 +394,52 @@ public static void init(RegistrateLangProvider provider) { replace(provider, GTMaterials.HSSE.getUnlocalizedName(), "HSS-E"); replace(provider, GTMaterials.HSSS.getUnlocalizedName(), "HSS-S"); replace(provider, GTMaterials.UUMatter.getUnlocalizedName(), "UU-Matter"); + replace(provider, GTMaterials.PCBCoolant.getUnlocalizedName(), "PCB Coolant"); replace(provider, GTMaterials.TungstenSteel.getUnlocalizedName(), "Tungstensteel"); replace(provider, GTMaterials.OilHeavy.getUnlocalizedName(), "Heavy Oil"); + replace(provider, "block.gtceu.oil_heavy", "Heavy Oil"); replace(provider, GTMaterials.OilLight.getUnlocalizedName(), "Light Oil"); + replace(provider, "block.gtceu.oil_light", "Light Oil"); replace(provider, GTMaterials.RawOil.getUnlocalizedName(), "Raw Oil"); - replace(provider, GTMaterials.HSLASteel.getUnlocalizedName(), "HSLA-Steel"); + replace(provider, "block.gtceu.oil_medium", "Raw Oil"); + + replace(provider, GTMaterials.HydroCrackedButadiene.getUnlocalizedName(), "Hydro-Cracked Butadiene"); + replace(provider, GTMaterials.HydroCrackedButane.getUnlocalizedName(), "Hydro-Cracked Butane"); + replace(provider, GTMaterials.HydroCrackedButene.getUnlocalizedName(), "Hydro-Cracked Butene"); + replace(provider, GTMaterials.HydroCrackedButene.getUnlocalizedName(), "Hydro-Cracked Butene"); + replace(provider, GTMaterials.HydroCrackedEthane.getUnlocalizedName(), "Hydro-Cracked Ethane"); + replace(provider, GTMaterials.HydroCrackedEthylene.getUnlocalizedName(), "Hydro-Cracked Ethylene"); + replace(provider, GTMaterials.HydroCrackedPropane.getUnlocalizedName(), "Hydro-Cracked Propane"); + replace(provider, GTMaterials.HydroCrackedPropene.getUnlocalizedName(), "Hydro-Cracked Propene"); + replace(provider, GTMaterials.SteamCrackedButadiene.getUnlocalizedName(), "Steam-Cracked Butadiene"); + replace(provider, GTMaterials.SteamCrackedButane.getUnlocalizedName(), "Steam-Cracked Butane"); + replace(provider, GTMaterials.SteamCrackedButene.getUnlocalizedName(), "Steam-Cracked Butene"); + replace(provider, GTMaterials.SteamCrackedButene.getUnlocalizedName(), "Steam-Cracked Butene"); + replace(provider, GTMaterials.SteamCrackedEthane.getUnlocalizedName(), "Steam-Cracked Ethane"); + replace(provider, GTMaterials.SteamCrackedEthylene.getUnlocalizedName(), "Steam-Cracked Ethylene"); + replace(provider, GTMaterials.SteamCrackedPropane.getUnlocalizedName(), "Steam-Cracked Propane"); + replace(provider, GTMaterials.SteamCrackedPropene.getUnlocalizedName(), "Steam-Cracked Propene"); + replace(provider, GTMaterials.LightlyHydroCrackedGas.getUnlocalizedName(), "Lightly Hydro-Cracked Gas"); + replace(provider, GTMaterials.LightlyHydroCrackedHeavyFuel.getUnlocalizedName(), "Lightly Hydro-Cracked Heavy Fuel"); + replace(provider, GTMaterials.LightlyHydroCrackedLightFuel.getUnlocalizedName(), "Lightly Hydro-Cracked Light Fuel"); + replace(provider, GTMaterials.LightlyHydroCrackedNaphtha.getUnlocalizedName(), "Lightly Hydro-Cracked Naphtha"); + replace(provider, GTMaterials.LightlySteamCrackedGas.getUnlocalizedName(), "Lightly Steam-Cracked Gas"); + replace(provider, GTMaterials.LightlySteamCrackedHeavyFuel.getUnlocalizedName(), "Lightly Steam-Cracked Heavy Fuel"); + replace(provider, GTMaterials.LightlySteamCrackedLightFuel.getUnlocalizedName(), "Lightly Steam-Cracked Light Fuel"); + replace(provider, GTMaterials.LightlySteamCrackedNaphtha.getUnlocalizedName(), "Lightly Steam-Cracked Naphtha"); + replace(provider, GTMaterials.SeverelyHydroCrackedGas.getUnlocalizedName(), "Severely Hydro-Cracked Gas"); + replace(provider, GTMaterials.SeverelyHydroCrackedHeavyFuel.getUnlocalizedName(), "Severely Hydro-Cracked Heavy Fuel"); + replace(provider, GTMaterials.SeverelyHydroCrackedLightFuel.getUnlocalizedName(), "Severely Hydro-Cracked Light Fuel"); + replace(provider, GTMaterials.SeverelyHydroCrackedNaphtha.getUnlocalizedName(), "Severely Hydro-Cracked Naphtha"); + replace(provider, GTMaterials.SeverelySteamCrackedGas.getUnlocalizedName(), "Severely Steam-Cracked Gas"); + replace(provider, GTMaterials.SeverelySteamCrackedHeavyFuel.getUnlocalizedName(), "Severely Steam-Cracked Heavy Fuel"); + replace(provider, GTMaterials.SeverelySteamCrackedLightFuel.getUnlocalizedName(), "Severely Steam-Cracked Light Fuel"); + replace(provider, GTMaterials.SeverelySteamCrackedNaphtha.getUnlocalizedName(), "Severely Steam-Cracked Naphtha"); + + replace(provider, GTMaterials.Zeron100.getUnlocalizedName(), "Zeron-100"); + replace(provider, GTMaterials.IncoloyMA956.getUnlocalizedName(), "Incoloy MA-956"); + replace(provider, GTMaterials.Stellite100.getUnlocalizedName(), "Stellite-100"); + replace(provider, GTMaterials.HastelloyC276.getUnlocalizedName(), "Hastelloy C-276"); provider.add("item.netherrack_nether_quartz", "Nether Quartz Ore"); @@ -450,14 +488,14 @@ public static void init(RegistrateLangProvider provider) { provider.add("item.wood_small_dust", "Small Pile of Wood Pulp"); provider.add("item.wood_dust", "Wood Pulp"); provider.add("item.wood_plate", "Wood Plank"); - provider.add("item.wood_rodLong", "Long Wood Stick"); + provider.add("item.wood_long_rod", "Long Wood Stick"); provider.add("item.wood_bolt", "Short Wood Stick"); provider.add("item.treated_wood_tiny_dust", "Tiny Pile of Treated Wood Pulp"); provider.add("item.treated_wood_small_dust", "Small Pile of Treated Wood Pulp"); provider.add("item.treated_wood_dust", "Treated Wood Pulp"); provider.add("item.treated_wood_plate", "Treated Wood Plank"); provider.add("item.treated_wood_rod", "Treated Wood Stick"); - provider.add("item.treated_wood_rodLong", "Long Treated Wood Stick"); + provider.add("item.treated_wood_long_rod", "Long Treated Wood Stick"); provider.add("item.treated_wood_bolt", "Short Treated Wood Stick"); provider.add("item.glass_gem", "Glass Crystal"); provider.add("item.glass_chipped_gem", "Chipped Glass Crystal"); @@ -505,7 +543,7 @@ public static void init(RegistrateLangProvider provider) { provider.add("item.pitchblende_dust", "Pitchblende"); provider.add("item.talc_refined_ore", "Refined Talc"); provider.add("item.talc_purified_ore", "Purified Talc"); - provider.add("item.talc_crushed", "Ground Talc"); + provider.add("item.talc_crushed_ore", "Ground Talc"); provider.add("item.talc_tiny_dust", "Tiny Pile of Talc"); provider.add("item.talc_small_dust", "Small Pile of Talc"); provider.add("item.talc_impure_dust", "Impure Pile of Talc"); @@ -518,7 +556,7 @@ public static void init(RegistrateLangProvider provider) { provider.add("item.meat_small_dust", "Small Pile of Mince Meat"); provider.add("item.meat_dust", "Mince Meat"); provider.add("item.borosilicate_glass_ingot", "Borosilicate Glass Bar"); - provider.add("item.borosilicate_glass_wireFine", "Borosilicate Glass Fibers"); + provider.add("item.borosilicate_glass_fine_wire", "Borosilicate Glass Fibers"); provider.add("item.platinum_group_sludge_tiny_dust", "Tiny Clump of Platinum Group Sludge"); provider.add("item.platinum_group_sludge_small_dust", "Small Clump of Platinum Group Sludge"); provider.add("item.platinum_group_sludge_dust", "Platinum Group Sludge"); @@ -1251,7 +1289,7 @@ public static List getMultiLang(String key, Object... args) { * See {@link #getMultiLang(String)}. If no multiline key is available, get single instead. * * @param key Base key of the multi lang. E.g. "terminal.fluid_prospector.tier". - * @returnReturns all translation components from a multi lang's sub-keys. + * @return Returns all translation components from a multi lang's sub-keys. */ public static List getSingleOrMultiLang(String key) { List multiLang = getMultiLang(key); diff --git a/common/src/main/java/com/gregtechceu/gtceu/data/lang/MachineLang.java b/common/src/main/java/com/gregtechceu/gtceu/data/lang/MachineLang.java index 9638b4dd68..6024de0e69 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/data/lang/MachineLang.java +++ b/common/src/main/java/com/gregtechceu/gtceu/data/lang/MachineLang.java @@ -8,6 +8,10 @@ public class MachineLang { protected static void init(RegistrateLangProvider provider) { + replace(provider, "block.gtceu.steam_large_turbine", "Large Steam Turbine"); + replace(provider, "block.gtceu.gas_large_turbine", "Large Gas Turbine"); + replace(provider, "block.gtceu.plasma_large_turbine", "Large Plasma Turbine"); + // Steam machines replace(provider, "block.gtceu.steam_solid_boiler.bronze", "Small Steam Solid Boiler"); replace(provider, "block.gtceu.steam_liquid_boiler.bronze", "Small Steam Liquid Boiler"); diff --git a/common/src/main/java/com/gregtechceu/gtceu/data/pack/GTDynamicDataPack.java b/common/src/main/java/com/gregtechceu/gtceu/data/pack/GTDynamicDataPack.java index 1a2ea12a79..0dead29b47 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/data/pack/GTDynamicDataPack.java +++ b/common/src/main/java/com/gregtechceu/gtceu/data/pack/GTDynamicDataPack.java @@ -2,6 +2,7 @@ import com.google.common.collect.Sets; import com.google.gson.JsonArray; +import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.gregtechceu.gtceu.GTCEu; import com.gregtechceu.gtceu.common.data.GTRecipes; @@ -64,9 +65,22 @@ public static void addRecipe(FinishedRecipe recipe) { } } - private static void writeJson(ResourceLocation id, String subdir, Path parent, JsonObject json){ + /** + * if subdir is null, no file ending is appended. + * @param id the resource location of the file to be written. + * @param subdir a nullable subdirectory for the data. + * @param parent the parent folder where to write data to. + * @param json the json to write. + */ + @ApiStatus.Internal + public static void writeJson(ResourceLocation id, @Nullable String subdir, Path parent, JsonElement json) { try { - Path file = parent.resolve(id.getNamespace()).resolve(subdir).resolve(id.getPath() + ".json"); + Path file; + if (subdir != null) { + file = parent.resolve(id.getNamespace()).resolve(subdir).resolve(id.getPath() + ".json"); // assume JSON + } else { + file = parent.resolve(id.getNamespace()).resolve(id.getPath()); // assume the file type is also appended if a full path is given. + } Files.createDirectories(file.getParent()); try(OutputStream output = Files.newOutputStream(file)) { output.write(json.toString().getBytes()); @@ -111,7 +125,7 @@ public boolean hasResource(PackType type, ResourceLocation location) { @Override public Collection getResources(PackType type, String namespace, String path, Predicate filter) { if (type == PackType.SERVER_DATA) - return DATA.keySet().stream().filter(loc -> loc.getPath().startsWith(path) && filter.test(loc)).collect(Collectors.toList()); + return DATA.keySet().stream().filter(loc -> loc.getPath().startsWith(path.endsWith("/") ? path : path + "/") && filter.test(loc)).collect(Collectors.toList()); return Collections.emptyList();//LANG.keySet().stream().filter(loc -> loc.getPath().startsWith(path) && filter.test(loc.getPath())).collect(Collectors.toList()); } diff --git a/common/src/main/java/com/gregtechceu/gtceu/data/pack/GTDynamicResourcePack.java b/common/src/main/java/com/gregtechceu/gtceu/data/pack/GTDynamicResourcePack.java new file mode 100644 index 0000000000..9e108e1350 --- /dev/null +++ b/common/src/main/java/com/gregtechceu/gtceu/data/pack/GTDynamicResourcePack.java @@ -0,0 +1,208 @@ +package com.gregtechceu.gtceu.data.pack; + +import com.google.common.collect.Sets; +import com.google.gson.JsonElement; +import com.gregtechceu.gtceu.GTCEu; +import com.gregtechceu.gtceu.config.ConfigHolder; +import com.lowdragmc.lowdraglib.Platform; +import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet; +import it.unimi.dsi.fastutil.objects.ObjectSet; +import net.minecraft.MethodsReturnNonnullByDefault; +import net.minecraft.SharedConstants; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.packs.PackResources; +import net.minecraft.server.packs.PackType; +import net.minecraft.server.packs.metadata.MetadataSectionSerializer; +import net.minecraft.server.packs.metadata.pack.PackMetadataSection; +import net.minecraft.server.packs.resources.IoSupplier; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.Nullable; + +import javax.annotation.ParametersAreNonnullByDefault; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Collection; +import java.util.Objects; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; +import java.util.function.Supplier; + +import static com.gregtechceu.gtceu.data.pack.GTDynamicDataPack.writeJson; + +@MethodsReturnNonnullByDefault +@ParametersAreNonnullByDefault +public class GTDynamicResourcePack implements PackResources { + + protected static final ObjectSet CLIENT_DOMAINS = new ObjectOpenHashSet<>(); + @ApiStatus.Internal + public static final ConcurrentMap DATA = new ConcurrentHashMap<>(); + + private final String name; + + static { + CLIENT_DOMAINS.addAll(Sets.newHashSet(GTCEu.MOD_ID, "minecraft", "forge", "c")); + } + + public GTDynamicResourcePack(String name, Collection domains) { + this.name = name; + CLIENT_DOMAINS.addAll(domains); + } + + public static void clearClient() { + DATA.clear(); + } + + public static void addBlockModel(ResourceLocation loc, JsonElement obj) { + ResourceLocation l = getModelLocation(loc); + if (ConfigHolder.INSTANCE.dev.dumpAssets) { + Path parent = Platform.getGamePath().resolve("gtceu/dumped/assets"); + writeJson(l, null, parent, obj); + } + DATA.put(l, obj.toString().getBytes(StandardCharsets.UTF_8)); + } + + public static void addBlockModel(ResourceLocation loc, Supplier obj) { + addBlockModel(loc, obj.get()); + } + + public static void addItemModel(ResourceLocation loc, JsonElement obj) { + ResourceLocation l = getItemModelLocation(loc); + if (ConfigHolder.INSTANCE.dev.dumpAssets) { + Path parent = Platform.getGamePath().resolve("gtceu/dumped/assets"); + writeJson(l, null, parent, obj); + } + DATA.put(l, obj.toString().getBytes(StandardCharsets.UTF_8)); + } + + public static void addItemModel(ResourceLocation loc, Supplier obj) { + addItemModel(loc, obj.get()); + } + + public static void addBlockState(ResourceLocation loc, JsonElement stateJson) { + ResourceLocation l = getBlockStateLocation(loc); + if (ConfigHolder.INSTANCE.dev.dumpAssets) { + Path parent = Platform.getGamePath().resolve("gtceu/dumped/assets"); + writeJson(l, null, parent, stateJson); + } + DATA.put(l, stateJson.toString().getBytes(StandardCharsets.UTF_8)); + } + + public static void addBlockState(ResourceLocation loc, Supplier generator) { + addBlockState(loc, generator.get()); + } + + public static void addBlockTexture(ResourceLocation loc, byte[] data) { + ResourceLocation l = getTextureLocation("block", loc); + if (ConfigHolder.INSTANCE.dev.dumpAssets) { + Path parent = Platform.getGamePath().resolve("gtceu/dumped/assets"); + writeByteArray(l, null, parent, data); + } + DATA.put(l, data); + } + + public static void addItemTexture(ResourceLocation loc, byte[] data) { + ResourceLocation l = getTextureLocation("item", loc); + if (ConfigHolder.INSTANCE.dev.dumpAssets) { + Path parent = Platform.getGamePath().resolve("gtceu/dumped/assets"); + writeByteArray(l, null, parent, data); + } + DATA.put(l, data); + } + + @ApiStatus.Internal + public static void writeByteArray(ResourceLocation id, @Nullable String subdir, Path parent, byte[] data) { + try { + Path file; + if (subdir != null) { + file = parent.resolve(id.getNamespace()).resolve(subdir).resolve(id.getPath() + ".png"); // assume PNG + } else { + file = parent.resolve(id.getNamespace()).resolve(id.getPath()); // assume the file type is also appended if a full path is given. + } + Files.createDirectories(file.getParent()); + try(OutputStream output = Files.newOutputStream(file)) { + output.write(data); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + + @Nullable + @Override + public IoSupplier getRootResource(String... elements) { + return null; + } + + @Override + public IoSupplier getResource(PackType type, ResourceLocation location) { + if (type == PackType.CLIENT_RESOURCES) { + if (DATA.containsKey(location)) + return () -> new ByteArrayInputStream(DATA.get(location)); + } + return null; + } + + @Override + public void listResources(PackType packType, String namespace, String path, ResourceOutput resourceOutput) { + if (packType == PackType.CLIENT_RESOURCES) { + if (!path.endsWith("/")) path += "/"; + final String finalPath = path; + DATA.keySet().stream().filter(Objects::nonNull).filter(loc -> loc.getPath().startsWith(finalPath)).forEach((id) -> { + IoSupplier resource = this.getResource(packType, id); + if (resource != null) { + resourceOutput.accept(id, resource); + } + }); + } + } + + @Override + public Set getNamespaces(PackType type) { + return type == PackType.CLIENT_RESOURCES ? CLIENT_DOMAINS : Set.of(); + } + + @Nullable + @Override + public T getMetadataSection(MetadataSectionSerializer metaReader) { + if(metaReader == PackMetadataSection.TYPE) { + return (T) new PackMetadataSection(Component.literal("GTCEu dynamic assets"), SharedConstants.getCurrentVersion().getPackVersion(PackType.CLIENT_RESOURCES)); + } + return null; + } + + @Override + public String packId() { + return this.name; + } + + @Override + public void close() { + //NOOP + } + + public static ResourceLocation getBlockStateLocation(ResourceLocation blockId) { + return new ResourceLocation(blockId.getNamespace(), String.join("", "blockstates/", blockId.getPath(), ".json")); + } + + public static ResourceLocation getModelLocation(ResourceLocation blockId) { + return new ResourceLocation(blockId.getNamespace(), String.join("", "models/", blockId.getPath(), ".json")); + } + + public static ResourceLocation getItemModelLocation(ResourceLocation itemId) { + return new ResourceLocation(itemId.getNamespace(), String.join("", "models/item/", itemId.getPath(), ".json")); + } + + public static ResourceLocation getTextureLocation(@Nullable String path, ResourceLocation tagId) { + if (path == null) { + return new ResourceLocation(tagId.getNamespace(), String.join("", "textures/", tagId.getPath(), ".png")); + } + return new ResourceLocation(tagId.getNamespace(), String.join("", "textures/", path, "/", tagId.getPath(), ".png")); + } +} diff --git a/common/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/ComputerRecipes.java b/common/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/ComputerRecipes.java new file mode 100644 index 0000000000..78e28a53ec --- /dev/null +++ b/common/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/ComputerRecipes.java @@ -0,0 +1,49 @@ +package com.gregtechceu.gtceu.data.recipe.misc; + +import com.gregtechceu.gtceu.api.machine.multiblock.CleanroomType; +import com.gregtechceu.gtceu.common.data.GTBlocks; +import com.gregtechceu.gtceu.data.recipe.CustomTags; +import net.minecraft.data.recipes.FinishedRecipe; + +import java.util.function.Consumer; + +import static com.gregtechceu.gtceu.api.GTValues.*; +import static com.gregtechceu.gtceu.api.data.tag.TagPrefix.*; +import static com.gregtechceu.gtceu.common.data.GTBlocks.*; +import static com.gregtechceu.gtceu.common.data.GTItems.*; +import static com.gregtechceu.gtceu.common.data.GTMachines.*; +import static com.gregtechceu.gtceu.common.data.GTMaterials.*; +import static com.gregtechceu.gtceu.common.data.GTRecipeTypes.*; + +public class ComputerRecipes { + + public static void init(Consumer provider) { + + ASSEMBLER_RECIPES.recipeBuilder("high_power_casing") + .inputItems(frameGt, Iridium) + .inputItems(plate, Iridium, 6) + .inputItems(CustomTags.IV_CIRCUITS) + .inputItems(wireFine, Cobalt, 16) + .inputItems(wireFine, Copper, 16) + .inputItems(wireGtSingle, NiobiumTitanium, 2) + .outputItems(GTBlocks.HIGH_POWER_CASING.asStack(2)) + .duration(100).EUt(VA[IV]).save(provider); + + ASSEMBLER_RECIPES.recipeBuilder("active_transformer") + .inputItems(POWER_TRANSFORMER[LuV]) + .inputItems(CustomTags.LuV_CIRCUITS, 2) + .inputItems(wireGtSingle, IndiumTinBariumTitaniumCuprate, 8) + .inputItems(ULTRA_HIGH_POWER_INTEGRATED_CIRCUIT, 2) + .inputFluids(PCBCoolant.getFluid(1000)) + .outputItems(ACTIVE_TRANSFORMER) + .duration(300).EUt(VA[LuV]).save(provider); + + ASSEMBLER_RECIPES.recipeBuilder("laser_cable") + .inputItems(GTBlocks.CASING_LAMINATED_GLASS.get().asItem(), 1) + .inputItems(foil, Osmiridium, 2) + .inputFluids(Polytetrafluoroethylene.getFluid(L)) + .outputItems(LASER_PIPES[0]) + .cleanroom(CleanroomType.CLEANROOM) + .duration(100).EUt(VA[IV]).save(provider); + } +} diff --git a/common/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java b/common/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java index 5a8f0ead6c..6209c64bd0 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java +++ b/common/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MachineRecipeLoader.java @@ -47,6 +47,8 @@ private MachineRecipeLoader() { } public static void init(Consumer provider) { + ComputerRecipes.init(provider); + registerDecompositionRecipes(provider); registerBlastFurnaceRecipes(provider); registerAssemblerRecipes(provider); diff --git a/common/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityLoader.java b/common/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityLoader.java index f5ea047640..f7f55d665c 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityLoader.java +++ b/common/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityLoader.java @@ -188,7 +188,7 @@ public static void init(Consumer provider) { VanillaRecipeHelper.addShapedRecipe(provider, true, "coke_oven_hatch", GTMachines.COKE_OVEN_HATCH.asStack(), "CD", 'C', GTBlocks.CASING_COKE_BRICKS.asStack(), 'D', GTMachines.WOODEN_DRUM.asStack()); VanillaRecipeHelper.addShapedRecipe(provider, true, "electric_blast_furnace", GTMachines.ELECTRIC_BLAST_FURNACE.asStack(), "FFF", "CMC", "WCW", 'M', GTBlocks.CASING_INVAR_HEATPROOF.asStack(), 'F', Blocks.FURNACE.asItem(), 'C', CustomTags.LV_CIRCUITS, 'W', new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Tin)); VanillaRecipeHelper.addShapedRecipe(provider, true, "vacuum_freezer", GTMachines.VACUUM_FREEZER.asStack(), "PPP", "CMC", "WCW", 'M', GTBlocks.CASING_ALUMINIUM_FROSTPROOF.asStack(), 'P', GTItems.ELECTRIC_PUMP_HV, 'C', CustomTags.EV_CIRCUITS, 'W', new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Gold)); - VanillaRecipeHelper.addShapedRecipe(provider, true, "implosion_compressor", GTMachines.IMPLOSION_COMPRESSOR.asStack(), "OOO", "CMC", "WCW", 'M', GTBlocks.CASING_STEEL_SOLID.asStack(), 'O', new UnificationEntry(TagPrefix.block, GTMaterials.Obsidian), 'C', CustomTags.HV_CIRCUITS, 'W', new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Gold)); + VanillaRecipeHelper.addShapedRecipe(provider, true, "implosion_compressor", GTMachines.IMPLOSION_COMPRESSOR.asStack(), "OOO", "CMC", "WCW", 'M', GTBlocks.CASING_STEEL_SOLID.asStack(), 'O', new UnificationEntry(TagPrefix.rock, GTMaterials.Obsidian), 'C', CustomTags.HV_CIRCUITS, 'W', new UnificationEntry(TagPrefix.cableGtSingle, GTMaterials.Gold)); VanillaRecipeHelper.addShapedRecipe(provider, true, "distillation_tower", GTMachines.DISTILLATION_TOWER.asStack(), "CBC", "FMF", "CBC", 'M', GTMachines.HULL[HV].asStack(), 'B', new UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.StainlessSteel), 'C', CustomTags.EV_CIRCUITS, 'F', GTItems.ELECTRIC_PUMP_HV); VanillaRecipeHelper.addShapedRecipe(provider, true, "cracking_unit", GTMachines.CRACKER.asStack(), "CEC", "PHP", "CEC", 'C', GTBlocks.COIL_CUPRONICKEL.asStack(), 'E', GTItems.ELECTRIC_PUMP_HV.asStack(), 'P', CustomTags.HV_CIRCUITS, 'H', GTMachines.HULL[HV].asStack()); diff --git a/common/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityMachineRecipeLoader.java b/common/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityMachineRecipeLoader.java index a7e9f41880..710f25725a 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityMachineRecipeLoader.java +++ b/common/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MetaTileEntityMachineRecipeLoader.java @@ -4,6 +4,8 @@ import appeng.core.definitions.AEParts; import com.gregtechceu.gtceu.GTCEu; import com.gregtechceu.gtceu.api.data.chemical.material.stack.UnificationEntry; +import com.gregtechceu.gtceu.api.machine.multiblock.CleanroomType; +import com.gregtechceu.gtceu.common.data.GTBlocks; import com.gregtechceu.gtceu.data.recipe.CustomTags; import com.gregtechceu.gtceu.data.recipe.VanillaRecipeHelper; import com.gregtechceu.gtceu.integration.ae2.GTAEMachines; @@ -14,8 +16,7 @@ import static com.gregtechceu.gtceu.api.GTValues.*; import static com.gregtechceu.gtceu.api.data.tag.TagPrefix.*; -import static com.gregtechceu.gtceu.common.data.GTBlocks.LD_FLUID_PIPE; -import static com.gregtechceu.gtceu.common.data.GTBlocks.LD_ITEM_PIPE; +import static com.gregtechceu.gtceu.common.data.GTBlocks.*; import static com.gregtechceu.gtceu.common.data.GTItems.*; import static com.gregtechceu.gtceu.common.data.GTMachines.*; import static com.gregtechceu.gtceu.common.data.GTMaterials.*; diff --git a/common/src/main/java/com/gregtechceu/gtceu/data/recipe/serialized/chemistry/MixerRecipes.java b/common/src/main/java/com/gregtechceu/gtceu/data/recipe/serialized/chemistry/MixerRecipes.java index 7b6ae2bd16..4f41cfc763 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/data/recipe/serialized/chemistry/MixerRecipes.java +++ b/common/src/main/java/com/gregtechceu/gtceu/data/recipe/serialized/chemistry/MixerRecipes.java @@ -114,6 +114,12 @@ public static void init(Consumer provider) { .outputItems(dust, EnderPearl, 10) .save(provider); + MIXER_RECIPES.recipeBuilder("pcb_coolant").duration(200).EUt(VA[HV]) + .inputFluids(PolychlorinatedBiphenyl.getFluid(750)) + .inputFluids(DistilledWater.getFluid(250)) + .outputFluids(PCBCoolant.getFluid(1000)) + .save(provider); + // Alloys VanillaRecipeHelper.addShapelessRecipe(provider, "dust_brass", ChemicalHelper.get(dust, Brass, 3), new UnificationEntry(dust, Copper), diff --git a/common/src/main/java/com/gregtechceu/gtceu/data/recipe/serialized/chemistry/ReactorRecipes.java b/common/src/main/java/com/gregtechceu/gtceu/data/recipe/serialized/chemistry/ReactorRecipes.java index eef2187a42..e40c74e983 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/data/recipe/serialized/chemistry/ReactorRecipes.java +++ b/common/src/main/java/com/gregtechceu/gtceu/data/recipe/serialized/chemistry/ReactorRecipes.java @@ -682,5 +682,33 @@ public static void init(Consumer provider) { .inputFluids(PolyvinylAcetate.getFluid(144)) .outputFluids(PolyvinylButyral.getFluid(144)) .duration(400).EUt(VA[HV]).save(provider); + + CHEMICAL_RECIPES.recipeBuilder("biphenyl_from_toluene") + .inputFluids(Benzene.getFluid(1000)) + .inputFluids(Toluene.getFluid(1000)) + .outputItems(dust, Biphenyl, 2) + .outputFluids(Methane.getFluid(1000)) + .duration(200).EUt(VH[HV]).save(provider); + + CHEMICAL_RECIPES.recipeBuilder("biphenyl_from_oxygen") + .inputFluids(Benzene.getFluid(2000)) + .inputFluids(Oxygen.getFluid(1000)) + .circuitMeta(1) + .outputItems(dust, Biphenyl, 2) + .outputFluids(Water.getFluid(1000)) + .duration(400).EUt(VA[HV]).save(provider); + + CHEMICAL_RECIPES.recipeBuilder("benzene_from_biphenyl") + .inputItems(dust, Biphenyl, 2) + .inputFluids(Hydrogen.getFluid(2000)) + .outputFluids(Benzene.getFluid(2000)) + .duration(400).EUt(VA[EV]).save(provider); + + CHEMICAL_RECIPES.recipeBuilder("polychlorinated_biphenyl") + .inputItems(dust, Biphenyl, 2) + .inputFluids(Chlorine.getFluid(4000)) + .outputFluids(PolychlorinatedBiphenyl.getFluid(1000)) + .outputFluids(HydrochloricAcid.getFluid(2000)) + .duration(200).EUt(VH[HV]).save(provider); } } diff --git a/common/src/main/java/com/gregtechceu/gtceu/utils/GradientUtil.java b/common/src/main/java/com/gregtechceu/gtceu/utils/GradientUtil.java index 28f196d667..8a366510bf 100644 --- a/common/src/main/java/com/gregtechceu/gtceu/utils/GradientUtil.java +++ b/common/src/main/java/com/gregtechceu/gtceu/utils/GradientUtil.java @@ -8,6 +8,16 @@ public class GradientUtil { private GradientUtil() { } + public static int argbToAbgr(int argb) { + int r = (argb >> 16) & 0xFF; + int b = argb & 0xFF; + return (argb & 0xFF00FF00) | (b << 16) | r; + } + + public static int argbToRgba(int argb) { + return argb << 8 | (argb >>> 24); + } + public static float[] getRGB(int color) { float r = ((color >> 16) & 0xFF) / 255f; float g = ((color >> 8) & 0xFF) / 255f; @@ -16,6 +26,48 @@ public static float[] getRGB(int color) { return new float[]{r, g, b}; } + public static int multiplyBlendRGBA(int c1, int c2) { + int a1 = (c1 & 0xff); + int r1 = ((c1 & 0xff000000) >> 24); + int g1 = ((c1 & 0xff0000) >> 16); + int b1 = ((c1 & 0xff00) >> 8); + + int a2 = (c2 & 0xff); + int r2 = ((c2 & 0xff000000) >> 24); + int g2 = ((c2 & 0xff0000) >> 16); + int b2 = ((c2 & 0xff00) >> 8); + + int a = (a1 * a2) / 255; + int r = (r1 * r2) / 255; + int g = (g1 * g2) / 255; + int b = (b1 * b2) / 255; + + return a << 24 | r << 16 | g << 8 | b; + } + + public static int blend(int c1, int c2, float ratio) { + if ( ratio > 1f ) ratio = 1f; + else if ( ratio < 0f ) ratio = 0f; + float iRatio = 1.0f - ratio; + + int a1 = (c1 >> 24 & 0xff); + int r1 = ((c1 & 0xff0000) >> 16); + int g1 = ((c1 & 0xff00) >> 8); + int b1 = (c1 & 0xff); + + int a2 = (c2 >> 24 & 0xff); + int r2 = ((c2 & 0xff0000) >> 16); + int g2 = ((c2 & 0xff00) >> 8); + int b2 = (c2 & 0xff); + + int a = (int)((a1 * iRatio) + (a2 * ratio)); + int r = (int)((r1 * iRatio) + (r2 * ratio)); + int g = (int)((g1 * iRatio) + (g2 * ratio)); + int b = (int)((b1 * iRatio) + (b2 * ratio)); + + return a << 24 | r << 16 | g << 8 | b; + } + public static Tuple getGradient(int rgb, int luminanceDifference) { float[] hsl = RGBtoHSL(rgb); float[] upshade = new float[3]; diff --git a/common/src/main/resources/assets/gtceu/models/block/cube_2_layer_tintindex_both.json b/common/src/main/resources/assets/gtceu/models/block/cube_2_layer_tintindex_both.json new file mode 100644 index 0000000000..de14939ca3 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/block/cube_2_layer_tintindex_both.json @@ -0,0 +1,30 @@ +{ + "parent": "block/block", + "elements": [ + { + "from": [ 0, 0, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "texture": "#bot_down", "cullface": "down", "tintindex": 0 }, + "up": { "texture": "#bot_up", "cullface": "up", "tintindex": 0 }, + "north": { "texture": "#bot_north", "cullface": "north", "tintindex": 0 }, + "south": { "texture": "#bot_south", "cullface": "south", "tintindex": 0 }, + "west": { "texture": "#bot_west", "cullface": "west", "tintindex": 0 }, + "east": { "texture": "#bot_east", "cullface": "east", "tintindex": 0 } + } + }, + { + "from": [ 0, 0, 0 ], + "to": [ 16, 16, 16 ], + "shade": false, + "faces": { + "down": { "texture": "#top_down", "cullface": "down", "tintindex": 1 }, + "up": { "texture": "#top_up", "cullface": "up", "tintindex": 1 }, + "north": { "texture": "#top_north", "cullface": "north", "tintindex": 1 }, + "south": { "texture": "#top_south", "cullface": "south", "tintindex": 1 }, + "west": { "texture": "#top_west", "cullface": "west", "tintindex": 1 }, + "east": { "texture": "#top_east", "cullface": "east", "tintindex": 1 } + } + } + ] +} diff --git a/common/src/main/resources/assets/gtceu/models/block/material_sets/dull/block.json b/common/src/main/resources/assets/gtceu/models/block/material_sets/dull/block.json new file mode 100644 index 0000000000..7870d88807 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/block/material_sets/dull/block.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:block/tinted_cube_all_0", + "textures": { + "all": "gtceu:block/material_sets/dull/block" + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/block/material_sets/dull/frame_gt.json b/common/src/main/resources/assets/gtceu/models/block/material_sets/dull/frame_gt.json new file mode 100644 index 0000000000..ea612555f0 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/block/material_sets/dull/frame_gt.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:block/tinted_cube_all_0", + "textures": { + "all": "gtceu:block/material_sets/dull/frame_gt" + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/block/material_sets/dull/raw_ore_block.json b/common/src/main/resources/assets/gtceu/models/block/material_sets/dull/raw_ore_block.json new file mode 100644 index 0000000000..6f1d7ae8a2 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/block/material_sets/dull/raw_ore_block.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:block/tinted_cube_all_0", + "textures": { + "all": "gtceu:block/material_sets/dull/raw_ore_block" + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/block/material_sets/emerald/block.json b/common/src/main/resources/assets/gtceu/models/block/material_sets/emerald/block.json new file mode 100644 index 0000000000..6d62fe228b --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/block/material_sets/emerald/block.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:block/tinted_cube_all_0", + "textures": { + "all": "gtceu:block/material_sets/emerald/block" + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/block/material_sets/fine/block.json b/common/src/main/resources/assets/gtceu/models/block/material_sets/fine/block.json new file mode 100644 index 0000000000..442a04f68f --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/block/material_sets/fine/block.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:block/tinted_cube_all_0", + "textures": { + "all": "gtceu:block/material_sets/fine/block" + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/block/material_sets/glass/block.json b/common/src/main/resources/assets/gtceu/models/block/material_sets/glass/block.json new file mode 100644 index 0000000000..a6ee5ced18 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/block/material_sets/glass/block.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:block/tinted_cube_all_0", + "textures": { + "all": "gtceu:block/material_sets/glass/block" + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/block/material_sets/lapis/block.json b/common/src/main/resources/assets/gtceu/models/block/material_sets/lapis/block.json new file mode 100644 index 0000000000..e6a0fe0418 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/block/material_sets/lapis/block.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:block/tinted_cube_all_0", + "textures": { + "all": "gtceu:block/material_sets/lapis/block" + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/block/material_sets/lignite/block.json b/common/src/main/resources/assets/gtceu/models/block/material_sets/lignite/block.json new file mode 100644 index 0000000000..fbf30f7697 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/block/material_sets/lignite/block.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:block/tinted_cube_all_0", + "textures": { + "all": "gtceu:block/material_sets/lignite/block" + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/block/material_sets/lignite/raw_ore_block.json b/common/src/main/resources/assets/gtceu/models/block/material_sets/lignite/raw_ore_block.json new file mode 100644 index 0000000000..3af3a3c14a --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/block/material_sets/lignite/raw_ore_block.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:block/tinted_cube_all_0", + "textures": { + "all": "gtceu:block/material_sets/lignite/raw_ore_block" + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/block/material_sets/metallic/raw_ore_block.json b/common/src/main/resources/assets/gtceu/models/block/material_sets/metallic/raw_ore_block.json new file mode 100644 index 0000000000..694a7326cd --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/block/material_sets/metallic/raw_ore_block.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:block/tinted_cube_all_0", + "textures": { + "all": "gtceu:block/material_sets/metallic/raw_ore_block" + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/block/material_sets/netherstar/block.json b/common/src/main/resources/assets/gtceu/models/block/material_sets/netherstar/block.json new file mode 100644 index 0000000000..95a50307fb --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/block/material_sets/netherstar/block.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:block/tinted_cube_all_0", + "textures": { + "all": "gtceu:block/material_sets/netherstar/block" + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/block/material_sets/opal/block.json b/common/src/main/resources/assets/gtceu/models/block/material_sets/opal/block.json new file mode 100644 index 0000000000..d07266f25d --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/block/material_sets/opal/block.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:block/tinted_cube_all_0", + "textures": { + "all": "gtceu:block/material_sets/opal/block" + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/block/material_sets/paper/block.json b/common/src/main/resources/assets/gtceu/models/block/material_sets/paper/block.json new file mode 100644 index 0000000000..ca47d20315 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/block/material_sets/paper/block.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:block/tinted_cube_all_0", + "textures": { + "all": "gtceu:block/material_sets/paper/block" + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/block/material_sets/paper/frame_gt.json b/common/src/main/resources/assets/gtceu/models/block/material_sets/paper/frame_gt.json new file mode 100644 index 0000000000..9d7afc56ea --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/block/material_sets/paper/frame_gt.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:block/tinted_cube_all_0", + "textures": { + "all": "gtceu:block/material_sets/paper/frame_gt" + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/block/material_sets/powder/block.json b/common/src/main/resources/assets/gtceu/models/block/material_sets/powder/block.json new file mode 100644 index 0000000000..e4640b0b37 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/block/material_sets/powder/block.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:block/tinted_cube_all_0", + "textures": { + "all": "gtceu:block/material_sets/powder/block" + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/block/material_sets/powder/frame_gt.json b/common/src/main/resources/assets/gtceu/models/block/material_sets/powder/frame_gt.json new file mode 100644 index 0000000000..65b9e86773 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/block/material_sets/powder/frame_gt.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:block/tinted_cube_all_0", + "textures": { + "all": "gtceu:block/material_sets/powder/frame_gt" + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/block/material_sets/quartz/block.json b/common/src/main/resources/assets/gtceu/models/block/material_sets/quartz/block.json new file mode 100644 index 0000000000..40b4e8486e --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/block/material_sets/quartz/block.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:block/tinted_cube_all_0", + "textures": { + "all": "gtceu:block/material_sets/quartz/block" + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/block/material_sets/rough/block.json b/common/src/main/resources/assets/gtceu/models/block/material_sets/rough/block.json new file mode 100644 index 0000000000..0231774f34 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/block/material_sets/rough/block.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:block/tinted_cube_all_0", + "textures": { + "all": "gtceu:block/material_sets/rough/block" + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/block/material_sets/rough/raw_ore_block.json b/common/src/main/resources/assets/gtceu/models/block/material_sets/rough/raw_ore_block.json new file mode 100644 index 0000000000..6c0c5a2c75 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/block/material_sets/rough/raw_ore_block.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:block/tinted_cube_all_0", + "textures": { + "all": "gtceu:block/material_sets/rough/raw_ore_block" + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/block/material_sets/sand/block.json b/common/src/main/resources/assets/gtceu/models/block/material_sets/sand/block.json new file mode 100644 index 0000000000..fe2e0c53a6 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/block/material_sets/sand/block.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:block/tinted_cube_all_0", + "textures": { + "all": "gtceu:block/material_sets/sand/block" + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/block/material_sets/shiny/block.json b/common/src/main/resources/assets/gtceu/models/block/material_sets/shiny/block.json new file mode 100644 index 0000000000..4a0a9c1327 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/block/material_sets/shiny/block.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:block/tinted_cube_all_0", + "textures": { + "all": "gtceu:block/material_sets/shiny/block" + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/block/material_sets/shiny/raw_ore_block.json b/common/src/main/resources/assets/gtceu/models/block/material_sets/shiny/raw_ore_block.json new file mode 100644 index 0000000000..41b838992f --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/block/material_sets/shiny/raw_ore_block.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:block/tinted_cube_all_0", + "textures": { + "all": "gtceu:block/material_sets/shiny/raw_ore_block" + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/block/material_sets/wood/block.json b/common/src/main/resources/assets/gtceu/models/block/material_sets/wood/block.json new file mode 100644 index 0000000000..2c5239d93a --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/block/material_sets/wood/block.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:block/tinted_cube_all_0", + "textures": { + "all": "gtceu:block/material_sets/wood/block" + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/block/tinted_cube_all_0.json b/common/src/main/resources/assets/gtceu/models/block/tinted_cube_all_0.json new file mode 100644 index 0000000000..d9165e3d51 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/block/tinted_cube_all_0.json @@ -0,0 +1,52 @@ +{ + "parent": "block/block", + "textures": { + "particle": "#all" + }, + "elements": [ + { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 16, + 16 + ], + "faces": { + "down": { + "texture": "#all", + "cullface": "down", + "tintindex": 0 + }, + "up": { + "texture": "#all", + "cullface": "up", + "tintindex": 0 + }, + "north": { + "texture": "#all", + "cullface": "north", + "tintindex": 0 + }, + "south": { + "texture": "#all", + "cullface": "south", + "tintindex": 0 + }, + "west": { + "texture": "#all", + "cullface": "west", + "tintindex": 0 + }, + "east": { + "texture": "#all", + "cullface": "east", + "tintindex": 0 + } + } + } + ] +} \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/bolt.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/bolt.json index baefd1744f..f1d45853bb 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/bolt.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/bolt.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/shiny/bolt", "textures": { - "layer1": "gtceu:item/material_sets/bright/bolt_overlay" + "layer2": "gtceu:item/material_sets/bright/bolt_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/dust.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/dust.json_old similarity index 55% rename from common/src/main/resources/assets/gtceu/models/item/material_sets/bright/dust.json rename to common/src/main/resources/assets/gtceu/models/item/material_sets/bright/dust.json_old index 1767cea5ee..556d1f25a3 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/dust.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/dust.json_old @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/shiny/dust", "textures": { - "layer1": "gtceu:item/material_sets/bright/dust_overlay" + "layer2": "gtceu:item/material_sets/bright/dust_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/dust_small.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/dust_small.json_old similarity index 56% rename from common/src/main/resources/assets/gtceu/models/item/material_sets/bright/dust_small.json rename to common/src/main/resources/assets/gtceu/models/item/material_sets/bright/dust_small.json_old index ac934ed977..255c8a68e0 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/dust_small.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/dust_small.json_old @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/shiny/dust_small", "textures": { - "layer1": "gtceu:item/material_sets/bright/dust_small_overlay" + "layer2": "gtceu:item/material_sets/bright/dust_small_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/dust_tiny.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/dust_tiny.json_old similarity index 56% rename from common/src/main/resources/assets/gtceu/models/item/material_sets/bright/dust_tiny.json rename to common/src/main/resources/assets/gtceu/models/item/material_sets/bright/dust_tiny.json_old index 61c7b69999..ac3f02c691 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/dust_tiny.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/dust_tiny.json_old @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/shiny/dust_tiny", "textures": { - "layer1": "gtceu:item/material_sets/bright/dust_tiny_overlay" + "layer2": "gtceu:item/material_sets/bright/dust_tiny_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/foil.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/foil.json new file mode 100644 index 0000000000..6cd2f46317 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/foil.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/shiny/foil", + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/bright/foil_overlay" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/gear.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/gear.json new file mode 100644 index 0000000000..b5c52bef9b --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/gear.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/bright/gear", + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/bright/gear_overlay" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/gear_small.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/gear_small.json new file mode 100644 index 0000000000..e5aab3cf4e --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/gear_small.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/shiny/gear_small", + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/bright/gear_small_overlay" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/ingot.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/ingot.json index 1020a18c02..178a04dbe1 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/ingot.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/ingot.json @@ -1,6 +1,8 @@ { - "parent": "gtceu:item/material_sets/shiny/ingot", + "parent": "item/generated", "textures": { - "layer1": "gtceu:item/material_sets/bright/ingot_overlay" + "layer0": "gtceu:item/material_sets/bright/ingot", + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/bright/ingot_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/ingot_double.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/ingot_double.json index 812eab9a85..53d5565a32 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/ingot_double.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/ingot_double.json @@ -1,6 +1,6 @@ { - "parent": "gtceu:item/material_sets/shiny/ingot_double", + "parent": "gtceu:item/material_sets/bright/ingot", "textures": { - "layer1": "gtceu:item/material_sets/bright/ingot_double_overlay" + "layer3": "gtceu:item/material_sets/dull/ingot_double_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/ingot_hot.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/ingot_hot.json new file mode 100644 index 0000000000..e6be25277b --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/ingot_hot.json @@ -0,0 +1,7 @@ +{ + "parent": "gtceu:item/material_sets/bright/ingot", + "textures": { + "layer3": "gtceu:item/material_sets/dull/ingot_hot_overlay" + } +} + diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/nugget.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/nugget.json index 910b2889f6..a823f13b36 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/nugget.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/nugget.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/shiny/nugget", "textures": { - "layer1": "gtceu:item/material_sets/bright/nugget_overlay" + "layer2": "gtceu:item/material_sets/bright/nugget_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/plate.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/plate.json index 4bcf7e1f7a..dea415a79c 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/plate.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/plate.json @@ -1,6 +1,8 @@ { - "parent": "gtceu:item/material_sets/shiny/plate", + "parent": "item/generated", "textures": { - "layer1": "gtceu:item/material_sets/bright/plate_overlay" + "layer0": "gtceu:item/material_sets/bright/plate", + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/bright/plate_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/plate_dense.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/plate_dense.json index 6a00b057c2..9bddf3b434 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/plate_dense.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/plate_dense.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/shiny/plate_dense", "textures": { - "layer1": "gtceu:item/material_sets/bright/plate_dense_overlay" + "layer2": "gtceu:item/material_sets/bright/plate_dense_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/plate_double.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/plate_double.json index 8c086e0c4c..eb19e04fb7 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/plate_double.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/plate_double.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/shiny/plate_double", "textures": { - "layer1": "gtceu:item/material_sets/bright/plate_double_overlay" + "layer2": "gtceu:item/material_sets/bright/plate_double_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/rod.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/rod.json index cf9e5b321c..846ea867af 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/rod.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/rod.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/shiny/rod", "textures": { - "layer1": "gtceu:item/material_sets/bright/rod_overlay" + "layer2": "gtceu:item/material_sets/bright/rod_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/rod_long.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/rod_long.json index 177289e8cb..807a96a053 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/rod_long.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/rod_long.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/shiny/rod_long", "textures": { - "layer1": "gtceu:item/material_sets/bright/rod_long_overlay" + "layer2": "gtceu:item/material_sets/bright/rod_long_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/rotor.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/rotor.json new file mode 100644 index 0000000000..1a5c69f06c --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/rotor.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/shiny/rotor", + "textures": { + "layer2": "gtceu:item/material_sets/bright/rotor_overlay" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/round.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/round.json index 1a5fba98e5..d2ef2e2191 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/round.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/round.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/shiny/round", "textures": { - "layer1": "gtceu:item/material_sets/bright/round_overlay" + "layer2": "gtceu:item/material_sets/bright/round_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/screw.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/screw.json new file mode 100644 index 0000000000..acf45d8aad --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/screw.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/shiny/screw", + "textures": { + "layer2": "gtceu:item/material_sets/bright/screw_overlay" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/spring.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/spring.json new file mode 100644 index 0000000000..8567147df2 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/spring.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/shiny/spring", + "textures": { + "layer2": "gtceu:item/material_sets/bright/spring_overlay" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/spring_small.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/spring_small.json new file mode 100644 index 0000000000..3d4170fcee --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/spring_small.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/shiny/spring_small", + "textures": { + "layer2": "gtceu:item/material_sets/bright/spring_small_overlay" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/turbine_blade.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/turbine_blade.json new file mode 100644 index 0000000000..ea652a9668 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/turbine_blade.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/shiny/turbine_blade", + "textures": { + "layer2": "gtceu:item/material_sets/bright/turbine_blade_overlay" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/wire_fine.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/wire_fine.json new file mode 100644 index 0000000000..2ffdbdf0ee --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/bright/wire_fine.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/shiny/wire_fine", + "textures": { + "layer2": "gtceu:item/material_sets/bright/wire_fine_overlay" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/certus/gem.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/certus/gem.json index db391164c7..fa33862453 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/certus/gem.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/certus/gem.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/certus/gem", - "layer1": "gtceu:item/material_sets/certus/gem_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/certus/gem_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/diamond/gem.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/diamond/gem.json index 732746d546..3d763109eb 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/diamond/gem.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/diamond/gem.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/diamond/gem" + "layer0": "gtceu:item/material_sets/diamond/gem", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/diamond/raw_ore.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/diamond/raw_ore.json index 0caea56adf..39bc845dac 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/diamond/raw_ore.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/diamond/raw_ore.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/diamond/raw_ore" + "layer0": "gtceu:item/material_sets/diamond/raw_ore", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/bolt.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/bolt.json index 5aa1fd9634..4874e27d5c 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/bolt.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/bolt.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/dull/bolt", - "layer1": "gtceu:item/material_sets/dull/bolt_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/bolt_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/crushed.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/crushed.json index be2934897d..5a87cdcd51 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/crushed.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/crushed.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/dull/crushed", - "layer1": "gtceu:item/material_sets/dull/crushed_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/crushed_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/crushed_purified.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/crushed_purified.json index 1071b76c50..4f00830ffb 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/crushed_purified.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/crushed_purified.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/dull/crushed_purified" + "layer0": "gtceu:item/material_sets/dull/crushed", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/crushed_refined.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/crushed_refined.json index 0cbb29ade3..13bf6d8803 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/crushed_refined.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/crushed_refined.json @@ -1,6 +1,8 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/dull/crushed_refined" + "layer0": "gtceu:item/material_sets/dull/crushed_refined", + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/crushed_refined_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/dust.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/dust.json index e9f3f5478f..f1ea63cbea 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/dust.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/dust.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/dull/dust" + "layer0": "gtceu:item/material_sets/dull/dust", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/dust_impure.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/dust_impure.json index d092d237b0..46faa7946e 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/dust_impure.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/dust_impure.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/dull/dust_impure", - "layer1": "gtceu:item/material_sets/dull/dust_impure_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/dust_impure_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/dust_pure.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/dust_pure.json index 60a6150ced..c102468e8d 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/dust_pure.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/dust_pure.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/dull/dust_pure", - "layer1": "gtceu:item/material_sets/dull/dust_pure_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/dust_pure_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/dust_small.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/dust_small.json index 07442e3347..1b84daffe3 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/dust_small.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/dust_small.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/dull/dust_small" + "layer0": "gtceu:item/material_sets/dull/dust_small", + "layer1":"gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/dust_tiny.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/dust_tiny.json index 5ccc6f7bb7..f717511b40 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/dust_tiny.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/dust_tiny.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/dull/dust_tiny" + "layer0": "gtceu:item/material_sets/dull/dust_tiny", + "layer1":"gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/foil.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/foil.json index b5fc3fea3e..949f486806 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/foil.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/foil.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/dull/foil", - "layer1": "gtceu:item/material_sets/dull/foil_overlay" + "layer1":"gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/foil_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/gear.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/gear.json index ffaa9160de..ca1c3e8172 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/gear.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/gear.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/dull/gear", - "layer1": "gtceu:item/material_sets/dull/gear_overlay" + "layer1":"gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/gear_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/gear_small.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/gear_small.json index ff531aa9b3..66fe0d2f33 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/gear_small.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/gear_small.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/dull/gear_small", - "layer1": "gtceu:item/material_sets/dull/gear_small_overlay" + "layer1":"gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/gear_small_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/gem.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/gem.json index 7130a6a581..7668223862 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/gem.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/gem.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/dull/gem", - "layer1": "gtceu:item/material_sets/dull/gem_overlay" + "layer1":"gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/gem_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/gem_chipped.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/gem_chipped.json index 9f4e54c0b3..d1c550fb6a 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/gem_chipped.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/gem_chipped.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/dull/gem_chipped", - "layer1": "gtceu:item/material_sets/dull/gem_chipped_overlay" + "layer1":"gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/gem_chipped_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/gem_exquisite.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/gem_exquisite.json index adb2724504..66ece0b825 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/gem_exquisite.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/gem_exquisite.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/dull/gem_exquisite", - "layer1": "gtceu:item/material_sets/dull/gem_exquisite_overlay" + "layer1":"gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/gem_exquisite_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/gem_flawed.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/gem_flawed.json index d11db20e72..f6be2e2bc1 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/gem_flawed.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/gem_flawed.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/dull/gem_flawed", - "layer1": "gtceu:item/material_sets/dull/gem_flawed_overlay" + "layer1":"gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/gem_flawed_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/gem_flawless.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/gem_flawless.json index c48f6b1642..0c4e240af1 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/gem_flawless.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/gem_flawless.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/dull/gem_flawless", - "layer1": "gtceu:item/material_sets/dull/gem_flawless_overlay" + "layer1":"gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/gem_flawless_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/ingot.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/ingot.json index 1a582a353b..8a7474a560 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/ingot.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/ingot.json @@ -1,6 +1,8 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/dull/ingot" + "layer0": "gtceu:item/material_sets/dull/ingot", + "layer1":"gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/ingot_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/ingot_double.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/ingot_double.json index 61baecd6b8..a10ca09d78 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/ingot_double.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/ingot_double.json @@ -1,7 +1,6 @@ { - "parent": "item/generated", + "parent": "gtceu:item/material_sets/dull/ingot", "textures": { - "layer0": "gtceu:item/material_sets/dull/ingot_double", - "layer1": "gtceu:item/material_sets/dull/ingot_double_overlay" + "layer3": "gtceu:item/material_sets/dull/ingot_double_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/ingot_hot.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/ingot_hot.json index 3978f678d0..240688d43e 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/ingot_hot.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/ingot_hot.json @@ -1,7 +1,6 @@ { - "parent": "item/generated", + "parent": "gtceu:item/material_sets/dull/ingot", "textures": { - "layer0": "gtceu:item/material_sets/dull/ingot_hot", - "layer1": "gtceu:item/material_sets/dull/ingot_hot_overlay" + "layer3": "gtceu:item/material_sets/dull/ingot_hot_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/lens.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/lens.json index 80c0257bc9..31351ef235 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/lens.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/lens.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/dull/lens", - "layer1": "gtceu:item/material_sets/dull/lens_overlay" + "layer1":"gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/lens_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/nugget.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/nugget.json index f392bbbef6..8eca54339e 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/nugget.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/nugget.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/dull/nugget" + "layer0": "gtceu:item/material_sets/dull/nugget", + "layer1":"gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/plate.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/plate.json index 3b821fdc1e..308257b240 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/plate.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/plate.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/dull/plate", - "layer1": "gtceu:item/material_sets/dull/plate_overlay" + "layer1":"gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/plate_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/plate_dense.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/plate_dense.json index 239a11cccc..0d7a1f07a0 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/plate_dense.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/plate_dense.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/dull/plate_dense", - "layer1": "gtceu:item/material_sets/dull/plate_dense_overlay" + "layer1":"gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/plate_dense_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/plate_double.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/plate_double.json index beb53c1ebe..80d9894510 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/plate_double.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/plate_double.json @@ -1,7 +1,6 @@ { - "parent": "item/generated", + "parent": "gtceu:item/material_sets/dull/plate", "textures": { - "layer0": "gtceu:item/material_sets/dull/plate_double", - "layer1": "gtceu:item/material_sets/dull/plate_double_overlay" + "layer3": "gtceu:item/material_sets/dull/plate_double_overlay" } } \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/raw_ore.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/raw_ore.json index aa9a257804..bfa711b824 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/raw_ore.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/raw_ore.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/dull/raw_ore" + "layer0": "gtceu:item/material_sets/dull/raw_ore", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/ring.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/ring.json index d355a6c4b5..1ffb357934 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/ring.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/ring.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/dull/ring", - "layer1": "gtceu:item/material_sets/dull/ring_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/ring_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/rod.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/rod.json index deca8d2cb5..82f92f3246 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/rod.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/rod.json @@ -1,6 +1,7 @@ { "parent": "item/handheld", "textures": { - "layer0": "gtceu:item/material_sets/dull/rod" + "layer0": "gtceu:item/material_sets/dull/rod", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/rod_long.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/rod_long.json index f06fe00981..7347127f24 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/rod_long.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/rod_long.json @@ -1,6 +1,7 @@ { "parent": "item/handheld", "textures": { - "layer0": "gtceu:item/material_sets/dull/rod_long" + "layer0": "gtceu:item/material_sets/dull/rod_long", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/rotor.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/rotor.json index cb4a08d1f0..925a9e059d 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/rotor.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/rotor.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/dull/rotor", - "layer1": "gtceu:item/material_sets/dull/rotor_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/rotor_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/round.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/round.json index 5e38b7b1fb..4dab21f32f 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/round.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/round.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/dull/round" + "layer0": "gtceu:item/material_sets/dull/round", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/screw.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/screw.json index cc64c03c92..db18c6b01c 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/screw.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/screw.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/dull/screw", - "layer1": "gtceu:item/material_sets/dull/screw_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/screw_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/spring.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/spring.json index 745360b564..67f4281493 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/spring.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/spring.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/dull/spring", - "layer1": "gtceu:item/material_sets/dull/spring_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/spring_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/spring_small.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/spring_small.json index 424ae60a0a..e32983d7a1 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/spring_small.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/spring_small.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/dull/spring_small", - "layer1": "gtceu:item/material_sets/dull/spring_small_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/spring_small_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/tool_head_buzz_saw.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/tool_head_buzz_saw.json index 4e81044424..2f0b0413b7 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/tool_head_buzz_saw.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/tool_head_buzz_saw.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/dull/tool_head_buzz_saw", - "layer1": "gtceu:item/material_sets/dull/tool_head_buzz_saw_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/tool_head_buzz_saw_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/tool_head_chainsaw.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/tool_head_chainsaw.json index ce1b4f6c8c..13eb2e4552 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/tool_head_chainsaw.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/tool_head_chainsaw.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/dull/tool_head_chainsaw" + "layer0": "gtceu:item/material_sets/dull/tool_head_chainsaw", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/tool_head_drill.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/tool_head_drill.json index eb2bbaada9..24cb4e07b5 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/tool_head_drill.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/tool_head_drill.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/dull/tool_head_drill" + "layer0": "gtceu:item/material_sets/dull/tool_head_drill", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/tool_head_screwdriver.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/tool_head_screwdriver.json index 5e1efb69a0..860428f302 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/tool_head_screwdriver.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/tool_head_screwdriver.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/dull/tool_head_screwdriver", - "layer1": "gtceu:item/material_sets/dull/tool_head_screwdriver_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/tool_head_screwdriver_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/tool_head_wrench.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/tool_head_wrench.json index 846c509edb..b3e9a7b948 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/tool_head_wrench.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/tool_head_wrench.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/dull/tool_head_wrench", - "layer1": "gtceu:item/material_sets/dull/tool_head_wrench_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/tool_head_wrench_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/turbine_blade.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/turbine_blade.json index 626ac133f7..d74db505fb 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/turbine_blade.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/turbine_blade.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/dull/turbine_blade", - "layer1": "gtceu:item/material_sets/dull/turbine_blade_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/turbine_blade_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/wire_fine.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/wire_fine.json index 4abd8926c7..bad0ffb1e7 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/wire_fine.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/dull/wire_fine.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/dull/wire_fine", - "layer1": "gtceu:item/material_sets/dull/wire_fine_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/wire_fine_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/emerald/gem.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/emerald/gem.json index 14120db704..ffd7639d99 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/emerald/gem.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/emerald/gem.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/emerald/gem", - "layer1": "gtceu:item/material_sets/emerald/gem_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/emerald/gem_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/dust.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/dust.json index 0d1f0e66f8..5f4c454c8f 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/dust.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/dust.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/fine/dust" + "layer0": "gtceu:item/material_sets/fine/dust", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/dust_impure.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/dust_impure.json index 96ff0a4349..6974aad84b 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/dust_impure.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/dust_impure.json @@ -1,6 +1,7 @@ { "parent": "gtceu:item/material_sets/dull/dust_impure", "textures": { - "layer0": "gtceu:item/material_sets/fine/dust" + "layer0": "gtceu:item/material_sets/fine/dust", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/dust_pure.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/dust_pure.json index cef88114fc..f81bf929bc 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/dust_pure.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/dust_pure.json @@ -1,6 +1,7 @@ { "parent": "gtceu:item/material_sets/dull/dust_pure", "textures": { - "layer0": "gtceu:item/material_sets/fine/dust" + "layer0": "gtceu:item/material_sets/fine/dust", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/dust_small.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/dust_small.json index 2ad2c17bb6..e1ec92ef29 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/dust_small.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/dust_small.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/fine/dust_small" + "layer0": "gtceu:item/material_sets/fine/dust_small", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/dust_tiny.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/dust_tiny.json index b101260188..8c70984cb3 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/dust_tiny.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/dust_tiny.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/fine/dust_tiny" + "layer0": "gtceu:item/material_sets/fine/dust_tiny", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/gem.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/gem.json deleted file mode 100644 index 9d3a6bda29..0000000000 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/gem.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "gtceu:item/material_sets/fine/gem", - "layer1": "gtceu:item/material_sets/fine/gem_overlay" - } -} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/gem_chipped.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/gem_chipped.json deleted file mode 100644 index a7fffb3d0a..0000000000 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/gem_chipped.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "gtceu:item/material_sets/fine/gem_chipped", - "layer1": "gtceu:item/material_sets/fine/gem_chipped_overlay" - } -} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/gem_flawed.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/gem_flawed.json deleted file mode 100644 index 1755ef432a..0000000000 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/gem_flawed.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "gtceu:item/material_sets/fine/gem_flawed", - "layer1": "gtceu:item/material_sets/fine/gem_flawed_overlay" - } -} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/raw_ore.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/raw_ore.json index 7b7a3d6534..c795e6b909 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/raw_ore.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/fine/raw_ore.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/fine/raw_ore" + "layer0": "gtceu:item/material_sets/fine/raw_ore", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/flint/gem.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/flint/gem.json index 3635563b38..6f3b10fa62 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/flint/gem.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/flint/gem.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/flint/gem" + "layer0": "gtceu:item/material_sets/flint/gem", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/gem_horizontal/gem.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/gem_horizontal/gem.json index 2b2e4dc2d3..9d4f7447f4 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/gem_horizontal/gem.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/gem_horizontal/gem.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/gem_horizontal/gem", - "layer1": "gtceu:item/material_sets/gem_horizontal/gem_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/gem_horizontal/gem_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/gem_vertical/gem.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/gem_vertical/gem.json index 544f1817d8..2d420456f5 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/gem_vertical/gem.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/gem_vertical/gem.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/gem_vertical/gem", - "layer1": "gtceu:item/material_sets/gem_vertical/gem_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/gem_vertical/gem_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/lapis/gem.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/lapis/gem.json index 6a88011724..29e5bd9308 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/lapis/gem.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/lapis/gem.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/lapis/gem" + "layer0": "gtceu:item/material_sets/lapis/gem", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/lignite/gem.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/lignite/gem.json index 4b38549616..4d4c4b585a 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/lignite/gem.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/lignite/gem.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/lignite/gem" + "layer0": "gtceu:item/material_sets/lignite/gem", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/bolt.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/bolt.json index 27c1d54ebc..e4dff1b89f 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/bolt.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/bolt.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/metallic/bolt", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/crushed.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/crushed.json index 9a9ab8a545..aa09ced82d 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/crushed.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/crushed.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/crushed", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/crushed_overlay" + "layer2": "gtceu:item/material_sets/magnetic/crushed_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/crushed_purified.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/crushed_purified.json index 1c9a072858..42c617366a 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/crushed_purified.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/crushed_purified.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/crushed_purified", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/crushed_refined.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/crushed_refined.json index fcc665b3a7..e67257dd6b 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/crushed_refined.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/crushed_refined.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/crushed_refined", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/dust.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/dust.json index 2c5e35e8fc..68ba560c53 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/dust.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/dust.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/metallic/dust", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/dust_impure.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/dust_impure.json index a119e3dadb..7e46c57276 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/dust_impure.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/dust_impure.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/metallic/dust_impure", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/dust_impure_overlay" + "layer2": "gtceu:item/material_sets/magnetic/dust_impure_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/dust_pure.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/dust_pure.json index 41191fb594..e8e26b5690 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/dust_pure.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/dust_pure.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/metallic/dust_pure", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/dust_pure_overlay" + "layer2": "gtceu:item/material_sets/magnetic/dust_pure_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/dust_small.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/dust_small.json index 10992a180f..9fd31ada76 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/dust_small.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/dust_small.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/metallic/dust_small", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/dust_tiny.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/dust_tiny.json index d238585ba3..a4a22f1dd6 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/dust_tiny.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/dust_tiny.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/metallic/dust_tiny", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/foil.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/foil.json index 3dc08a7ecf..fd56accfd9 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/foil.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/foil.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/foil", "textures": { - "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer3": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/gear.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/gear.json index d29acb3d58..8282c9870f 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/gear.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/gear.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/gear", "textures": { - "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer3": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/gear_small.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/gear_small.json index 02160bb557..20060537ba 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/gear_small.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/gear_small.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/gear_small", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/gem.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/gem.json index e0bd117609..e5c32a857e 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/gem.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/gem.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/gem", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/gem_chipped.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/gem_chipped.json index a3872d7ad4..2c2e82035a 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/gem_chipped.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/gem_chipped.json @@ -1,7 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/gem_chipped", "textures": { - "layer0": "gtceu:item/material_sets/magnetic/gem_chipped", - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer3": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/gem_exquisite.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/gem_exquisite.json index fd491e42cc..1389cb7551 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/gem_exquisite.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/gem_exquisite.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/gem_exquisite", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer3": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/gem_flawed.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/gem_flawed.json index 88624e68b7..02bac3ab69 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/gem_flawed.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/gem_flawed.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/gem_flawed", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer3": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/gem_flawless.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/gem_flawless.json index 6131cc86c2..0a138014b3 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/gem_flawless.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/gem_flawless.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/gem_flawless", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer3": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/ingot.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/ingot.json index 69b0ec8b65..1723f14349 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/ingot.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/ingot.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/metallic/ingot", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer3": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/ingot_double.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/ingot_double.json index e5fd870b09..c52d4726fa 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/ingot_double.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/ingot_double.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/metallic/ingot_double", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/lens.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/lens.json index c2e22c4922..7d639dc01e 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/lens.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/lens.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/lens", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/lens_overlay" + "layer3": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/nugget.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/nugget.json index e7f6c9083b..815a8a0dde 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/nugget.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/nugget.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/metallic/nugget", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/plate.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/plate.json index df52e3509c..f5e31da4ad 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/plate.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/plate.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/metallic/plate", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer3": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/plate_dense.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/plate_dense.json index 56f71fee33..39ccc74c55 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/plate_dense.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/plate_dense.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/metallic/plate_dense", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/plate_double.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/plate_double.json index 14bf2fb45d..7c8573b187 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/plate_double.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/plate_double.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/metallic/plate_double", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer4": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/rod.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/rod.json index 0e42446535..dd9b9ec435 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/rod.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/rod.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/metallic/rod", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/rod_long.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/rod_long.json index 2182e33003..e2f1e93d6a 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/rod_long.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/rod_long.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/metallic/rod_long", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/rotor.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/rotor.json index 9a10f64832..2a26332a3d 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/rotor.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/rotor.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/rotor", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/round.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/round.json index 38112c25a7..6fdb95b5ea 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/round.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/round.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/metallic/round", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/screw.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/screw.json index 68213de78d..1d34d13fd1 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/screw.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/screw.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/metallic/screw", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer3": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/spring.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/spring.json index fda495884c..63d80b22b2 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/spring.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/spring.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/spring", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/spring_small.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/spring_small.json index 9bdbfb84c4..aa256d4b02 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/spring_small.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/spring_small.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/spring_small", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_axe.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_axe.json index 3d3b9f320e..fe08a252e0 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_axe.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_axe.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/tool_head_axe", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_buzz_saw.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_buzz_saw.json index f1ec83e8fe..d339aecf51 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_buzz_saw.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_buzz_saw.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/tool_head_buzz_saw", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_chainsaw.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_chainsaw.json index 946fe6501c..a06c4e5fb1 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_chainsaw.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_chainsaw.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/tool_head_chainsaw", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_drill.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_drill.json index 9da3f633ca..ff302c9589 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_drill.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_drill.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/tool_head_drill", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_file.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_file.json index d96b6541a3..d61425585e 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_file.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_file.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/tool_head_file", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_hammer.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_hammer.json index 92e5d4387d..9dda2bddd3 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_hammer.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_hammer.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/tool_head_hammer", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_hoe.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_hoe.json index b1e574f67e..10ed083656 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_hoe.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_hoe.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/tool_head_hoe", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_mallet.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_mallet.json index 11392e26a3..0f5775bd68 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_mallet.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_mallet.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/tool_head_mallet", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_pickaxe.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_pickaxe.json index f7e8361466..d3997efc4a 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_pickaxe.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_pickaxe.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/tool_head_pickaxe", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_saw.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_saw.json index fe813e6ef3..d3b7375031 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_saw.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_saw.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/tool_head_saw", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_screwdriver.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_screwdriver.json index 417aad60fc..8fb033b024 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_screwdriver.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_screwdriver.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/tool_head_screwdriver", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_scythe.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_scythe.json index 094c3a3590..fd7a08e4c9 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_scythe.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_scythe.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/tool_head_scythe", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_shovel.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_shovel.json index c8d6ad924f..f9bed2b838 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_shovel.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_shovel.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/tool_head_shovel", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_sword.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_sword.json index 09d41fd99c..10c6c2daeb 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_sword.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_sword.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/tool_head_sword", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_wrench.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_wrench.json index 701db4d9d7..3a1f010a55 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_wrench.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/tool_head_wrench.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/tool_head_wrench", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/turbine_blade.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/turbine_blade.json index dffd60beee..1d7cd492ce 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/turbine_blade.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/turbine_blade.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/turbine_blade", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/magnetic_overlay" + "layer2": "gtceu:item/material_sets/magnetic/magnetic_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/wire_fine.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/wire_fine.json index dff539b130..a4ecb2face 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/wire_fine.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/magnetic/wire_fine.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/dull/wire_fine", "textures": { - "layer1": "gtceu:item/material_sets/magnetic/wire_fine_overlay" + "layer2": "gtceu:item/material_sets/magnetic/wire_fine_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/bolt.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/bolt.json index 69dda457ff..bcfac02418 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/bolt.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/bolt.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/metallic/bolt" + "layer0": "gtceu:item/material_sets/metallic/bolt", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/dust.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/dust.json index 988d40882d..64e0c21f12 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/dust.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/dust.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/metallic/dust" + "layer0": "gtceu:item/material_sets/metallic/dust", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/dust_impure.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/dust_impure.json index 2e6583ba91..506eaceb59 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/dust_impure.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/dust_impure.json @@ -1,6 +1,7 @@ { "parent": "gtceu:item/material_sets/dull/dust_impure", "textures": { - "layer0": "gtceu:item/material_sets/metallic/dust" + "layer0": "gtceu:item/material_sets/metallic/dust", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/dust_pure.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/dust_pure.json index ffe66e687c..f716d67d97 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/dust_pure.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/dust_pure.json @@ -1,6 +1,7 @@ { "parent": "gtceu:item/material_sets/dull/dust_pure", "textures": { - "layer0": "gtceu:item/material_sets/metallic/dust" + "layer0": "gtceu:item/material_sets/metallic/dust", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/dust_small.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/dust_small.json index 481b9f9964..ea45465d4a 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/dust_small.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/dust_small.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/metallic/dust_small" + "layer0": "gtceu:item/material_sets/metallic/dust_small", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/dust_tiny.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/dust_tiny.json index 88ede58468..b0b240e60d 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/dust_tiny.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/dust_tiny.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/metallic/dust_tiny" + "layer0": "gtceu:item/material_sets/metallic/dust_tiny", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/ingot.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/ingot.json index 0f7e3f158d..374a263f2c 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/ingot.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/ingot.json @@ -1,6 +1,8 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/metallic/ingot" + "layer0": "gtceu:item/material_sets/metallic/ingot", + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/metallic/ingot_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/ingot_double.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/ingot_double.json index 5551dce51e..c94b464171 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/ingot_double.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/ingot_double.json @@ -1,6 +1,6 @@ { - "parent": "item/generated", + "parent": "gtceu:item/material_sets/metallic/ingot", "textures": { - "layer0": "gtceu:item/material_sets/metallic/ingot_double" + "layer3": "gtceu:item/material_sets/metallic/ingot_double_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/ingot_hot.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/ingot_hot.json new file mode 100644 index 0000000000..ac0a761f0c --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/ingot_hot.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/metallic/ingot", + "textures": { + "layer3": "gtceu:item/material_sets/dull/ingot_hot_overlay" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/nugget.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/nugget.json index 5c901a76b2..2fba668d01 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/nugget.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/nugget.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/metallic/nugget" + "layer0": "gtceu:item/material_sets/metallic/nugget", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/plate.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/plate.json index de42fe05b0..9f0155a9ae 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/plate.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/plate.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/metallic/plate", - "layer1": "gtceu:item/material_sets/shiny/plate_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/metallic/plate_overlay" } } \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/plate_dense.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/plate_dense.json index f3fa0c9b5e..f1d411605a 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/plate_dense.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/plate_dense.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/metallic/plate_dense" + "layer0": "gtceu:item/material_sets/metallic/plate_dense", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/plate_double.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/plate_double.json index 79c386c329..44d58ce010 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/plate_double.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/plate_double.json @@ -1,7 +1,6 @@ { - "parent": "item/generated", + "parent": "gtceu:item/material_sets/metallic/plate", "textures": { - "layer0": "gtceu:item/material_sets/metallic/plate_double", - "layer1": "gtceu:item/material_sets/metallic/plate_double_overlay" + "layer3": "gtceu:item/material_sets/metallic/plate_double_overlay" } } \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/raw_ore.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/raw_ore.json index 1372e9e8e4..81832d4897 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/raw_ore.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/raw_ore.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/metallic/raw_ore" + "layer0": "gtceu:item/material_sets/metallic/raw_ore", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/rod.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/rod.json index 0a67d63b5d..919a539e39 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/rod.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/rod.json @@ -1,6 +1,7 @@ { "parent": "item/handheld", "textures": { - "layer0": "gtceu:item/material_sets/metallic/rod" + "layer0": "gtceu:item/material_sets/metallic/rod", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/rod_long.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/rod_long.json index 6022768dc1..55d9137730 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/rod_long.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/rod_long.json @@ -1,6 +1,7 @@ { "parent": "item/handheld", "textures": { - "layer0": "gtceu:item/material_sets/metallic/rod_long" + "layer0": "gtceu:item/material_sets/metallic/rod_long", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/round.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/round.json index b93c0c9ebe..f0775a2107 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/round.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/round.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/metallic/round" + "layer0": "gtceu:item/material_sets/metallic/round", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/screw.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/screw.json index d4219170ca..b1be56343f 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/screw.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/metallic/screw.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/metallic/screw", - "layer1": "gtceu:item/material_sets/shiny/screw_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/shiny/screw_overlay" } } \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/netherstar/gem.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/netherstar/gem.json index 3a443470cb..8e723870e6 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/netherstar/gem.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/netherstar/gem.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/netherstar/gem" + "layer0": "gtceu:item/material_sets/netherstar/gem", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/opal/gem.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/opal/gem.json index f5df71d205..9cdeceba17 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/opal/gem.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/opal/gem.json @@ -1,6 +1,6 @@ { "parent": "gtceu:item/material_sets/ruby/gem", "textures": { - "layer1": "gtceu:item/material_sets/opal/gem_overlay" + "layer2": "gtceu:item/material_sets/opal/gem_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/quartz/dust.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/quartz/dust.json index 57e8c2cedb..7cdedabdee 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/quartz/dust.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/quartz/dust.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/quartz/dust" + "layer0": "gtceu:item/material_sets/quartz/dust", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/quartz/dust_impure.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/quartz/dust_impure.json index 67a7c54015..eb95221f3e 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/quartz/dust_impure.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/quartz/dust_impure.json @@ -1,6 +1,7 @@ { "parent": "gtceu:item/material_sets/rough/dust_impure", "textures": { - "layer0": "gtceu:item/material_sets/quartz/dust" + "layer0": "gtceu:item/material_sets/quartz/dust", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/quartz/dust_pure.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/quartz/dust_pure.json index 9fb4339d3c..5402ad4e29 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/quartz/dust_pure.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/quartz/dust_pure.json @@ -1,6 +1,7 @@ { "parent": "gtceu:item/material_sets/rough/dust_pure", "textures": { - "layer0": "gtceu:item/material_sets/quartz/dust" + "layer0": "gtceu:item/material_sets/quartz/dust", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/quartz/dust_small.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/quartz/dust_small.json index f7f86dfddf..302eca01e5 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/quartz/dust_small.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/quartz/dust_small.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/quartz/dust_small" + "layer0": "gtceu:item/material_sets/quartz/dust_small", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/quartz/dust_tiny.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/quartz/dust_tiny.json index 353eea11b9..96d88dd52d 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/quartz/dust_tiny.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/quartz/dust_tiny.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/quartz/dust_tiny" + "layer0": "gtceu:item/material_sets/quartz/dust_tiny", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/quartz/gem.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/quartz/gem.json index fcf8b5d137..759eb55efd 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/quartz/gem.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/quartz/gem.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/quartz/gem" + "layer0": "gtceu:item/material_sets/quartz/gem", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/bolt.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/bolt.json new file mode 100644 index 0000000000..bee1f15258 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/bolt.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/metallic/bolt", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/crushed.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/crushed.json new file mode 100644 index 0000000000..f076aabc54 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/crushed.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/dull/crushed", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/crushed_purified.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/crushed_purified.json new file mode 100644 index 0000000000..9ff9efab1c --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/crushed_purified.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/dull/crushed_purified", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/crushed_refined.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/crushed_refined.json new file mode 100644 index 0000000000..04139776a6 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/crushed_refined.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/dull/crushed_refined", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/dust.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/dust.json new file mode 100644 index 0000000000..a397f744f0 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/dust.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/metallic/dust", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/dust_impure.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/dust_impure.json new file mode 100644 index 0000000000..d626fb4dee --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/dust_impure.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/metallic/dust_impure", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/dust_pure.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/dust_pure.json new file mode 100644 index 0000000000..34ecb594bb --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/dust_pure.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/metallic/dust_pure", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/dust_small.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/dust_small.json new file mode 100644 index 0000000000..6e9abb9bdb --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/dust_small.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/metallic/dust_small", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/dust_tiny.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/dust_tiny.json new file mode 100644 index 0000000000..c584dfacba --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/dust_tiny.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/metallic/dust_tiny", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/foil.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/foil.json new file mode 100644 index 0000000000..7fad811c80 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/foil.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/dull/foil", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/gear.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/gear.json new file mode 100644 index 0000000000..6d9d805f96 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/gear.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/metallic/gear", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/gear_small.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/gear_small.json new file mode 100644 index 0000000000..0326a83dc2 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/gear_small.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/metallic/gear_small", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/gem.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/gem.json new file mode 100644 index 0000000000..496730128c --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/gem.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/dull/gem", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/gem_chipped.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/gem_chipped.json new file mode 100644 index 0000000000..6bda605697 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/gem_chipped.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/dull/gem_chipped", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/gem_exquisite.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/gem_exquisite.json new file mode 100644 index 0000000000..15fa22f992 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/gem_exquisite.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/dull/gem_exquisite", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/gem_flawed.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/gem_flawed.json new file mode 100644 index 0000000000..4da8976b6c --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/gem_flawed.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/dull/gem_flawed", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/gem_flawless.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/gem_flawless.json new file mode 100644 index 0000000000..1a16cbcbe3 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/gem_flawless.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/dull/gem_flawless", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/ingot.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/ingot.json new file mode 100644 index 0000000000..cd2b981e79 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/ingot.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/metallic/ingot", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/ingot_double.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/ingot_double.json new file mode 100644 index 0000000000..323c867bb5 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/ingot_double.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/metallic/ingot_double", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/ingot_hot.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/ingot_hot.json new file mode 100644 index 0000000000..26502f1e09 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/ingot_hot.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/dull/ingot_hot", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/lens.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/lens.json new file mode 100644 index 0000000000..16b9897cf9 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/lens.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/dull/lens", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/nugget.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/nugget.json new file mode 100644 index 0000000000..d3f9aa62ab --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/nugget.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/metallic/nugget", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/plate.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/plate.json new file mode 100644 index 0000000000..1d5e06f6c3 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/plate.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/metallic/plate", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/plate_dense.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/plate_dense.json new file mode 100644 index 0000000000..4484ac364f --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/plate_dense.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/metallic/plate_dense", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/plate_double.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/plate_double.json new file mode 100644 index 0000000000..ac37c13a8b --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/plate_double.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/metallic/plate_double", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/raw_ore.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/raw_ore.json new file mode 100644 index 0000000000..ebe6141c23 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/raw_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/metallic/raw_ore", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/ring.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/ring.json new file mode 100644 index 0000000000..4d62bc2734 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/ring.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/metallic/ring", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/rod.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/rod.json new file mode 100644 index 0000000000..a1c8c0f9f3 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/rod.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/metallic/rod", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/rod_long.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/rod_long.json new file mode 100644 index 0000000000..17483ac0be --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/rod_long.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/metallic/rod_long", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/rotor.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/rotor.json new file mode 100644 index 0000000000..27ee6c74b9 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/rotor.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/dull/rotor", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/round.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/round.json new file mode 100644 index 0000000000..2f32883346 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/round.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/metallic/round", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/screw.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/screw.json new file mode 100644 index 0000000000..8a6470cea5 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/screw.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/metallic/screw", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/spring.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/spring.json new file mode 100644 index 0000000000..5e35640537 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/spring.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/dull/spring", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/spring_small.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/spring_small.json new file mode 100644 index 0000000000..7eebb5a6c5 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/spring_small.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/dull/spring_small", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/tool_head_buzz_saw.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/tool_head_buzz_saw.json new file mode 100644 index 0000000000..b7df0720c3 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/tool_head_buzz_saw.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/dull/tool_head_buzz_saw", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/tool_head_chainsaw.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/tool_head_chainsaw.json new file mode 100644 index 0000000000..575c7f5361 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/tool_head_chainsaw.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/dull/tool_head_chainsaw", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/tool_head_drill.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/tool_head_drill.json new file mode 100644 index 0000000000..454ba46e7c --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/tool_head_drill.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/dull/tool_head_drill", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/tool_head_screwdriver.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/tool_head_screwdriver.json new file mode 100644 index 0000000000..85bd317f13 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/tool_head_screwdriver.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/dull/tool_head_screwdriver", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/tool_head_wrench.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/tool_head_wrench.json new file mode 100644 index 0000000000..2c6a0472e3 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/tool_head_wrench.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/dull/tool_head_wrench", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/turbine_blade.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/turbine_blade.json new file mode 100644 index 0000000000..397d8d7ab5 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/turbine_blade.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/dull/turbine_blade", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/wire_fine.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/wire_fine.json new file mode 100644 index 0000000000..66d0441f8d --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/radioactive/wire_fine.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/dull/wire_fine", + "textures": { + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/dust.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/dust.json index 411c37097c..0ea75fbcc9 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/dust.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/dust.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/rough/dust" + "layer0": "gtceu:item/material_sets/rough/dust", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/dust_impure.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/dust_impure.json index 3f0e6f04b0..b1a93d5500 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/dust_impure.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/dust_impure.json @@ -1,6 +1,7 @@ { "parent": "gtceu:item/material_sets/fine/dust_impure", "textures": { - "layer0": "gtceu:item/material_sets/rough/dust" + "layer0": "gtceu:item/material_sets/rough/dust", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/dust_pure.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/dust_pure.json index 14a2daaac5..f8acfcdfd1 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/dust_pure.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/dust_pure.json @@ -1,6 +1,7 @@ { "parent": "gtceu:item/material_sets/fine/dust_pure", "textures": { - "layer0": "gtceu:item/material_sets/rough/dust" + "layer0": "gtceu:item/material_sets/rough/dust", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/dust_small.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/dust_small.json index 5bd4e13216..8c2a453f32 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/dust_small.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/dust_small.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/rough/dust_small" + "layer0": "gtceu:item/material_sets/rough/dust_small", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/dust_tiny.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/dust_tiny.json index 8e08623a08..7745501921 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/dust_tiny.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/dust_tiny.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/rough/dust_tiny" + "layer0": "gtceu:item/material_sets/rough/dust_tiny", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/gear.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/gear.json index 96c49780ea..17bb682d70 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/gear.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/gear.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/rough/gear" + "layer0": "gtceu:item/material_sets/rough/gear", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/gear_small.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/gear_small.json new file mode 100644 index 0000000000..6de88ff5f4 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/gear_small.json @@ -0,0 +1,7 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/rough/gear_small", + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/ingot.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/ingot.json new file mode 100644 index 0000000000..c96d2cfce4 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/ingot.json @@ -0,0 +1,7 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/rough/ingot", + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/plate.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/plate.json index 6e8dd42f5c..e0c50bece6 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/plate.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/plate.json @@ -1,6 +1,8 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/rough/plate" + "layer0": "gtceu:item/material_sets/rough/plate", + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/rough/plate_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/plate_dense.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/plate_dense.json index 4b6ac55c84..4ecb4080bd 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/plate_dense.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/plate_dense.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/rough/plate_dense" + "layer0": "gtceu:item/material_sets/rough/plate_dense", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/plate_double.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/plate_double.json index 469772b713..e04d4b4a1a 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/plate_double.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/rough/plate_double.json @@ -1,6 +1,6 @@ { - "parent": "item/generated", + "parent": "gtceu:item/material_sets/rough/plate", "textures": { - "layer0": "gtceu:item/material_sets/rough/plate_double" + "layer3": "gtceu:item/material_sets/dull/plate_double_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/ruby/gem.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/ruby/gem.json index c9efa44d1f..2f302c548b 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/ruby/gem.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/ruby/gem.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/ruby/gem" + "layer0": "gtceu:item/material_sets/ruby/gem", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/sand/crushed.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/sand/crushed.json index afdab23a7f..491cab0936 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/sand/crushed.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/sand/crushed.json @@ -1,7 +1,8 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/sand/crushed", - "layer1": "gtceu:item/material_sets/sand/crushed_overlay" + "layer0": "gtceu:item/material_sets/dull/crushed", + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/sand/crushed_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/sand/crushed_purified.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/sand/crushed_purified.json index c6053f9068..578abbfc93 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/sand/crushed_purified.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/sand/crushed_purified.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/sand/crushed_purified" + "layer0": "gtceu:item/material_sets/dull/crushed_purified", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/sand/crushed_refined.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/sand/crushed_refined.json deleted file mode 100644 index 9326cd51f3..0000000000 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/sand/crushed_refined.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "gtceu:item/material_sets/sand/crushed_refined" - } -} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/sand/dust.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/sand/dust.json index 35f7f6c73c..068c8a3833 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/sand/dust.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/sand/dust.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/sand/dust", - "layer1": "gtceu:item/material_sets/sand/dust_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/sand/dust_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/sand/dust_impure.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/sand/dust_impure.json index daafc738f0..c2a56a728f 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/sand/dust_impure.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/sand/dust_impure.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/sand/dust_impure", - "layer1": "gtceu:item/material_sets/sand/dust_impure_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/sand/dust_impure_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/sand/dust_pure.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/sand/dust_pure.json index a83ca109d7..64be07a70f 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/sand/dust_pure.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/sand/dust_pure.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/sand/dust_pure", - "layer1": "gtceu:item/material_sets/sand/dust_pure_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/sand/dust_pure_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/sand/dust_small.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/sand/dust_small.json index 736d5bdee2..5b362c68f7 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/sand/dust_small.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/sand/dust_small.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/sand/dust_small", - "layer1": "gtceu:item/material_sets/sand/dust_small_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/sand/dust_small_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/sand/dust_tiny.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/sand/dust_tiny.json index f250e1ab96..37d820d73b 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/sand/dust_tiny.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/sand/dust_tiny.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/sand/dust_tiny", - "layer1": "gtceu:item/material_sets/sand/dust_tiny_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/sand/dust_tiny_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/bolt.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/bolt.json index 53458e6ef4..0a3fb94147 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/bolt.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/bolt.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/shiny/bolt", - "layer1": "gtceu:item/material_sets/shiny/bolt_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/shiny/bolt_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/crushed_refined.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/crushed_refined.json new file mode 100644 index 0000000000..b1abb0e026 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/crushed_refined.json @@ -0,0 +1,9 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/dull/crushed_refined", + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/shiny/crushed_refined_overlay", + "layer3": "gtceu:item/material_sets/dull/crushed_refined_overlay" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/dust.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/dust.json index 8c29ade669..7945df7d7c 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/dust.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/dust.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/shiny/dust", - "layer1": "gtceu:item/material_sets/shiny/dust_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/shiny/dust_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/dust_impure.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/dust_impure.json index 730d5bda2e..c8d058efc0 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/dust_impure.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/dust_impure.json @@ -1,6 +1,7 @@ { "parent": "gtceu:item/material_sets/dull/dust_impure", "textures": { - "layer0": "gtceu:item/material_sets/shiny/dust" + "layer0": "gtceu:item/material_sets/shiny/dust", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/dust_pure.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/dust_pure.json index 5e81414981..54491d6db3 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/dust_pure.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/dust_pure.json @@ -1,6 +1,9 @@ { - "parent": "gtceu:item/material_sets/dull/dust_pure", + "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/shiny/dust" + "layer0": "gtceu:item/material_sets/shiny/dust", + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/shiny/dust_overlay", + "layer3": "gtceu:item/material_sets/dull/dust_pure_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/dust_small.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/dust_small.json index 431d8ef4d8..f1f6496800 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/dust_small.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/dust_small.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/shiny/dust_small", - "layer1": "gtceu:item/material_sets/shiny/dust_small_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/shiny/dust_small_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/dust_tiny.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/dust_tiny.json index f7fd6d0fe4..84f4d5d5c9 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/dust_tiny.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/dust_tiny.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/shiny/dust_tiny", - "layer1": "gtceu:item/material_sets/shiny/dust_tiny_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/shiny/dust_tiny_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/foil.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/foil.json new file mode 100644 index 0000000000..334036179d --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/foil.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/shiny/foil", + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/shiny/foil_overlay" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/gear.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/gear.json index 4d2c2c5269..edbebd0618 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/gear.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/gear.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/shiny/gear", - "layer1": "gtceu:item/material_sets/shiny/gear_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/shiny/gear_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/gear_small.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/gear_small.json index 497ce8e533..827e22fc95 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/gear_small.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/gear_small.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/shiny/gear_small", - "layer1": "gtceu:item/material_sets/shiny/gear_small_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/shiny/gear_small_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/ingot.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/ingot.json index b251e3ec2c..f88c76201f 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/ingot.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/ingot.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/shiny/ingot", - "layer1": "gtceu:item/material_sets/shiny/ingot_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/shiny/ingot_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/ingot_double.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/ingot_double.json index 04de05561e..589469e92a 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/ingot_double.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/ingot_double.json @@ -1,7 +1,6 @@ { - "parent": "item/generated", + "parent": "gtceu:item/material_sets/shiny/ingot", "textures": { - "layer0": "gtceu:item/material_sets/shiny/ingot_double", - "layer1": "gtceu:item/material_sets/shiny/ingot_double_overlay" + "layer3": "gtceu:item/material_sets/shiny/ingot_double_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/ingot_hot.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/ingot_hot.json new file mode 100644 index 0000000000..9dab759ec9 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/ingot_hot.json @@ -0,0 +1,6 @@ +{ + "parent": "gtceu:item/material_sets/shiny/ingot", + "textures": { + "layer3": "gtceu:item/material_sets/dull/ingot_hot_overlay" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/nugget.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/nugget.json index 34525223a1..6cd86c5879 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/nugget.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/nugget.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/shiny/nugget", - "layer1": "gtceu:item/material_sets/shiny/nugget_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/shiny/nugget_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/plate.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/plate.json index 56b7b01384..44293650ec 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/plate.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/plate.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/shiny/plate", - "layer1": "gtceu:item/material_sets/shiny/plate_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/shiny/plate_overlay" } } \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/plate_dense.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/plate_dense.json index 68ae23513d..4949fa5166 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/plate_dense.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/plate_dense.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/shiny/plate_dense", - "layer1": "gtceu:item/material_sets/shiny/plate_dense_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/shiny/plate_dense_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/plate_double.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/plate_double.json index 21879a8e03..f194404107 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/plate_double.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/plate_double.json @@ -1,7 +1,6 @@ { - "parent": "item/generated", + "parent": "gtceu:item/material_sets/shiny/plate", "textures": { - "layer0": "gtceu:item/material_sets/shiny/plate_double", - "layer1": "gtceu:item/material_sets/shiny/plate_double_overlay" + "layer3": "gtceu:item/material_sets/shiny/plate_double_overlay" } } \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/raw_ore.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/raw_ore.json index 8d839b779e..e895acc8d3 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/raw_ore.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/raw_ore.json @@ -1,6 +1,8 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/shiny/raw_ore" + "layer0": "gtceu:item/material_sets/shiny/raw_ore", + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/shiny/raw_ore_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/ring.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/ring.json index 1f20ce0000..2292edf353 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/ring.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/ring.json @@ -1,6 +1,8 @@ { - "parent": "gtceu:item/material_sets/dull/ring", + "parent": "item/generated", "textures": { - "layer2": "gtceu:item/material_sets/shiny/ring_overlay" + "layer0": "gtceu:item/material_sets/shiny/ring", + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/ring_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/rod.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/rod.json index f9067e7d15..8ca5f62a24 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/rod.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/rod.json @@ -2,6 +2,7 @@ "parent": "item/handheld", "textures": { "layer0": "gtceu:item/material_sets/shiny/rod", - "layer1": "gtceu:item/material_sets/shiny/rod_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/shiny/rod_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/rod_long.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/rod_long.json index d396a0e573..833701c081 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/rod_long.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/rod_long.json @@ -2,6 +2,7 @@ "parent": "item/handheld", "textures": { "layer0": "gtceu:item/material_sets/shiny/rod_long", - "layer1": "gtceu:item/material_sets/shiny/rod_long_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/shiny/rod_long_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/rotor.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/rotor.json new file mode 100644 index 0000000000..e3b849c59c --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/rotor.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/shiny/rotor", + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/shiny/rotor_overlay" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/round.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/round.json index f3878af766..7a6e2e1fa8 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/round.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/round.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/shiny/round", - "layer1": "gtceu:item/material_sets/shiny/round_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/shiny/round_overlay" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/screw.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/screw.json index 23ea7d5c39..2f315db384 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/screw.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/screw.json @@ -2,6 +2,7 @@ "parent": "item/generated", "textures": { "layer0": "gtceu:item/material_sets/shiny/screw", - "layer1": "gtceu:item/material_sets/shiny/screw_overlay" + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/shiny/screw_overlay" } } \ No newline at end of file diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/spring.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/spring.json new file mode 100644 index 0000000000..30a057faf9 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/spring.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/shiny/spring", + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/shiny/spring_overlay" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/spring_small.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/spring_small.json new file mode 100644 index 0000000000..a6cb7c3cd7 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/spring_small.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/shiny/spring_small", + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/shiny/spring_small_overlay" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/tool_head_buzz_saw.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/tool_head_buzz_saw.json new file mode 100644 index 0000000000..77c8729aae --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/tool_head_buzz_saw.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/shiny/tool_head_buzz_saw", + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/tool_head_buzz_saw_overlay" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/tool_head_chainsaw.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/tool_head_chainsaw.json new file mode 100644 index 0000000000..058069bb9f --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/tool_head_chainsaw.json @@ -0,0 +1,7 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/shiny/tool_head_chainsaw", + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/tool_head_drill.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/tool_head_drill.json new file mode 100644 index 0000000000..3bb263452e --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/tool_head_drill.json @@ -0,0 +1,7 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/shiny/tool_head_drill", + "layer1": "gtceu:item/material_sets/blank" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/tool_head_screwdriver.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/tool_head_screwdriver.json new file mode 100644 index 0000000000..2598bbe233 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/tool_head_screwdriver.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/shiny/tool_head_screwdriver", + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/tool_head_screwdriver_overlay" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/tool_head_wrench.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/tool_head_wrench.json new file mode 100644 index 0000000000..04ad7bb7bb --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/tool_head_wrench.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/shiny/tool_head_wrench", + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/tool_head_wrench_overlay" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/turbine_blade.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/turbine_blade.json new file mode 100644 index 0000000000..94409dd839 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/turbine_blade.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/shiny/turbine_blade", + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/shiny/turbine_blade_overlay" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/wire_fine.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/wire_fine.json new file mode 100644 index 0000000000..db0623e535 --- /dev/null +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/shiny/wire_fine.json @@ -0,0 +1,9 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/shiny/wire_fine", + "layer1": "gtceu:item/material_sets/blank", + "layer2": "gtceu:item/material_sets/dull/wire_fine_overlay", + "layer3": "gtceu:item/material_sets/shiny/wire_fine_overlay" + } +} diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/wood/gear.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/wood/gear.json index f44a28aa81..8398aaff5d 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/wood/gear.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/wood/gear.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/wood/gear" + "layer0": "gtceu:item/material_sets/wood/gear", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/wood/plate.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/wood/plate.json index 4144760c0d..7b8139ddd6 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/wood/plate.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/wood/plate.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/wood/plate" + "layer0": "gtceu:item/material_sets/wood/plate", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/wood/plate_double.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/wood/plate_double.json index 3bba592567..6835bf2692 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/wood/plate_double.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/wood/plate_double.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/wood/plate_double" + "layer0": "gtceu:item/material_sets/wood/plate_double", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/wood/rod.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/wood/rod.json index b6bff551cc..dcfac5100c 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/wood/rod.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/wood/rod.json @@ -1,6 +1,7 @@ { "parent": "item/handheld", "textures": { - "layer0": "gtceu:item/material_sets/wood/rod" + "layer0": "gtceu:item/material_sets/wood/rod", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/wood/rod_long.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/wood/rod_long.json index e0d62669d5..9bd3c9b2e6 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/wood/rod_long.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/wood/rod_long.json @@ -1,6 +1,7 @@ { "parent": "item/handheld", "textures": { - "layer0": "gtceu:item/material_sets/wood/rod_long" + "layer0": "gtceu:item/material_sets/wood/rod_long", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/models/item/material_sets/wood/screw.json b/common/src/main/resources/assets/gtceu/models/item/material_sets/wood/screw.json index 4f10634a3e..2e7273daab 100644 --- a/common/src/main/resources/assets/gtceu/models/item/material_sets/wood/screw.json +++ b/common/src/main/resources/assets/gtceu/models/item/material_sets/wood/screw.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gtceu:item/material_sets/wood/screw" + "layer0": "gtceu:item/material_sets/wood/screw", + "layer1": "gtceu:item/material_sets/blank" } } diff --git a/common/src/main/resources/assets/gtceu/textures/block/material_sets/dull/wire.png b/common/src/main/resources/assets/gtceu/textures/block/material_sets/dull/wire_end.png similarity index 100% rename from common/src/main/resources/assets/gtceu/textures/block/material_sets/dull/wire.png rename to common/src/main/resources/assets/gtceu/textures/block/material_sets/dull/wire_end.png diff --git a/common/src/main/resources/assets/gtceu/textures/block/material_sets/dull/wire_side.png b/common/src/main/resources/assets/gtceu/textures/block/material_sets/dull/wire_side.png new file mode 100644 index 0000000000000000000000000000000000000000..9f4a113ae53b99bf0fd8bf77e92ff1932b67225e GIT binary patch literal 747 zcmVMNu$K z6XQ4{LkOg4%Kd(4nkKBZD5Xe}gsQ42%aV0nky5?|{zO6uNGT=P>y>$)F~;!m@j=_R z>w*tU)1@ko*+EX%??&+Plox~{xlFSc#t@9pclqP0f0ZTns%NrDgpV+`B2 zVT>WqbGB_m2*K@kLkNNQp1Q87>l(T5JM%mvgdmC{thG$jL=;6xDY4elbsgUOcR!R; zoK7d2ra=OP5D-ED(DyxY9OJ#mIfpTZaU2mskmosBmT|dUXqx7~2O)%a&ilSc2*LGw zMM}vyju>M|)07Yb0O#|W)9J+X`9w;I^xhLf;IEa#Fz|dnF~+d2D_NGk&HViQq%2FE da{#RC%0EWRa(!$c4p9IA002ovPDHLkV1mlgTBiU2 literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/gui/icon/distribution_mode/insert_first.png b/common/src/main/resources/assets/gtceu/textures/gui/icon/distribution_mode/insert_first.png new file mode 100644 index 0000000000000000000000000000000000000000..ac21c2274148c84496e0857c9c2ca5196cdae628 GIT binary patch literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEoCO|{#S9Gmi6G3l!hU%sP;jTG zi(^QH``hWKc^ec2Sg+pbW1qcAqkAK(@YRvQH w5;TWt`OBjWi(kECee)FVdQ&MBb@03?oSEdT%j literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/gui/icon/distribution_mode/round_robin_global.png b/common/src/main/resources/assets/gtceu/textures/gui/icon/distribution_mode/round_robin_global.png new file mode 100644 index 0000000000000000000000000000000000000000..e6c3238105b14c652bb6578aac09e9b8dae0a423 GIT binary patch literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEoCO|{#S9Gmi6G3l!hU%sQ1GUw zi(^QHdvbyV>taQNJx&koFIX%1m>zI3ot%+!VFj}$?~RKBGQ5sn&J96-7iSjSXjf2X zln>f^>rk?|Updb&lM_xUQi>v%43ZNR{Z>`YIVbT&(c+bZ(&P&ldXsWGX9iqsTGzhp zRpC>!m}!?{ZTCH5xI3|>i!W;R@mYSJZ&@xz*)FZjV|gY2WoN~O>ncB_xJ`85^Q6bR z8UC-CrMK{t$h-rEPhDnpu72vn64`gPW{x7q7samr2D>A(T{T1dPZ#WYdvN{qZxciE qE;#+o&{Naoaue-uJD|YB$Z##yzUbY$$Y!7?89ZJ6T-G@yGywoz)^q#- literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/gui/icon/distribution_mode/round_robin_prio.png b/common/src/main/resources/assets/gtceu/textures/gui/icon/distribution_mode/round_robin_prio.png new file mode 100644 index 0000000000000000000000000000000000000000..bbce291f335aae84e98f7f533c4f51397db8edc9 GIT binary patch literal 299 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEoCO|{#S9Gmi6G3l!hU%sQ1Gs& zi(^QH``hUUc^edXT(9ovW1n86(O$?ZJoo74LyasP7nBmZrX0DgKgIp`!F7)hvfNTD z=ze?pyfxda8jFKhgp-=~t6MC4ccF_v>e%e9C$1;tHE{*?FJTp0KTlzYv&zcrn_h9I ztzQ{2%X|X&p8r_eUAK-u*0XHVg|DGe?{(5YEI;;fR%2fb zf9G8LtVbV~ literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/gui/icon/manual_io_mode/disabled.png b/common/src/main/resources/assets/gtceu/textures/gui/icon/manual_io_mode/disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..7eb473b48283ab69fe3dcc5775d3c4d72306cd19 GIT binary patch literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEoCO|{#S9Gmi6G3l!hU%sP;i5% zi(^QH``c-^xf&D%Ty%f^kJoGITJUX=@;kQ6*?qF-*QIIJWGGxaz*JKwzUjoA^_t-f zAIdLgg>1UDcg7bs&Kt3}jXj!8I;0#vzi~Xc;I~7+$%`hLU&;9|wyV!MC6M_csy{1e zarx8*2WOdnnXKCEC~D)(ALcMox%pt`>?O|+WrZ1BTEH2eEzkO*shed>-<;pIQyiIg z@h)JFOp#2Du`E&^UyVOB+Mb+HQ_5`y9h7&el%_Pw@0+9rP&Ww_oT$I2eV5}GT zV}NFHqe$e=nu*kin`+4*7&*tTTB{iZbC^uxQiPHzgN!gNGV09mI;8|LC8{%xX})!$ zOd`dt-Wu5grH!0%El`c@C!va<*eq27!SyU)wX4{QvH(nw)KEzfS|P8SQZJqp88kNP z*4GSsx;0>j86@AOJIr93Ni44w_692nvf?UUGvF1GxJrRyQ@_NK*T9rLSvi9aHl5l8 b@(6qYzjZ1Y%>J5?00000NkvXXu0mjfI>3p{ literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/gui/icon/manual_io_mode/unfiltered.png b/common/src/main/resources/assets/gtceu/textures/gui/icon/manual_io_mode/unfiltered.png new file mode 100644 index 0000000000000000000000000000000000000000..6225a2c8fc874b57d216b3c0cdf6d3b612099b1f GIT binary patch literal 303 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEoCO|{#S9Gmi6G3l!hU%sQ1GFr zi(^QH``c;Wd<_abE>|o5YiCDHkg%V7FpO>TF1@E8qjWA$iI=({HAD7xK7Y2YrM{*( z`-At>#1{L9#mlEvH0w4zER$HPvw&rtOvBDXcMG+7g3iYknvIITvP_$JuVA~*35D3M z^-O{Ob9EQ}DDX?!V140d3&(`LFID}lJX6#po6q#}zu!A+1M3H44(&pws;#SeE(LqB zM$~%;Y~NQFnK@I8dD)5F0>gy(`X% zAU+%{G!g-u#e!~N{JA&((Z#M1V=Gh*hJhsL1uKQQ45kmoK%m!*VXi?|2y-EX>4Tx04R}tkvm8OK@>%gQAv=9g(*}l zwooetQ4vdxLJ$-}RPa~0yD=ZgZo+PYjiq2KSomrD6*kt|TG$GL;0MIc&PvfnWPOta z62v$#%;C=5$9s3ccbG9Px1k>_JMY9IVQqe4QS-kLB!CZS*MChnHx`XfQFDFXQK!z^ zK2@vsyFXWReAP9fP7@wAb534(MR<5EpHsXm95PdST=-15*O3N=ACzvC_*HST$f{*R z&TMR4I3%nktJtVwGv!#qL&9Bg%a;1S`4Yz!uPe4P1+(0znlQL(&&?=Zb|(=gnI?*c zL4hV`LS;=bZ8us>~Cn>d;Ys?*}&LQpJH|6|(0OBHYZQT4(VgLXD z24YJ`L;#BbivWwLf0Q+mAs2rD2XskIMF-^!2m&i7TIYEa0002|Nkl2mt^{eRu0UVdnbcb-R1-*_^Pmajpt=tj|XP!0mrqLcOtBwMnxw zWre37m-Sa4Nb7a8l0MCtu-TGc+iIPoM?@+CTF(%TF{X?&%w>UG7EancC*{NraMb`H z(KGaM+ej&sX5(ej@)Wnk1 z6ovB4k_-iRPv3y>Mm}){1{P^g7sn6_K}G?V_rHO9M!{$ZjE2By2!KO?MSy`(>k^AG Oh~w$%=d#Wzp$Pz=-zIPx$BuPX;R5*>Tld+A%FbqXs4p(RdBLlE-A!r&Sl|6>Ng2#|6!NUZqTzG)MBe>Hw zCqhn~GXV-X_{!;mKY-d z>$&mumJRT42 zt_AX3&$RFNI{>%aO$$_2rT61FUcPgsGjQ%y*L5<+P*oKoLen%1!|=L=PqA&=>Af;2 zl@}32gu1R1fH4L@Ma-7pyZX}g1gb$yo@B4%2OVGc@4-*-sDLON_A^-pY07*qo IM6N<$f*|Ub?EnA( literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/gear_overlay.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/gear_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..78fb262e9caf1d9844b07b672da20ff2092180f0 GIT binary patch literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|G(BA$Lo9le z6C|!Y`2YVuClLE9cru$_;R$tEcYnr;H+_oyZN*9lnHlVMh#01M^DO~tV(@hJb6Mw< G&;$T(-y%Bz literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/gear_small_overlay.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/gear_small_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..914af922a6fc5dd09886bd2428f45cfd1bcc2498 GIT binary patch literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|ls#P>Lo9le z6C_w!4*viDe{$QhH1AEO!K^%m&lfXy?J+iCV5qDV_lPQ=(+O10;OXk;vd$@?2>>#P B9hm?C literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/ingot.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/ingot.png new file mode 100644 index 0000000000000000000000000000000000000000..94b1f273b869faa4bcbc5e97fba81171f2762751 GIT binary patch literal 5535 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 literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/ingot_overlay.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/ingot_overlay.png index 867331e5cb08bbfbf13c2d1587abd2ad260c9ca3..35488b4582f03bb2fac6f244786d8e8f679b5c03 100644 GIT binary patch literal 5377 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 OfP;;T^<_)19sdA>x0WXW delta 248 zcmZqFn!+?erJgOx+uel$41PNAt_LzW3p^r=85p<)L71^VC4M4MkiEpy*OmP~6Av#J z7q3T^D^O^mr;B5V#p$OPZL^#h1y~;Bo7!_Us?;jr`4qJysBsb@VzWv9c zGV=jvuujw?nfMzE`}0jgx4!TC&~W`)X4m;^Yc03V37oWB<*-U~@vU0FPcxQGfAUMF t@wdu$&sY2JWYyn3{O`#bS@9{Sk21<{3b68?$@mWBJx^CZmvv4FO#odzW1;{6 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/plate.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/plate.png new file mode 100644 index 0000000000000000000000000000000000000000..0c99058ca0af892dc215549fc7b7e886fa4e8fad GIT binary patch literal 312 zcmV-80muG{P)Px#@<~KNR5*>Lld+A2Fc3vQt1ZH!fQc;%pbkgS1|>ilWK)L=upALg0f;Vcqp=M3 zg6{4on8EM+4+FqI)d0Y{u0MZ)$8l`ldNT||byJKH*4m=R%m9E_{$QFW#26pfB9fSQ zZs44QwH7f(IOhN$ov!t+>p(;ZA(RQOQLnIwfQU|ezP6B?DGUJ2eBZ(yOhh0ec<;*u zPbX`1?>+jyueZR=$w;p`EF#$V{nWzAV4mmn!W78i<2ce33ImOv!zzVqDyASJ5Ro+J zd~J+D2%$a&{Ydhji3lQswrydIIn~uP{Y=}oRU_VMS(fJ4&{ZGkQl7=CTEO7|0000< KMNUMnLSTZ-289p+ literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/plate_overlay.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/plate_overlay.png index 45c01846d6b71bb9aadda82f95ce25ca09b39652..89a4537a3911df7df3326b5d93f7bb465ab1516c 100644 GIT binary patch delta 109 zcmV-z0FwXJ0*V2UBxV6~Qb$4nuFf3k0000)NklUy%R+ z00(qQO+^Ra0R$E%Abq9AlK=n!;z>k7R5;7clEF#?K@db=tTJ=SV?L+ zO1AHE6>ML}d2V~So3E1iC<9M{Q`=+ULsDH5*ks@VPy?-`S?-0YK%2m~0WX1fNw51p zvD%HJ@+d0LCB2kfNCi%8PXca$g{0?0HdenpmF~l;H%X8CAlsMQxR<&Ry|eco|RLAz9Gs*|xvl!_n#(X2`lYg;(0E*>f5(;YE_5c6? M07*qoM6N<$g2FR{^#A|> diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/rotor_overlay.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/rotor_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..42a612c3e938d7d4b3550a7692543487ba2da4ed GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|96eneLo9le z6C_L?{Qv*o^T>*y|Nrkd3ftPkqmXeBC?cy_D4WUklIh?7|LFVdQ&MBb@06royQ2+n{ literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/screw_overlay.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/screw_overlay.png index 82bcbdbf347336041cd9c5b51869c51a13ab7b69..a28fa38b46b31aa337d0eb69e077e4858f33e2d2 100644 GIT binary patch delta 95 zcmV-l0HFW20ez4pSpjoWM?wIu&K&6g001{hL_t(IjbmUK8Q}l_|4F#yn20pv#sB~R zl__z7GBQo7W}MC^$@ZaTvn46&u|?x6vTPo~000sM9?Dv~mXiPg002ovPDHLkV1m10 BD8K*! delta 153 zcmb>3#yCNxo-N7S-Gu=Remd{22QoMdJR*x37`O#Nn6W-3ej-qiy~NYkmHj>=E3=_s z_ez(8Kp|&O7sn8b)5!@Ek`Mm>|6jJ_$qWwzmq|k61&WuKWNmA?bS5CGMP)xwYX0Py vbZh5Kzao?Fprp-8H_e<)KNmdKI;Vst0C`R| AvH$=8 literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/spring_small_overlay.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/spring_small_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..0d35d612a527dd227d776eb9e421e70f7738744d GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|Y&=~YLo9le z6C^%02u?rp|NsBV3(hq6^z@W_n*9XwP90g1taLL)h$le(nrOtq1s|A>vULPz{m@Vl Z0vf2xxAO6d)LfuB44$rjF6*2Ung9%}Ee-$x literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/turbine_blade_overlay.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/turbine_blade_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..a3295c1be2c7c65346f4efeefc82c46f331786ec GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|v^`xMLo9le z6C}Po`2YWZ9CKE+kfN#2mMwEN_Fq27%FO@o|Nnf;3waWT3=Er|^J@HhvSKSx8-u5- KpUXO@geCyI5hTz6 literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/wire_fine_overlay.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/bright/wire_fine_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..16cfb7fdfcbaf4f4b47caf7ef5f6a5722a50fe5c GIT binary patch literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|v^-rLLo9le z6C_v{Gw}cT|9}6t|NsB%0`Ys+r|P^ry7#bMV`b*fkYZ-Y-6g#GPY!1(P#1%ztDnm{ Hr-UW|vBo3- literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/crushed.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/crushed.png index a1175cc176d9b44b98a683aae7f406be336ce907..492d10f1bb8f820eec7b2f21f30c7961166ee03b 100644 GIT binary patch literal 5937 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 Isaxp304?T&;{X5v delta 224 zcmdm}_lI$UN}0b?;pNu2&wFd@?ouE+|`v5<|s93?*{eqko$A_ z1ojG_;dy;r;^X%XhHPG%*$rDeJN8vGGpu+Osr72_9air;-MUc742*0wpu9UV>_ zJFMS|Z4G;KRHubrnfA$d`W9Z!ajTB#}nDq=f8H{!LUQR V^u?sEnzJBpc)I$ztaD0e0su{+S+oEE diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/crushed_overlay.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/crushed_overlay.png index 6f73847d10667c0c8c850860899385a2e2ab2a13..17f3c80efdc1ef9b84d95c7f308da2698b92a5ae 100644 GIT binary patch literal 5910 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 delta 567 zcmV-70?7TAF3<#!B!32COGiWi000000Qp0^e*gdg32;bRa{vGf5dZ)S5dnW>Uy%R+ z00(qQO+^Ra0S^rn7MLB(>i_@&-AP12R5;7cliy2IaTvy*?>U{5YbV&6wTp^kR!rB) z&CwZ~XJgIGL>gT=LGjk^z3Qrepo82zAChPV+W!D3%M zKVGjAk0R8a&)o~p`{9A-eStlxemz86=S;kd{(U)ijsPH&=p+Eh4g_hbT8*W(FabbP zQz@ybn?PYZV82WlhzF?EG%=J8(T&MFncI^&Q?LxgB0-v+uduCt2VhWF>1kn6done9 z!ta#VKfEC@Xxu1-FYKsi_W#1Hfe&ob#3IS4MxIIV2=uS$Owqy7szOUzYbt z$PQ0PZL*DB6Xa*!vhiHccg0ip8#W~IfQ7Qzs`wNc5AQxW{^IdHV{M)74gi4Fx(Kr= z9I5?i%_#n;v(XOzA~7ZFi=Z+8a`T@2CtQYm#ampj&XNu|M5fG(#_k{$_e)^}b# zO*<0ABLU*33~##|+3r(gjmA>r&FALywUMjg@?5@cq5f+Q0Di6-Sg3qrI{<%`*3J^y z9F|E~6EIvj>N62kSfcQa7mKAY?7vT2k9LwC?V!E+cpJ4AybSTjg=_!-002ovPDHLk FV1l9?0lWYJ diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/crushed_refined.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/crushed_refined.png index 7de6c0f9c4c94cb2c1e7fe8c0327741eb1de7fee..e37496be8de222c0f15726731cd76567262f73a4 100644 GIT binary patch literal 5557 zcmcIn2|Sc*+ka3J$x=xa)8M2sW*;+S$ujmOFHWgcW_d7}#mq1$(r#%xktHgMY?Un{ zv?2*@_GGIl2iccM??dvQ^Zm|w&-uRhd*}C?d7kIKulxF6%m2EbYr^d9%%vrjBmn@B zwzQx)Kv&thuY@@Ct2*+H3SE}C8`&BGK+ajI8R}91khEr+nAr0j%#C4|rX~b5i9kSL zw9x=y5q8PZ-O2Hjg8oF?sIhfuNR&0lVT}aL!8jtsiFsB2JdkuuQQojGH0?p?RrrxL z>sI?bcqw--2OfUhC}%<>Ktl6fhbFJhY6HVMTfonVK>LJVUOQemTKMS+g#p}{_AcT#joM-9sm0N71SPIMAy z4%x4*dM^p6uK=z`lrJy?sfu`dYQNwG1;ZIeo!+;kn0q2-&t0RDHS3tAsmr%Y)c0AyEKB+niaQzH~T-vO_ z5R+8|T(8PXIf_V(0}sxbn+^gJSP{)rQCa@4cDih=bp(LHTt>u)^HEMq*&A<{ZE)FJ zBw0qTuIx-<9JJnn>I z<8<7(+s!>DKHh7qoD}PL`u?%0E6Wdw>>tbf0PVIn9-R)4Tw1kasft|3QK>vkZWK>% z&rh=9KJnXBhT64fMuavIvYR44(9-QsnOm0?$ulKupPdg^m$Zyt9b@q=GVD-ZpG<6t z7vNeSEIw|$$G*5qye~!@mi;kAqfZogFKj=O{!&&PK#L!Z6v_aosrYXjJk|k;&F5FI z2SV1$9hbT=obXgp1PGD9*)Jt{95qlpy0j@otuRE_|FCNH3H#6^L}$R*;<(K@6K$>I zKieA=7{9Eno1_^7xH zTjq_@u6S&mGp<1EOIM;2lepkLYeZhl+uzYr(ZP zMagGKER(1?w(^m*u_`rcFs@R)SN>)gn__^Djy0~

|ai>RU!H8!6jUCeo!WA6B+8 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 delta 348 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≤1@Q^~Us0&etiEystz1k_I=8Fdrn{ z_4sn?^{)|>ubnXMYCSKr)sa`^iQ9*er}j) z#O}FyGVC}xBzlT5%^EU%FI?QlZx@DyPoW5xKA)b>9ggl!D|~92sOd;|w4YwSAZ}#( z*aN>*Xv~DsY@8hcAZR@Rhz^Si-g0!3O}@ z<>H?N5TBq5t(7ue-2`q9_9PmIrAMK2sGwc|iwj8ufRRZ6mqPOa1u!b;$z+q^AB*q6 zVN5z1z8&v?a^RYSUQC-H9_SL}=t>Lnp%LkD6JwZB00~mS0tFOU0Lz!nCk2qNg))+Gn$)e|Fxn3LrhwsJt6V>zEzXO0`>)##})DP@3-=$OVzkAfMyMqk)$GkeOQFz2OU-!GFc`9~_6oXAg5p<~)!h z;P6~I9N+J0cKYrw41?1%fNk8)WYal9{w6Wn+yT&nA^^#7amt}&BT!gZls*ZCBcTj* zP-qeg^-a`)LuWDqe=mwgyFzkUJPA+uohU>&Iz>SFTVXnl#NhB)6ewCu7R3`pa@n46 z*nAF1<{V!R4+4g)!_Hda;6Sov^92+(4Yai&!yy;+m`pkeq)-_&kV-{h=pY5bVBjbS z0)v7=;Bg@IHNaAE)cNxk9Gah)7UJ{YN`%g#K|210il*x0^l=0ff=Jh=B0vHThoCZu zG=u?`fW^~^Xb?j*_-@TM9uulkitlf=imjqU8ZlHfh)3Zt2sDjGK~V5G0)mPq(h*oR z5yTQ026zSzB`$?oc9CqDd?zag6sSRgJU$uD;Bi>6 zc_P3B92kYm^<~m1V#ksGZ2DXem`@e_PjUDZ|Gy3q9fwAvun=1?cp3pg(Z`_?R4DHV z0-Z{vVJQqM3WSLN&G+AjNKASx31a|N#&^>HUqUpeo90DfdxB7VNB#%S(D3?r3>v2o z@f1Tv;3+sFf4|QsqJs~)5ARvXZxJL{hEeSm z;OX6mWKbr$;gyc-u^BV{4ci;)E@w_Nw7bivu!|LSMESLpWzTsYP7&qZOLMnL#6KJP z;hhK0GIZA+pU8+lS>okP_mbodENONzddIy6$whKX9gmdWJ{!3uYXcl1Dy_!EvlA3n zW2zOC1h3BNiQXYhTtY`LO(=aR%6{Iov5Y*%@xvUhxR$Y{%eR089MsO6e*eC3YrGV*{Fpwl7ct-H@{s$sZ^2q=I literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/dust.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/dust.png index f819a0c553fd994be467bb9b482442d9be11eaff..ff4ec5283a70309577fafb323bd65de1d0436566 100644 GIT binary patch delta 306 zcmV-20nPr_0@?zQF@F?EL_t(IjopzUj)OoLMqe9(oHQBc0Obg+8Cz2W5>t-BQ7Sk^ zHKL-mkQ8hk9DtCJk(gOU!gSjet2X=DnfH?K`{92l%QBl~nf*0Uc<2x9tL#K{Y!CK4xen$wwcDqFgLDzMZWeLFf zd`2ndRCY$JstO?lQc8-Vz!<~x`9y0CfKrNa938>84T2!xcsyc^p)5sLiC{$XDUwmi9I1ZSmiK?oEkPCo| zd1o|D!?tZK!Llqc4C4dx0`QtW&ttL4c^pTCVTgI2(RCf-I7V5Pn5OAf&ILeqOOnKX z9Cs%WiRp+^TmX*aAP52`Zkh(RZL<_~bI88$;soSCWpD_0KF<@fEVBfz>!K)%OE-jF zppPxff~u-a$R}MzL-pq%z3<80H2!uM{~I?NfLU!o;Miuz2otSwU%bH$z(E7V~kb;L_~+fA-i3S@B3c@=N#5reBVb^ zX|-B>hm<=jxo}dcD$q zX>&RqDT;zLO;oAXY9&DBYo^nwswz?ROrBqG&Jo8kQ53OWuURga-c5jr=ytoM+wD@X t*GZCuFbvsjHYMZT3jlt$U1k0o^9h)0k}HB|uc80|002ovPDHLkV1g%_p@ske delta 380 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 yi?7QUE|JzeUy%R+ z00(qQO+^RZ3=tItFo^cAb^rhYsYygZR5;7+ld)@4VHCxGU*3B$YSX@_R5M5`MKrVu zB2rsZQ!Oc46|GgF3N8-v1spnea&i&p*Qxp+2%=D`4hlj`BY(7ggtmgk5Tl@rF`9<= zeMveW^x*oqvxF)X{g4j!LPucR7j%tpk+ySHTYL_fYRV;F{9 z{hW1ohYTjCW<|X&@VD{$U|)6o_NeUaJxyd^8k6i2vhrb-CsVH`HeO(ubR9eD zetY-Ab;3<#Gat!)%2M(*MO8*upinG=VNt2K)e3L{rOs{#P|FU z=Djpc;bzu+#eqXnW>P7hP5<7$AwmsTE(}Sn6_Guy2q92PI3IK0r<|ansN2)DBc=XZ}|IRP01BT^|PS6f#egFUf07*qoM6N<$ Ef(;Gl_W%F@ diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/dust_pure.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/dust_pure.png index f819a0c553fd994be467bb9b482442d9be11eaff..8ae25cd20d89faa626c5861e71e5612874c090a1 100644 GIT binary patch delta 308 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 Ny|oMe2F~lqKL9ETM~wgg delta 399 zcmV;A0dW4dA*ln9B!32COGiWi000000Qp0^e*gdg32;bRa{vGf5dZ)S5dnW>Uy%R+ z00(qQO+^RZ3=tIvG`+0}?EnA)Hc3Q5R5;7k(!WX_Q4q)R&)M});l@HOw6s`*PhcbW zL3{wgh=ruEw3he}5?{l{B0;-t;=e}JMk}#OaRb7tM8r*T&ws}24HrvsU^sJNe&0EB zW_b4&>Y%DBi(fA!fiw*QR_1c>dFxVDRWXl^g$W_Fq-hPf8J>}Z7BUUN%3Q7}tzSJD zot+*&***H*su=ij(6s;k8%SzEEl!@rOW4D4Q5ssC&;L~o;kkvRy_q2R@+nu8HgSr3 z+#)SX1MQIi0e^zk`CL(2#(4x><1Xf9MQNlH^5PSV(gK?J8HE-8L_mcx^ffXkH6-bn z%015TA>MnU@Ck#_C%d!&enn9l{i*GhJ@|-+u7E~n2N`bS`G{WhV+vU#v)y%(+N~%J t#W2NqBXjsdSdX+D;MEoG80XvBUr{?)QP7+pr~m)}00>D%PDHLkV1ju)uK@r6 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/gear_small.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/gear_small.png index 9a238ba8efbf88eaf4532c19df4ef6bd83b37053..906fc5c262f9038df935dd07eb34d618e163786a 100644 GIT binary patch delta 289 zcmV++0p9-E0=xo{B!2;OQb$4nuFf3k0002?NkluItkT nrzl5~Qtn5){2BvSV(*I|V@jTh!d_`qbysQ=VU+H-neAAEHwrQE+krGJz&#<)%LSat-p)_ZS^ zad8}9B;FY=ih^Mn0FY85guq%0Kp2LkX-ePsJNG&Y+P3uo7ex_LN~)>?pss7IwWMkK zEdDf2A90mZZXCybq~qD^9Di9B)^)weg%J3@e;L8MTU(Z81VKPqmH;G4!aUD(UH1V4 z{G4AZiUI&@EjM|d?=V2qG~8|C_8;OncE%W|wch(b;jOldNANNHo9uh*4LX0JP7y%a Qy#N3J07*qoM6N<$g2%sx{r~^~ diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/gem.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/gem.png index cea0d15656767c6f6102ef2bf2f26090c3678013..bb80aa9a86ebf670476867a9ea5eb7b59e188820 100644 GIT binary patch delta 366 zcmV-!0g?XX1BnBWB!2;OQb$4nuFf3k0003)Nkl=iwU#7FBuNt4Znxqh{{0*d!w`VO;eWt>zh|@AP_NhVJde?6 zM4F~DpU-V4FJ)tlWLYMkSS%K@TCF6{a~TeYZzn%xlA&1UrbeYDnSt>3*M2-xj* ztk>&`aE0J_Jff8PH=k~|YxOG`D5dE2dH~#RxA*D$J^;(*(ju)mxL&VL<@5OrK&R88 z*=)M)#c?b}QD?~Ia*^qDYK54lsVJpHDOCy4`y?3*20WinCX)%i@6&F#Ih{@fK|rh3 zA`C;y&sbR@iXv}39%GE5R;%%NJTS)4XfyzUy%R+ z00(qQO+^RZ3>6hOCLS=^0RR92aY;l$R5;7clD(?xP!NT`ogAWR6JiQG(LzfL!DrBS z@HGURfQ60VEBFY4kW#RT1m8hWi3o-uq}T*E+gshk@$a_xOn7&hs))HQVJmi zrBaEaD7fG6tX3;-x7+&^48x$&XrPoL%QEsj2f%e*>h(GRl}ZIE<>wgt{XUjuv0N@0 z3;3hKn)aSi4ZLn zVG)sR4HU5SfJ8`6f?xvze9@jT--RdLWMhrT_89mzqGN%X1pu6Lu+~O_8)Ht|6PQ`N z_c9EF5RvR_fgcg?o3kuK+qOzzjES6cm(9um0M>Oynx?4hT5*Z2wYTdlgR(496b1Ue zS4|;@u+g0vi0Jaxki$IBw^@7z5sCL+x~@|uuPgC><-n_|Len%D$MJa*Gt0JZY6>&U yvMlPo0rA-an5IebBuS9xIe_Pnd~g@$pW+Q*<%NlXUY*(i0000-B!32COGiWi{{a60|De66lK=n!32;bRa{vGf5dZ)S5dnW>Uy%R+ z00(qQO+^Ra0R;gLBN!y>6951Jzez+vR5;7skv$59Fbv1j;$3=#l2deW>BZc|$whGR z4!MGK6$AzG2IftH*6%kxcz-A~Y4S^&0Q_2N??6PBI}s_diGN5v(h!lSY2vQySP~JD z=XvHB94m{H+qQ+Os*(UAQqDQPDw@T{x~^c1fwC+QkXP+{@44@Lw$}3gP0lUET6-EK zvl)ir0Dmok)ODRe^i}ZQZkh&)qJU*tKx=(pY1_8sD~QPBI40{o-GV5DaPZ}M{@q3% dC;mVB0LQ6y01#T+KL!8*002ovPDHLkV1ku4cu)WU diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/gem_chipped_overlay.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/gem_chipped_overlay.png index 25281ca0c3e72b3e9d90631f895d0c810093cb00..d7b5d0bb781a6a4616f88a6b99e4a6466c560212 100644 GIT binary patch delta 85 zcmcc3SUf?+pRqW|-HBn{IhmIX3=F!SE{-7=E2E%- zPx%&epiqXVi(`nz>Er~7x(8QRhsSQ)wk_#IQvSU?FO{Nuz-g4c%VQ2aKIPs%x4u>r|NKNLy#*yUHx3vIVCg!0I%&r?f?J) diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/gem_exquisite.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/gem_exquisite.png index e79955d3f76685406cfab037ba10f61600ed0ea7..7ff1727075c4e53b211f17fe2e73c4b26dfa0417 100644 GIT binary patch delta 396 zcmV;70dxMl1f~O!B!2;OQb$4nuFf3k0004CNklC3g$U}J%oVaZqpKX;4GbU2_swKT0{ju;T_Xqr zKCXMcUgqrAJE4>k01(G9k|Y5DeloJ+6pO`zN-0~X(<$fkIe(>;{FOL`)|w=_+wC}+ zOt@OD*zI<$N$%0)dc9(~T%z4>gCs~o2!Y$}hFYzLVzKx+`glC1)|$uT(b5>hBuQwD zAxSEwoD?=e9LM)axt~z^eBM?e?sqqv&7hRBGj=+PB1a4WT5Ft6Cm3Tu62_R9^j5Lo z@9pO0a&h>G&3|SC-}kfcAq+zf1_P4h;c#$Bl3^G!ilXh(H& q-$%dS2LMN$Y4B{6;#v4__y%5f4;K|rMJWIP002ovP6b4+LSTa6#km{+ delta 546 zcmV+-0^R+l1G@x}B!32COGiWi{{a60|De66lK=n!32;bRa{vGf5dZ)S5dnW>Uy%R+ z00(qQO+^Ra0R;g8EDry$15dMi5gOPzynQ0As4W zfcgl&fR;9PyO7Su&^m=_f}M6YVq+VS2pa!IFe-_`yT$GX{eM1AG|d zT|t&*_Lxs56Y^gGMNt?4n5K#0aER4vg$>nf4}=hu%YS7Eg7ErailVUje9k(Z4!hlM%(iW2+csM)7Hl?~vD4|q?)N)$U6&b# z!Fs(O`+MYQ0>dz#puX>e5CTyYAqWBpA)u6EG#X*E*+hL2K$0X-O5u4Pw%aYjFa#k4 zJkP`TeK5ulkH`O+J_0P4OC*y?T(4Ig4hJ}n1Ix0oUVpC=Wm!;FHOgau#6QpH z^N(~o4N56wSwhIYFh`Qgb2i9`aru0z*#XqpC56v1)7 zTl)PzQmGU?&wKAgMNwF>SOm}W;5ZKXd_Jlb3I${`88jM=CpW&ea;a28JRV0jn}w>X kXf~TKtsDIDGkqMt0J8hn8Sketm;e9(07*qoM6N<$g8B9Bl>h($ diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/gem_exquisite_overlay.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/gem_exquisite_overlay.png index 47df8b0f2bd349b567ace4c04e93905269a03b9e..b95cbbfe181592b53770e32b4edddeb2321814df 100644 GIT binary patch delta 125 zcmV-@0D}L(1DXMlBz6IFQb$4nuFf3k0000~NkloteKM7 f$tT+tgBt(<4L>~Rz>*K&00000NkvXXu0mjf*CIG6 delta 422 zcmV;X0a^Z<0l)*0B!32COGiWi000000Qp0^e*gdg32;bRa{vGf5dZ)S5dnW>Uy%R+ z00(qQO+^Ra0R;geDs$v(+5i9nO-V#SR5;7cld(#}P!xv$bFb+g913ZM4i$72YPSxG zC|$J_AHdDYNt{GPU%=Hj@d1P`jzOqd97H6NE^X4J`oN~vTvo5AxubUGc> z>-A+Kiiqg=$A1j~fQTTaL=;6(N}<(i!EqcA5$0L|fG`XnJl3+L-qEe|qN?8C{p9>(Ovqqz_+H5whYPE_W2n;iCX{}d?XqTBc zem&xcilVs8^ZZE&aVUh)LWq54-UJXUr5^sAOlIC;<{$Ha#hRH97We7i0UIZim0Z@^ QKL7v#07*qoM6N<$f@1!&fdBvi diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/gem_flawed.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/gem_flawed.png index ce375659c8503fa79de4752f2f8f529b4db622ba..0fbaa1f839fc7174b9eb8d9a8395ff3c5b0cb643 100644 GIT binary patch literal 423 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1Ig6#+gWu0Yz- z((?cR|KGlS+puB7o;`b3u3TwuZoYNv*0i)VYisLSvt~`6JbA^670;hPfBg9IzkmPU zy?b~4`t?trKGoILO`SS5FE8)(>C+D%KHRZm$Coc(ii?Y9&z>C|9Q^3fqf@6&y?pud z&!0aL5fO=riJhID=gytGapT67D_2@uTMr&Q_~XZq%*@P$goN(y?pLo~ZP~JA-@bj* zr%&I$efy?On}ULZ%F4=mdwX+pa~-~FJOR4Zq9n*Km;vZqa=_L<$wz@^WO}+dhDc29 zJ%5^uL6L*?Lct6(FF}^g8S08Z{@Yu4@kf;%JZd{3f}`BgW%gob5x=JN_kUgry-(=W zvRU9#5hI}9(b#>BGr#3gf0VSqje{M(SZYp$XPn~>QgS_e=C{Dgxf$X2AMN~;_JeUg XKfC|7wE1;FOBp;}{an^LB{Ts5z8L8V delta 495 zcmV z1cRgyBp{YHhSZjp7QTY5K7ozc2-ZG=l~$=l!6G53_yQ8JP=Aa85du++Fe4Jj>Ynx=Tgj^jwLv*S3@Ul~o)6ha6QMUj|Jr@}N%F`LcAcsv${ zVTkwp@_Vyw+W;&U3oOe*mSsH8<9t5TZnt?Sk=~n6rxVZT6HU{&Ua$DRkEUr11_M-8 zC7aDM91d|^SAY6Lfn{0r`+Wd5n+;(YvfuBKWtncbi|2W)R;%ol9q zbOkT$b~{R?60KH?TCK)%xuj4iaKGQ_^?D>p^7R9$PBaWdbUGa-lL?BVkjZ2KSg+Tq lPW;izNs@fa{XX^o!Y6spydtr~I_&@e002ovPDHLkV1hqg*~S0> diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/gem_flawed_overlay.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/gem_flawed_overlay.png index 819f20a3774c4b8aeface32e58d25bf84a3168a6..6d33a9991091b75ef884c421d3421b7b67ddf0cb 100644 GIT binary patch delta 100 zcmX@W)W|qNC6=)`$lZxy-8q?;3=9m`o-U3d7QM*{67wGX|NoyIi0wOb&Q7^8$6vI$ zK%(!ew~xwUy%R+ z00(qQO+^Ra0R;gPDu<5_>Hq)$%}GQ-R5;7sku8peFcgJ98o~ldFl8MLg1tP0K(V0O zk$A!i8Uzq5!B-YTaDrR zqR;bONhxnnxC9tu*!LYFgi4YG=Nylp2r!N#%d!BFWm#XArFsmo*1pm-Er(&ybzS#e r*QqFqsH*BwDjsh$f2@x{{*Jx@MEh8|CyY2X00000NkvXXu0mjfgEM+m diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/gem_flawless.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/gem_flawless.png index 7f86f0ab674fd31410b92a25151960799e51e635..58f879b099d6fbc4f13b8792866e6289ef5bbd44 100644 GIT binary patch delta 395 zcmV;60d)SQ1f>IzB!2;OQb$4nuFf3k0004BNkl?pelSV<_HmewQZ1(Tw&71H4hj|14 z)R$>PDJ75VcDwzy_s4Xw)oQU^E*X!UFA`kOoku`%z)i)$9B5~;Cw#6K(5y- z`~BVwcyzx(ZhxQ~ESt@m0r`BMQmMpnIHXW0-0LEO=Xum>H5|vmD5aE4r&H;6yD}II z?k_N#&BXV83B&O79JsDaxm>1Rud`SzSg+RrRI62Tx!haR6yR@61)$k%G8&DjR4NpU pMLM0%W6xd2xqgoN@elk*zeftUy%R+ z00(qQO+^Ra0R;g7DQ0png8%>lvPnciR5;6}lRd8~VGzfE&sibMYJ?~h8ihoJZo|jm z187C3(<&7T-+|f}kO+m1sFWH@Hew}Svhk7-Jh!>$-m~W(xqmnJOf}C;<~RS$%md#v z@hYL~y8QSakH_Ml0J&UF0yLXVEX!gtnNTPcs8*|Ag2dFptdcA%zEgb+j`5mZ%02!Yq@Wj33+l)C^PkB7}>gX1{d?{|a{__rl}ZIgQE0c@XqtwiD70EF*By91uk&)bkk99tPN&pr zH2_kn6t~-rSSUy%R+ z00(qQO+^Ra0R;gg6CT%rPyhe`^GQTOR5;7cQ$0?FKoI`cC`&;k5E|Ooa|IHQpoN7O zu(q{+9>GLg8xtGP@J<07VMz!H*<~~AhOv>x=#x;rubIqbzJK{2;AAn5<9-v-TDxcF z=gpa!`Sn}wy!VG`nqH3ipZz2^O;a=T4#1OAs_y$2qEr|Rt?W^EXz-0%(*cJ zZQCLU0s!FE0YsuG`Y4LxB93DyrPw)lC4{&G03y0sy;A4ggZKWh=tOkA`96r~mWUoV dlTY{Qz5sf}bi6*U1SkLi002ovPDHLkV1kD@j?(}D diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/gem_overlay.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/gem_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..01dc6c05142048d26f45e6f20852f93c2843290c GIT binary patch literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|Ts>VJLo9le z6C~z6`2YX^9Y literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/ingot.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/ingot.png index 720584a1894990aa0e03c8bfc8a03ba2aa91cc07..c60f3800aa71fbfe310f0c662a9a00f9eb34809f 100644 GIT binary patch delta 264 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 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/ingot_overlay.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/ingot_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..b8e6494f345f1a4583fed00abaaf547f109d0258 GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|Ogvp2Lo9le z6C_xhS^oV0e5=8uwCDf-J!S`1$;E#7KmYof6GaxLkBnL}d~fh5MqbvCNMK-azpeXT TH+u#TP(OpGtDnm{r-UW|R{AKI literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/plate.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/plate.png index 7aa493a980fde650cc0b105d6b5238c630d6db17..4f0fce0b5c74660cbbae21d6c9a8228c6ab3c4b2 100644 GIT binary patch delta 315 zcmV-B0mS~f1l9tOB!2;OQb$4nuFf3k0003HNklV?VSJzS_2`#+X9{Zvg;E zDG#=<%8Sr6jWi<;!*FVQ7zQtb`wK+mz4Lci2!U}NKmURd;?nBB)dzw%m3ndfC({4` N002ovPDHLkV1lhUkfQ(q delta 544 zcmV+*0^j}C0=Wc`B!32COGiWi000000Qp0^e*gdg32;bRa{vGf5dZ)S5dnW>Uy%R+ z00(qQO+^RZ3>6j+0j}e2$N&HV#z{m$R5;7El1*;nKoEt$ZX4{_`4OjL%MK|LEWAL< z0dftNQG&t>goFe~;6_M9v1xa=-R@b8=t&edqtVo+O0BBb?|;22_{R_cv)Ro5^`H>E zy}gO}^6>ch2!NE5o0}WbG$o26gb+w6>ADVUEoE6^t!2C2{_ej3NGaKDHY7y58Dk8_ z7~(h%>(yG5Bnet;rqe0Tx$6?zwxwwrx~@YA5vbqZ-eQcQ*Xz-B-8Tk7LS5I)=X2`1 z4#(rYM=8Z}xeQ?I_4>MmkB<+EqCjg+9LG#16Uws07{hox2B4}chQlGpGZx^prw85kH+JY5_^EP9g@Br*(yU_m*J)E`A;$=vlMq z`TzfQxg5!hS12SfF#9N5B`7{|S#eO_Ag6^%&CBGmDMPHWp8kUDhRqXA1+MhuFhtIp uC@QqJ@l`{_Y@kkEhfdWe*>Zar7%p{rRw!S$*bcOh!IRz9&t;ucLK6UDDmMQB delta 306 zcmV-20nPrZ0nGxCB!32COGiWi000000Qp0^e*gdg32;bRa{vGf5dZ)S5dnW>Uy%R+ z00(qQO+^Ra0R$Ep5E{AdLI3~&+DSw~R5;7cl1)#S6~EsNngMQ ztb4c>!1f#m*na;_`+4V#hXSeI0aL6y;Br>I6<8z{U`{WbKObP*IuqE^$e{|x(JE=% z!CeX*1iCcMJGh*{V_Y5tE|NYnuBB~S;33ob;reC@ZxwDTD{p7pV@7%qD0NYq$`ziH zFIlkrusxjQWGlO`n`(Q?`Q?#=vsE8#KgFE`Z~UA12C7Vb70^G%ga7~l07*qoM6N<$ Ef<%{pL;wH) diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/raw_ore.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/dull/raw_ore.png index b9c01319eeb2792df7d9d4be235654afbb512c67..e60437f8b7513af041e069dd707b2157cf8db929 100644 GIT binary patch delta 4087 zcma)92{@Ep|9;38Swo`6G$^tS#y0k`hj>vbieY9LW?_syW+a7apCPhD$X401(<|YX z&}-lKLQ=AmrT=*A{l5Qqec$z6-*a8h^_=s&@AF&kbIx;}6Lpey@}3xlivs`v$(0{S z=7-JG$i@f&itqC5AlU(c+X`!JZ0B!pjsRPl8f&O%YiKB{DyaZ~MQo~rr=!CsQN4|^ zRfJUxm0?A+7vTciBWP4d>=U5}K*n`3A;X23-1?X&kZU4Gh5hO~1@9F@;-Za;H&{Zr zWTz)&H5|wI$HXb&r89M!#P!0ub#2eo#guS;z|5`4att7;tDyus6?A~x z5gd7dYM7|V6T5ns6`0sw`nJGCH(A*x+VO?}Kp0@VF{!mfu{+ZGfg6xM1U#iR4kCao z0YH@`qRI}aasvxlTuBB=G%x>WN!Rwz`tGH$< zXml%ER}(;2I{;A40!^s=9UIfyI+bvpVXYzf)w0|l;ybjM+q54K4GJ4rSb*!@Yo^(XuVO&?5-s87@pLpVwQpDX(OVGEi=fUFxVFEUWUAvBjhMlBK1@#bkr(8_N9Vb& zZ9P6nVR2n6{m4Ye`=hqw=Q8|;fEGK=&_X21^&cZAHc0Qf@2-wY**9DvG7m{Tr@|O zSzrY|1dU(I>lEMsR5+sOLHq!8EBVK9ucJWv-~-`f0QHDqG*A3;%3F#U3qa+9*|BSQ zMd^!0u@6wCDycfbk&|(BIIROZZXzP2%N(#~E?AT>TiIBb+sRmQbi3kg*P-NqYSPO25DWk<6 zrEY(XA$6|hN)~7fMA5#JVybjPuSGA5|EO7nv3|N(tKncS$os}nhD(nGFCz2LEidkB zu6A>tPF^pWOHm+1a%btB$g1cNP2cvrlx6!E5ni zjc12zBG=rd2Etfl>md_t64!K2+=D&@ODjMWPBDb?xj4DnuT%IMcoC9F#3N~& zu>=!+m4rk@n~bQSd`v*2N8?JPb0f=?givhbi6pv9aVEVT_K?Sjletas}`b*0}f#+I(P&9A{$ zg@gNo^_NuFg+h8mctf2-b3!DSBPKl-r8cx@RuX2Lott&0X(=hlR?HA+#=;8}gvR#~c>kMPk@qJHRkKjRDdzp|V(Zq6{FZfWe?|ZAUw-RqX zwLXJ!pYhAP0lPeOKl^d~!(OS<1d+F)N2(Nus=XXR(uMELN@hJPP7iP=J+Z=OxMWfm z-X+C5q^>Aw!Z*CqLepS{KE=ILYc$T4-Id=jBb*>EU9Wn4KjmkKzpH)t4w z8iGwH<09i(MuSd{vz-xh!ERku5=mCbn?GM>8_>-+ zdi--x?Wo*PNchA47tN!gHCBO?0jWX%AY%R4jCkpzxbUoS?d`Nav;M${ce~}U&gM{F zWPR<9__Q~6K#&tYe|i2h|2#;+$54X7`{t$)-{tL&jha5QkQYQ+iBw2JJJyl8kF{G&Tpwv zro!qEWq;)g7r$3sBOiML7Ea|nz7wDmr0E(^H5A&ucFFmDTbe_^Ug6`q$*}1Lo4t1V zikXr5D!q;MQJsT9p^I@}`9|MWZY)Q1>@IQ2OA1Mf8rX+9E;()ZwZBg=&|HIWP|_Aw zzI+Z9+WKJhd(n?AgOVRhe(B%jRKRg2fw8AC5Us(e>^B6W(%s7 zwtau6c$xk&r~JLqW686qv(`I@4iD-$stoys_<9k^M1L=$?>@}`kKRuX{WgaMeSqVbv?|mcqphNp`%1q$gV0m*5H6w_^U?YHn#` z2RE{_)PtxhK_T?}oMQB6oDg~^=Mf4sJ72gl35_HZNsdG!P7ktA1~U)&(EZGP;WlV8 z5``oqO^{?Xb39WrrdWz9P)DX@DjIMoOdhHNhyG0_qOh2d|B3onOf=_P<|8`5}y@f=?U~x>~-|jCE zeX#Cd^9eVy!1^;Q4`CWeC=A>I?f0vN!-DrB84OQ~sBU{uM093(c(hzbOARQGX(a9E2pHjXarB z=|O&O0K30e9at5nqzRV2fF+=aLH=@-|4@lCvvlQus-XN+p??bW7iNO?_aI??_ci&O zZf|0?-wfX0B6#L%VRj6HeUTnMXfha0V2VV780cq~=iCAS7M!Jtk)zh_YznHZbAdVM@J}h8R50AKZJ3czw$-6Y&;9j#mj}+FL4QZd-Bve!s=8Qg{ z8HwI#sF!NfOR8GDEd$vxFKptkyRsNLu(x*3zcPJDubSI3V$ zFJoZgsd09_DjHvWTXKjxy~IWRTy1}7uyuH@`bBWsP5f|kVsaGN4JMw!2<2LfzD8(AigkIH zCBC0MDU~gJXF9QClm$1e(F{H0cWf40*^cS%2|A%6&I@>#i5K*?hNaArssP`*D|zP& za2m<8RINKUZdIhxzDHVjcx4w`M@2ZIA_tGLMMf$y z2H^DQ`2MunjItRroJGJ?F!gQ2_h9-TM)TI9=ZirVa^WQyzP)_nGs(sN*!xFanZHcH N()6s!3xwOX{{smIE#UwF literal 4867 zcmeHLc~nzZ8V`sfi?sp+s8BNjETS*VOF|Y2DuyL$kgbZMqc1Nn@E}{0M-oMg(g75x zs6ZKUL0bitals0LXpwP{q97t8q7@xPr{V(4sI;P^b6-G~Gd*XH=S=_Oo%53Ke#`HE z_jkYho!o2<3k{xRJI$6tp-hs5h$F!F$K-1@4tzdqzYi2v{Pj`ML#%Dc!+W0iv%H(IiM;eyok;E29D%cr)eSYlHlsh-@)%EaW zkI#}5Ud+cNrW5J2p{2z(YckxHC6!p`Cix_FRR{L{Gxt&Wnu{H_cMkP;cAdZUebX() zj*TZH()AH~pDMXwcdF|FkBW})XH)bCUhjRnt^8EWS<_CfonI`@h)d0y;2rZ=o}^$~dI#Lt>DlC#B|SLh zcA9s0k*7SKdEQ+S6u@uWml@BsWTcEif(Bd2uU-@Ii6Z>{!*MWp=(aUp(_eK|X zPd?ls`N|M+G0cVAax~P1zs+%KgT3qKV2|VDHbZgK8diyW@a@wZR-Nk1PMsr}+Tin% zEa)1~vx|Sr!d+}#Iq&|2$1^ILlfA6RwWmMWSJ@t3(#ei8$m-~Bfr-khrv8`)r{}-4 ziOPD9cDD32xs~lJo^W^9+1|Ouy}RS`%QGLWHYlwo*Vi~H@)5zIozJcDnkqtl@!o0e z%^I&pr^{{)QuAZ5CEw>O_UOn8#}42N@b_NQTU{AQ>3 z^rBbTdh}&lGw)5w7o(a*i+P;p`*7lp~`KGC|XRXstq=(qOlBAUT z_UDVMT`O9X3;yPOp|GOsc4WuO%leHq7ha54CRygL>8`C4+00X4KC!2FoisHav(G+% zG~tg=mU?`#$kv}f>knR)*{S!M{{GWAyD#$VUOV6QdaKLGmtA2gaS>t0jBxeQvGytg)l-KGzbAkB3c|lXoU=h(P*R_ z*>sIAmcbGT1Pmt3fME!DK>BrR0x>~qy$1;~fFZ{8s1DZ>xJFGSF%g+2kr2^nz)pRi zpGqs04#BJSgDe0(7$!u^V9}Wjm5MPkLQe!50LWlMzZ#*B0Ku0%3Bv5Td}?5QoKwA-)_IKmsNS|m|fOgfumwvZbm1j_-`B4nik0J9#fMz~Oi zA%sR3rO_xwG%_hF898K@f&(Q-2t4$4A!$K@Q4c%K4+w^%@0XM0D7K zSimFT3KXcBE2{V4R?QmiZ;ZppeE^g}Odd2$8JETwTr7j^81Gl>$M`Qk{LBs`S`3IA z(1F$kIw51I6%O)6Hl5$_8Qh28a0UQ9HpvI^J4V+ST_4222RV;b*BD(N#J~qRk5$+I zjV{~a%M_*tzkrP3s^oJ*;|#7@)5DfT1+FP1Z(RQV{y8~0Wo2bCF)?bj8irwsL~^kI z-4DQKK}3W`Qs)1o4g9%7v5+ke7E`v2cMkyr8*Ru6J%wWDNWK=7f<3N4X-!C^f!04+ ze`GTgayxr97N~Yh#0#P(x?60gXx@S0&_kn9N!gOd5yNJIBNhjeDoe3gEFyamMIGu34ZMtrJr| g1ySI!HW~*6@^kyQ&I|3j)|yCJ5*R8z9=T6B!2;OQb$4nuFf3k0001iNklxJY5_^EKaYTyqoKggMjOK3D?e6O_u7{Q<7f(f9%fjuhDFgtA&|%PLtr` znQ0Nv-p#!(D{=UW()alWwfR@>igSK@rFh)0-Z*Aum|)>cAs3g$*A7VTa6j@@_Mq&H z)vhikbGfu0u-NR{n749k)IaMJT0fUs{Z2P7KDNm}WwO5A`MAU9ZfV!8UE=flje1}= z%bKbr>C*dIinkANMKIsCb7bUCxF{49bc;`8@}<7_EK@g#e>Hm(z$SN3p_=K|=SgQ5 TepD_1d6vP`)z4*}Q$iB}m3eK{ diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/emerald/raw_ore.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/emerald/raw_ore.png deleted file mode 100644 index 77c85dd669da5e4846899c5fdf4bfd8edc63a7bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4812 zcmeHLYg7~077n2DPCTRw(r% zhywKyQPBEEt)+UkR2~X0@AXj?u_%J5RkWaJl-8_pwJgX|M(f{Jw9Or&9^r8FwfGek*vp6m58Yi(+KYI{l@vFXbj$0e)oZh^2?@!j! z%@+4LYnc_3LgzjCybB#+eemg={3p|RBe=^dr>>~-x~a)bbtH=$TeoMo``s>ooKh$G zzGda|WtX1byxr9@1pgNG{bz;q>8#S6Ym8He{}YxqqSN~T?CrZI?vAT>jo0)U4}PWQ zkIZ?Vxk$I_lQ@xg<>g`|!D4a~`81Dz`OWphszgHeG8+H7>fhf!pC^b_iHMA=M`Eq_ zO1OErILi7o{M?>>uJ?H}R@N`NaUQb!{)@c*tDpVNb<&2*mK&xRM(C#VW!>wkk(TTu0;+bUH343?NH@89G+IUcyL%bYur`e zf_k%0{h}Z8w+7TJ5eK)3z{ZlSt%LrxFJ<>v3rG2{EfL-;dBhQ>T=0Rer?(&Z+fwxk zzp(ui58nuO@=%0LUUX^C4feiVl!IwOe7hQ~;c`o4clA*E$^`7k)D~q&M_l_=|qAC%nOacr-C zSfN%QL&8IbXuMK4O*CZ-LL80VxdONQLv>vVZD+SU2yQE@zIGtyBv&4DqI|A!b){3x z_!Gqw8~N{5&C*>TzT`@`Uw&l@xo+{Hhet$yI}ZIeC9Z8v=Z^-|YeR7Mq|AK#P1~vu zX8cqvu$%nsuD|CR>)P|F@u{b8j4f8pDmvZ){b(vWTN*cROuit-S5>s`Ox%SE509OB zRA}Ba?woB_hBO-8z4ycdYJnxWtko2cJZyNn`kOm7F42#Qu2>Hx{Bk)kV{rYFGhg2p z?tCBG@@SFVFOga{73!@ zjr-A>Pj*0;TBjf6;V-c%1R1W6DJ1=HGRjHgx|?b=~s3S)9~W@zT9QY+Y9q z!&Za#kV=9!5GR|BDs>tThU*jr$E?wVHo;&72ATDkGMS*53L=rzidhe{S?JwmQbPgaU>R?tT-fo2o{Xb1{pnl);z5jBfhHe3|Qv>IYDZ6;K* zm=!0BWCrUD1e4FJNb{`~3AO z2DL36TnQ0sLIX^VU{&rLONNHaBKtgO3KB_;-sT0!e#4R?Rj6ULVDEN)ktHA`*ZE5U@hX<_bgzn~w+(wnC}mu|+~e zfeHBm0!)DQg9_IgDNL&*Xea>AApwpE=Me}Z&IJ${pRFKx{%jam`EwO~KA*>j z`$5bxkf16tb^oYnC>%g>1wtXLmc?b#%P%dB2<)M5Szx>QC*y(Y8ldZ)7? zFCY`RDphJd3&1sNLgZ|@)OO)wNTt&5?(U9`j^g6ty1F`p!2oVJ3WXv&JKHb#bPh1G zqoN|B8PnRDz`ryMJH@O}2_t8)XBZeb>%-!W48~A5`n6+hEExloj#Riz>e%l1p0n@R zhW1+xKvf(rnJ#zov@2xjy20?zk3Eaoqx3>%*aUn3n9xjG@`}M#W}Bc4mKM>1cf3j& zp9zFqizU`Vt5|+%79$Ysy|%4STb~33L1M0jq-|E1b8_e$7*6!)ZBP2&M|CEQP8dzk Ng-atOWiu9L{TH10=?nk> diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/fine/dust.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/fine/dust.png index 72aa4317a44062f43fd4b86c288a67c3ba59ba6e..97a07551b722589cfdbe897655e3d4dd1e548db8 100644 GIT binary patch delta 307 zcmV-30nGl*0^0(RF@F_FL_t(Ijop&5io!q?MNgC{Q^jCmVL(%-68xUD>GK6zOzW@s z2eyF}{(+!LJE#MKgaqDJ1{2(3w_5ggGrV)S^BDNw(OQevT7C_eWhurONz?Ra60Nlu zV?;#67$e8y@mtC86CB4eP18`E%bzSK^PflTiD1U%kd>jY6-w>pz>zaZf zcuVpC?wa>~XR#21odFq!f%gDz+m^<0e9BP(sQZp=Sr*y0&F@$c<5`wPNudDZIHn{? z2x2&H+r}xTX?g(jJnIv{1!Vw|rYSpjT}Rh-Q5c3#!%8WY+tA(u{*I!EJkMhx&INVr rn(EI+`aLJ6ZXW#ZEc|Cue*oF>k`ZIvnUw$l002ovPDHLkV1fVukd}r- diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/fine/raw_ore.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/fine/raw_ore.png index a8ae434456b75bbc006fcb92b3b53248c81d1c83..e7cbd006c40bbe650cef3e7ea727cab4d567e3ca 100644 GIT binary patch literal 4861 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 RTMs95E=x(PsZYu5+n;{z6J7uS diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/gem_horizontal/raw_ore.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/gem_horizontal/raw_ore.png deleted file mode 100644 index 77c85dd669da5e4846899c5fdf4bfd8edc63a7bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4812 zcmeHLYg7~077n2DPCTRw(r% zhywKyQPBEEt)+UkR2~X0@AXj?u_%J5RkWaJl-8_pwJgX|M(f{Jw9Or&9^r8FwfGek*vp6m58Yi(+KYI{l@vFXbj$0e)oZh^2?@!j! z%@+4LYnc_3LgzjCybB#+eemg={3p|RBe=^dr>>~-x~a)bbtH=$TeoMo``s>ooKh$G zzGda|WtX1byxr9@1pgNG{bz;q>8#S6Ym8He{}YxqqSN~T?CrZI?vAT>jo0)U4}PWQ zkIZ?Vxk$I_lQ@xg<>g`|!D4a~`81Dz`OWphszgHeG8+H7>fhf!pC^b_iHMA=M`Eq_ zO1OErILi7o{M?>>uJ?H}R@N`NaUQb!{)@c*tDpVNb<&2*mK&xRM(C#VW!>wkk(TTu0;+bUH343?NH@89G+IUcyL%bYur`e zf_k%0{h}Z8w+7TJ5eK)3z{ZlSt%LrxFJ<>v3rG2{EfL-;dBhQ>T=0Rer?(&Z+fwxk zzp(ui58nuO@=%0LUUX^C4feiVl!IwOe7hQ~;c`o4clA*E$^`7k)D~q&M_l_=|qAC%nOacr-C zSfN%QL&8IbXuMK4O*CZ-LL80VxdONQLv>vVZD+SU2yQE@zIGtyBv&4DqI|A!b){3x z_!Gqw8~N{5&C*>TzT`@`Uw&l@xo+{Hhet$yI}ZIeC9Z8v=Z^-|YeR7Mq|AK#P1~vu zX8cqvu$%nsuD|CR>)P|F@u{b8j4f8pDmvZ){b(vWTN*cROuit-S5>s`Ox%SE509OB zRA}Ba?woB_hBO-8z4ycdYJnxWtko2cJZyNn`kOm7F42#Qu2>Hx{Bk)kV{rYFGhg2p z?tCBG@@SFVFOga{73!@ zjr-A>Pj*0;TBjf6;V-c%1R1W6DJ1=HGRjHgx|?b=~s3S)9~W@zT9QY+Y9q z!&Za#kV=9!5GR|BDs>tThU*jr$E?wVHo;&72ATDkGMS*53L=rzidhe{S?JwmQbPgaU>R?tT-fo2o{Xb1{pnl);z5jBfhHe3|Qv>IYDZ6;K* zm=!0BWCrUD1e4FJNb{`~3AO z2DL36TnQ0sLIX^VU{&rLONNHaBKtgO3KB_;-sT0!e#4R?Rj6ULVDEN)ktHA`*ZE5U@hX<_bgzn~w+(wnC}mu|+~e zfeHBm0!)DQg9_IgDNL&*Xea>AApwpE=Me}Z&IJ${pRFKx{%jam`EwO~KA*>j z`$5bxkf16tb^oYnC>%g>1wtXLmc?b#%P%dB2<)M5Szx>QC*y(Y8ldZ)7? zFCY`RDphJd3&1sNLgZ|@)OO)wNTt&5?(U9`j^g6ty1F`p!2oVJ3WXv&JKHb#bPh1G zqoN|B8PnRDz`ryMJH@O}2_t8)XBZeb>%-!W48~A5`n6+hEExloj#Riz>e%l1p0n@R zhW1+xKvf(rnJ#zov@2xjy20?zk3Eaoqx3>%*aUn3n9xjG@`}M#W}Bc4mKM>1cf3j& zp9zFqizU`Vt5|+%79$Ysy|%4STb~33L1M0jq-|E1b8_e$7*6!)ZBP2&M|CEQP8dzk Ng-atOWiu9L{TH10=?nk> diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/gem_vertical/raw_ore.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/gem_vertical/raw_ore.png deleted file mode 100644 index 77c85dd669da5e4846899c5fdf4bfd8edc63a7bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4812 zcmeHLYg7~077n2DPCTRw(r% zhywKyQPBEEt)+UkR2~X0@AXj?u_%J5RkWaJl-8_pwJgX|M(f{Jw9Or&9^r8FwfGek*vp6m58Yi(+KYI{l@vFXbj$0e)oZh^2?@!j! z%@+4LYnc_3LgzjCybB#+eemg={3p|RBe=^dr>>~-x~a)bbtH=$TeoMo``s>ooKh$G zzGda|WtX1byxr9@1pgNG{bz;q>8#S6Ym8He{}YxqqSN~T?CrZI?vAT>jo0)U4}PWQ zkIZ?Vxk$I_lQ@xg<>g`|!D4a~`81Dz`OWphszgHeG8+H7>fhf!pC^b_iHMA=M`Eq_ zO1OErILi7o{M?>>uJ?H}R@N`NaUQb!{)@c*tDpVNb<&2*mK&xRM(C#VW!>wkk(TTu0;+bUH343?NH@89G+IUcyL%bYur`e zf_k%0{h}Z8w+7TJ5eK)3z{ZlSt%LrxFJ<>v3rG2{EfL-;dBhQ>T=0Rer?(&Z+fwxk zzp(ui58nuO@=%0LUUX^C4feiVl!IwOe7hQ~;c`o4clA*E$^`7k)D~q&M_l_=|qAC%nOacr-C zSfN%QL&8IbXuMK4O*CZ-LL80VxdONQLv>vVZD+SU2yQE@zIGtyBv&4DqI|A!b){3x z_!Gqw8~N{5&C*>TzT`@`Uw&l@xo+{Hhet$yI}ZIeC9Z8v=Z^-|YeR7Mq|AK#P1~vu zX8cqvu$%nsuD|CR>)P|F@u{b8j4f8pDmvZ){b(vWTN*cROuit-S5>s`Ox%SE509OB zRA}Ba?woB_hBO-8z4ycdYJnxWtko2cJZyNn`kOm7F42#Qu2>Hx{Bk)kV{rYFGhg2p z?tCBG@@SFVFOga{73!@ zjr-A>Pj*0;TBjf6;V-c%1R1W6DJ1=HGRjHgx|?b=~s3S)9~W@zT9QY+Y9q z!&Za#kV=9!5GR|BDs>tThU*jr$E?wVHo;&72ATDkGMS*53L=rzidhe{S?JwmQbPgaU>R?tT-fo2o{Xb1{pnl);z5jBfhHe3|Qv>IYDZ6;K* zm=!0BWCrUD1e4FJNb{`~3AO z2DL36TnQ0sLIX^VU{&rLONNHaBKtgO3KB_;-sT0!e#4R?Rj6ULVDEN)ktHA`*ZE5U@hX<_bgzn~w+(wnC}mu|+~e zfeHBm0!)DQg9_IgDNL&*Xea>AApwpE=Me}Z&IJ${pRFKx{%jam`EwO~KA*>j z`$5bxkf16tb^oYnC>%g>1wtXLmc?b#%P%dB2<)M5Szx>QC*y(Y8ldZ)7? zFCY`RDphJd3&1sNLgZ|@)OO)wNTt&5?(U9`j^g6ty1F`p!2oVJ3WXv&JKHb#bPh1G zqoN|B8PnRDz`ryMJH@O}2_t8)XBZeb>%-!W48~A5`n6+hEExloj#Riz>e%l1p0n@R zhW1+xKvf(rnJ#zov@2xjy20?zk3Eaoqx3>%*aUn3n9xjG@`}M#W}Bc4mKM>1cf3j& zp9zFqizU`Vt5|+%79$Ysy|%4STb~33L1M0jq-|E1b8_e$7*6!)ZBP2&M|CEQP8dzk Ng-atOWiu9L{TH10=?nk> diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/magnetic/magnetic_overlay.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/magnetic/magnetic_overlay.png index 1e7a3a5248ad026483821c5b39859e30fe0687c5..2dfca10eb11aee820822f9dbb91a6a21c81227b9 100644 GIT binary patch literal 4164 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 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/metallic/ingot.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/metallic/ingot.png index aadddf2eb2641be8ed3224f59a96e98e7277d153..dce47a8ef624ade02a46445a2c765b9dc6cc3f87 100644 GIT binary patch delta 258 zcmV+d0sa1}1F8a$Fn<8#NklVO^~Gbtr( zh7)JVmPm=|fQ^QO)oR)B?nU;D-uK7@{|2q~uC?A@>+zi==dvsTNYiw0+cuJVbSLF` ze(5{sn5GE{iN29uIfukr>%Hqby!Rg^K`Dh&N*>vN0E{sxrF(8Ar4-(K>bk}`$K&z% z{X}C7RaG66oCCf048y>-Z2%-ma`Y}+kdSwhP!z@G9s`6B$g=D!F@(T4jsRF|qqy(; zNVXs$XJp)_X^xt;_E>)ma1IgHb!AzWx6+wQQ9|Z<{wVz|o-zb^dj(QdGynhq07*qo IM6N<$g65rfMF0Q* delta 387 zcmV-}0et?d0;&U$Fn2zu^ zUj-xt(6((3dpH~#B5wk9Xti1~R8ynoK6N-ELn3i^YNv+p;Wfz=9J1>2^M!>2|xZ5Y~7+<}p+PP1ET4eA0To zrlKfV2vC})Dtr~-PNze|;gHXiz-%_7`Fze`zu#x@e!sI5W|!b}I_2-O-|xAW=lLrS z#z1j28u2L7S%T>CeP3N#e0}+%HV{D)#EavY>&N3!&0L3+5>fLi%lnWd3HN-0J_^(e hZTGEzrcZ)@-9NH6Z&dSk00000NkvXXu0mjf000^Du)+WU diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/metallic/ingot_hot.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/metallic/ingot_hot.png index aadddf2eb2641be8ed3224f59a96e98e7277d153..dce47a8ef624ade02a46445a2c765b9dc6cc3f87 100644 GIT binary patch delta 258 zcmV+d0sa1}1F8a$Fn<8#NklVO^~Gbtr( zh7)JVmPm=|fQ^QO)oR)B?nU;D-uK7@{|2q~uC?A@>+zi==dvsTNYiw0+cuJVbSLF` ze(5{sn5GE{iN29uIfukr>%Hqby!Rg^K`Dh&N*>vN0E{sxrF(8Ar4-(K>bk}`$K&z% z{X}C7RaG66oCCf048y>-Z2%-ma`Y}+kdSwhP!z@G9s`6B$g=D!F@(T4jsRF|qqy(; zNVXs$XJp)_X^xt;_E>)ma1IgHb!AzWx6+wQQ9|Z<{wVz|o-zb^dj(QdGynhq07*qo IM6N<$g65rfMF0Q* delta 387 zcmV-}0et?d0;&U$Fn2zu^ zUj-xt(6((3dpH~#B5wk9Xti1~R8ynoK6N-ELn3i^YNv+p;Wfz=9J1>2^M!>2|xZ5Y~7+<}p+PP1ET4eA0To zrlKfV2vC})Dtr~-PNze|;gHXiz-%_7`Fze`zu#x@e!sI5W|!b}I_2-O-|xAW=lLrS z#z1j28u2L7S%T>CeP3N#e0}+%HV{D)#EavY>&N3!&0L3+5>fLi%lnWd3HN-0J_^(e hZTGEzrcZ)@-9NH6Z&dSk00000NkvXXu0mjf000^Du)+WU diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/metallic/ingot_overlay.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/metallic/ingot_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..369ade31705e6cd533bf97cfd9dd38b68b568ca1 GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|Ogvp2Lo9le z6C_xhS^oV0Y&FlLwCDf-J$=Vl$;E#7KmYof6GaxLkBnL}d~fh5MqbvCNC0XIGYINi SIH4D)pTX1B&t;ucLK6T**CmC+v+lIDn0RZRyLDMv_*52jwJO|AO08~}=S(YX8Jby<~6abLq%#19{KtyoP zVO`g+D1jHGI5R_4K}1oVKPvzTd_NNrsA~FxVHgh1)>=5{!mO_AC`GcuwX=65qQ@)v zb?^SK3eLG8_O7aWsBpm*nE4R<7NP{>I0m6HCK=lp6IBR*frz4azQ;ub%d-6b1rfO! c^=*5dZ)H delta 544 zcmV+*0^j|y0=Wc`B!32COGiWi000000Qp0^e*gdg32;bRa{vGf5dZ)S5dnW>Uy%R+ z00(qQO+^RZ3>6j+0j}e2$N&HV#z{m$R5;7El1*;nKoEt$ZX4{_`4OjL%MK|LEWAL< z0dftNQG&t>goFe~;6_M9v1xa=-R@b8=t&edqtVo+O0BBb?|;22_{R_cv)Ro5^`H>E zy}gO}^6>ch2!NE5o0}WbG$o26gb+w6>ADVUEoE6^t!2C2{_ej3NGaKDHY7y58Dk8_ z7~(h%>(yG5Bnet;rqe0Tx$6?zwxwwrx~@YA5vbqZ-eQcQ*Xz-B-8Tk7LS5I)=X2`1 z4#(rYM=8Z}xeQ?I_4>MmkB<+EqCjg+9LG#16Uws07{hox2B4}chQlGpGZx^prw85kH+JY5_^EP9g@Br*(yUcNb&-u67F^_vf?1WVNMH^nwQCAQ-)Y$J^cmQ4Vx#L3S8;QVThbH uQB-JcUy%R+ z00(qQO+^Ra0R$Ep5E{AdLI3~&+DSw~R5;7cl1)#S6~EsNngMQ ztb4c>!1f#m*na;_`+4V#hXSeI0aL6y;Br>I6<8z{U`{WbKObP*IuqE^$e{|x(JE=% z!CeX*1iCcMJGh*{V_Y5tE|NYnuBB~S;33ob;reC@ZxwDTD{p7pV@7%qD0NYq$`ziH zFIlkrusxjQWGlO`n`(Q?`Q?#=vsE8#KgFE`Z~UA12C7Vb70^G%ga7~l07*qoM6N<$ Ef<%{pL;wH) diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/metallic/raw_ore.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/metallic/raw_ore.png index 866de9f1f44dbe4b5d2f519027f976367fe816e0..628f4b22aebc438bb29eb6f5d8afae0c548fc9fa 100644 GIT binary patch literal 4433 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 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/opal/raw_ore.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/opal/raw_ore.png deleted file mode 100644 index 77c85dd669da5e4846899c5fdf4bfd8edc63a7bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4812 zcmeHLYg7~077n2DPCTRw(r% zhywKyQPBEEt)+UkR2~X0@AXj?u_%J5RkWaJl-8_pwJgX|M(f{Jw9Or&9^r8FwfGek*vp6m58Yi(+KYI{l@vFXbj$0e)oZh^2?@!j! z%@+4LYnc_3LgzjCybB#+eemg={3p|RBe=^dr>>~-x~a)bbtH=$TeoMo``s>ooKh$G zzGda|WtX1byxr9@1pgNG{bz;q>8#S6Ym8He{}YxqqSN~T?CrZI?vAT>jo0)U4}PWQ zkIZ?Vxk$I_lQ@xg<>g`|!D4a~`81Dz`OWphszgHeG8+H7>fhf!pC^b_iHMA=M`Eq_ zO1OErILi7o{M?>>uJ?H}R@N`NaUQb!{)@c*tDpVNb<&2*mK&xRM(C#VW!>wkk(TTu0;+bUH343?NH@89G+IUcyL%bYur`e zf_k%0{h}Z8w+7TJ5eK)3z{ZlSt%LrxFJ<>v3rG2{EfL-;dBhQ>T=0Rer?(&Z+fwxk zzp(ui58nuO@=%0LUUX^C4feiVl!IwOe7hQ~;c`o4clA*E$^`7k)D~q&M_l_=|qAC%nOacr-C zSfN%QL&8IbXuMK4O*CZ-LL80VxdONQLv>vVZD+SU2yQE@zIGtyBv&4DqI|A!b){3x z_!Gqw8~N{5&C*>TzT`@`Uw&l@xo+{Hhet$yI}ZIeC9Z8v=Z^-|YeR7Mq|AK#P1~vu zX8cqvu$%nsuD|CR>)P|F@u{b8j4f8pDmvZ){b(vWTN*cROuit-S5>s`Ox%SE509OB zRA}Ba?woB_hBO-8z4ycdYJnxWtko2cJZyNn`kOm7F42#Qu2>Hx{Bk)kV{rYFGhg2p z?tCBG@@SFVFOga{73!@ zjr-A>Pj*0;TBjf6;V-c%1R1W6DJ1=HGRjHgx|?b=~s3S)9~W@zT9QY+Y9q z!&Za#kV=9!5GR|BDs>tThU*jr$E?wVHo;&72ATDkGMS*53L=rzidhe{S?JwmQbPgaU>R?tT-fo2o{Xb1{pnl);z5jBfhHe3|Qv>IYDZ6;K* zm=!0BWCrUD1e4FJNb{`~3AO z2DL36TnQ0sLIX^VU{&rLONNHaBKtgO3KB_;-sT0!e#4R?Rj6ULVDEN)ktHA`*ZE5U@hX<_bgzn~w+(wnC}mu|+~e zfeHBm0!)DQg9_IgDNL&*Xea>AApwpE=Me}Z&IJ${pRFKx{%jam`EwO~KA*>j z`$5bxkf16tb^oYnC>%g>1wtXLmc?b#%P%dB2<)M5Szx>QC*y(Y8ldZ)7? zFCY`RDphJd3&1sNLgZ|@)OO)wNTt&5?(U9`j^g6ty1F`p!2oVJ3WXv&JKHb#bPh1G zqoN|B8PnRDz`ryMJH@O}2_t8)XBZeb>%-!W48~A5`n6+hEExloj#Riz>e%l1p0n@R zhW1+xKvf(rnJ#zov@2xjy20?zk3Eaoqx3>%*aUn3n9xjG@`}M#W}Bc4mKM>1cf3j& zp9zFqizU`Vt5|+%79$Ysy|%4STb~33L1M0jq-|E1b8_e$7*6!)ZBP2&M|CEQP8dzk Ng-atOWiu9L{TH10=?nk> diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/rough/dust.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/rough/dust.png index 739a7cc03b39782b69c9e6301d100349ef43b3de..ff4ec5283a70309577fafb323bd65de1d0436566 100644 GIT binary patch delta 306 zcmV-20nPrG1KI+RF@F?EL_t(IjopzUj)OoLMqe9(oHQBc0Obg+8Cz2W5>t-BQ7Sk^ zHKL-mkQ8hk9DtCJk(gOU!gSjet2X=DnfH?K`{92l%QBl~nf*0Uc<2x9tL#K{Y!CK4xen$wwcDqFgLDzMZWeLFf zd`2ndRCY$JstO?lQc8-Vz!<~x`9y0CfKrNa938>84T2!xcsyc^p)5L_t(IPqmXjtAbD%#-AD^u@VPAK!dJ=Q#dw=L$ja3C4%Ob zzCc?a!A;z3jR=fD1cxBRQIUuuC}=Rw0poVl%Z2ES=bY#FKJUL8K0LJ#_4qDeFc{>- zp>5lhfhr$}*fdSBEQ{%MS_vry5bjW);ro6$ zKv5Lvx{g+>1!&iGA&Me`Ab=!ESgls5*Xu~r6mcBC14zy!4Fb_L4M~#F%9E4lIjx5* z%b3k(Px$FiAu~R5*>@kwI$0U=W4BG$l4Fq&w>k1driD5AchZa5aZ;;lcyBuov(k-aywH ztONp@YWz!nnC?nbqI6k0%i+C`d2ir2z*h@KCih#&ABL3Bx*#Mgwat~I?NfLU!o;Miuz2otSwU%bH z$z(E7V~kb;L_~+fA-i3S@B3c@=N#5reBVb^X|-B>hm<=jxo}dcD$qX>&RqDT;zLO{vvtB|znCrqijaDpB-I zo?mdz5yvr66tP~fSuU5}O@N5#cDtq9?NYDTNs@#x4B2cpCF9)-0DiVzW&RuU37Be< UD}raQq5uE@07*qoM6N<$g4$T4YXATM literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/rough/dust_pure.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/rough/dust_pure.png new file mode 100644 index 0000000000000000000000000000000000000000..8ae25cd20d89faa626c5861e71e5612874c090a1 GIT binary patch literal 348 zcmV-i0i*tjP)Px$7D+@wR5*>@ks*$QKo~|}n+7>)GRy(s2*r%WV2Z3M$KWUxJp~$3Q7j~Yt!oo( z(}awynN>}gZdtKvv!9)LFZsS7{&(^`w|So1U&H6~*|u$Kce~xJWH|?Kw_D;k24J(< zFeh1kg0n2c_kFsq!x%%BWv^#j6vbltfAI-^MM}xz@!)hialhYDO40W{Q^|4)r)f$Q zMF1FMD9aKlC0c8gQtbD8!Z38|I2Ek5R8@r#f*=SGLU6m?sOuVl!{LBZ%Bk#(*fb47 z2&9yhWr;C{%jJUB8UUpf<2X8kZyWf&Pm&}UW2ozz=ktl@c>rjwIUbMB29Dq*8HRx{ u3|X(&0F2|v^?C*1$16X zA+0-IAx+NVLT6B+&UbL*8w9yZYm$%?q)<1wPvxyF?EJvO?sUV25Mw092!K)w5uxk4G(9PpeJ%aQ7-^aYfV!?x zN}-fuzuyB)0Bzf5$-?YeL=t$ORF>tm-EJw0g57QhK-YC^3%?B!VI0SlCj}t{9*+lF zYqZwXbxm286MDdAv!N&o0M6$#ecva7)pN|JoUd@Z-2f6;MDX6Pmbm(Zs;bahBO-}p zDgA!GGmayD-zSon9Sp;O_deZQL^vLgc<)!b^A1J(qPB!32COGiWi{{a60|De66lK=n!32;bRa{vGf5&!@T5&_cPe*6Fc z00(qQO+^RZ0Ui<^Da$%tjQ{`v<4Ht8R5;7ElRZu&K@f$%o*y-14I(2WT?n}h2{#}m zSdsYvBt#ryByyjD&_WI&wXuZ9JmcPIhPAXCQc_E$R)6)Y_w-)FPnC$I;mqgr z^uM`cXqu+s=H@2tb~|RXnJJ2b7$YJ=N{Oavu-2wL&sn^^ncoi&0GI(FrIfm^!#T%( zzbD2>j1liWUDqKZIOoRu+uK`n#Nco^psI)nRaGG(tk-M2_mpLcwRQy0^L&($4b98T zi*e53z31cOgMaOIJ2LU!6Jw;VYfes1czt~xnHzxj_xA*#s&rk)X0u_l*|1!$Oo+_xJav09dcr0K^z^&S9-(xm=pNyE_1;)2X?>zD}#viqFqaCX)#< z#%~ucE-nZmu-olWRldHy2qBC*LkRr+_;5JT_x(43bAOI3%LpN0t)(amPESwMbUHO5 z1g@^GlB!bIH6lV;meh59Y-7_joS&bkvMkwdw}=QLLff|VeNRPx#>q$gGR5*>zlD)BmFc5^-eon|0kdqKX3#bTk8s6;J>}4FXj_4OE~W z&XF`=$uk}Y9&e_fZ*Na0;HRavrjJ3bHEr8Q!Q_?MH3xIf0RW6K^nD-qq?C!tB?s4a z4exzY&3g}H45n#{+$q5@43~9XBdnByQtAXh>-L;L2od2>sc9M#LZIuqaFxQ@^$2s$ z!5B-b9OaxlwUE340E86tJR_{FwF#WG003bE-uq}|twr0mNqhkKJHpGd+^eekFUu0f z7!VQmeTQ=nMNwoEWEJKurKE8jNlHn%Kk$}52EV2Uye@!zsI28q00000NkvXXu0mjf Dh533P literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/rough/ingot.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/rough/ingot.png new file mode 100644 index 0000000000000000000000000000000000000000..48d886a84f8d6a4c14e19f4dbe0dab8335b1966d GIT binary patch literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|HhQ`^hFJ7o zop_M5#X!I{{s5Pg*9PY94MP5!2c(t>WlwOh63|gu()uP*@=C+3$M5WU`<=zpsBg*tRX(?N;d5 z#b&bsKq-Z_mg#hg)*2}#Qc8wlAcVl<@!)(ub2uCT7y+dew}0CWV+^GfVvNKXQA**x zM=3>&k*}{WPN&nDWCV;c%;$5AG0bK&j4?bO54`sPbX`Z^_W)RHKY`V1MXeR@Jwgb& zuERM;jFFTQwN{i;-kN}-fO&Ka#WLI_eypTJ9Z&W*tH z`5a>d48uT534iC@C-6c-2!s#-sI~q$|F{Ey>-9>lmF03tj1glDIcL20V?PYT`v~&A zS+Cc$ZHrP0tu;z1nx+|FDTIKv_V)>L&ZLwmr67bDqc0WUy%R+ z00(qQO+^RZ3>6j+0j}e2$N&HV#z{m$R5;7El1*;nKoEt$ZX4{_`4OjL%MK|LEWAL< z0dftNQG&t>goFe~;6_M9v1xa=-R@b8=t&edqtVo+O0BBb?|;22_{R_cv)Ro5^`H>E zy}gO}^6>ch2!NE5o0}WbG$o26gb+w6>ADVUEoE6^t!2C2{_ej3NGaKDHY7y58Dk8_ z7~(h%>(yG5Bnet;rqe0Tx$6?zwxwwrx~@YA5vbqZ-eQcQ*Xz-B-8Tk7LS5I)=X2`1 z4#(rYM=8Z}xeQ?I_4>MmkB<+EqCjg+9LG#16Uws07{hox2B4}chQlGpQT9`p3NH@CW$@A>ZWk>P)r_-NMab^WiR zIF4B^mjXb2y;v+3NGZ`;)9rRqN@0v)G#XJ=72bPxyB(X&=6|Va0JPRzuUD$7qAW{{ zF-)gZk|e=eOHmY@PN#;O*4M*uIHam7gb<`@inSJNEzUXWx<*Qg5TXHSI1oahwZ=I| z2m$9DMNtq!AcTNYin1(!21qHn-|tv!2_cYW8O9hcmkR*xb{lK$&w%s!%w#elO;Z4z zb7Wb@Y&QE8D1XIvyL}B9kH;iQLaWsx&vT41%;$3shXZ+@6GhR}&C3u0dc7V}N|aJa zDT$&8fGCRa-lMhtJD@B}9*+k?2x=BPqR5;76lg-W{K^TP}{dH-yXn(O|VI}FMr7Lg? zwp@fuuy8kaHdd}ch=hnpC(;(EXhnC>v(g#l`zDi_vpbcXr+?l$ZwmfVvG;@Fa2S?K zCAQlw&1N(9SAgMg7z!bn&1TeUHP-7jnM?+NYPCweUjG2G;m#)^ZCs6 zdIi8VO;)Q_xLhvrJdgc;Pp8v~>F>nj@kpsu;_-N3+ct(_@b&e@@pxpj*&u{qI-OE3 zmjTe8!O>_GdVikx$I?vG#I|kj_xmfr^E@oeLI}ZlJSHBGblP5azO||DwQG#g2;Ef-Pn(SclG=I@VoGT(J$~i W#cy*>R1IJN0000G!PC{x JWt~$(696@bARGVy literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/sand/crushed_overlay.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/sand/crushed_overlay.png index 6f73847d10667c0c8c850860899385a2e2ab2a13..6d7708d3517479145b1660d851407e1fcc9b8091 100644 GIT binary patch literal 5944 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 L>n*ODx$XWJhTWS( delta 567 zcmV-70?7TiF3<#!B!32COGiWi000000Qp0^e*gdg32;bRa{vGf5dZ)S5dnW>Uy%R+ z00(qQO+^Ra0S^rn7MLB(>i_@&-AP12R5;7cliy2IaTvy*?>U{5YbV&6wTp^kR!rB) z&CwZ~XJgIGL>gT=LGjk^z3Qrepo82zAChPV+W!D3%M zKVGjAk0R8a&)o~p`{9A-eStlxemz86=S;kd{(U)ijsPH&=p+Eh4g_hbT8*W(FabbP zQz@ybn?PYZV82WlhzF?EG%=J8(T&MFncI^&Q?LxgB0-v+uduCt2VhWF>1kn6done9 z!ta#VKfEC@Xxu1-FYKsi_W#1Hfe&ob#3IS4MxIIV2=uS$Owqy7szOUzYbt z$PQ0PZL*DB6Xa*!vhiHccg0ip8#W~IfQ7Qzs`wNc5AQxW{^IdHV{M)74gi4Fx(Kr= z9I5?i%_#n;v(XOzA~7ZFi=Z+8a`T@2CtQYm#ampj&XNu|M5fG(#_k{$_e)^}b# zO*<0ABLU*33~##|+3r(gjmA>r&FALywUMjg@?5@cq5f+Q0Di6-Sg3qrI{<%`*3J^y z9F|E~6EIvj>N62kSfcQa7mKAY?7vT2k9LwC?V!E+cpJ4AybSTjg=_!-002ovPDHLk FV1n&x0p0)r diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/sand/dust_impure_overlay.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/sand/dust_impure_overlay.png index 6a7c0cfdb380a72ba7a78322f069213f9d95c09b..4d1b97f51c4382732579cea249b1a22701ac3ff4 100644 GIT binary patch literal 5926 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 SYi;4*1}n4erZUy%R+ z00(qQO+^RZ3=tItFo^cAb^rhYsYygZR5;7+ld)@4VHCxGU*3B$YSX@_R5M5`MKrVu zB2rsZQ!Oc46|GgF3N8-v1spnea&i&p*Qxp+2%=D`4hlj`BY(7ggtmgk5Tl@rF`9<= zeMveW^x*oqvxF)X{g4j!LPucR7j%tpk+ySHTYL_fYRV;F{9 z{hW1ohYTjCW<|X&@VD{$U|)6o_NeUaJxyd^8k6i2vhrb-CsVH`HeO(ubR9eD zetY-Ab;3<#Gat!)%2M(*MO8*upinG=VNt2K)e3L{rOs{#P|FU z=Djpc;bzu+#eqXnW>P7hP5<7$AwmsTE(}Sn6_Guy2q92PI3IK0r<|ansN2)DBc=XZ}|IRP01BT^|PS6f#egFUf07*qoM6N<$ Ef;Ttl3;+NC diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/crushed_refined_overlay.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/crushed_refined_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..741e36bf4a14682342c020ce4db1835ae106ee4e GIT binary patch literal 5363 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 X&)nWrOF;U_u1WUR>u8rOJ$C;K#$i@u delta 251 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 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/foil.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/foil.png new file mode 100644 index 0000000000000000000000000000000000000000..bd906cd9046830b6d6c0aca8f1750353277f4494 GIT binary patch literal 373 zcmV-*0gC>KP)Px$FG)l}R5*>TlChD4Fc3vQP8sZk#EC*OHK5F8cqjlma19I%Yy)b+A&#s9qz)X2 zghX}$dyzDp0pHEs{pim~|IO~71^%e)(<2da^ljUI{JR>C^4{|t_N%b>p6Bx3b6wX9 z$nFzp9LMC3$0Pc_$2(*bFiq0}lIJ-tm&-TEW-&y>N-30OnSjO^0Dw{oUDrWto$cm< zIiPLZ%ovjmc4x TycY0<00000NkvXXu0mjfM5&)s literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/foil_overlay.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/foil_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..3c69c90a91f1ef25ffff66da3318da6a4d35417d GIT binary patch literal 129 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|tUX;ELo9le z6C|!Y`2YVuI}qD<=A1nuameL_f}5LLH5(gSZBeWtr*!oMricZ+T+VEs2Y4GZ7K<@3 YOrD`5T<9Sw2Q-Gk)78&qol`;+0QNQ}Gynhq literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/gear.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/gear.png index ebfc53353b4c72ad363a4f118f1d35e21cf2aab5..f0908f0324090039daac3042c3df4c97371d85a7 100644 GIT binary patch delta 339 zcmV-Z0j&PR1MUKlB!2;OQb$4nuFf3k0003fNklvsMrh8=sq| zS$w;lo5sevuBq#Kwf@mDrDQ236A@EYGc$WWpQfrNB9`U7|9^yJz?xKbfGz?uWNyf& zd^b1$j03Bx3V^=v>AH^F?FK*y0p}d=_nQy`fC1d^_s!7x^?I##5)q3rnyL<&0|)Mec6HIfA(Nani$aW5L&T&4UDa(?s>nMtX!{Na7dS$=ge-B4Q2DSvli9CrTS`UO9#KBP}qU!MQ~002ovPDHLkV1hh2obLbt delta 425 zcmV;a0apI*0>cB4B!32COGiWi000000Qp0^e*gdg32;bRa{vGf5&!@T5&_cPe*6Fc z00(qQO+^Ra0R$Ea8{V=P+5i9nP)S5VR5;76ldY12FcgJ9c2?p#(Y1A$J^{9Q128CT zJ(a0$EUGV&%Jv;_5v{0*Vi3&WvnmX9%dXhHD#^X){+xRPe}A-S$x#%ApWe^s^V`^u zSI`uwltL-B=>JyHIp>{oKAf-DtH0mx<6GbNzVCZ4r5uxdz9zEPlIJ;>%Y`IKxZQ35 zR8>XWwg@4XIVg(4=XuWK@gPYOhG768j$;5;s}=kG9%D>2OAzK#N{y9=Vc>K+0id;} z>pGgIVYk~+mVYGx#+c}1N|?2F1~$e-#+c}MJdWL1YpLt{{T9~iHBHm}y8AHFjKss? zFs>|)W3<)?Av{3f1z@|~l4aR4iB(n6bsfOib^xbo`kur9)>_lHEx@?GU}>82d_LK1 zHk4&KCi$iVAp}{LQP(xr+F9FE@)p$?R3@eL&bgWLq#~3v75?~{UIV9d|Eqlg=!?n5 T+@K}J00000NkvXXu0mjf=P=0Z diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/gear_overlay.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/gear_overlay.png index 49c5714bbfecf4e9bb0b4f4168a141738fb24f27..7b177c5d0aa0252897cf91a8adc30eee12265ea0 100644 GIT binary patch delta 155 zcmdnRw4HH+NGZx^prw85kG}JzX3_EP9g@B;p?Y|Nq|?i1VF`S(e^aopgm2uXI{C`Bje}uVwR+&Uy%R+ z00(qQO+^Ra0R$Ek0h9d{djJ3c$4Nv%R5;7clD&!oK@fz$S~XG31dkQgKYRz@|0Tps z948kYWUY>yRqH8>!~_`Gf=m0wtu&_w<*)lCrUcnu7C-! z0!}R)EvJ|Mg6u)S^Q5_MVM)g>-(MlM$?bK43)|BY9REYx<9t}U#5=IeJqAz#J>X`0 zm~vIRyn^SpM!+v{1?G|t#Ta8qoyrW^gMinPcJJ;Wjq2O>B%;0m8%eu-KmEc!pHbQV liKu6i_MJ(5au~{gUk@jXe3kB%4mbb+002ovPDHLkV1iEne53#X diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/gear_small.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/gear_small.png index 9a238ba8efbf88eaf4532c19df4ef6bd83b37053..b0f08151c3010b20475b7a7e53115112bf84beac 100644 GIT binary patch delta 209 zcmV;?051R80__2iB!2;OQb$4nuFf3k0001|Nkl54>6;G zUN-9vF|&xA?%lATmr^cUJiIB!NUfD|98cl; z0Z#Bs1CzDzUd_`qbysQ=VU+H-neAAEHwrQE+krGJz&#<)%LSat-p)_ZS^ zad8}9B;FY=ih^Mn0FY85guq%0Kp2LkX-ePsJNG&Y+P3uo7ex_LN~)>?pss7IwWMkK zEdDf2A90mZZXCybq~qD^9Di9B)^)weg%J3@e;L8MTU(Z81VKPqmH;G4!aUD(UH1V4 z{G4AZiUI&@EjM|d?=V2qG~8|C_8;OncE%W|wch(b;jOldNANNHo9uh*4LX0JP7y%a Qy#N3J07*qoM6N<$f&*`dE&u=k diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/gear_small_overlay.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/gear_small_overlay.png index 9ddb738712fe3c7c1664b0e39bd1f8c259c25974..525829bb8cd8ebc63f01dda711a4b70355bd3fcb 100644 GIT binary patch delta 75 zcmaFBm^nekm9aR;-HBn{IhmIX3=GPiE{-7^NO7=1?iAU$$ f*+nYTGZ+{&r%CpIe>EWvsGPym)z4*}Q$iB}{3;s> delta 195 zcmd0Nz&Jsro-N7S-Gu=Remd{22QoMdJR*x37`O#Nn6W-3ej-qiy~NYkmHj>=Kd%;J z6n9V{P$<{a#WBR<^xes}Tnz?1t@3gnp|vd$@?2>@U#Muh+X diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/ingot.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/ingot.png index 478e0f139e5da5657ea20ab7061c5c99932dce5e..7a5fa4065597ad7eacf638f119f7ce4dd843169e 100644 GIT binary patch delta 259 zcmV+e0sQ`(1FHg%Fn<8$Nklo%GGdoIue8zKkH%xa?=O#meqaU}e1up;q002ov JPDHLkV1nUvau5Ij delta 372 zcmV-)0gL{t0-FPnFn69f)IZB-`{$pTMSw4t@Ffo)3+(s%5tF59$}#^6 zFbF}{b;)d5mYm2RfhFYoK0)I+f*{PHNs>$=box7!uIpTDB!5YQ*Xsprzuj&S$1zk@ zB?t%~k4I>lh9Jx&%Q8HlPi}ua9`t>?-O^qZ1q49=B!Knpb~`wq&-9TAFdLrdkpnCR zV@{_N*tQK}7|sH!ssaWw5zK@D%XYb3pzr&s7nWr~6h*UuqA1X|EgTL9=(>(9GKe|B z@;M1&07*qoM6N<$f&c)NiKcb{ diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/ingot_hot.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/ingot_hot.png index 9991f614b5470420b30b8505b563b308c1523a01..7a5fa4065597ad7eacf638f119f7ce4dd843169e 100644 GIT binary patch delta 259 zcmV+e0sQ`z1FHg%Fn<8$Nklo%GGdoIue8zKkH%xa?=O#meqaU}e1up;q002ov JPDHLkV1nCXatZ(d delta 366 zcmV-!0g?Wz0+j=hFnc1!pBoh?d{ zbb|5>!=U+m&Sysouvjd}aU2!`1Yz5@+60C|SjQ@g;%7GK1E>I@l%ZV+u}-Ixnhd(H zT*(JO005}2Yd(&mNYy+P4QH%fBzYgovgDXC(I`N>Js-Y&{4GI>K(Ar82|tP M07*qoM6N<$g0$zW0RR91 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/ingot_overlay.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/ingot_overlay.png index 867331e5cb08bbfbf13c2d1587abd2ad260c9ca3..461dd08564b2a23a30777dd3c26b2854f9a73ca9 100644 GIT binary patch delta 92 zcmbQjR5d{*jIlV#-HBn{IhmIX3=AfoE{-7{F!MfchCcUHx3vIVCg!030+Xp#T5? delta 247 zcmb=L!Zbmpo-N7S-Gu=Remd{22QoMdJR*x37`O#Nn6W-3ej-qiy~NYkmHj>w4=)!N zuSb8BTMvz!OyX?Nkzot1o-xbqASTZcs?H|K`F{l}p) z^8shDPShir_!|rR^G!mxzVG_baQ#|l*ZFH}Ew|1IoU~izuu60Bty;fNGnPz$@=K=i sx5{?USNrc|)!#n+@5vci@hPW|GRkiXu=1YC_zvVfPgg&ebxsLQ04;Q5aR2}S diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/plate.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/plate.png index 7aa493a980fde650cc0b105d6b5238c630d6db17..9eed536ae0e927803806005d6aba9f429ca62481 100644 GIT binary patch delta 271 zcmV+q0r3901gZj%B!2;OQb$4nuFf3k0002wNkl|QN+L33l-qy V-l?OTVE_OC00>D%PDHLkV1oYLbUgq7 delta 544 zcmV+*0^j|r0=Wc`B!32COGiWi000000Qp0^e*gdg32;bRa{vGf5dZ)S5dnW>Uy%R+ z00(qQO+^RZ3>6j+0j}e2$N&HV#z{m$R5;7El1*;nKoEt$ZX4{_`4OjL%MK|LEWAL< z0dftNQG&t>goFe~;6_M9v1xa=-R@b8=t&edqtVo+O0BBb?|;22_{R_cv)Ro5^`H>E zy}gO}^6>ch2!NE5o0}WbG$o26gb+w6>ADVUEoE6^t!2C2{_ej3NGaKDHY7y58Dk8_ z7~(h%>(yG5Bnet;rqe0Tx$6?zwxwwrx~@YA5vbqZ-eQcQ*Xz-B-8Tk7LS5I)=X2`1 z4#(rYM=8Z}xeQ?I_4>MmkB<+EqCjg+9LG#16Uws07{hox2B4}chQlGpMx0)01A4o(TSxv-xiCO8Ms;C;info vP`w30*cJ@IHrNfkuHI#m+sw!~{9m2!zEL4{S<&VI0000Uy%R+ z00(qQO+^Ra0R$E%Abq9AlK=n!;z>k7R5;7clEF#?K@db=tTJ=SV?L+ zO1AHE6>ML}d2V~So3E1iC<9M{Q`=+ULsDH5*ks@VPy?-`S?-0YK%2m~0WX1fNw51p zvD%HJ@+d0LCB2kfNCi%8PXca$g{0?0HdenpmF~l;H%X8CAlsMQxR<&Ry|eco|RLAz9Gs*|xvl!_n#(X2`lYg;(0E*>f5(;YE_5c6? M07*qoM6N<$g6KJf6aWAK diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/raw_ore.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/raw_ore.png index 36c28d47fd1466686611a4d8489936b15f765949..97c9c8d28dd6ffbd80e08055662577ee4e0f4a4d 100644 GIT binary patch literal 4321 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 nO_|wzq8ZJZP;31@#vj8IFUy%R+ z00(qQO+^RZ3>6j<7o}Ubg#Z8m-bqA3R5;7+k}-;fKoCUBRRoVPxz`X(6-@;v@haZK z&`2`{b8{m@4^S$nzZE z8?Wmk&+|a^XC7a_!M^X9rU^=^A7|Nn3Q14uL*n4O%}8G71f g(P6iP8V9%-^i27Fo9uC%2Gqdd>FVdQ&MBb@0F@#hU;qFB delta 122 zcmd0v!8k#sge}S2-Gu=Remd{22QoMdJR*x37`O#Nn6W-3ej-qiy~NYkmHi%%sF<*1 z^pDktfkLXDE{-7tzswm6jkK806+jd`TC1hRouNdIU;Cg{I0&>%SK~G;?d5dYmffi e#-~9WPh$h#K4j6hq|r100000->;Jxg z`}WWNh)Mk3s?reSwa&8zEnDB-*w~!-`r6u_B@(g>{->T~EaPHe=#h)uvZ$=n1ZXmY Mr>mdKI;Vst0Gus8RsaA1 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/rod_long.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/rod_long.png index 18daf3051a1fd9f376e80a395cd9be2693614ff7..1d5492d6444dcc3c82f1e4bb2b38d4ac182595f8 100644 GIT binary patch delta 119 zcmV--0Eqv<0h9rdBya(9Qb$4nuFf3k0000^Nklm}so|=kyYoKoZXM5zj!FIw9~E{q)ps8z<2OLY Z05)SgdjyX5qo)7>002ovPDHLkV1mTfF0%jt delta 164 zcmbQjcz|(&N9?0R3LY@vaK6~TJVCwxh|iQehHSmh6+_uLV)X+5hj<<` zNV~?6-4!}@)vUzw_j}9t^UN=<`@?7>+j-~s2_IP{r+H#J2|bK@d))KZe<~7;1e(m? M>FVdQ&MBb@03gsidH?_b diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/rod_long_overlay.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/rod_long_overlay.png index ccd77027a3ee54fcaa74144e6d931b5a52a84f40..bb3a96098a371e5ab0f354e27112fe9c4409f6ef 100644 GIT binary patch delta 65 zcmbQj7(YS9nz1;@-HBn{IhmIX3=EQ^|IhB8yKMTiK!Yg^3~Rmk VewwFlR|P6!@O1TaS?83{1OWI~7eD|2 delta 118 zcma!_!Z<;tfGx?}-G$*l2rk&Wd@=(A180FpWHAE+w;%{J)~Ccz1PZd3c>21s-{TP# z(=~|b*SG`}QuK6j46!(!oFKuf()j=Xf9aq_mJLE@eVNlXKg>AO&%wYD%_>k<@GNW} PP%(q2tDnm{r-UW|M=B)x diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/rod_overlay.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/rod_overlay.png index 486322a91d1753f2a941276f75045bbbab391270..fad3fc0c1732bd1bdd52da3086a49437aa423064 100644 GIT binary patch delta 67 zcmbQjm^eYjma#a<-HBn{IhmIX3=GnqE{-7# delta 118 zcmYeC!Z<;tfGx?}-G$*l2rk&Wd@=(A180FpWHAE+w;%{J)~Ccz1PZd3c>21s-{TP# z(~*9w@!&F0NYT^9F~s6@a)Jb_O5^|k|D}T#SvClr^<_@m{4nE8KL-OtG^;>a!LzV^ PK*bE6u6{1-oD!MPx$NJ&INR5*>LlR=8YKoCV=Pdq|)A_VujfLF<0a{-ehh`Ls?bmIZ^2#E=ZO_W_vAW(Hq)$07*qoM6N<$g2E58rvLx| literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/rotor_overlay.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/rotor_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..1d327ec7994cf284e63aea007ca768481b97cda6 GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|3_M*NLo9le z6C_L?{Qv)-y)(2qR9BI?V`D?nS&^Ggr5}KTp3HCC6gk<#O)l{=Fl@+FY-l(v?g7-x N;OXk;vd$@?2>?eHB#!_9 literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/round.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/round.png index 7d6ca7c835486b84e7694311e97193fb3e0b2a20..cf0f67b0d7c6b6a3b788ca9aa197e1baa0255ccf 100644 GIT binary patch delta 137 zcmeysxRh~%NGZx^prw85kJiJzX3_EP9g@Bv_gGB|dtdn_>9azGv>liH+g9 zVQ2q?z{khO|F4hV|4&|4_OJYGE3ulknqOZ!AHKf6zCt(YkowQp*Y(+epzZhf_m4xG pug9M_7q_cKGc(bEtAm}P`H}KE@n`=J0` delta 212 zcmZ3=_&b0r?dWX*_#=)GS;PGhZ| z`lS?>QkZjQ&Y8xT33;smN-2s60AP%P5W<|LlpfogTWd7NP&;eAWsVplTWchF(A_G3 wyZP{g-aEz^@ZMkFx&k=o006btkL5qf8;Ff|sr9$gfdBvi07*qoM6N<$g8kc43jhEB delta 257 zcmcb|IG1UHN|Ic1{(oit-n5)*#R-T6Q jKM&t{_NQ@UB?~h{;%fe?)#`GFKrIZOu6{1-oD!M=E3=_s z_ez(8Kp|&O7sn8b)5!@Ek`Mm>|6jJ_$qWwzmq|k61&WuKWNmA?bS5CGMP)xwYX0Py vbZh5Kzao?Fprp-8H_e<)KNPx$+(|@1R5*=|lh116P!xy17=4)*-B?Ixp@LvTXD7HQA9-ikBMG?(rlO##FzrW8_mIIueobdGYgzx*DpMT^1U65rTyu7?H z8jX-r(rh*v4u{2n#bUwf=_yH)aCdjdZs!t)5owyDX$>Q=&StYA z3`2wvSe8YarqpURX0zGXQ)o0AD2l>pG$P)|#8FHT__SIrR8{?Z1?_g5`FxJ&d0bpv z5Cj222wq=bu`CPU_j!AJ1mNc829Cy<+bY8_ zWUtpF%QEWqI^}YiBuUus_pH}zR8{5i@e$j$Dcpl!rUY;t2R{f1g8-$ZAP*APb#WXg k*Fxb3`CUzsf1C{P6ZKXeZ$q>i7ytkO07*qoM6N<$f|C*degFUf literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/spring_overlay.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/spring_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..82c2a3cf2fca0d19657571347db2aa82846f9aed GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|Og&v3Lo9le z6Be-k`2YX^!N!X|q91^aX6Dyit8V@SvOK?BwdgqjWPDzk8NqRtXR#y$L+1&FN!t&p RZvh&>;OXk;vd$@?2>_ZvFaH1l literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/spring_small.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/spring_small.png new file mode 100644 index 0000000000000000000000000000000000000000..a76de0bc484bd352efce0de0e6de47cb6eceb2fe GIT binary patch literal 399 zcmV;A0dW3_P)Px$Nl8ROR5*>r(!GkpKoG$3f6P6IPoTw#orRzvC{}iPf%G=|2Kol}B3Psmw6IEH zXKCd}VQP_+>|TP&8e`>gr#UVM2RGdgJHHur2mU*>q-3YlA)C#{0FL8my7{p1)69BN?ZgCt3Aq1<{id-&7xm?CDjCeE} zX+Hv+&4zZnO&EqKrI1oG9*>i*CIgK|1Iw~Fo!$^aqLiXkDzRR#(*d*Dj9RV6@pwc^ zNe~1dZ;}dVHk-`nb3EU}d-o8+rCO~r91ha~%jJ?vrGoGKL{Y@yaQNK>#bOcLwsBoS z7zUirXZHI&-EJ4)%TGK3rfF)6#Uk$a`{=rkQi{vvLO!2oGMPLzOWZC1!!Y94LIL5r tWb_Qz=*n)l<8cqZ1@6e_^JDR!#0}RBpqLdn#|!`f002ovPDHLkV1jsst*Zb4 literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/spring_small_overlay.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/spring_small_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..4c78ed43dd3804cdb0f95a881f8738d5c1ac953f GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|v^`xMLo9lq zo^#}7FyLS@ka?Wi7ZB$1rtoAK>)I-Dw#jud2R!93U3hueTr5wJuVVe51+hSF44$rj JF6*2UngANRAw2*9 literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/tool_head_buzz_saw.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/tool_head_buzz_saw.png new file mode 100644 index 0000000000000000000000000000000000000000..131f1c7f364b8f095f9513bcab658eca5e3101a4 GIT binary patch literal 275 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|&U(5yhFJ8T z4csW$Y#5pwsvCrI-E6tE_znr0=_}o38%Pb6M zl++A(4)ZeXUT6GilMX|JKvU-)D~nWrO~YdqC$yD%42_n$OcD{?y*vDHU1Ju@a~UTN z0YNig=Fq)81vd^YSFC#PKik4GAawKdz4kZGKG`lHC>`QfS!UTR)auH#Vc)KO^B;5G XFI~GY?pK8>&|?gqu6{1-oD!M<1(a(Q literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/tool_head_chainsaw.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/tool_head_chainsaw.png new file mode 100644 index 0000000000000000000000000000000000000000..f3bfec3e3a5543efbed5bcc1e6231029d1df4625 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|(mh=qLo9mV zp4-TKK!L~QqH?woL(dT>g9DwuFKSmh1kQ3;q4d;yTE@KI!%3Q|U(0(g>Lz;{8PA-# z=X+I{xlfSF@up<4c7Xsd$827Pfb7`abBg7hi{AYX=V7QlsD0=5q06}s_v@E2d0(jN URr!-~3}_{Tr>mdKI;Vst0A|5HY5)KL literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/tool_head_drill.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/tool_head_drill.png new file mode 100644 index 0000000000000000000000000000000000000000..8e6ebb78887cb50152696cb4b3eb40805b313d24 GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|x;nlEbz@XEAuX`njxg HN@xNA(4$WN literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/tool_head_screwdriver.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/tool_head_screwdriver.png new file mode 100644 index 0000000000000000000000000000000000000000..4b24df1728254d1360443f06ac38182eaee696bb GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|96eneLo9le z6C_L$j`c|XPd_u`pO1)z4*}Q$iB}ml-bW literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/tool_head_wrench.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/tool_head_wrench.png new file mode 100644 index 0000000000000000000000000000000000000000..d838ae18084b4c90a6aa45676c508f9e9c45191f GIT binary patch literal 137 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|oIPC}Lo9mV z_HPtqP~c#;{GPZ-=U7bQf{4h-#%VS4_xIoQS90=C_FUz4O>+0{)HLe@3>*y})3o&h jpPy1yyeZD(JeBwUcdhgOn)f+@#xZ!h`njxgN@xNA8@MZ+ literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/turbine_blade.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/turbine_blade.png new file mode 100644 index 0000000000000000000000000000000000000000..cc2b55ac29f19168803b33ebf34cc1ae6fe6a8f8 GIT binary patch literal 1203 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GA|hznEnR%gt#&? zGBPnSF*7r>u&}VQva+$Uv9q&taBy&Pa&mETadUI?@bK{R^78TV@$>Tw2nYxY3JM7c z2@4C0h=_=aii(MeiHnO%NJvOZN=ivdNlQ!1$jHdb%F4;f$;-={DJv_h zsHmu_s;a4}sjI7NXlQ6^YHDd|X=`ii=;-L`>gws~>Feto7#J8D8X6fH85uIyyNyIXgSMxVX5wy1Kc! zxx2f2czAevdU|U0P#mC1dBqSszCMG2%B_}7Rq@<*#rlzH(rKhK7WMpJ! zW@cq&WoKvS%)Y6ciK|78Vs16&Dwml$4Z~mX?*3m6w-SR8&+}R#sJ2 zRaaNn)YR10*4EY4)z{ZIG&D3eHa0aiH8(f6w6wIgwzjpkwYRr-baZrfc6N1jb$567 z^z`)h_V)Gl_4oHrm@r}D#EFw8O`1G;@{}o4rcRwYZQ8Wy)2GjvF=OV;nX_iinmv2= zoH=vm&Ye4N-n{wq=Py{WVBx}rixw?fym;}FB}&pEz;i~6(;NioEj~+dG{P^*cCr_R}efsR#v**vBzj*QD z<;$0^UcGw#`t_SPZ{EIr`|jPl_wV0-`0(N5$B&;refs?Q^OrAQzJC4s?c2BS-@pI( z@#E*upTB6Aii{K*!+vbE$i!>fwT4 zmWTzaDZNr&=k<3*(ccpf7RjeY&G{B?z^8ekTr1zOO-hUT?L%pmFLs5K=k7fWw1mOa L)z4*}Q$iB}Q0=@7 literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/turbine_blade_overlay.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/turbine_blade_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..8f224cf79a0992a0bdb0e6c0d00a62008b38312a GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|v^`xMLo9le z6C}Po`2YX^WVS2cnp>_IT)b4a=#QVZIFHSb|Nra%IqXh6!oaZe2%oP)0do{k8-u5- KpUXO@geCwjJSJlR literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/wire_fine.png b/common/src/main/resources/assets/gtceu/textures/item/material_sets/shiny/wire_fine.png new file mode 100644 index 0000000000000000000000000000000000000000..adf8526536ae90b0a5aaddc2bd888f53eb8316a1 GIT binary patch literal 292 zcmV+<0o(qGP)Px#-bqA3R5*?8kTGtAFc3w5tYFMw+)*P$LCbx7DJ1UTGjIY5DmVb5qClc>jRcc! zwd`uMNgL&LU;6VjGr&K832QBPUB_+P@~h4`j?Bz#t-WNN{M~nF-;Sslt_{UT5Avyf*^np0&yH)1mZrd>x%O{VT^%N3Pc2@6v8ls zQVLNN!FzuZd_3OSG!0i(1@AqG2*wx?5r_yv2xM9IH1kAV*WCC0%V+)w=Nu2i@K*Be qI?g#x(-e80<2VkKW%+*n-|__v=|$u^Bm7$c0000 type) { return ItemTransferHelperImpl.toItemVariantStorage(new LDItemEndpointMachine.ItemHandlerWrapper(transfer)); } } - var transfer = ((IMachineBlockEntity)blockEntity).getMetaMachine().getItemTransferCap(side); + var transfer = ((IMachineBlockEntity)blockEntity).getMetaMachine().getItemTransferCap(side, true); return transfer == null ? null : ItemTransferHelperImpl.toItemVariantStorage(transfer); }, type); FluidStorage.SIDED.registerForBlockEntity((blockEntity, side) -> { @@ -122,7 +122,7 @@ public static void onBlockEntityRegister(BlockEntityType type) { return FluidTransferHelperImpl.toFluidVariantStorage(new LDFluidEndpointMachine.FluidHandlerWrapper(transfer)); } } - var transfer = ((IMachineBlockEntity)blockEntity).getMetaMachine().getFluidTransferCap(side); + var transfer = ((IMachineBlockEntity)blockEntity).getMetaMachine().getFluidTransferCap(side, true); return transfer == null ? null : FluidTransferHelperImpl.toFluidVariantStorage(transfer); }, type); GTCapability.CAPABILITY_LASER.registerForBlockEntity((blockEntity, side) -> { diff --git a/fabric/src/main/java/com/gregtechceu/gtceu/api/item/fabric/GTBucketItem.java b/fabric/src/main/java/com/gregtechceu/gtceu/api/item/fabric/GTBucketItem.java index b3b8e7b32e..906508db2c 100644 --- a/fabric/src/main/java/com/gregtechceu/gtceu/api/item/fabric/GTBucketItem.java +++ b/fabric/src/main/java/com/gregtechceu/gtceu/api/item/fabric/GTBucketItem.java @@ -3,12 +3,6 @@ import com.gregtechceu.gtceu.api.data.chemical.material.Material; import com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey; import com.gregtechceu.gtceu.api.fluids.GTFluid; -import com.gregtechceu.gtceu.client.renderer.item.GTBucketItemRenderer; -import com.lowdragmc.lowdraglib.Platform; -import com.lowdragmc.lowdraglib.client.renderer.IItemRendererProvider; -import com.lowdragmc.lowdraglib.client.renderer.IRenderer; -import com.lowdragmc.lowdraglib.side.fluid.FluidHelper; -import com.lowdragmc.lowdraglib.side.fluid.FluidStack; import net.fabricmc.fabric.api.registry.FuelRegistry; import net.minecraft.network.chat.Component; import net.minecraft.world.item.BucketItem; @@ -22,16 +16,14 @@ * @date 2023/3/28 * @implNote GTBucketItem */ -public class GTBucketItem extends BucketItem implements IItemRendererProvider { +public class GTBucketItem extends BucketItem { Fluid fluid; - IRenderer renderer; final Material material; final String langKey; public GTBucketItem(Supplier fluid, Properties properties, Material material, String langKey) { super(fluid.get(), properties); this.fluid = fluid.get(); - renderer = FluidHelper.isLighterThanAir(FluidStack.create(this.fluid, FluidHelper.getBucket())) ? GTBucketItemRenderer.INSTANCE_GAS : GTBucketItemRenderer.INSTANCE; this.material = material; this.langKey = langKey; } @@ -46,11 +38,6 @@ public void onRegister() { } } - @Override - public IRenderer getRenderer(ItemStack stack) { - return renderer; - } - public static int color(ItemStack itemStack, int index) { if (itemStack.getItem() instanceof GTBucketItem item) { if (index == 1) { diff --git a/fabric/src/main/java/com/gregtechceu/gtceu/common/blockentity/fabric/FluidPipeBlockEntityImpl.java b/fabric/src/main/java/com/gregtechceu/gtceu/common/blockentity/fabric/FluidPipeBlockEntityImpl.java index a9d8e88ce1..5f6318349c 100644 --- a/fabric/src/main/java/com/gregtechceu/gtceu/common/blockentity/fabric/FluidPipeBlockEntityImpl.java +++ b/fabric/src/main/java/com/gregtechceu/gtceu/common/blockentity/fabric/FluidPipeBlockEntityImpl.java @@ -8,7 +8,9 @@ import com.gregtechceu.gtceu.common.pipelike.fluidpipe.FluidPipeNet; import com.gregtechceu.gtceu.common.pipelike.fluidpipe.PipeNetRoutePath; import com.lowdragmc.lowdraglib.side.fluid.FluidStack; +import com.lowdragmc.lowdraglib.side.fluid.IFluidTransfer; import com.lowdragmc.lowdraglib.side.fluid.fabric.FluidHelperImpl; +import com.lowdragmc.lowdraglib.side.fluid.fabric.FluidTransferHelperImpl; import it.unimi.dsi.fastutil.objects.Object2LongMap; import it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap; import lombok.Setter; @@ -73,6 +75,15 @@ public Storage getFluidStorage(@Nullable Direction side) { return null; } + public static IFluidTransfer getNetHandler(FluidPipeBlockEntity pipe, @Nullable Direction side) { + Storage fluidStorage = ((FluidPipeBlockEntityImpl) pipe).getFluidStorage(side); + + if (fluidStorage == null) + fluidStorage = Storage.empty(); + + return FluidTransferHelperImpl.toFluidTransfer(fluidStorage); + } + class FluidVariantStorage extends SnapshotParticipant implements Storage { private final FluidPipeNet net; diff --git a/fabric/src/main/java/com/gregtechceu/gtceu/core/fabric/MixinHelpersImpl.java b/fabric/src/main/java/com/gregtechceu/gtceu/core/fabric/MixinHelpersImpl.java index 8e1faa5c56..aeb1802ba8 100644 --- a/fabric/src/main/java/com/gregtechceu/gtceu/core/fabric/MixinHelpersImpl.java +++ b/fabric/src/main/java/com/gregtechceu/gtceu/core/fabric/MixinHelpersImpl.java @@ -2,16 +2,27 @@ import com.gregtechceu.gtceu.api.data.chemical.material.Material; import com.gregtechceu.gtceu.api.fluids.store.FluidStorage; +import com.mojang.datafixers.util.Pair; +import it.unimi.dsi.fastutil.objects.Object2BooleanMap; +import it.unimi.dsi.fastutil.objects.Object2BooleanOpenHashMap; import net.fabricmc.fabric.api.client.render.fluid.v1.FluidRenderHandlerRegistry; import net.fabricmc.fabric.api.client.render.fluid.v1.SimpleFluidRenderHandler; import net.fabricmc.fabric.api.event.client.ClientSpriteRegistryCallback; import net.fabricmc.fabric.api.transfer.v1.client.fluid.FluidVariantRendering; import net.minecraft.world.inventory.InventoryMenu; +import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.material.FlowingFluid; +import java.util.HashSet; +import java.util.Set; + public class MixinHelpersImpl { + private static final Set> registeredFluidTextures = new HashSet<>(); + public static void addFluidTexture(Material material, FluidStorage.FluidEntry value) { + if (registeredFluidTextures.contains(Pair.of(material, value.getStillTexture()))) return; + registeredFluidTextures.add(Pair.of(material, value.getStillTexture())); if (value.getFluid().get() instanceof FlowingFluid flowingFluid) { FluidVariantRendering.register(flowingFluid.getFlowing(), new GTFluidVariantRenderHandler()); FluidVariantRendering.register(flowingFluid.getSource(), new GTFluidVariantRenderHandler()); diff --git a/forge/build.gradle b/forge/build.gradle index 8204beaa69..411828d774 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -64,6 +64,16 @@ configurations { // snapshotModImplementation { // resolutionStrategy.cacheChangingModulesFor(0, "seconds") // } + + apiElements { + outgoing { + capability("net.minecraftforge:forge:${this.forge.versions.minecratfForge.get()}") + capability("com.lowdragmc.ldlib:ldlib-forge-${this.libs.versions.minecraft.get()}:${this.forge.versions.ldlib.get()}") + capability("com.tterrag.registrate:Registrate:${this.forge.versions.registrate.get()}") + capability("dev.toma.configuration:configuration-forge-${this.libs.versions.minecraft.get()}:${this.forge.versions.configuration.get()}") + capability("io.github.llamalad7:mixinextras-forge:${this.forge.versions.mixinextras.get()}") + } + } } //configurations.all { diff --git a/forge/src/generated/resources/assets/gtceu/compass/nodes/materials/wire_and_cable.json b/forge/src/generated/resources/assets/gtceu/compass/nodes/materials/wire_and_cable.json index d0766f8220..aee7b9a374 100644 --- a/forge/src/generated/resources/assets/gtceu/compass/nodes/materials/wire_and_cable.json +++ b/forge/src/generated/resources/assets/gtceu/compass/nodes/materials/wire_and_cable.json @@ -241,15 +241,6 @@ "gtceu:vanadium_gallium_single_cable", "gtceu:yttrium_barium_cuprate_single_cable", "gtceu:graphene_single_cable", - "gtceu:manganese_phosphide_single_cable", - "gtceu:magnesium_diboride_single_cable", - "gtceu:mercury_barium_calcium_cuprate_single_cable", - "gtceu:uranium_triplatinum_single_cable", - "gtceu:samarium_iron_arsenic_oxide_single_cable", - "gtceu:indium_tin_barium_titanium_cuprate_single_cable", - "gtceu:uranium_rhodium_dinaquadide_single_cable", - "gtceu:enriched_naquadah_trinium_europium_duranide_single_cable", - "gtceu:ruthenium_trinium_americium_neutronate_single_cable", "gtceu:black_steel_single_cable", "gtceu:tungsten_steel_single_cable", "gtceu:naquadah_alloy_single_cable", @@ -283,15 +274,6 @@ "gtceu:vanadium_gallium_double_cable", "gtceu:yttrium_barium_cuprate_double_cable", "gtceu:graphene_double_cable", - "gtceu:manganese_phosphide_double_cable", - "gtceu:magnesium_diboride_double_cable", - "gtceu:mercury_barium_calcium_cuprate_double_cable", - "gtceu:uranium_triplatinum_double_cable", - "gtceu:samarium_iron_arsenic_oxide_double_cable", - "gtceu:indium_tin_barium_titanium_cuprate_double_cable", - "gtceu:uranium_rhodium_dinaquadide_double_cable", - "gtceu:enriched_naquadah_trinium_europium_duranide_double_cable", - "gtceu:ruthenium_trinium_americium_neutronate_double_cable", "gtceu:black_steel_double_cable", "gtceu:tungsten_steel_double_cable", "gtceu:naquadah_alloy_double_cable", @@ -325,15 +307,6 @@ "gtceu:vanadium_gallium_quadruple_cable", "gtceu:yttrium_barium_cuprate_quadruple_cable", "gtceu:graphene_quadruple_cable", - "gtceu:manganese_phosphide_quadruple_cable", - "gtceu:magnesium_diboride_quadruple_cable", - "gtceu:mercury_barium_calcium_cuprate_quadruple_cable", - "gtceu:uranium_triplatinum_quadruple_cable", - "gtceu:samarium_iron_arsenic_oxide_quadruple_cable", - "gtceu:indium_tin_barium_titanium_cuprate_quadruple_cable", - "gtceu:uranium_rhodium_dinaquadide_quadruple_cable", - "gtceu:enriched_naquadah_trinium_europium_duranide_quadruple_cable", - "gtceu:ruthenium_trinium_americium_neutronate_quadruple_cable", "gtceu:black_steel_quadruple_cable", "gtceu:tungsten_steel_quadruple_cable", "gtceu:naquadah_alloy_quadruple_cable", @@ -367,15 +340,6 @@ "gtceu:vanadium_gallium_octal_cable", "gtceu:yttrium_barium_cuprate_octal_cable", "gtceu:graphene_octal_cable", - "gtceu:manganese_phosphide_octal_cable", - "gtceu:magnesium_diboride_octal_cable", - "gtceu:mercury_barium_calcium_cuprate_octal_cable", - "gtceu:uranium_triplatinum_octal_cable", - "gtceu:samarium_iron_arsenic_oxide_octal_cable", - "gtceu:indium_tin_barium_titanium_cuprate_octal_cable", - "gtceu:uranium_rhodium_dinaquadide_octal_cable", - "gtceu:enriched_naquadah_trinium_europium_duranide_octal_cable", - "gtceu:ruthenium_trinium_americium_neutronate_octal_cable", "gtceu:black_steel_octal_cable", "gtceu:tungsten_steel_octal_cable", "gtceu:naquadah_alloy_octal_cable", @@ -409,15 +373,6 @@ "gtceu:vanadium_gallium_hex_cable", "gtceu:yttrium_barium_cuprate_hex_cable", "gtceu:graphene_hex_cable", - "gtceu:manganese_phosphide_hex_cable", - "gtceu:magnesium_diboride_hex_cable", - "gtceu:mercury_barium_calcium_cuprate_hex_cable", - "gtceu:uranium_triplatinum_hex_cable", - "gtceu:samarium_iron_arsenic_oxide_hex_cable", - "gtceu:indium_tin_barium_titanium_cuprate_hex_cable", - "gtceu:uranium_rhodium_dinaquadide_hex_cable", - "gtceu:enriched_naquadah_trinium_europium_duranide_hex_cable", - "gtceu:ruthenium_trinium_americium_neutronate_hex_cable", "gtceu:black_steel_hex_cable", "gtceu:tungsten_steel_hex_cable", "gtceu:naquadah_alloy_hex_cable", diff --git a/forge/src/generated/resources/assets/gtceu/lang/en_ud.json b/forge/src/generated/resources/assets/gtceu/lang/en_ud.json index 6f6f08223b..a21a778afb 100644 --- a/forge/src/generated/resources/assets/gtceu/lang/en_ud.json +++ b/forge/src/generated/resources/assets/gtceu/lang/en_ud.json @@ -69,13 +69,6 @@ "behaviour.wrench": "ʞɔıןɔʇɥbıᴚ uo sʞɔoןᗺ sǝʇɐʇoᴚ", "block.filter.tooltip": "ʇuǝɯuoɹıʌuǝ ㄥ§ǝǝɹℲ-ǝןɔıʇɹɐԀɐ§ ɐ sǝʇɐǝɹƆ", "block.filter_sterile.tooltip": "ʇuǝɯuoɹıʌuǝ ㄥ§pǝzıןıɹǝʇSɐ§ ɐ sǝʇɐǝɹƆ", - "block.fusion_casing": "buısɐƆ ǝuıɥɔɐW uoısnℲ", - "block.fusion_casing_mk2": "II ʞW buısɐƆ ǝuıɥɔɐW uoısnℲ", - "block.fusion_casing_mk3": "III ʞW buısɐƆ ǝuıɥɔɐW uoısnℲ", - "block.fusion_coil": "ʞɔoןᗺ ןıoƆ uoısnℲ", - "block.gtceu.active_casing_assembly_line": "buısɐƆ ǝuıꞀ ʎןqɯǝssⱯ", - "block.gtceu.active_casing_engine_intake": "buısɐƆ ǝʞɐʇuI ǝuıbuƎ", - "block.gtceu.active_casing_extreme_engine_intake": "buısɐƆ ǝʞɐʇuI ǝuıbuƎ ǝɯǝɹʇxƎ", "block.gtceu.active_transformer": "ɹǝɯɹoɟsuɐɹ⟘ ǝʌıʇɔⱯ", "block.gtceu.alloy_blast_smelter": "ɹǝʇןǝɯS ʇsɐןᗺ ʎoןןⱯ", "block.gtceu.aluminium_crate": "ǝʇɐɹƆ ɯnıuıɯnןⱯ", @@ -83,48 +76,22 @@ "block.gtceu.assembly_line": "ǝuıꞀ ʎןqɯǝssⱯ", "block.gtceu.assembly_line_casing": "buısɐƆ ǝuıꞀ ʎןqɯǝssⱯ", "block.gtceu.assembly_line_grating": "buıʇɐɹ⅁ ǝuıꞀ ʎןqɯǝssⱯ", - "block.gtceu.assembly_line_unit": "ʇıu∩ ǝuıꞀ ʎןqɯǝssⱯ", + "block.gtceu.assembly_line_unit": "buısɐƆ ןoɹʇuoƆ ʎןqɯǝssⱯ", "block.gtceu.atomic_casing": "buısɐƆ ɔıɯoʇⱯ", "block.gtceu.auto_maintenance_hatch": "ɥɔʇɐH ǝɔuɐuǝʇuıɐW oʇnⱯ", "block.gtceu.bronze_brick_casing": "buısɐƆ ʞɔıɹᗺ ǝzuoɹᗺ", "block.gtceu.bronze_crate": "ǝʇɐɹƆ ǝzuoɹᗺ", "block.gtceu.bronze_drum": "ɯnɹᗡ ǝzuoɹᗺ", - "block.gtceu.bronze_firebox": "buısɐƆ xoqǝɹıℲ ǝzuoɹᗺ", "block.gtceu.bronze_firebox_casing": "buısɐƆ xoqǝɹıℲ ǝzuoɹᗺ", - "block.gtceu.bronze_gearbox": "xoqɹɐǝ⅁ ǝzuoɹᗺ", + "block.gtceu.bronze_gearbox": "buısɐƆ xoqɹɐǝ⅁ ǝzuoɹᗺ", "block.gtceu.bronze_large_boiler": "ɹǝןıoᗺ ǝzuoɹᗺ ǝbɹɐꞀ", "block.gtceu.bronze_machine_casing": "buısɐƆ ǝuıɥɔɐW ǝzuoɹᗺ", "block.gtceu.bronze_pipe_casing": "buısɐƆ ǝdıԀ ǝzuoɹᗺ", - "block.gtceu.casing_aluminium_frostproof": "buısɐƆ ǝuıɥɔɐW ɯnıuıɯnןⱯ ɟooɹԀ ʇsoɹℲ", - "block.gtceu.casing_assembly_control": "buısɐƆ ןoɹʇuoƆ ʎןqɯǝssⱯ", "block.gtceu.casing_bronze_bricks": "buısɐƆ ǝuıɥɔɐW ǝzuoɹᗺ", - "block.gtceu.casing_bronze_gearbox": "buısɐƆ xoqɹɐǝ⅁ ǝzuoɹᗺ", - "block.gtceu.casing_bronze_pipe": "buısɐƆ ǝdıԀ ǝzuoɹᗺ", "block.gtceu.casing_coke_bricks": "sʞɔıɹᗺ uǝʌO ǝʞoƆ", "block.gtceu.casing_grate": "buısɐƆ ǝuıɥɔɐW ǝʇɐɹ⅁", - "block.gtceu.casing_hsse_sturdy": "buısɐƆ ǝuıɥɔɐW Ǝ-SSH ʎpɹnʇS", - "block.gtceu.casing_invar_heatproof": "buısɐƆ ǝuıɥɔɐW ɹɐʌuI ɟooɹԀ ʇɐǝH", - "block.gtceu.casing_laminated_glass": "ssɐן⅁ pǝʇɐuıɯɐꞀ", - "block.gtceu.casing_polytetrafluoroethylene_pipe": "buısɐƆ ǝdıԀ ƎℲ⟘Ԁ", "block.gtceu.casing_primitive_bricks": "sʞɔıɹqǝɹıℲ", - "block.gtceu.casing_ptfe_inert": "buısɐƆ ǝuıɥɔɐW ƎℲ⟘Ԁ ʇɹǝuI ʎןןɐɔıɯǝɥƆ", - "block.gtceu.casing_pump_deck": "ʞɔǝᗡ dɯnԀ", - "block.gtceu.casing_stainless_clean": "buısɐƆ ןǝǝʇS ssǝןuıɐʇS uɐǝןƆ", - "block.gtceu.casing_stainless_steel_gearbox": "buısɐƆ xoqɹɐǝ⅁ ןǝǝʇS ssǝןuıɐʇS", - "block.gtceu.casing_stainless_turbine": "buısɐƆ ǝuıqɹn⟘ ssǝןuıɐʇS", - "block.gtceu.casing_steel_gearbox": "buısɐƆ xoqɹɐǝ⅁ ןǝǝʇS", - "block.gtceu.casing_steel_pipe": "buısɐƆ ǝdıԀ ןǝǝʇS", - "block.gtceu.casing_steel_solid": "buısɐƆ ǝuıɥɔɐW ןǝǝʇS pıןoS", - "block.gtceu.casing_steel_turbine": "buısɐƆ ǝuıqɹn⟘ ןǝǝʇS", - "block.gtceu.casing_titanium_gearbox": "buısɐƆ xoqɹɐǝ⅁ ɯnıuɐʇı⟘", - "block.gtceu.casing_titanium_pipe": "buısɐƆ ǝdıԀ ɯnıuɐʇı⟘", - "block.gtceu.casing_titanium_stable": "buısɐƆ ǝuıɥɔɐW ɯnıuɐʇı⟘ ǝןqɐʇS", - "block.gtceu.casing_titanium_turbine": "buısɐƆ ǝuıqɹn⟘ ɯnıuɐʇı⟘", - "block.gtceu.casing_tungstensteel_gearbox": "buısɐƆ xoqɹɐǝ⅁ ןǝǝʇsuǝʇsbun⟘", - "block.gtceu.casing_tungstensteel_pipe": "buısɐƆ ǝdıԀ ןǝǝʇsuǝʇsbun⟘", - "block.gtceu.casing_tungstensteel_robust": "buısɐƆ ǝuıɥɔɐW ןǝǝʇsuǝʇsbun⟘ ʇsnqoᴚ", - "block.gtceu.casing_tungstensteel_turbine": "buısɐƆ ǝuıqɹn⟘ ןǝǝʇsuǝʇsbun⟘", - "block.gtceu.clean_machine_casing": "buısɐƆ ǝuıɥɔɐW uɐǝןƆ", + "block.gtceu.clean_machine_casing": "buısɐƆ ןǝǝʇS ssǝןuıɐʇS uɐǝןƆ", "block.gtceu.cleaning_maintenance_hatch": "ɥɔʇɐH ǝɔuɐuǝʇuıɐW buıuɐǝןƆ", "block.gtceu.cleanroom": "ɯooɹuɐǝןƆ", "block.gtceu.cleanroom_glass": "ssɐן⅁ ɯooɹuɐǝןƆ", @@ -225,16 +192,16 @@ "block.gtceu.extreme_engine_intake_casing": "buısɐƆ ǝʞɐʇuI ǝuıbuƎ ǝɯǝɹʇxƎ", "block.gtceu.filter_casing": "buısɐƆ ɹǝʇןıℲ", "block.gtceu.firebricks": "sʞɔıɹqǝɹıℲ", - "block.gtceu.frostproof_machine_casing": "buısɐƆ ǝuıɥɔɐW ɟooɹdʇsoɹℲ", - "block.gtceu.fusion_casing": "buısɐƆ uoısnℲ", - "block.gtceu.fusion_casing_mk2": "ᄅʞW buısɐƆ uoısnℲ", - "block.gtceu.fusion_casing_mk3": "ƐʞW buısɐƆ uoısnℲ", - "block.gtceu.fusion_coil": "ןıoƆ uoısnℲ", + "block.gtceu.frostproof_machine_casing": "buısɐƆ ǝuıɥɔɐW ɯnıuıɯnןⱯ ɟooɹԀ ʇsoɹℲ", + "block.gtceu.fusion_casing": "buısɐƆ ǝuıɥɔɐW uoısnℲ", + "block.gtceu.fusion_casing_mk2": "II ʞW buısɐƆ ǝuıɥɔɐW uoısnℲ", + "block.gtceu.fusion_casing_mk3": "III ʞW buısɐƆ ǝuıɥɔɐW uoısnℲ", + "block.gtceu.fusion_coil": "ʞɔoןᗺ ןıoƆ uoısnℲ", "block.gtceu.fusion_glass": "ssɐן⅁ uoısnℲ", - "block.gtceu.gas_large_turbine": "ǝuıqɹn⟘ ǝbɹɐꞀ sɐ⅁", + "block.gtceu.gas_large_turbine": "ǝuıqɹn⟘ sɐ⅁ ǝbɹɐꞀ", "block.gtceu.gold_drum": "ɯnɹᗡ pןo⅁", "block.gtceu.heat_vent": "ʇuǝΛ ʇɐǝH", - "block.gtceu.heatproof_machine_casing": "buısɐƆ ǝuıɥɔɐW ɟooɹdʇɐǝH", + "block.gtceu.heatproof_machine_casing": "buısɐƆ ǝuıɥɔɐW ɹɐʌuI ɟooɹԀ ʇɐǝH", "block.gtceu.high_power_casing": "buısɐƆ ɹǝʍoԀ ɥbıH", "block.gtceu.high_temperature_smelting_casing": "buısɐƆ buıʇןǝɯS ǝɹnʇɐɹǝdɯǝ⟘ ɥbıH", "block.gtceu.hp_steam_alloy_smelter": "ɹǝʇןǝɯS ʎoןןⱯ ɯɐǝʇS ǝɹnssǝɹԀ ɥbıH", @@ -246,7 +213,7 @@ "block.gtceu.hp_steam_macerator": "ɹoʇɐɹǝɔɐW ɯɐǝʇS ǝɹnssǝɹԀ ɥbıH", "block.gtceu.hp_steam_rock_crusher": "ɹǝɥsnɹƆ ʞɔoᴚ ɯɐǝʇS ǝɹnssǝɹԀ ɥbıH", "block.gtceu.hp_steam_solid_boiler": "ɹǝןıoᗺ pıןoS ɯɐǝʇS ǝɹnssǝɹԀ ɥbıH", - "block.gtceu.hssg_coil_block": "ʞɔoןᗺ ןıoƆ bssH", + "block.gtceu.hssg_coil_block": "ʞɔoןᗺ ןıoƆ ⅁-SSH", "block.gtceu.hv_16a_energy_converter": "ɹǝʇɹǝʌuoƆ ʎbɹǝuƎ Ɐ9Ɩ ΛH", "block.gtceu.hv_1a_energy_converter": "ɹǝʇɹǝʌuoƆ ʎbɹǝuƎ ⱯƖ ΛH", "block.gtceu.hv_4a_energy_converter": "ɹǝʇɹǝʌuoƆ ʎbɹǝuƎ Ɐㄣ ΛH", @@ -329,7 +296,7 @@ "block.gtceu.hv_wiremill": "ɹ§II ןןıɯǝɹıM pǝɔuɐʌpⱯ9§", "block.gtceu.implosion_compressor": "ɹossǝɹdɯoƆ uoısoןdɯI", "block.gtceu.industrial_steam_casing": "buısɐƆ ɯɐǝʇS ןɐıɹʇsnpuI", - "block.gtceu.inert_machine_casing": "buısɐƆ ǝuıɥɔɐW ʇɹǝuI", + "block.gtceu.inert_machine_casing": "buısɐƆ ǝuıɥɔɐW ƎℲ⟘Ԁ ʇɹǝuI ʎןןɐɔıɯǝɥƆ", "block.gtceu.infinite_energy": "ʎbɹǝuƎ ǝʇıuıɟuI", "block.gtceu.iv_1024a_laser_source_hatch": "ɥɔʇɐH ǝɔɹnoS ɹǝsɐꞀ ɐㄣᄅ0Ɩ ʌI", "block.gtceu.iv_1024a_laser_target_hatch": "ɥɔʇɐH ʇǝbɹɐ⟘ ɹǝsɐꞀ ɐㄣᄅ0Ɩ ʌI", @@ -715,6 +682,9 @@ "block.gtceu.naquadah_coil_block": "ʞɔoןᗺ ןıoƆ ɥɐpɐnbɐN", "block.gtceu.nichrome_coil_block": "ʞɔoןᗺ ןıoƆ ǝɯoɹɥɔıN", "block.gtceu.nonconducting_casing": "buısɐƆ buıʇɔnpuoɔuoN", + "block.gtceu.oil_heavy": "ןıO ʎʌɐǝH", + "block.gtceu.oil_light": "ןıO ʇɥbıꞀ", + "block.gtceu.oil_medium": "ןıO ʍɐᴚ", "block.gtceu.opv_1024a_laser_source_hatch": "ɥɔʇɐH ǝɔɹnoS ɹǝsɐꞀ ɐㄣᄅ0Ɩ ʌdO", "block.gtceu.opv_1024a_laser_target_hatch": "ɥɔʇɐH ʇǝbɹɐ⟘ ɹǝsɐꞀ ɐㄣᄅ0Ɩ ʌdO", "block.gtceu.opv_16a_energy_converter": "ɹǝʇɹǝʌuoƆ ʎbɹǝuƎ Ɐ9Ɩ ΛdO", @@ -782,15 +752,15 @@ "block.gtceu.opv_thermal_centrifuge": "ɹ§ ǝbnɟıɹʇuǝƆ ןɐɯɹǝɥ⟘ ʎɹɐpuǝbǝꞀ6§", "block.gtceu.opv_wiremill": "ɹ§ ןןıɯǝɹıM ʎɹɐpuǝbǝꞀ6§", "block.gtceu.plascrete": "ǝʇǝɹɔsɐןԀ", - "block.gtceu.plasma_large_turbine": "ǝuıqɹn⟘ ǝbɹɐꞀ ɐɯsɐןԀ", + "block.gtceu.plasma_large_turbine": "ǝuıqɹn⟘ ɐɯsɐןԀ ǝbɹɐꞀ", "block.gtceu.primitive_blast_furnace": "ǝɔɐuɹnℲ ʇsɐןᗺ ǝʌıʇıɯıɹԀ", "block.gtceu.primitive_pump": "dɯnԀ ǝʌıʇıɯıɹԀ", - "block.gtceu.ptfe_pipe_casing": "buısɐƆ ǝdıԀ ǝɟʇd", + "block.gtceu.ptfe_pipe_casing": "buısɐƆ ǝdıԀ ƎℲ⟘Ԁ", "block.gtceu.pump_deck": "ʞɔǝᗡ dɯnԀ", "block.gtceu.pump_hatch": "ɥɔʇɐH dɯnԀ", "block.gtceu.pyrolyse_oven": "uǝʌO ǝsʎןoɹʎԀ", "block.gtceu.reaction_safe_mixing_casing": "buısɐƆ buıxıW ǝɟɐS-uoıʇɔɐǝᴚ", - "block.gtceu.robust_machine_casing": "buısɐƆ ǝuıɥɔɐW ʇsnqoᴚ", + "block.gtceu.robust_machine_casing": "buısɐƆ ǝuıɥɔɐW ןǝǝʇsuǝʇsbun⟘ ʇsnqoᴚ", "block.gtceu.rubber_leaves": "sǝʌɐǝꞀ ɹǝqqnᴚ", "block.gtceu.rubber_log": "boꞀ ɹǝqqnᴚ", "block.gtceu.rubber_planks": "sʞuɐןԀ ɹǝqqnᴚ", @@ -799,11 +769,11 @@ "block.gtceu.shock_proof_cutting_casing": "buısɐƆ buıʇʇnƆ ɟooɹԀ ʞɔoɥS", "block.gtceu.slicing_blades": "sǝpɐןᗺ buıɔıןS", "block.gtceu.solid_machine_casing": "buısɐƆ ǝuıɥɔɐW pıןoS", - "block.gtceu.stable_machine_casing": "buısɐƆ ǝuıɥɔɐW ǝןqɐʇS", + "block.gtceu.stable_machine_casing": "buısɐƆ ǝuıɥɔɐW ɯnıuɐʇı⟘ ǝןqɐʇS", "block.gtceu.stainless_steel_crate": "ǝʇɐɹƆ ןǝǝʇS ssǝןuıɐʇS", "block.gtceu.stainless_steel_drum": "ɯnɹᗡ ןǝǝʇS ssǝןuıɐʇS", - "block.gtceu.stainless_steel_gearbox": "xoqɹɐǝ⅁ ןǝǝʇS ssǝןuıɐʇS", - "block.gtceu.stainless_steel_turbine_casing": "buısɐƆ ǝuıqɹn⟘ ןǝǝʇS ssǝןuıɐʇS", + "block.gtceu.stainless_steel_gearbox": "buısɐƆ xoqɹɐǝ⅁ ןǝǝʇS ssǝןuıɐʇS", + "block.gtceu.stainless_steel_turbine_casing": "buısɐƆ ǝuıqɹn⟘ ssǝןuıɐʇS", "block.gtceu.steam_casing_bricked_bronze": "ןןnH ǝzuoɹᗺ pǝʞɔıɹᗺ", "block.gtceu.steam_casing_bricked_bronze.tooltip": "sǝuıɥɔɐW ɯɐǝʇS ʇsɹıɟ ɹnoʎ ɹoℲㄥ§", "block.gtceu.steam_casing_bricked_steel": "ןןnH uoɹI ʇɥbnoɹM pǝʞɔıɹᗺ", @@ -815,7 +785,7 @@ "block.gtceu.steam_grinder": "ɹǝpuıɹ⅁ ɯɐǝʇS", "block.gtceu.steam_input_bus": ")ɯɐǝʇS( snᗺ ʇnduI", "block.gtceu.steam_input_hatch": "ɥɔʇɐH ʇnduI ɯɐǝʇS", - "block.gtceu.steam_large_turbine": "ǝuıqɹn⟘ ǝbɹɐꞀ ɯɐǝʇS", + "block.gtceu.steam_large_turbine": "ǝuıqɹn⟘ ɯɐǝʇS ǝbɹɐꞀ", "block.gtceu.steam_liquid_boiler.bronze": "ɹǝןıoᗺ pınbıꞀ ɯɐǝʇS ןןɐɯS", "block.gtceu.steam_machine_casing": "buısɐƆ ǝuıɥɔɐW ɯɐǝʇS", "block.gtceu.steam_miner": "ɹǝuıW ɯɐǝʇS", @@ -825,23 +795,21 @@ "block.gtceu.steel_brick_casing": "buısɐƆ ʞɔıɹᗺ ןǝǝʇS", "block.gtceu.steel_crate": "ǝʇɐɹƆ ןǝǝʇS", "block.gtceu.steel_drum": "ɯnɹᗡ ןǝǝʇS", - "block.gtceu.steel_firebox": "buısɐƆ xoqǝɹıℲ ןǝǝʇS", "block.gtceu.steel_firebox_casing": "buısɐƆ xoqǝɹıℲ ןǝǝʇS", - "block.gtceu.steel_gearbox": "xoqɹɐǝ⅁ ןǝǝʇS", + "block.gtceu.steel_gearbox": "buısɐƆ xoqɹɐǝ⅁ ןǝǝʇS", "block.gtceu.steel_large_boiler": "ɹǝןıoᗺ ןǝǝʇS ǝbɹɐꞀ", - "block.gtceu.steel_machine_casing": "buısɐƆ ǝuıɥɔɐW ןǝǝʇS", + "block.gtceu.steel_machine_casing": "buısɐƆ ǝuıɥɔɐW ןǝǝʇS pıןoS", "block.gtceu.steel_pipe_casing": "buısɐƆ ǝdıԀ ןǝǝʇS", "block.gtceu.steel_turbine_casing": "buısɐƆ ǝuıqɹn⟘ ןǝǝʇS", "block.gtceu.sterilizing_filter_casing": "buısɐƆ ɹǝʇןıℲ buızıןıɹǝʇS", "block.gtceu.stress_proof_casing": "buısɐƆ ɟooɹԀ ssǝɹʇS", - "block.gtceu.sturdy_machine_casing": "buısɐƆ ǝuıɥɔɐW ʎpɹnʇS", - "block.gtceu.superconducting_coil": "ןıoƆ buıʇɔnpuoɔɹǝdnS", + "block.gtceu.sturdy_machine_casing": "buısɐƆ ǝuıɥɔɐW Ǝ-SSH ʎpɹnʇS", + "block.gtceu.superconducting_coil": "ʞɔoןᗺ ןıoƆ buıʇɔnpuoɔɹǝdnS", "block.gtceu.tempered_glass": "ssɐן⅁ pǝɹǝdɯǝ⟘", "block.gtceu.titanium_crate": "ǝʇɐɹƆ ɯnıuɐʇı⟘", "block.gtceu.titanium_drum": "ɯnɹᗡ ɯnıuɐʇı⟘", - "block.gtceu.titanium_firebox": "buısɐƆ xoqǝɹıℲ ɯnıuɐʇı⟘", "block.gtceu.titanium_firebox_casing": "buısɐƆ xoqǝɹıℲ ɯnıuɐʇı⟘", - "block.gtceu.titanium_gearbox": "xoqɹɐǝ⅁ ɯnıuɐʇı⟘", + "block.gtceu.titanium_gearbox": "buısɐƆ xoqɹɐǝ⅁ ɯnıuɐʇı⟘", "block.gtceu.titanium_large_boiler": "ɹǝןıoᗺ ɯnıuɐʇı⟘ ǝbɹɐꞀ", "block.gtceu.titanium_pipe_casing": "buısɐƆ ǝdıԀ ɯnıuɐʇı⟘", "block.gtceu.titanium_turbine_casing": "buısɐƆ ǝuıqɹn⟘ ɯnıuɐʇı⟘", @@ -851,9 +819,8 @@ "block.gtceu.tungsten_steel_crate": "ǝʇɐɹƆ ןǝǝʇsuǝʇsbun⟘", "block.gtceu.tungsten_steel_drum": "ɯnɹᗡ ןǝǝʇsuǝʇsbun⟘", "block.gtceu.tungstensteel_coil_block": "ʞɔoןᗺ ןıoƆ ןǝǝʇsuǝʇsbun⟘", - "block.gtceu.tungstensteel_firebox": "buısɐƆ xoqǝɹıℲ ןǝǝʇsuǝʇsbun⟘", "block.gtceu.tungstensteel_firebox_casing": "buısɐƆ xoqǝɹıℲ ןǝǝʇsuǝʇsbun⟘", - "block.gtceu.tungstensteel_gearbox": "xoqɹɐǝ⅁ ןǝǝʇsuǝʇsbun⟘", + "block.gtceu.tungstensteel_gearbox": "buısɐƆ xoqɹɐǝ⅁ ןǝǝʇsuǝʇsbun⟘", "block.gtceu.tungstensteel_large_boiler": "ɹǝןıoᗺ ןǝǝʇsuǝʇsbun⟘ ǝbɹɐꞀ", "block.gtceu.tungstensteel_pipe_casing": "buısɐƆ ǝdıԀ ןǝǝʇsuǝʇsbun⟘", "block.gtceu.tungstensteel_turbine_casing": "buısɐƆ ǝuıqɹn⟘ ןǝǝʇsuǝʇsbun⟘", @@ -1236,14 +1203,6 @@ "block.gtceu.wire_coil.tooltip_pyro": ":uǝʌO ǝsʎןoɹʎԀ8§", "block.gtceu.wire_coil.tooltip_smelter": ":ɹǝʇןǝɯS ıʇןnW8§", "block.gtceu.wire_coil.tooltip_speed_pyro": "%s%%ɟ§ :pǝǝdS buıssǝɔoɹԀq§ ", - "block.gtceu.wire_coil_cupronickel": "ʞɔoןᗺ ןıoƆ ןǝʞɔıuoɹdnƆ", - "block.gtceu.wire_coil_hss_g": "ʞɔoןᗺ ןıoƆ ⅁-SSH", - "block.gtceu.wire_coil_kanthal": "ʞɔoןᗺ ןıoƆ ןɐɥʇuɐʞ", - "block.gtceu.wire_coil_naquadah": "ʞɔoןᗺ ןıoƆ ɥɐpɐnbɐN", - "block.gtceu.wire_coil_nichrome": "ʞɔoןᗺ ןıoƆ ǝɯoɹɥɔıN", - "block.gtceu.wire_coil_trinium": "ʞɔoןᗺ ןıoƆ ɯnıuıɹ⟘", - "block.gtceu.wire_coil_tritanium": "ʞɔoןᗺ ןıoƆ ɯnıuɐʇıɹ⟘", - "block.gtceu.wire_coil_tungstensteel": "ʞɔoןᗺ ןıoƆ ןǝǝʇsuǝʇsbun⟘", "block.gtceu.wood_crate": "ǝʇɐɹƆ uǝpooM", "block.gtceu.wood_drum": "ןǝɹɹɐᗺ uǝpooM", "block.gtceu.zpm_1024a_laser_source_hatch": "ɥɔʇɐH ǝɔɹnoS ɹǝsɐꞀ ɐㄣᄅ0Ɩ ɯdZ", @@ -1324,7 +1283,6 @@ "block.gtceu.zpm_transformer_2a": "ɹǝɯɹoɟsuɐɹ⟘ )xᄅ( dɯⱯ-ıH ǝbɐʇןoΛ WԀZ", "block.gtceu.zpm_transformer_4a": "ɹǝɯɹoɟsuɐɹ⟘ )xㄣ( dɯⱯ-ıH ǝbɐʇןoΛ WԀZ", "block.gtceu.zpm_wiremill": "ɹ§III ןןıɯǝɹıM ǝʇıןƎɔ§", - "block.superconducting_coil": "ʞɔoןᗺ ןıoƆ buıʇɔnpuoɔɹǝdnS", "compass.node.gtceu.batteries/energy_cluster": "ɹǝʇsnןƆ ʎbɹǝuƎ", "compass.node.gtceu.batteries/energy_crystal": "ןɐʇsʎɹƆ ʎbɹǝuƎ", "compass.node.gtceu.batteries/energy_module": "ǝןnpoW ʎbɹǝuƎ", @@ -1790,6 +1748,7 @@ "config.gtceu.option.doProcessingArray": "ʎɐɹɹⱯbuıssǝɔoɹԀop", "config.gtceu.option.doTerrainExplosion": "uoısoןdxƎuıɐɹɹǝ⟘op", "config.gtceu.option.doesExplosionDamagesTerrain": "uıɐɹɹǝ⟘sǝbɐɯɐᗡuoısoןdxƎsǝop", + "config.gtceu.option.dumpAssets": "sʇǝssⱯdɯnp", "config.gtceu.option.dumpRecipes": "sǝdıɔǝᴚdɯnp", "config.gtceu.option.enableCleanroom": "ɯooɹuɐǝןƆǝןqɐuǝ", "config.gtceu.option.enableMaintenance": "ǝɔuɐuǝʇuıɐWǝןqɐuǝ", @@ -1891,15 +1850,14 @@ "cover.conveyor.blocks_input.disabled.1": "pǝןqɐsıᗡɔ§", "cover.conveyor.blocks_input.enabled.0": "˙ǝdıd oʇuı ʎɹoʇuǝʌuı ǝɥʇ ɯoɹɟ sɯǝʇı ןןnd oʇ ʇǝs sı ɹǝʌoɔ uǝɥʍ pǝʇɹǝsuı ǝq ʇou ןןıʍ sɯǝʇı 'pǝןqɐuǝ ɟI", "cover.conveyor.blocks_input.enabled.1": "pǝןqɐuƎɐ§", - "cover.conveyor.distribution.first_insert.0": "ǝpoW uoıʇnqıɹʇsıᗡ", - "cover.conveyor.distribution.first_insert.1": "ɹ§ʇɹǝsuI ʇsɹıℲq§", - "cover.conveyor.distribution.first_insert.2": "spuıɟ ʇı ʎɹoʇuǝʌuı ʇsɹıɟ ǝɥʇ oʇuı ʇɹǝsuı ןןıMㄥ§", - "cover.conveyor.distribution.round_robin.0": "ǝpoW uoıʇnqıɹʇsıᗡ", - "cover.conveyor.distribution.round_robin.1": "ʎʇıɹoıɹԀ ɥʇıʍ ɹ§uıqoᴚ punoᴚq§", - "cover.conveyor.distribution.round_robin.2": "sǝıɹoʇuǝʌuı oʇ ʎןןɐnbǝ sɯǝʇı ʇıןds oʇ sǝıɹ⟘ㄥ§", - "cover.conveyor.distribution.round_robin_enhanced.0": "ǝpoW uoıʇnqıɹʇsıᗡ", - "cover.conveyor.distribution.round_robin_enhanced.1": "ɹ§uıqoᴚ punoᴚ pǝɔuɐɥuƎq§", - "cover.conveyor.distribution.round_robin_enhanced.2": "sǝıɹoʇuǝʌuı ןןɐ oʇ ʎןןɐnbǝ sɯǝʇı sʇıןdSㄥ§", + "cover.conveyor.distribution.insert_first.0": "ʎʇıɹoıɹԀq§ :ǝpoW uoıʇnqıɹʇsıᗡ", + "cover.conveyor.distribution.insert_first.1": "˙puıɟ uɐɔ ʇı ʎʇıɹoıɹd ʇsǝɥbıɥ ǝɥʇ ɥʇıʍ ʎɹoʇuǝʌuı ʇsɹıɟ ǝɥʇ oʇuı ʇɹǝsuı ןןıMㄥ§", + "cover.conveyor.distribution.insert_first.2": "˙ɥʇɐd ɐ ɟo ʎʇıɹoıɹd ǝɥʇ ɹǝʍoן sǝdıd ɯǝʇı ǝʌıʇɔıɹʇsǝᴚㄥ§", + "cover.conveyor.distribution.round_robin_global.0": "uıqoᴚ punoᴚq§ :ǝpoW uoıʇnqıɹʇsıᗡ", + "cover.conveyor.distribution.round_robin_global.1": "sǝıɹoʇuǝʌuı pǝʇɔǝuuoɔ ssoɹɔɐ ʎןןɐnbǝ sɯǝʇı sʇıןdSㄥ§", + "cover.conveyor.distribution.round_robin_prio.0": "ʎʇıɹoıɹԀ ɥʇıʍ uıqoᴚ punoᴚq§ :ǝpoW uoıʇnqıɹʇsıᗡ", + "cover.conveyor.distribution.round_robin_prio.1": "˙ʇsɹıɟ sǝıʇıɹoıɹd ɹǝɥbıɥ sɹǝpısuoɔ puɐ sǝıɹoʇuǝʌuı pǝʇɔǝuuoɔ ssoɹɔɐ sɯǝʇı ʇıןds oʇ sǝıɹ⟘ㄥ§", + "cover.conveyor.distribution.round_robin_prio.2": "˙ɥʇɐd ɐ ɟo ʎʇıɹoıɹd ǝɥʇ ɹǝʍoן sǝdıd ɯǝʇı ǝʌıʇɔıɹʇsǝᴚㄥ§", "cover.conveyor.item_filter.title": "ɹǝʇןıℲ ɯǝʇI", "cover.conveyor.mode": "%s :ǝpoW", "cover.conveyor.mode.export": "ʇɹodxƎ :ǝpoW", @@ -1998,9 +1956,9 @@ "cover.universal.manual_import_export.mode.description.0": " ˙ɹǝʇןıɟ sʇı puɐ ɹǝʌoɔ ǝɥʇ ʎq pǝıɟıɔǝds sɐ ǝʌoɯ ʎןuo ןןıʍ spınןɟ/sɯǝʇI - ɹ§pǝןqɐsıᗡǝ§", "cover.universal.manual_import_export.mode.description.1": " ˙)ʎuɐ ɟı( sǝɥɔʇɐɯ ɹǝʇןıɟ sʇı sɐ buoן sɐ 'ǝpoɯ ɹǝʌoɔ ǝɥʇ ɟo ʎןʇuǝpuǝdǝpuı pǝʇɹǝsuı puɐ pǝʇɔɐɹʇxǝ ǝq uɐɔ spınןɟ/sɯǝʇI - ɹ§pǝɹǝʇןıℲ ʍoןןⱯǝ§", "cover.universal.manual_import_export.mode.description.2": "ɹǝʌoɔ sıɥʇ ʎq pǝʇɔɐɹʇxǝ ɹo pǝʇɹǝsuı sɯǝʇı ǝɥʇ oʇ sǝıןddɐ ɹǝʇןıℲ ˙ǝpoɯ ɹǝʌoɔ ǝɥʇ ɟo ʎןʇuǝpuǝdǝpuı pǝʌoɯ ǝq uɐɔ spınןɟ/sɯǝʇI - ɹ§pǝɹǝʇןıɟu∩ ʍoןןⱯǝ§", - "cover.universal.manual_import_export.mode.disabled": "pǝןqɐsıᗡ :O/I ןɐnuɐW", - "cover.universal.manual_import_export.mode.filtered": "pǝɹǝʇןıℲ :O/I ןɐnuɐW", - "cover.universal.manual_import_export.mode.unfiltered": "pǝɹǝʇןıɟu∩ :O/I ןɐnuɐW", + "cover.universal.manual_import_export.mode.disabled": "˙ɹǝʇןıɟ sʇı puɐ ɹǝʌoɔ ǝɥʇ ʎq pǝıɟıɔǝds sɐ ǝʌoɯ ʎןuo ןןıʍ spınןℲ / sɯǝʇIㄥ§\npǝןqɐsıᗡq§ :O/I ןɐnuɐW", + "cover.universal.manual_import_export.mode.filtered": ")ʎuɐ ɟı( sǝɥɔʇɐɯ ɹǝʇןıɟ sʇı sɐ buoן sɐ 'ǝpoɯ ɹǝʌoɔ ǝɥʇ ɟo ʎןʇuǝpuǝdǝpuı pǝʇɹǝsuı puɐ pǝʇɔɐɹʇxǝ ǝq uɐɔ spınןℲ / sɯǝʇIㄥ§\npǝɹǝʇןıℲq§ :O/I ןɐnuɐW", + "cover.universal.manual_import_export.mode.unfiltered": "˙ɟןǝsʇı ɹǝʌoɔ sıɥʇ ʎq pǝʇɔɐɹʇxǝ ɹo pǝʇɹǝsuı sı ʇɐɥʍ oʇ sǝıןddɐ ʎןuo ɹǝʇןıɟ ǝɥ⟘ ˙ǝpoɯ ɹǝʌoɔ ǝɥʇ ɟo ʎןʇuǝpuǝdǝpuı pǝʌoɯ ǝq uɐɔ spınןℲ / sɯǝʇIㄥ§\npǝɹǝʇןıɟu∩q§ :O/I ןɐnuɐW", "cover.voiding.label.disabled": "pǝןqɐsıᗡ", "cover.voiding.label.enabled": "pǝןqɐuƎ", "cover.voiding.message.disabled": "pǝןqɐsıᗡ ɹǝʌoƆ buıpıoΛ", @@ -3161,8 +3119,8 @@ "item.bone_dust": "ןɐǝW ǝuoᗺ", "item.bone_small_dust": "ןɐǝW ǝuoᗺ ɟo ǝןıԀ ןןɐɯS", "item.bone_tiny_dust": "ןɐǝW ǝuoᗺ ɟo ǝןıԀ ʎuı⟘", + "item.borosilicate_glass_fine_wire": "sɹǝqıℲ ssɐן⅁ ǝʇɐɔıןısoɹoᗺ", "item.borosilicate_glass_ingot": "ɹɐᗺ ssɐן⅁ ǝʇɐɔıןısoɹoᗺ", - "item.borosilicate_glass_wireFine": "sɹǝqıℲ ssɐן⅁ ǝʇɐɔıןısoɹoᗺ", "item.cassiterite_sand_crushed": "puɐS ǝʇıɹǝʇıssɐƆ punoɹ⅁", "item.cassiterite_sand_dust": "puɐS ǝʇıɹǝʇıssɐƆ", "item.cassiterite_sand_impure_dust": "puɐS ǝʇıɹǝʇıssɐƆ ɟo ǝןıԀ ǝɹndɯI", @@ -4046,7 +4004,7 @@ "item.sugar_gem": "ǝqnƆ ɹɐbnS", "item.sugar_small_dust": "ɹɐbnS ɟo ǝןıԀ ןןɐɯS", "item.sugar_tiny_dust": "ɹɐbnS ɟo ǝןıԀ ʎuı⟘", - "item.talc_crushed": "ɔןɐ⟘ punoɹ⅁", + "item.talc_crushed_ore": "ɔןɐ⟘ punoɹ⅁", "item.talc_dust": "ɔןɐ⟘", "item.talc_impure_dust": "ɔןɐ⟘ ɟo ǝןıԀ ǝɹndɯI", "item.talc_pure_dust": "ɔןɐ⟘ ɟo ǝןıԀ pǝıɟıɹnԀ", @@ -4056,9 +4014,9 @@ "item.talc_tiny_dust": "ɔןɐ⟘ ɟo ǝןıԀ ʎuı⟘", "item.treated_wood_bolt": "ʞɔıʇS pooM pǝʇɐǝɹ⟘ ʇɹoɥS", "item.treated_wood_dust": "dןnԀ pooM pǝʇɐǝɹ⟘", + "item.treated_wood_long_rod": "ʞɔıʇS pooM pǝʇɐǝɹ⟘ buoꞀ", "item.treated_wood_plate": "ʞuɐןԀ pooM pǝʇɐǝɹ⟘", "item.treated_wood_rod": "ʞɔıʇS pooM pǝʇɐǝɹ⟘", - "item.treated_wood_rodLong": "ʞɔıʇS pooM pǝʇɐǝɹ⟘ buoꞀ", "item.treated_wood_small_dust": "dןnԀ pooM pǝʇɐǝɹ⟘ ɟo ǝןıԀ ןןɐɯS", "item.treated_wood_tiny_dust": "dןnԀ pooM pǝʇɐǝɹ⟘ ɟo ǝןıԀ ʎuı⟘", "item.wheat_dust": "ɹnoןℲ", @@ -4066,8 +4024,8 @@ "item.wheat_tiny_dust": "ɹnoןℲ ɟo ǝןıԀ ʎuı⟘", "item.wood_bolt": "ʞɔıʇS pooM ʇɹoɥS", "item.wood_dust": "dןnԀ pooM", + "item.wood_long_rod": "ʞɔıʇS pooM buoꞀ", "item.wood_plate": "ʞuɐןԀ pooM", - "item.wood_rodLong": "ʞɔıʇS pooM buoꞀ", "item.wood_small_dust": "dןnԀ pooM ɟo ǝןıԀ ןןɐɯS", "item.wood_tiny_dust": "dןnԀ pooM ɟo ǝןıԀ ʎuı⟘", "itemGroup.gtceu.decoration": "suoıʇɐɹoɔǝᗡ ɥɔǝ⟘bǝɹ⅁", @@ -4130,6 +4088,7 @@ "material.bio_diesel": "ןǝsǝıᗡ oıᗺ", "material.biomass": "ssɐɯoıᗺ", "material.biotite": "ǝʇıʇoıᗺ", + "material.biphenyl": "ןʎuǝɥdıᗺ", "material.bismuth": "ɥʇnɯsıᗺ", "material.bismuth_bronze": "ǝzuoɹᗺ ɥʇnɯsıᗺ", "material.bisphenol_a": "Ɐ ןouǝɥdsıᗺ", @@ -4305,7 +4264,7 @@ "material.gypsum": "ɯnsdʎ⅁", "material.hafnium": "ɯnıuɟɐH", "material.hassium": "ɯnıssɐH", - "material.hastelloy_c_276": "9ㄥᄅ Ɔ ʎoןןǝʇsɐH", + "material.hastelloy_c_276": "9ㄥᄅ-Ɔ ʎoןןǝʇsɐH", "material.hastelloy_x": "X ʎoןןǝʇsɐH", "material.heavy_fuel": "ןǝnℲ ʎʌɐǝH", "material.helium": "ɯnıןǝH", @@ -4313,17 +4272,17 @@ "material.hematite": "ǝʇıʇɐɯǝH", "material.high_octane_gasoline": "ǝuıןosɐ⅁ ǝuɐʇɔO ɥbıH", "material.holmium": "ɯnıɯןoH", - "material.hsla_steel": "ןǝǝʇS-ⱯꞀSH", + "material.hsla_steel": "ןǝǝʇS ɐןsH", "material.hsse": "Ǝ-SSH", "material.hssg": "⅁-SSH", "material.hsss": "S-SSH", - "material.hydro_cracked_butadiene": "ǝuǝıpɐʇnᗺ pǝʞɔɐɹƆ oɹpʎH", - "material.hydro_cracked_butane": "ǝuɐʇnᗺ pǝʞɔɐɹƆ oɹpʎH", - "material.hydro_cracked_butene": "ǝuǝʇnᗺ pǝʞɔɐɹƆ oɹpʎH", - "material.hydro_cracked_ethane": "ǝuɐɥʇƎ pǝʞɔɐɹƆ oɹpʎH", - "material.hydro_cracked_ethylene": "ǝuǝןʎɥʇƎ pǝʞɔɐɹƆ oɹpʎH", - "material.hydro_cracked_propane": "ǝuɐdoɹԀ pǝʞɔɐɹƆ oɹpʎH", - "material.hydro_cracked_propene": "ǝuǝdoɹԀ pǝʞɔɐɹƆ oɹpʎH", + "material.hydro_cracked_butadiene": "ǝuǝıpɐʇnᗺ pǝʞɔɐɹƆ-oɹpʎH", + "material.hydro_cracked_butane": "ǝuɐʇnᗺ pǝʞɔɐɹƆ-oɹpʎH", + "material.hydro_cracked_butene": "ǝuǝʇnᗺ pǝʞɔɐɹƆ-oɹpʎH", + "material.hydro_cracked_ethane": "ǝuɐɥʇƎ pǝʞɔɐɹƆ-oɹpʎH", + "material.hydro_cracked_ethylene": "ǝuǝןʎɥʇƎ pǝʞɔɐɹƆ-oɹpʎH", + "material.hydro_cracked_propane": "ǝuɐdoɹԀ pǝʞɔɐɹƆ-oɹpʎH", + "material.hydro_cracked_propene": "ǝuǝdoɹԀ pǝʞɔɐɹƆ-oɹpʎH", "material.hydrochloric_acid": "pıɔⱯ ɔıɹoןɥɔoɹpʎH", "material.hydrofluoric_acid": "pıɔⱯ ɔıɹonןɟoɹpʎH", "material.hydrogen": "uǝboɹpʎH", @@ -4333,7 +4292,7 @@ "material.ilmenite": "ǝʇıuǝɯןI", "material.impure_enriched_naquadah_solution": "uoıʇnןoS ɥɐpɐnbɐN pǝɥɔıɹuƎ ǝɹndɯI", "material.impure_naquadria_solution": "uoıʇnןoS ɐıɹpɐnbɐN ǝɹndɯI", - "material.incoloy_ma_956": "9ϛ6 ɐW ʎoןoɔuI", + "material.incoloy_ma_956": "9ϛ6-ⱯW ʎoןoɔuI", "material.indium": "ɯnıpuI", "material.indium_concentrate": "ǝʇɐɹʇuǝɔuoƆ ɯnıpuI", "material.indium_gallium_phosphide": "ǝpıɥdsoɥԀ ɯnıןןɐ⅁ ɯnıpuI", @@ -4363,14 +4322,14 @@ "material.light_blue_dye": "ǝʎᗡ ǝnןᗺ ʇɥbıꞀ", "material.light_fuel": "ןǝnℲ ʇɥbıꞀ", "material.light_gray_dye": "ǝʎᗡ ʎɐɹ⅁ ʇɥbıꞀ", - "material.lightly_hydro_cracked_gas": "sɐ⅁ pǝʞɔɐɹƆ oɹpʎH ʎןʇɥbıꞀ", - "material.lightly_hydro_cracked_heavy_fuel": "ןǝnℲ ʎʌɐǝH pǝʞɔɐɹƆ oɹpʎH ʎןʇɥbıꞀ", - "material.lightly_hydro_cracked_light_fuel": "ןǝnℲ ʇɥbıꞀ pǝʞɔɐɹƆ oɹpʎH ʎןʇɥbıꞀ", - "material.lightly_hydro_cracked_naphtha": "ɐɥʇɥdɐN pǝʞɔɐɹƆ oɹpʎH ʎןʇɥbıꞀ", - "material.lightly_steam_cracked_gas": "sɐ⅁ pǝʞɔɐɹƆ ɯɐǝʇS ʎןʇɥbıꞀ", - "material.lightly_steam_cracked_heavy_fuel": "ןǝnℲ ʎʌɐǝH pǝʞɔɐɹƆ ɯɐǝʇS ʎןʇɥbıꞀ", - "material.lightly_steam_cracked_light_fuel": "ןǝnℲ ʇɥbıꞀ pǝʞɔɐɹƆ ɯɐǝʇS ʎןʇɥbıꞀ", - "material.lightly_steam_cracked_naphtha": "ɐɥʇɥdɐN pǝʞɔɐɹƆ ɯɐǝʇS ʎןʇɥbıꞀ", + "material.lightly_hydro_cracked_gas": "sɐ⅁ pǝʞɔɐɹƆ-oɹpʎH ʎןʇɥbıꞀ", + "material.lightly_hydro_cracked_heavy_fuel": "ןǝnℲ ʎʌɐǝH pǝʞɔɐɹƆ-oɹpʎH ʎןʇɥbıꞀ", + "material.lightly_hydro_cracked_light_fuel": "ןǝnℲ ʇɥbıꞀ pǝʞɔɐɹƆ-oɹpʎH ʎןʇɥbıꞀ", + "material.lightly_hydro_cracked_naphtha": "ɐɥʇɥdɐN pǝʞɔɐɹƆ-oɹpʎH ʎןʇɥbıꞀ", + "material.lightly_steam_cracked_gas": "sɐ⅁ pǝʞɔɐɹƆ-ɯɐǝʇS ʎןʇɥbıꞀ", + "material.lightly_steam_cracked_heavy_fuel": "ןǝnℲ ʎʌɐǝH pǝʞɔɐɹƆ-ɯɐǝʇS ʎןʇɥbıꞀ", + "material.lightly_steam_cracked_light_fuel": "ןǝnℲ ʇɥbıꞀ pǝʞɔɐɹƆ-ɯɐǝʇS ʎןʇɥbıꞀ", + "material.lightly_steam_cracked_naphtha": "ɐɥʇɥdɐN pǝʞɔɐɹƆ-ɯɐǝʇS ʎןʇɥbıꞀ", "material.lime_dye": "ǝʎᗡ ǝɯıꞀ", "material.liquid_air": "ɹıⱯ pınbıꞀ", "material.liquid_ender_air": "ɹıⱯ ɹǝpuƎ pınbıꞀ", @@ -4471,6 +4430,7 @@ "material.palladium": "ɯnıpɐןןɐԀ", "material.palladium_raw": "ʍɐᴚ ɯnıpɐןןɐԀ", "material.paper": "ɹǝdɐԀ", + "material.pcb_coolant": "ʇuɐןooƆ ᗺƆԀ", "material.pentlandite": "ǝʇıpuɐןʇuǝԀ", "material.perlite": "ǝʇıןɹǝԀ", "material.phenol": "ןouǝɥԀ", @@ -4491,6 +4451,7 @@ "material.polonium": "ɯnıuoןoԀ", "material.polybenzimidazole": "ǝןozɐpıɯızuǝqʎןoԀ", "material.polycaprolactam": "ɯɐʇɔɐןoɹdɐɔʎןoԀ", + "material.polychlorinated_biphenyl": "ןʎuǝɥdıᗺ pǝʇɐuıɹoןɥɔʎןoԀ", "material.polydimethylsiloxane": "ǝuɐxoןısןʎɥʇǝɯıpʎןoԀ", "material.polyethylene": "ǝuǝןʎɥʇǝʎןoԀ", "material.polyphenylene_sulfide": "ǝpıɟןnS ǝuǝןʎuǝɥdʎןoԀ", @@ -4564,14 +4525,14 @@ "material.seaborgium": "ɯnıbɹoqɐǝS", "material.seed_oil": "ןıO pǝǝS", "material.selenium": "ɯnıuǝןǝS", - "material.severely_hydro_cracked_gas": "sɐ⅁ pǝʞɔɐɹƆ oɹpʎH ʎןǝɹǝʌǝS", - "material.severely_hydro_cracked_heavy_fuel": "ןǝnℲ ʎʌɐǝH pǝʞɔɐɹƆ oɹpʎH ʎןǝɹǝʌǝS", - "material.severely_hydro_cracked_light_fuel": "ןǝnℲ ʇɥbıꞀ pǝʞɔɐɹƆ oɹpʎH ʎןǝɹǝʌǝS", - "material.severely_hydro_cracked_naphtha": "ɐɥʇɥdɐN pǝʞɔɐɹƆ oɹpʎH ʎןǝɹǝʌǝS", - "material.severely_steam_cracked_gas": "sɐ⅁ pǝʞɔɐɹƆ ɯɐǝʇS ʎןǝɹǝʌǝS", - "material.severely_steam_cracked_heavy_fuel": "ןǝnℲ ʎʌɐǝH pǝʞɔɐɹƆ ɯɐǝʇS ʎןǝɹǝʌǝS", - "material.severely_steam_cracked_light_fuel": "ןǝnℲ ʇɥbıꞀ pǝʞɔɐɹƆ ɯɐǝʇS ʎןǝɹǝʌǝS", - "material.severely_steam_cracked_naphtha": "ɐɥʇɥdɐN pǝʞɔɐɹƆ ɯɐǝʇS ʎןǝɹǝʌǝS", + "material.severely_hydro_cracked_gas": "sɐ⅁ pǝʞɔɐɹƆ-oɹpʎH ʎןǝɹǝʌǝS", + "material.severely_hydro_cracked_heavy_fuel": "ןǝnℲ ʎʌɐǝH pǝʞɔɐɹƆ-oɹpʎH ʎןǝɹǝʌǝS", + "material.severely_hydro_cracked_light_fuel": "ןǝnℲ ʇɥbıꞀ pǝʞɔɐɹƆ-oɹpʎH ʎןǝɹǝʌǝS", + "material.severely_hydro_cracked_naphtha": "ɐɥʇɥdɐN pǝʞɔɐɹƆ-oɹpʎH ʎןǝɹǝʌǝS", + "material.severely_steam_cracked_gas": "sɐ⅁ pǝʞɔɐɹƆ-ɯɐǝʇS ʎןǝɹǝʌǝS", + "material.severely_steam_cracked_heavy_fuel": "ןǝnℲ ʎʌɐǝH pǝʞɔɐɹƆ-ɯɐǝʇS ʎןǝɹǝʌǝS", + "material.severely_steam_cracked_light_fuel": "ןǝnℲ ʇɥbıꞀ pǝʞɔɐɹƆ-ɯɐǝʇS ʎןǝɹǝʌǝS", + "material.severely_steam_cracked_naphtha": "ɐɥʇɥdɐN pǝʞɔɐɹƆ-ɯɐǝʇS ʎןǝɹǝʌǝS", "material.silicon": "uoɔıןıS", "material.silicon_dioxide": "ǝpıxoıᗡ uoɔıןıS", "material.silicone_rubber": "ɹǝqqnᴚ ǝuoɔıןıS", @@ -4592,15 +4553,15 @@ "material.spodumene": "ǝuǝɯnpodS", "material.stainless_steel": "ןǝǝʇS ssǝןuıɐʇS", "material.steam": "ɯɐǝʇS", - "material.steam_cracked_butadiene": "ǝuǝıpɐʇnᗺ pǝʞɔɐɹƆ ɯɐǝʇS", - "material.steam_cracked_butane": "ǝuɐʇnᗺ pǝʞɔɐɹƆ ɯɐǝʇS", - "material.steam_cracked_butene": "ǝuǝʇnᗺ pǝʞɔɐɹƆ ɯɐǝʇS", - "material.steam_cracked_ethane": "ǝuɐɥʇƎ pǝʞɔɐɹƆ ɯɐǝʇS", - "material.steam_cracked_ethylene": "ǝuǝןʎɥʇƎ pǝʞɔɐɹƆ ɯɐǝʇS", - "material.steam_cracked_propane": "ǝuɐdoɹԀ pǝʞɔɐɹƆ ɯɐǝʇS", - "material.steam_cracked_propene": "ǝuǝdoɹԀ pǝʞɔɐɹƆ ɯɐǝʇS", + "material.steam_cracked_butadiene": "ǝuǝıpɐʇnᗺ pǝʞɔɐɹƆ-ɯɐǝʇS", + "material.steam_cracked_butane": "ǝuɐʇnᗺ pǝʞɔɐɹƆ-ɯɐǝʇS", + "material.steam_cracked_butene": "ǝuǝʇnᗺ pǝʞɔɐɹƆ-ɯɐǝʇS", + "material.steam_cracked_ethane": "ǝuɐɥʇƎ pǝʞɔɐɹƆ-ɯɐǝʇS", + "material.steam_cracked_ethylene": "ǝuǝןʎɥʇƎ pǝʞɔɐɹƆ-ɯɐǝʇS", + "material.steam_cracked_propane": "ǝuɐdoɹԀ pǝʞɔɐɹƆ-ɯɐǝʇS", + "material.steam_cracked_propene": "ǝuǝdoɹԀ pǝʞɔɐɹƆ-ɯɐǝʇS", "material.steel": "ןǝǝʇS", - "material.stellite_100": "00Ɩ ǝʇıןןǝʇS", + "material.stellite_100": "00Ɩ-ǝʇıןןǝʇS", "material.sterilized_growth_medium": "ɯnıpǝW ɥʇʍoɹ⅁ pǝzıןıɹǝʇS", "material.sterling_silver": "ɹǝʌןıS buıןɹǝʇS", "material.stibnite": "ǝʇıuqıʇS", @@ -4687,7 +4648,7 @@ "material.yttrium": "ɯnıɹʇʇʎ", "material.yttrium_barium_cuprate": "ǝʇɐɹdnƆ ɯnıɹɐᗺ ɯnıɹʇʇʎ", "material.zeolite": "ǝʇıןoǝZ", - "material.zeron_100": "00Ɩ uoɹǝZ", + "material.zeron_100": "00Ɩ-uoɹǝZ", "material.zinc": "ɔuıZ", "material.zinc_sulfide": "ǝpıɟןnS ɔuıZ", "material.zincite": "ǝʇıɔuıZ", @@ -4911,15 +4872,5 @@ "tile.gtceu.petrified_foam.name": "ɯɐoℲ pǝıɟıɹʇǝԀ", "tile.gtceu.reinforced_foam.name": "ɯɐoℲ pǝɔɹoɟuıǝᴚ", "tile.gtceu.reinforced_stone.name": "ǝuoʇS pǝɔɹoɟuıǝᴚ", - "tile.gtceu.seal.name": "ʞɔoןᗺ pǝןɐǝS", - "tile.stone_bricks_square.concrete_dark.name": "sʞɔıɹᗺ ǝʇǝɹɔuoƆ ʞɹɐᗡ ǝɹɐnbS", - "tile.wire_coil.tooltip_cracking": ":ʇıu∩ buıʞɔɐɹƆ8§", - "tile.wire_coil.tooltip_energy_cracking": "%s%%ɟ§ :ǝbɐs∩ ʎbɹǝuƎɐ§ ", - "tile.wire_coil.tooltip_energy_smelter": "ǝdıɔǝɹ ɹǝd8§ ʇ/∩Ǝ %sɟ§ :ǝbɐs∩ ʎbɹǝuƎɐ§ ", - "tile.wire_coil.tooltip_extended_info": "oɟuI snuoᗺ ןıoƆ ʍoɥs oʇ ⟘ℲIHS pןoH", - "tile.wire_coil.tooltip_heat": "ʞ %dɟ§ :ʎʇıɔɐdɐƆ ʇɐǝH ǝsɐᗺɔ§", - "tile.wire_coil.tooltip_parallel_smelter": "%sɟ§ :ןǝןןɐɹɐԀ xɐWϛ§ ", - "tile.wire_coil.tooltip_pyro": ":uǝʌO ǝsʎןoɹʎԀ8§", - "tile.wire_coil.tooltip_smelter": ":ɹǝʇןǝɯS ıʇןnW8§", - "tile.wire_coil.tooltip_speed_pyro": "%s%%ɟ§ :pǝǝdS buıssǝɔoɹԀq§ " + "tile.gtceu.seal.name": "ʞɔoןᗺ pǝןɐǝS" } \ No newline at end of file diff --git a/forge/src/generated/resources/assets/gtceu/lang/en_us.json b/forge/src/generated/resources/assets/gtceu/lang/en_us.json index 58d4ab8642..213a5d5caa 100644 --- a/forge/src/generated/resources/assets/gtceu/lang/en_us.json +++ b/forge/src/generated/resources/assets/gtceu/lang/en_us.json @@ -69,13 +69,6 @@ "behaviour.wrench": "Rotates Blocks on Rightclick", "block.filter.tooltip": "Creates a §aParticle-Free§7 environment", "block.filter_sterile.tooltip": "Creates a §aSterilized§7 environment", - "block.fusion_casing": "Fusion Machine Casing", - "block.fusion_casing_mk2": "Fusion Machine Casing MK II", - "block.fusion_casing_mk3": "Fusion Machine Casing MK III", - "block.fusion_coil": "Fusion Coil Block", - "block.gtceu.active_casing_assembly_line": "Assembly Line Casing", - "block.gtceu.active_casing_engine_intake": "Engine Intake Casing", - "block.gtceu.active_casing_extreme_engine_intake": "Extreme Engine Intake Casing", "block.gtceu.active_transformer": "Active Transformer", "block.gtceu.alloy_blast_smelter": "Alloy Blast Smelter", "block.gtceu.aluminium_crate": "Aluminium Crate", @@ -83,48 +76,22 @@ "block.gtceu.assembly_line": "Assembly Line", "block.gtceu.assembly_line_casing": "Assembly Line Casing", "block.gtceu.assembly_line_grating": "Assembly Line Grating", - "block.gtceu.assembly_line_unit": "Assembly Line Unit", + "block.gtceu.assembly_line_unit": "Assembly Control Casing", "block.gtceu.atomic_casing": "Atomic Casing", "block.gtceu.auto_maintenance_hatch": "Auto Maintenance Hatch", "block.gtceu.bronze_brick_casing": "Bronze Brick Casing", "block.gtceu.bronze_crate": "Bronze Crate", "block.gtceu.bronze_drum": "Bronze Drum", - "block.gtceu.bronze_firebox": "Bronze Firebox Casing", "block.gtceu.bronze_firebox_casing": "Bronze Firebox Casing", - "block.gtceu.bronze_gearbox": "Bronze Gearbox", + "block.gtceu.bronze_gearbox": "Bronze Gearbox Casing", "block.gtceu.bronze_large_boiler": "Large Bronze Boiler", "block.gtceu.bronze_machine_casing": "Bronze Machine Casing", "block.gtceu.bronze_pipe_casing": "Bronze Pipe Casing", - "block.gtceu.casing_aluminium_frostproof": "Frost Proof Aluminium Machine Casing", - "block.gtceu.casing_assembly_control": "Assembly Control Casing", "block.gtceu.casing_bronze_bricks": "Bronze Machine Casing", - "block.gtceu.casing_bronze_gearbox": "Bronze Gearbox Casing", - "block.gtceu.casing_bronze_pipe": "Bronze Pipe Casing", "block.gtceu.casing_coke_bricks": "Coke Oven Bricks", "block.gtceu.casing_grate": "Grate Machine Casing", - "block.gtceu.casing_hsse_sturdy": "Sturdy HSS-E Machine Casing", - "block.gtceu.casing_invar_heatproof": "Heat Proof Invar Machine Casing", - "block.gtceu.casing_laminated_glass": "Laminated Glass", - "block.gtceu.casing_polytetrafluoroethylene_pipe": "PTFE Pipe Casing", "block.gtceu.casing_primitive_bricks": "Firebricks", - "block.gtceu.casing_ptfe_inert": "Chemically Inert PTFE Machine Casing", - "block.gtceu.casing_pump_deck": "Pump Deck", - "block.gtceu.casing_stainless_clean": "Clean Stainless Steel Casing", - "block.gtceu.casing_stainless_steel_gearbox": "Stainless Steel Gearbox Casing", - "block.gtceu.casing_stainless_turbine": "Stainless Turbine Casing", - "block.gtceu.casing_steel_gearbox": "Steel Gearbox Casing", - "block.gtceu.casing_steel_pipe": "Steel Pipe Casing", - "block.gtceu.casing_steel_solid": "Solid Steel Machine Casing", - "block.gtceu.casing_steel_turbine": "Steel Turbine Casing", - "block.gtceu.casing_titanium_gearbox": "Titanium Gearbox Casing", - "block.gtceu.casing_titanium_pipe": "Titanium Pipe Casing", - "block.gtceu.casing_titanium_stable": "Stable Titanium Machine Casing", - "block.gtceu.casing_titanium_turbine": "Titanium Turbine Casing", - "block.gtceu.casing_tungstensteel_gearbox": "Tungstensteel Gearbox Casing", - "block.gtceu.casing_tungstensteel_pipe": "Tungstensteel Pipe Casing", - "block.gtceu.casing_tungstensteel_robust": "Robust Tungstensteel Machine Casing", - "block.gtceu.casing_tungstensteel_turbine": "Tungstensteel Turbine Casing", - "block.gtceu.clean_machine_casing": "Clean Machine Casing", + "block.gtceu.clean_machine_casing": "Clean Stainless Steel Casing", "block.gtceu.cleaning_maintenance_hatch": "Cleaning Maintenance Hatch", "block.gtceu.cleanroom": "Cleanroom", "block.gtceu.cleanroom_glass": "Cleanroom Glass", @@ -225,16 +192,16 @@ "block.gtceu.extreme_engine_intake_casing": "Extreme Engine Intake Casing", "block.gtceu.filter_casing": "Filter Casing", "block.gtceu.firebricks": "Firebricks", - "block.gtceu.frostproof_machine_casing": "Frostproof Machine Casing", - "block.gtceu.fusion_casing": "Fusion Casing", - "block.gtceu.fusion_casing_mk2": "Fusion Casing Mk2", - "block.gtceu.fusion_casing_mk3": "Fusion Casing Mk3", - "block.gtceu.fusion_coil": "Fusion Coil", + "block.gtceu.frostproof_machine_casing": "Frost Proof Aluminium Machine Casing", + "block.gtceu.fusion_casing": "Fusion Machine Casing", + "block.gtceu.fusion_casing_mk2": "Fusion Machine Casing MK II", + "block.gtceu.fusion_casing_mk3": "Fusion Machine Casing MK III", + "block.gtceu.fusion_coil": "Fusion Coil Block", "block.gtceu.fusion_glass": "Fusion Glass", - "block.gtceu.gas_large_turbine": "Gas Large Turbine", + "block.gtceu.gas_large_turbine": "Large Gas Turbine", "block.gtceu.gold_drum": "Gold Drum", "block.gtceu.heat_vent": "Heat Vent", - "block.gtceu.heatproof_machine_casing": "Heatproof Machine Casing", + "block.gtceu.heatproof_machine_casing": "Heat Proof Invar Machine Casing", "block.gtceu.high_power_casing": "High Power Casing", "block.gtceu.high_temperature_smelting_casing": "High Temperature Smelting Casing", "block.gtceu.hp_steam_alloy_smelter": "High Pressure Steam Alloy Smelter", @@ -246,7 +213,7 @@ "block.gtceu.hp_steam_macerator": "High Pressure Steam Macerator", "block.gtceu.hp_steam_rock_crusher": "High Pressure Steam Rock Crusher", "block.gtceu.hp_steam_solid_boiler": "High Pressure Steam Solid Boiler", - "block.gtceu.hssg_coil_block": "Hssg Coil Block", + "block.gtceu.hssg_coil_block": "HSS-G Coil Block", "block.gtceu.hv_16a_energy_converter": "HV 16A Energy Converter", "block.gtceu.hv_1a_energy_converter": "HV 1A Energy Converter", "block.gtceu.hv_4a_energy_converter": "HV 4A Energy Converter", @@ -329,7 +296,7 @@ "block.gtceu.hv_wiremill": "§6Advanced Wiremill II§r", "block.gtceu.implosion_compressor": "Implosion Compressor", "block.gtceu.industrial_steam_casing": "Industrial Steam Casing", - "block.gtceu.inert_machine_casing": "Inert Machine Casing", + "block.gtceu.inert_machine_casing": "Chemically Inert PTFE Machine Casing", "block.gtceu.infinite_energy": "Infinite Energy", "block.gtceu.iv_1024a_laser_source_hatch": "Iv 1024a Laser Source Hatch", "block.gtceu.iv_1024a_laser_target_hatch": "Iv 1024a Laser Target Hatch", @@ -715,6 +682,9 @@ "block.gtceu.naquadah_coil_block": "Naquadah Coil Block", "block.gtceu.nichrome_coil_block": "Nichrome Coil Block", "block.gtceu.nonconducting_casing": "Nonconducting Casing", + "block.gtceu.oil_heavy": "Heavy Oil", + "block.gtceu.oil_light": "Light Oil", + "block.gtceu.oil_medium": "Raw Oil", "block.gtceu.opv_1024a_laser_source_hatch": "Opv 1024a Laser Source Hatch", "block.gtceu.opv_1024a_laser_target_hatch": "Opv 1024a Laser Target Hatch", "block.gtceu.opv_16a_energy_converter": "OpV 16A Energy Converter", @@ -782,15 +752,15 @@ "block.gtceu.opv_thermal_centrifuge": "§9Legendary Thermal Centrifuge §r", "block.gtceu.opv_wiremill": "§9Legendary Wiremill §r", "block.gtceu.plascrete": "Plascrete", - "block.gtceu.plasma_large_turbine": "Plasma Large Turbine", + "block.gtceu.plasma_large_turbine": "Large Plasma Turbine", "block.gtceu.primitive_blast_furnace": "Primitive Blast Furnace", "block.gtceu.primitive_pump": "Primitive Pump", - "block.gtceu.ptfe_pipe_casing": "ptfe Pipe Casing", + "block.gtceu.ptfe_pipe_casing": "PTFE Pipe Casing", "block.gtceu.pump_deck": "Pump Deck", "block.gtceu.pump_hatch": "Pump Hatch", "block.gtceu.pyrolyse_oven": "Pyrolyse Oven", "block.gtceu.reaction_safe_mixing_casing": "Reaction-Safe Mixing Casing", - "block.gtceu.robust_machine_casing": "Robust Machine Casing", + "block.gtceu.robust_machine_casing": "Robust Tungstensteel Machine Casing", "block.gtceu.rubber_leaves": "Rubber Leaves", "block.gtceu.rubber_log": "Rubber Log", "block.gtceu.rubber_planks": "Rubber Planks", @@ -799,11 +769,11 @@ "block.gtceu.shock_proof_cutting_casing": "Shock Proof Cutting Casing", "block.gtceu.slicing_blades": "Slicing Blades", "block.gtceu.solid_machine_casing": "Solid Machine Casing", - "block.gtceu.stable_machine_casing": "Stable Machine Casing", + "block.gtceu.stable_machine_casing": "Stable Titanium Machine Casing", "block.gtceu.stainless_steel_crate": "Stainless Steel Crate", "block.gtceu.stainless_steel_drum": "Stainless Steel Drum", - "block.gtceu.stainless_steel_gearbox": "Stainless Steel Gearbox", - "block.gtceu.stainless_steel_turbine_casing": "Stainless Steel Turbine Casing", + "block.gtceu.stainless_steel_gearbox": "Stainless Steel Gearbox Casing", + "block.gtceu.stainless_steel_turbine_casing": "Stainless Turbine Casing", "block.gtceu.steam_casing_bricked_bronze": "Bricked Bronze Hull", "block.gtceu.steam_casing_bricked_bronze.tooltip": "§7For your first Steam Machines", "block.gtceu.steam_casing_bricked_steel": "Bricked Wrought Iron Hull", @@ -815,7 +785,7 @@ "block.gtceu.steam_grinder": "Steam Grinder", "block.gtceu.steam_input_bus": "Input Bus (Steam)", "block.gtceu.steam_input_hatch": "Steam Input Hatch", - "block.gtceu.steam_large_turbine": "Steam Large Turbine", + "block.gtceu.steam_large_turbine": "Large Steam Turbine", "block.gtceu.steam_liquid_boiler.bronze": "Small Steam Liquid Boiler", "block.gtceu.steam_machine_casing": "Steam Machine Casing", "block.gtceu.steam_miner": "Steam Miner", @@ -825,23 +795,21 @@ "block.gtceu.steel_brick_casing": "Steel Brick Casing", "block.gtceu.steel_crate": "Steel Crate", "block.gtceu.steel_drum": "Steel Drum", - "block.gtceu.steel_firebox": "Steel Firebox Casing", "block.gtceu.steel_firebox_casing": "Steel Firebox Casing", - "block.gtceu.steel_gearbox": "Steel Gearbox", + "block.gtceu.steel_gearbox": "Steel Gearbox Casing", "block.gtceu.steel_large_boiler": "Large Steel Boiler", - "block.gtceu.steel_machine_casing": "Steel Machine Casing", + "block.gtceu.steel_machine_casing": "Solid Steel Machine Casing", "block.gtceu.steel_pipe_casing": "Steel Pipe Casing", "block.gtceu.steel_turbine_casing": "Steel Turbine Casing", "block.gtceu.sterilizing_filter_casing": "Sterilizing Filter Casing", "block.gtceu.stress_proof_casing": "Stress Proof Casing", - "block.gtceu.sturdy_machine_casing": "Sturdy Machine Casing", - "block.gtceu.superconducting_coil": "Superconducting Coil", + "block.gtceu.sturdy_machine_casing": "Sturdy HSS-E Machine Casing", + "block.gtceu.superconducting_coil": "Superconducting Coil Block", "block.gtceu.tempered_glass": "Tempered Glass", "block.gtceu.titanium_crate": "Titanium Crate", "block.gtceu.titanium_drum": "Titanium Drum", - "block.gtceu.titanium_firebox": "Titanium Firebox Casing", "block.gtceu.titanium_firebox_casing": "Titanium Firebox Casing", - "block.gtceu.titanium_gearbox": "Titanium Gearbox", + "block.gtceu.titanium_gearbox": "Titanium Gearbox Casing", "block.gtceu.titanium_large_boiler": "Large Titanium Boiler", "block.gtceu.titanium_pipe_casing": "Titanium Pipe Casing", "block.gtceu.titanium_turbine_casing": "Titanium Turbine Casing", @@ -851,9 +819,8 @@ "block.gtceu.tungsten_steel_crate": "Tungstensteel Crate", "block.gtceu.tungsten_steel_drum": "Tungstensteel Drum", "block.gtceu.tungstensteel_coil_block": "Tungstensteel Coil Block", - "block.gtceu.tungstensteel_firebox": "Tungstensteel Firebox Casing", "block.gtceu.tungstensteel_firebox_casing": "Tungstensteel Firebox Casing", - "block.gtceu.tungstensteel_gearbox": "Tungstensteel Gearbox", + "block.gtceu.tungstensteel_gearbox": "Tungstensteel Gearbox Casing", "block.gtceu.tungstensteel_large_boiler": "Large Tungstensteel Boiler", "block.gtceu.tungstensteel_pipe_casing": "Tungstensteel Pipe Casing", "block.gtceu.tungstensteel_turbine_casing": "Tungstensteel Turbine Casing", @@ -1236,14 +1203,6 @@ "block.gtceu.wire_coil.tooltip_pyro": "§8Pyrolyse Oven:", "block.gtceu.wire_coil.tooltip_smelter": "§8Multi Smelter:", "block.gtceu.wire_coil.tooltip_speed_pyro": " §bProcessing Speed: §f%s%%", - "block.gtceu.wire_coil_cupronickel": "Cupronickel Coil Block", - "block.gtceu.wire_coil_hss_g": "HSS-G Coil Block", - "block.gtceu.wire_coil_kanthal": "Kanthal Coil Block", - "block.gtceu.wire_coil_naquadah": "Naquadah Coil Block", - "block.gtceu.wire_coil_nichrome": "Nichrome Coil Block", - "block.gtceu.wire_coil_trinium": "Trinium Coil Block", - "block.gtceu.wire_coil_tritanium": "Tritanium Coil Block", - "block.gtceu.wire_coil_tungstensteel": "Tungstensteel Coil Block", "block.gtceu.wood_crate": "Wooden Crate", "block.gtceu.wood_drum": "Wooden Barrel", "block.gtceu.zpm_1024a_laser_source_hatch": "Zpm 1024a Laser Source Hatch", @@ -1324,7 +1283,6 @@ "block.gtceu.zpm_transformer_2a": "ZPM Voltage Hi-Amp (2x) Transformer", "block.gtceu.zpm_transformer_4a": "ZPM Voltage Hi-Amp (4x) Transformer", "block.gtceu.zpm_wiremill": "§cElite Wiremill III§r", - "block.superconducting_coil": "Superconducting Coil Block", "compass.node.gtceu.batteries/energy_cluster": "Energy Cluster", "compass.node.gtceu.batteries/energy_crystal": "Energy Crystal", "compass.node.gtceu.batteries/energy_module": "Energy Module", @@ -1790,6 +1748,7 @@ "config.gtceu.option.doProcessingArray": "doProcessingArray", "config.gtceu.option.doTerrainExplosion": "doTerrainExplosion", "config.gtceu.option.doesExplosionDamagesTerrain": "doesExplosionDamagesTerrain", + "config.gtceu.option.dumpAssets": "dumpAssets", "config.gtceu.option.dumpRecipes": "dumpRecipes", "config.gtceu.option.enableCleanroom": "enableCleanroom", "config.gtceu.option.enableMaintenance": "enableMaintenance", @@ -1891,15 +1850,14 @@ "cover.conveyor.blocks_input.disabled.1": "§cDisabled", "cover.conveyor.blocks_input.enabled.0": "If enabled, items will not be inserted when cover is set to pull items from the inventory into pipe.", "cover.conveyor.blocks_input.enabled.1": "§aEnabled", - "cover.conveyor.distribution.first_insert.0": "Distribution Mode", - "cover.conveyor.distribution.first_insert.1": "§bFirst Insert§r", - "cover.conveyor.distribution.first_insert.2": "§7Will insert into the first inventory it finds", - "cover.conveyor.distribution.round_robin.0": "Distribution Mode", - "cover.conveyor.distribution.round_robin.1": "§bRound Robin§r with Priority", - "cover.conveyor.distribution.round_robin.2": "§7Tries to split items equally to inventories", - "cover.conveyor.distribution.round_robin_enhanced.0": "Distribution Mode", - "cover.conveyor.distribution.round_robin_enhanced.1": "§bEnhanced Round Robin§r", - "cover.conveyor.distribution.round_robin_enhanced.2": "§7Splits items equally to all inventories", + "cover.conveyor.distribution.insert_first.0": "Distribution Mode: §bPriority", + "cover.conveyor.distribution.insert_first.1": "§7Will insert into the first inventory with the highest priority it can find.", + "cover.conveyor.distribution.insert_first.2": "§7Restrictive item pipes lower the priority of a path.", + "cover.conveyor.distribution.round_robin_global.0": "Distribution Mode: §bRound Robin", + "cover.conveyor.distribution.round_robin_global.1": "§7Splits items equally across connected inventories", + "cover.conveyor.distribution.round_robin_prio.0": "Distribution Mode: §bRound Robin with Priority", + "cover.conveyor.distribution.round_robin_prio.1": "§7Tries to split items across connected inventories and considers higher priorities first.", + "cover.conveyor.distribution.round_robin_prio.2": "§7Restrictive item pipes lower the priority of a path.", "cover.conveyor.item_filter.title": "Item Filter", "cover.conveyor.mode": "Mode: %s", "cover.conveyor.mode.export": "Mode: Export", @@ -1998,9 +1956,9 @@ "cover.universal.manual_import_export.mode.description.0": "§eDisabled§r - Items/fluids will only move as specified by the cover and its filter. ", "cover.universal.manual_import_export.mode.description.1": "§eAllow Filtered§r - Items/fluids can be extracted and inserted independently of the cover mode, as long as its filter matches (if any). ", "cover.universal.manual_import_export.mode.description.2": "§eAllow Unfiltered§r - Items/fluids can be moved independently of the cover mode. Filter applies to the items inserted or extracted by this cover", - "cover.universal.manual_import_export.mode.disabled": "Manual I/O: Disabled", - "cover.universal.manual_import_export.mode.filtered": "Manual I/O: Filtered", - "cover.universal.manual_import_export.mode.unfiltered": "Manual I/O: Unfiltered", + "cover.universal.manual_import_export.mode.disabled": "Manual I/O: §bDisabled\n§7Items / Fluids will only move as specified by the cover and its filter.", + "cover.universal.manual_import_export.mode.filtered": "Manual I/O: §bFiltered\n§7Items / Fluids can be extracted and inserted independently of the cover mode, as long as its filter matches (if any)", + "cover.universal.manual_import_export.mode.unfiltered": "Manual I/O: §bUnfiltered\n§7Items / Fluids can be moved independently of the cover mode. The filter only applies to what is inserted or extracted by this cover itself.", "cover.voiding.label.disabled": "Disabled", "cover.voiding.label.enabled": "Enabled", "cover.voiding.message.disabled": "Voiding Cover Disabled", @@ -3161,8 +3119,8 @@ "item.bone_dust": "Bone Meal", "item.bone_small_dust": "Small Pile of Bone Meal", "item.bone_tiny_dust": "Tiny Pile of Bone Meal", + "item.borosilicate_glass_fine_wire": "Borosilicate Glass Fibers", "item.borosilicate_glass_ingot": "Borosilicate Glass Bar", - "item.borosilicate_glass_wireFine": "Borosilicate Glass Fibers", "item.cassiterite_sand_crushed": "Ground Cassiterite Sand", "item.cassiterite_sand_dust": "Cassiterite Sand", "item.cassiterite_sand_impure_dust": "Impure Pile of Cassiterite Sand", @@ -4046,7 +4004,7 @@ "item.sugar_gem": "Sugar Cube", "item.sugar_small_dust": "Small Pile of Sugar", "item.sugar_tiny_dust": "Tiny Pile of Sugar", - "item.talc_crushed": "Ground Talc", + "item.talc_crushed_ore": "Ground Talc", "item.talc_dust": "Talc", "item.talc_impure_dust": "Impure Pile of Talc", "item.talc_pure_dust": "Purified Pile of Talc", @@ -4056,9 +4014,9 @@ "item.talc_tiny_dust": "Tiny Pile of Talc", "item.treated_wood_bolt": "Short Treated Wood Stick", "item.treated_wood_dust": "Treated Wood Pulp", + "item.treated_wood_long_rod": "Long Treated Wood Stick", "item.treated_wood_plate": "Treated Wood Plank", "item.treated_wood_rod": "Treated Wood Stick", - "item.treated_wood_rodLong": "Long Treated Wood Stick", "item.treated_wood_small_dust": "Small Pile of Treated Wood Pulp", "item.treated_wood_tiny_dust": "Tiny Pile of Treated Wood Pulp", "item.wheat_dust": "Flour", @@ -4066,8 +4024,8 @@ "item.wheat_tiny_dust": "Tiny Pile of Flour", "item.wood_bolt": "Short Wood Stick", "item.wood_dust": "Wood Pulp", + "item.wood_long_rod": "Long Wood Stick", "item.wood_plate": "Wood Plank", - "item.wood_rodLong": "Long Wood Stick", "item.wood_small_dust": "Small Pile of Wood Pulp", "item.wood_tiny_dust": "Tiny Pile of Wood Pulp", "itemGroup.gtceu.decoration": "GregTech Decorations", @@ -4130,6 +4088,7 @@ "material.bio_diesel": "Bio Diesel", "material.biomass": "Biomass", "material.biotite": "Biotite", + "material.biphenyl": "Biphenyl", "material.bismuth": "Bismuth", "material.bismuth_bronze": "Bismuth Bronze", "material.bisphenol_a": "Bisphenol A", @@ -4305,7 +4264,7 @@ "material.gypsum": "Gypsum", "material.hafnium": "Hafnium", "material.hassium": "Hassium", - "material.hastelloy_c_276": "Hastelloy C 276", + "material.hastelloy_c_276": "Hastelloy C-276", "material.hastelloy_x": "Hastelloy X", "material.heavy_fuel": "Heavy Fuel", "material.helium": "Helium", @@ -4313,17 +4272,17 @@ "material.hematite": "Hematite", "material.high_octane_gasoline": "High Octane Gasoline", "material.holmium": "Holmium", - "material.hsla_steel": "HSLA-Steel", + "material.hsla_steel": "Hsla Steel", "material.hsse": "HSS-E", "material.hssg": "HSS-G", "material.hsss": "HSS-S", - "material.hydro_cracked_butadiene": "Hydro Cracked Butadiene", - "material.hydro_cracked_butane": "Hydro Cracked Butane", - "material.hydro_cracked_butene": "Hydro Cracked Butene", - "material.hydro_cracked_ethane": "Hydro Cracked Ethane", - "material.hydro_cracked_ethylene": "Hydro Cracked Ethylene", - "material.hydro_cracked_propane": "Hydro Cracked Propane", - "material.hydro_cracked_propene": "Hydro Cracked Propene", + "material.hydro_cracked_butadiene": "Hydro-Cracked Butadiene", + "material.hydro_cracked_butane": "Hydro-Cracked Butane", + "material.hydro_cracked_butene": "Hydro-Cracked Butene", + "material.hydro_cracked_ethane": "Hydro-Cracked Ethane", + "material.hydro_cracked_ethylene": "Hydro-Cracked Ethylene", + "material.hydro_cracked_propane": "Hydro-Cracked Propane", + "material.hydro_cracked_propene": "Hydro-Cracked Propene", "material.hydrochloric_acid": "Hydrochloric Acid", "material.hydrofluoric_acid": "Hydrofluoric Acid", "material.hydrogen": "Hydrogen", @@ -4333,7 +4292,7 @@ "material.ilmenite": "Ilmenite", "material.impure_enriched_naquadah_solution": "Impure Enriched Naquadah Solution", "material.impure_naquadria_solution": "Impure Naquadria Solution", - "material.incoloy_ma_956": "Incoloy Ma 956", + "material.incoloy_ma_956": "Incoloy MA-956", "material.indium": "Indium", "material.indium_concentrate": "Indium Concentrate", "material.indium_gallium_phosphide": "Indium Gallium Phosphide", @@ -4363,14 +4322,14 @@ "material.light_blue_dye": "Light Blue Dye", "material.light_fuel": "Light Fuel", "material.light_gray_dye": "Light Gray Dye", - "material.lightly_hydro_cracked_gas": "Lightly Hydro Cracked Gas", - "material.lightly_hydro_cracked_heavy_fuel": "Lightly Hydro Cracked Heavy Fuel", - "material.lightly_hydro_cracked_light_fuel": "Lightly Hydro Cracked Light Fuel", - "material.lightly_hydro_cracked_naphtha": "Lightly Hydro Cracked Naphtha", - "material.lightly_steam_cracked_gas": "Lightly Steam Cracked Gas", - "material.lightly_steam_cracked_heavy_fuel": "Lightly Steam Cracked Heavy Fuel", - "material.lightly_steam_cracked_light_fuel": "Lightly Steam Cracked Light Fuel", - "material.lightly_steam_cracked_naphtha": "Lightly Steam Cracked Naphtha", + "material.lightly_hydro_cracked_gas": "Lightly Hydro-Cracked Gas", + "material.lightly_hydro_cracked_heavy_fuel": "Lightly Hydro-Cracked Heavy Fuel", + "material.lightly_hydro_cracked_light_fuel": "Lightly Hydro-Cracked Light Fuel", + "material.lightly_hydro_cracked_naphtha": "Lightly Hydro-Cracked Naphtha", + "material.lightly_steam_cracked_gas": "Lightly Steam-Cracked Gas", + "material.lightly_steam_cracked_heavy_fuel": "Lightly Steam-Cracked Heavy Fuel", + "material.lightly_steam_cracked_light_fuel": "Lightly Steam-Cracked Light Fuel", + "material.lightly_steam_cracked_naphtha": "Lightly Steam-Cracked Naphtha", "material.lime_dye": "Lime Dye", "material.liquid_air": "Liquid Air", "material.liquid_ender_air": "Liquid Ender Air", @@ -4471,6 +4430,7 @@ "material.palladium": "Palladium", "material.palladium_raw": "Palladium Raw", "material.paper": "Paper", + "material.pcb_coolant": "PCB Coolant", "material.pentlandite": "Pentlandite", "material.perlite": "Perlite", "material.phenol": "Phenol", @@ -4491,6 +4451,7 @@ "material.polonium": "Polonium", "material.polybenzimidazole": "Polybenzimidazole", "material.polycaprolactam": "Polycaprolactam", + "material.polychlorinated_biphenyl": "Polychlorinated Biphenyl", "material.polydimethylsiloxane": "Polydimethylsiloxane", "material.polyethylene": "Polyethylene", "material.polyphenylene_sulfide": "Polyphenylene Sulfide", @@ -4564,14 +4525,14 @@ "material.seaborgium": "Seaborgium", "material.seed_oil": "Seed Oil", "material.selenium": "Selenium", - "material.severely_hydro_cracked_gas": "Severely Hydro Cracked Gas", - "material.severely_hydro_cracked_heavy_fuel": "Severely Hydro Cracked Heavy Fuel", - "material.severely_hydro_cracked_light_fuel": "Severely Hydro Cracked Light Fuel", - "material.severely_hydro_cracked_naphtha": "Severely Hydro Cracked Naphtha", - "material.severely_steam_cracked_gas": "Severely Steam Cracked Gas", - "material.severely_steam_cracked_heavy_fuel": "Severely Steam Cracked Heavy Fuel", - "material.severely_steam_cracked_light_fuel": "Severely Steam Cracked Light Fuel", - "material.severely_steam_cracked_naphtha": "Severely Steam Cracked Naphtha", + "material.severely_hydro_cracked_gas": "Severely Hydro-Cracked Gas", + "material.severely_hydro_cracked_heavy_fuel": "Severely Hydro-Cracked Heavy Fuel", + "material.severely_hydro_cracked_light_fuel": "Severely Hydro-Cracked Light Fuel", + "material.severely_hydro_cracked_naphtha": "Severely Hydro-Cracked Naphtha", + "material.severely_steam_cracked_gas": "Severely Steam-Cracked Gas", + "material.severely_steam_cracked_heavy_fuel": "Severely Steam-Cracked Heavy Fuel", + "material.severely_steam_cracked_light_fuel": "Severely Steam-Cracked Light Fuel", + "material.severely_steam_cracked_naphtha": "Severely Steam-Cracked Naphtha", "material.silicon": "Silicon", "material.silicon_dioxide": "Silicon Dioxide", "material.silicone_rubber": "Silicone Rubber", @@ -4592,15 +4553,15 @@ "material.spodumene": "Spodumene", "material.stainless_steel": "Stainless Steel", "material.steam": "Steam", - "material.steam_cracked_butadiene": "Steam Cracked Butadiene", - "material.steam_cracked_butane": "Steam Cracked Butane", - "material.steam_cracked_butene": "Steam Cracked Butene", - "material.steam_cracked_ethane": "Steam Cracked Ethane", - "material.steam_cracked_ethylene": "Steam Cracked Ethylene", - "material.steam_cracked_propane": "Steam Cracked Propane", - "material.steam_cracked_propene": "Steam Cracked Propene", + "material.steam_cracked_butadiene": "Steam-Cracked Butadiene", + "material.steam_cracked_butane": "Steam-Cracked Butane", + "material.steam_cracked_butene": "Steam-Cracked Butene", + "material.steam_cracked_ethane": "Steam-Cracked Ethane", + "material.steam_cracked_ethylene": "Steam-Cracked Ethylene", + "material.steam_cracked_propane": "Steam-Cracked Propane", + "material.steam_cracked_propene": "Steam-Cracked Propene", "material.steel": "Steel", - "material.stellite_100": "Stellite 100", + "material.stellite_100": "Stellite-100", "material.sterilized_growth_medium": "Sterilized Growth Medium", "material.sterling_silver": "Sterling Silver", "material.stibnite": "Stibnite", @@ -4687,7 +4648,7 @@ "material.yttrium": "Yttrium", "material.yttrium_barium_cuprate": "Yttrium Barium Cuprate", "material.zeolite": "Zeolite", - "material.zeron_100": "Zeron 100", + "material.zeron_100": "Zeron-100", "material.zinc": "Zinc", "material.zinc_sulfide": "Zinc Sulfide", "material.zincite": "Zincite", @@ -4911,15 +4872,5 @@ "tile.gtceu.petrified_foam.name": "Petrified Foam", "tile.gtceu.reinforced_foam.name": "Reinforced Foam", "tile.gtceu.reinforced_stone.name": "Reinforced Stone", - "tile.gtceu.seal.name": "Sealed Block", - "tile.stone_bricks_square.concrete_dark.name": "Square Dark Concrete Bricks", - "tile.wire_coil.tooltip_cracking": "§8Cracking Unit:", - "tile.wire_coil.tooltip_energy_cracking": " §aEnergy Usage: §f%s%%", - "tile.wire_coil.tooltip_energy_smelter": " §aEnergy Usage: §f%s EU/t §8per recipe", - "tile.wire_coil.tooltip_extended_info": "Hold SHIFT to show Coil Bonus Info", - "tile.wire_coil.tooltip_heat": "§cBase Heat Capacity: §f%d K", - "tile.wire_coil.tooltip_parallel_smelter": " §5Max Parallel: §f%s", - "tile.wire_coil.tooltip_pyro": "§8Pyrolyse Oven:", - "tile.wire_coil.tooltip_smelter": "§8Multi Smelter:", - "tile.wire_coil.tooltip_speed_pyro": " §bProcessing Speed: §f%s%%" + "tile.gtceu.seal.name": "Sealed Block" } \ No newline at end of file diff --git a/forge/src/main/java/com/gregtechceu/gtceu/api/blockentity/forge/MetaMachineBlockEntityImpl.java b/forge/src/main/java/com/gregtechceu/gtceu/api/blockentity/forge/MetaMachineBlockEntityImpl.java index 60f726b5ed..491048be5f 100644 --- a/forge/src/main/java/com/gregtechceu/gtceu/api/blockentity/forge/MetaMachineBlockEntityImpl.java +++ b/forge/src/main/java/com/gregtechceu/gtceu/api/blockentity/forge/MetaMachineBlockEntityImpl.java @@ -117,7 +117,7 @@ public static LazyOptional getCapability(MetaMachine machine, @NotNull Ca )); } } - var transfer = machine.getItemTransferCap(side); + var transfer = machine.getItemTransferCap(side, true); if (transfer != null) { return ForgeCapabilities.ITEM_HANDLER.orEmpty(cap, LazyOptional.of(() -> ItemTransferHelperImpl.toItemHandler(transfer))); } @@ -134,7 +134,7 @@ public static LazyOptional getCapability(MetaMachine machine, @NotNull Ca )); } } - var transfer = machine.getFluidTransferCap(side); + var transfer = machine.getFluidTransferCap(side, true); if (transfer != null) { return ForgeCapabilities.FLUID_HANDLER.orEmpty(cap, LazyOptional.of(() -> FluidTransferHelperImpl.toFluidHandler(transfer))); } @@ -149,11 +149,11 @@ public static LazyOptional getCapability(MetaMachine machine, @NotNull Ca } } else if (cap == GTCapability.CAPABILITY_LASER) { if (machine instanceof ILaserContainer energyContainer) { - return GTCapability.CAPABILITY_ENERGY_CONTAINER.orEmpty(cap, LazyOptional.of(() -> energyContainer)); + return GTCapability.CAPABILITY_LASER.orEmpty(cap, LazyOptional.of(() -> energyContainer)); } var list = machine.getTraits().stream().filter(ILaserContainer.class::isInstance).filter(t -> t.hasCapability(side)).map(ILaserContainer.class::cast).toList(); if (!list.isEmpty()) { - return GTCapability.CAPABILITY_ENERGY_CONTAINER.orEmpty(cap, LazyOptional.of(() -> list.size() == 1 ? list.get(0) : new LaserContainerList(list))); + return GTCapability.CAPABILITY_LASER.orEmpty(cap, LazyOptional.of(() -> list.size() == 1 ? list.get(0) : new LaserContainerList(list))); } } diff --git a/forge/src/main/java/com/gregtechceu/gtceu/common/blockentity/forge/FluidPipeBlockEntityImpl.java b/forge/src/main/java/com/gregtechceu/gtceu/common/blockentity/forge/FluidPipeBlockEntityImpl.java index 065ef65c76..1bd036733b 100644 --- a/forge/src/main/java/com/gregtechceu/gtceu/common/blockentity/forge/FluidPipeBlockEntityImpl.java +++ b/forge/src/main/java/com/gregtechceu/gtceu/common/blockentity/forge/FluidPipeBlockEntityImpl.java @@ -8,7 +8,9 @@ import com.gregtechceu.gtceu.common.pipelike.fluidpipe.FluidPipeData; import com.gregtechceu.gtceu.common.pipelike.fluidpipe.FluidPipeNet; import com.gregtechceu.gtceu.common.pipelike.fluidpipe.PipeNetRoutePath; +import com.lowdragmc.lowdraglib.side.fluid.IFluidTransfer; import com.lowdragmc.lowdraglib.side.fluid.forge.FluidHelperImpl; +import com.lowdragmc.lowdraglib.side.fluid.forge.FluidTransferHelperImpl; import it.unimi.dsi.fastutil.objects.Object2LongMap; import it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap; import lombok.Setter; @@ -77,6 +79,10 @@ public IFluidHandler getFluidHandler(@Nullable Direction side) { return null; } + public static IFluidTransfer getNetHandler(FluidPipeBlockEntity pipe, @Nullable Direction side) { + return FluidTransferHelperImpl.toFluidTransfer(((FluidPipeBlockEntityImpl) pipe).getFluidHandler(side)); + } + public static void onBlockEntityRegister(BlockEntityType cableBlockEntityBlockEntityType) { } diff --git a/forge/src/main/java/com/gregtechceu/gtceu/common/blockentity/forge/ItemPipeBlockEntityImpl.java b/forge/src/main/java/com/gregtechceu/gtceu/common/blockentity/forge/ItemPipeBlockEntityImpl.java index 97f882feb9..c8eabc20cb 100644 --- a/forge/src/main/java/com/gregtechceu/gtceu/common/blockentity/forge/ItemPipeBlockEntityImpl.java +++ b/forge/src/main/java/com/gregtechceu/gtceu/common/blockentity/forge/ItemPipeBlockEntityImpl.java @@ -36,7 +36,7 @@ public static void onBlockEntityRegister(BlockEntityType ca if (getHandlers().size() == 0) initHandlers(); checkNetwork(); - return ForgeCapabilities.ITEM_HANDLER.orEmpty(cap, LazyOptional.of(() -> ItemTransferHelperImpl.toItemHandler(getHandlers().getOrDefault(side, getDefaultHandler())))); + return ForgeCapabilities.ITEM_HANDLER.orEmpty(cap, LazyOptional.of(() -> ItemTransferHelperImpl.toItemHandler(getHandler(side, true)))); } else if (cap == GTCapability.CAPABILITY_COVERABLE) { return GTCapability.CAPABILITY_COVERABLE.orEmpty(cap, LazyOptional.of(this::getCoverContainer)); } else if (cap == GTCapability.CAPABILITY_TOOLABLE) { diff --git a/settings.gradle b/settings.gradle index 5b27aa6a93..419b184649 100644 --- a/settings.gradle +++ b/settings.gradle @@ -59,6 +59,7 @@ dependencyResolutionManagement { def vineFlowerVersion = "1.+" def macheteVersion = "1.+" def ldLibVersion = "1.0.21.a" + def mixinextrasVersion = "0.2.0" fabric { def parchment = version("parchment", parchmentVersion) @@ -122,6 +123,13 @@ dependencyResolutionManagement { def configuration = version("configuration", configurationFabricFile) library("configuration", "curse.maven", "configuration-444699").versionRef(configuration) + def mixinextras = version("mixinextras", mixinextrasVersion) + library("mixinextras", "io.github.llamalad7", "mixinextras-fabric").versionRef(mixinextras) + library("mixinextras-common", "io.github.llamalad7", "mixinextras-common").versionRef(mixinextras) + + def configuration = version("configuration", configurationVersion) + library("configuration", "dev.toma.configuration", "configuration-fabric-1.20.1").versionRef(configuration) + def worldStripper = version("worldStripper", worldStripperFabricFile) library("worldStripper", "curse.maven", "worldStripper-250603").versionRef(worldStripper) @@ -172,6 +180,9 @@ dependencyResolutionManagement { def kubejs = version("kubejs", kjsVersion) library("kubejs", "dev.latvian.mods", "kubejs-forge").versionRef(kubejs) + def mixinextras = version("mixinextras", mixinextrasVersion) + library("mixinextras-forge", "io.github.llamalad7", "mixinextras-forge").versionRef(mixinextras) + def configuration = version("configuration", configurationForgeFile) library("configuration", "curse.maven", "configuration-444699").versionRef(configuration)