aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhuajijam <strhuaji@gmail.com>2019-01-30 19:01:07 +0800
committerGitHub <noreply@github.com>2019-01-30 19:01:07 +0800
commitd0e3b95db387194a5da4ff71d743a3ede6b42f5e (patch)
treeda5c64c420de4242ab1e23cbb74d8294843228b0
parentf32773a4c5664c48b3ea832e22da9dda68120c38 (diff)
parent241df1134f16c6c9c54b198db97279d697de8c77 (diff)
downloadGT5-Unofficial-d0e3b95db387194a5da4ff71d743a3ede6b42f5e.tar.gz
GT5-Unofficial-d0e3b95db387194a5da4ff71d743a3ede6b42f5e.tar.bz2
GT5-Unofficial-d0e3b95db387194a5da4ff71d743a3ede6b42f5e.zip
update
update
-rw-r--r--.gitignore1
-rw-r--r--build.gradle2
-rw-r--r--src/Java/gregtech/api/util/Recipe_GT.java2
-rw-r--r--src/Java/gtPlusPlus/GTplusplus.java103
-rw-r--r--src/Java/gtPlusPlus/core/block/ModBlocks.java10
-rw-r--r--src/Java/gtPlusPlus/core/block/general/FluidTankInfinite.java110
-rw-r--r--src/Java/gtPlusPlus/core/block/general/LightGlass.java31
-rw-r--r--src/Java/gtPlusPlus/core/block/machine/FishTrap.java1
-rw-r--r--src/Java/gtPlusPlus/core/block/machine/Machine_SuperJukebox.java215
-rw-r--r--src/Java/gtPlusPlus/core/client/renderer/RenderBatKing.java150
-rw-r--r--src/Java/gtPlusPlus/core/common/CommonProxy.java134
-rw-r--r--src/Java/gtPlusPlus/core/container/Container_SuperJukebox.java190
-rw-r--r--src/Java/gtPlusPlus/core/entity/InternalEntityRegistry.java2
-rw-r--r--src/Java/gtPlusPlus/core/entity/monster/EntityBatKing.java228
-rw-r--r--src/Java/gtPlusPlus/core/gui/machine/GUI_SuperJukebox.java44
-rw-r--r--src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java1
-rw-r--r--src/Java/gtPlusPlus/core/item/ModItems.java17
-rw-r--r--src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockDoor.java8
-rw-r--r--src/Java/gtPlusPlus/core/item/base/misc/BaseItemParticle.java5
-rw-r--r--src/Java/gtPlusPlus/core/item/chemistry/IonParticles.java117
-rw-r--r--src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java2
-rw-r--r--src/Java/gtPlusPlus/core/item/chemistry/StandardBaseParticles.java90
-rw-r--r--src/Java/gtPlusPlus/core/item/general/BufferCore.java66
-rw-r--r--src/Java/gtPlusPlus/core/item/general/ItemControlCore.java11
-rw-r--r--src/Java/gtPlusPlus/core/lib/CORE.java1
-rw-r--r--src/Java/gtPlusPlus/core/lib/LoadedMods.java7
-rw-r--r--src/Java/gtPlusPlus/core/material/Material.java2
-rw-r--r--src/Java/gtPlusPlus/core/material/Particle.java47
-rw-r--r--src/Java/gtPlusPlus/core/proxy/ClientProxy.java6
-rw-r--r--src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java292
-rw-r--r--src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java425
-rw-r--r--src/Java/gtPlusPlus/core/recipe/common/CI.java641
-rw-r--r--src/Java/gtPlusPlus/core/tileentities/ModTileEntities.java6
-rw-r--r--src/Java/gtPlusPlus/core/util/Utils.java5
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java95
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/gregtech/PollutionUtils.java152
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/gregtech/recipehandlers/GregtechRecipe.java75
-rw-r--r--src/Java/gtPlusPlus/plugin/waila/Core_WailaPlugin.java49
-rw-r--r--src/Java/gtPlusPlus/preloader/asm/AsmConfig.java6
-rw-r--r--src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BlockMachines_MetaPipeEntity.java266
-rw-r--r--src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_GetHarvestTool.java206
-rw-r--r--src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java66
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java22
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/gui/CONTAINER_Cyclotron.java232
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/gui/basic/CONTAINER_PollutionCleaner.java131
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/gui/basic/GUI_PollutionCleaner.java13
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java4
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/BaseCustomTileEntity.java115
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/BaseCustomPower_MTE.java280
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/GTPP_MTE_BasicMachine.java872
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/GTPP_MTE_BasicTank.java264
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/GTPP_MTE_TieredMachineBlock.java100
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/MetaTileEntityCustomPower.java91
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBreaker.java283
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBattery.java3
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBattery.java3
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Input.java216
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Output.java182
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaPipeEntityFluid.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaPipeEntity_Cable.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaTreeFarmerStructural.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/CustomMetaTileBase.java60
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaTileEntity.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaTransformerHiAmp.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java37
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechDoubleFuelGeneratorBase.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechRocketFuelGeneratorBase.java6
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/Meta_GT_Proxy.java243
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/StaticFields59.java19
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/blocks/GTPP_Block_Machines.java534
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/blocks/GTPP_Item_Machines.java229
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/items/MetaGeneratedGregtechItems.java1
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/render/GTPP_CapeRenderer.java278
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/render/GTPP_Render_MachineBlock.java659
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_TesseractGenerator.java3
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_TesseractTerminal.java3
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_ThreadedSuperBuffer.java3
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_Boiler_Base.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_SemiFluidGenerator.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntityGeothermalGenerator.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntity_RTG.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/creative/GregtechMetaCreativeEnergyBuffer.java8
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_WorldAccelerator.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaAtmosphericReconditioner.java372
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaCondensor.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaPollutionCreator.java26
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaPollutionDetector.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntityThaumcraftResearcher.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_BasicWasher.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_CompactFusionReactor.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_PocketFusion.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaWirelessCharger.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IronBlastFurnace.java4
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_EBF.java40
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_Fusion_MK4.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_AlloyBlastSmelter.java12
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Cyclotron.java209
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/bedrock/GregtechMetaTileEntity_BedrockMiningPlatformBase.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_TieredTank.java4
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GregtechMetaEnergyBuffer.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GregtechMetaSafeBlock.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/shelving/GT4Entity_Shelf.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelter.java12
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java39
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechCustomHatches.java170
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechDehydrator.java12
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechPowerBreakers.java42
-rw-r--r--src/resources/assets/forestry/AlvearyFrame.pngbin933 -> 931 bytes
-rw-r--r--src/resources/assets/forestry/AlvearyMutator.pngbin738 -> 731 bytes
-rw-r--r--src/resources/assets/forestry/textures/blocks/apiculture/alveary.framehousing.off.pngbin3321 -> 670 bytes
-rw-r--r--src/resources/assets/forestry/textures/blocks/apiculture/alveary.framehousing.on.pngbin3321 -> 670 bytes
-rw-r--r--src/resources/assets/forestry/textures/blocks/apiculture/alveary.mutator.off.pngbin3311 -> 558 bytes
-rw-r--r--src/resources/assets/forestry/textures/blocks/apiculture/alveary.mutator.on.pngbin3311 -> 558 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrofuel_old.pngbin13364 -> 5538 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_SIDE_ACTIVE.pngbin1762 -> 1505 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_SIDE_ACTIVE.pngbin1762 -> 1505 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/block1.pngbin504 -> 437 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/block2.pngbin620 -> 459 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/block3.pngbin642 -> 490 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/block4.pngbin655 -> 480 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/block5.pngbin427 -> 414 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/block6.pngbin504 -> 437 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/frameGt.pngbin441 -> 437 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/ore_animated.pngbin646 -> 591 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/pipeLarge.pngbin446 -> 429 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/pipeMedium.pngbin442 -> 429 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/pipeSmall.pngbin429 -> 427 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/block1.pngbin642 -> 490 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/block2.pngbin620 -> 459 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/block3.pngbin642 -> 490 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/block4.pngbin655 -> 480 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/block5.pngbin427 -> 414 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/block6.pngbin504 -> 437 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/frameGt.pngbin441 -> 437 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/pipeLarge.pngbin446 -> 429 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/pipeMedium.pngbin442 -> 429 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/pipeSmall.pngbin429 -> 427 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/block1.pngbin504 -> 437 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/block2.pngbin620 -> 459 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/block3.pngbin642 -> 490 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/block4.pngbin655 -> 480 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/block5.pngbin427 -> 414 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/block6.pngbin504 -> 437 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/frameGt.pngbin441 -> 437 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/ore.pngbin665 -> 589 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/pipeLarge.pngbin446 -> 429 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/pipeMedium.pngbin442 -> 429 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/pipeSmall.pngbin429 -> 427 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/block1.pngbin684 -> 487 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/block2.pngbin620 -> 459 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/block3.pngbin642 -> 490 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/block4.pngbin655 -> 480 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/block5.pngbin427 -> 414 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/block6.pngbin504 -> 437 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/frameGt.pngbin441 -> 437 bytes
-rw-r--r--src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/ore.pngbin647 -> 632 bytes
-rw-r--r--src/resources/assets/gregtech/textures/gui/PowerSubStation.pngbin1924 -> 970 bytes
-rw-r--r--src/resources/assets/gregtech/textures/gui/basicmachines/BlastSmelter.pngbin2361 -> 1358 bytes
-rw-r--r--src/resources/assets/gregtech/textures/gui/basicmachines/Dehydrator.pngbin5106 -> 1401 bytes
-rw-r--r--src/resources/assets/gregtech/textures/gui/basicmachines/FissionFuel.pngbin4450 -> 1149 bytes
-rw-r--r--src/resources/assets/gregtech/textures/gui/basicmachines/LFTR.pngbin2261 -> 1236 bytes
-rw-r--r--src/resources/assets/gregtech/textures/gui/basicmachines/MixerAdvanced.pngbin2944 -> 1871 bytes
-rw-r--r--src/resources/assets/gregtech/textures/gui/multimachines/LFTR.pngbin2261 -> 1236 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/TURBINE_BLADE.pngbin1238 -> 395 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/crushed.pngbin506 -> 441 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/crushedPurified.pngbin603 -> 460 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/gem.pngbin451 -> 419 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/handleMallet.pngbin2909 -> 356 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/rotor.pngbin452 -> 443 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/toolHeadMallet.pngbin2891 -> 340 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/toolHeadSoldering.pngbin1158 -> 314 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/turbineBlade.pngbin1238 -> 395 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/GEM_A/TURBINE_BLADE.pngbin1238 -> 395 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/GEM_A/crushed.pngbin506 -> 441 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/GEM_A/crushedPurified.pngbin603 -> 460 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/GEM_A/crushed_OVERLAY.pngbin480 -> 448 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/GEM_A/handleMallet.pngbin2909 -> 356 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/GEM_A/lens_OVERLAY.pngbin567 -> 556 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/GEM_A/rotor.pngbin452 -> 443 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/GEM_A/toolHeadMallet.pngbin2891 -> 340 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/GEM_A/toolHeadSoldering.pngbin1158 -> 314 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/GEM_A/turbineBlade.pngbin1238 -> 395 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/TURBINE_BLADE.pngbin1238 -> 395 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/crushedPurified.pngbin603 -> 460 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/gem.pngbin451 -> 419 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/handleMallet.pngbin2909 -> 356 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/lens_OVERLAY.pngbin567 -> 556 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/rotor.pngbin452 -> 443 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/toolHeadMallet.pngbin2891 -> 340 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/toolHeadSoldering.pngbin1158 -> 314 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/turbineBlade.pngbin1238 -> 395 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/REFINED/TURBINE_BLADE.pngbin1238 -> 395 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/REFINED/crushed.pngbin506 -> 441 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/REFINED/crushedPurified.pngbin603 -> 460 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/REFINED/crushed_OVERLAY.pngbin480 -> 448 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/REFINED/gem.pngbin451 -> 419 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/REFINED/handleMallet.pngbin2909 -> 356 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/REFINED/lens_OVERLAY.pngbin567 -> 556 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/REFINED/rotor.pngbin452 -> 443 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/REFINED/toolHeadMallet.pngbin2891 -> 340 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/REFINED/toolHeadSoldering.pngbin1158 -> 314 bytes
-rw-r--r--src/resources/assets/gregtech/textures/items/materialicons/REFINED/turbineBlade.pngbin1238 -> 395 bytes
-rw-r--r--src/resources/assets/ic2/textures/items/cell/HydrofluoricAcid.pngbin2930 -> 383 bytes
-rw-r--r--src/resources/assets/ic2/textures/items/cell/HydrogenChloride.pngbin2978 -> 402 bytes
-rw-r--r--src/resources/assets/ic2/textures/items/cell/SulfurDioxide.pngbin2965 -> 402 bytes
-rw-r--r--src/resources/assets/ic2/textures/items/cell/SulfuricApatite.pngbin2991 -> 408 bytes
-rw-r--r--src/resources/assets/ic2/textures/items/cell/SulfuricLithium.pngbin1284 -> 431 bytes
-rw-r--r--src/resources/assets/ic2/textures/items/cell/SulfurousAcid.pngbin2987 -> 409 bytes
-rw-r--r--src/resources/assets/ic2/textures/items/cell/ThoriumTetraFluoride.pngbin3022 -> 460 bytes
-rw-r--r--src/resources/assets/ic2/textures/items/cell/UraniumHexaFluoride.pngbin2958 -> 398 bytes
-rw-r--r--src/resources/assets/ic2/textures/items/cell/UraniumTetraFluoride.pngbin489 -> 445 bytes
-rw-r--r--src/resources/assets/ic2/textures/items/rotors/rotorEnergeticModel.pngbin4192 -> 3650 bytes
-rw-r--r--src/resources/assets/ic2/textures/items/rotors/rotorIridiumModel.pngbin4278 -> 3748 bytes
-rw-r--r--src/resources/assets/ic2/textures/items/rotors/rotorMagnaliumModel.pngbin4278 -> 3748 bytes
-rw-r--r--src/resources/assets/ic2/textures/items/rotors/rotorTungstenSteelModel.pngbin4278 -> 3748 bytes
-rw-r--r--src/resources/assets/ic2/textures/items/rotors/rotorUltimetModel.pngbin4278 -> 3748 bytes
-rw-r--r--src/resources/assets/ic2/textures/items/rotors/rotorVibrantModel.pngbin4067 -> 3502 bytes
-rw-r--r--src/resources/assets/miscutils/lang/en_US.lang23
-rw-r--r--src/resources/assets/miscutils/textures/DevCapeHD.pngbin5078 -> 4788 bytes
-rw-r--r--src/resources/assets/miscutils/textures/Orange.pngbin496 -> 364 bytes
-rw-r--r--src/resources/assets/miscutils/textures/OrangeHD.pngbin7652 -> 5904 bytes
-rw-r--r--src/resources/assets/miscutils/textures/PatreonCapeHD.pngbin10927 -> 10267 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/TileEntities/DecayablesChest_full.pngbin2271 -> 2249 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_FIREBOX_STABALLOY.pngbin3128 -> 825 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_FLUID_INCOLOY_DS.pngbin3225 -> 1232 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_GRISIUM.pngbin3141 -> 662 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_HASTELLOY_N.pngbin3132 -> 642 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_HASTELLOY_X.pngbin3158 -> 649 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_INCOLOY_020.pngbin3127 -> 665 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_INCOLOY_DS.pngbin3133 -> 660 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_INCOLOY_MA956.pngbin3127 -> 654 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_MARAGINGSTEEL.pngbin3005 -> 394 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_POTIN.pngbin3123 -> 635 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_STELLITE.pngbin3131 -> 659 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_TALONITE.pngbin3162 -> 665 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_TANTALLOY61.pngbin3148 -> 654 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_TUMBAGA.pngbin3173 -> 662 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_ZERON100.pngbin3135 -> 649 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_ZIRCONIUM_CARBIDE.pngbin3151 -> 665 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/TileEntities/STEAM_TURBINE_SIDE_ACTIVE.pngbin1762 -> 1505 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/TileEntities/_PlaceHolder.pngbin5752 -> 696 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/TileEntities/adv_machine_dimensional_cover_blue.pngbin2078 -> 1457 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/TileEntities/adv_machine_dimensional_cover_orange.pngbin1548 -> 1383 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/TileEntities/adv_machine_matterfab_active_animated.pngbin1066 -> 694 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/TileEntities/adv_machine_matterfab_animated.pngbin1103 -> 762 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/TileEntities/audio_out_active.pngbin488 -> 433 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/TileEntities/log_acacia_top.pngbin621 -> 603 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/TileEntities/machine_top_dieselmotor_active.pngbin492 -> 427 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/TileEntities/machine_top_vent_rotating.pngbin557 -> 517 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/TileEntities/machine_top_vent_rotating_fast.pngbin557 -> 517 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/blockAntiGrief.pngbin4297 -> 1086 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/blockBlock.pngbin3158 -> 424 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/blockBloodSteel.pngbin3078 -> 529 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/blockDefault.pngbin3328 -> 942 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/blockFrameGt.pngbin441 -> 437 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/blockNuclearFueledHeliumGenerator.pngbin3224 -> 440 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/blockStaballoy.pngbin3328 -> 942 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/clear_flow.pngbin3328 -> 942 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/clear_still.pngbin3328 -> 942 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/compressed/obsidian3.pngbin856 -> 801 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/compressed/obsidian4.pngbin1022 -> 814 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/compressed/obsidian5.pngbin1245 -> 787 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Cryotheum_Flow.pngbin9224 -> 2943 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Cryotheum_Still.pngbin7010 -> 1911 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Ender_Flow.pngbin9694 -> 3595 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Ender_Still.pngbin7679 -> 2001 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Pyrotheum_Flow.pngbin11952 -> 3210 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Pyrotheum_Still.pngbin11735 -> 3691 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Sludge_Flow.pngbin10079 -> 3601 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Sludge_Still.pngbin6960 -> 2038 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluids/fluid.cryotheum.pngbin7010 -> 1911 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluids/fluid.ender.pngbin7679 -> 2001 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluids/fluid.fluid.autogenerated.pngbin11530 -> 7019 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluids/fluid.hydrofluoricacid.pngbin7782 -> 3998 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluids/fluid.hydrogenchloride.pngbin8705 -> 2844 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluids/fluid.jackdaniels.pngbin4563 -> 3454 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluids/fluid.lithiumhydroxide.pngbin25439 -> 22548 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluids/fluid.molten.autogenerated.new.1.pngbin8380 -> 4175 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluids/fluid.molten.autogenerated.old.pngbin11530 -> 7019 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluids/fluid.molten.autogenerated.pngbin6210 -> 2928 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluids/fluid.plasma.autogenerated.pngbin2311 -> 1461 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluids/fluid.pyrotheum.pngbin11735 -> 3691 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluids/fluid.sulfurdioxide.pngbin9160 -> 2844 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluids/fluid.sulfuricapatite.pngbin9095 -> 2844 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluids/fluid.sulfuriclithium.pngbin35346 -> 31006 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluids/fluid.sulfurousacid.pngbin9061 -> 2844 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluids/fluid.thoriumhexafluoride.pngbin9700 -> 3011 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluids/fluid.thoriumtetrafluoride.pngbin10722 -> 3167 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluids/fluid.uraniumhexafluoride.pngbin11561 -> 3196 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/fluids/fluid.uraniumtetrafluoride.pngbin11561 -> 3196 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/hellfire/blockHellFire_layer_0.pngbin17865 -> 13281 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/hellfire/blockHellFire_layer_1.pngbin16406 -> 13886 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_HP_ACTIVE_2.pngbin967 -> 865 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_HP_ACTIVE_4.pngbin1123 -> 909 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_HP_ACTIVE_6.pngbin1242 -> 945 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_HP_ACTIVE_8.pngbin971 -> 875 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_1.pngbin625 -> 604 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_2.pngbin950 -> 851 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_3.pngbin653 -> 646 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_4.pngbin1103 -> 897 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_6.pngbin1172 -> 939 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_7.pngbin681 -> 633 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_8.pngbin992 -> 894 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_9.pngbin750 -> 659 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/iconsets/OVERLAY_FRONT_ADVANCED_MULTIBLOCK_ANIMATED.pngbin1018 -> 724 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/iconsets/OVERLAY_FRONT_ADVANCED_MULTIBLOCK_ANIMATED_ACTIVE.pngbin1074 -> 733 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/iconsets/OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ANIMATED.pngbin883 -> 533 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/iconsets/OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ANIMATED_ACTIVE.pngbin808 -> 557 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/iconsets/OVERLAY_OVERFLOW_VALVE.pngbin928 -> 878 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/mash_flow.pngbin3328 -> 942 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/mash_still.pngbin3328 -> 942 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_MAGIC_A.pngbin1651 -> 1156 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_METAL_PANEL_F.pngbin510 -> 453 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_ORGANIC_PANEL_A.pngbin661 -> 598 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_ORGANIC_PANEL_A_GLOWING.pngbin3025 -> 2503 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_STONE_BIRD_A_LEFT.pngbin632 -> 630 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_STONE_BIRD_A_RIGHT.pngbin630 -> 627 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_STONE_TABLET_A.pngbin573 -> 572 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/rum_mature_flow.pngbin3328 -> 942 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/rum_mature_still.pngbin3328 -> 942 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/rum_semi_mature_flow.pngbin3328 -> 942 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/rum_semi_mature_still.pngbin3328 -> 942 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/trees/leaves/leaves_rainforest.pngbin499 -> 455 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/trees/leaves/leaves_rainforest_opaque.pngbin506 -> 457 bytes
-rw-r--r--src/resources/assets/miscutils/textures/blocks/trees/logs/log_rainforest.pngbin683 -> 579 bytes
-rw-r--r--src/resources/assets/miscutils/textures/entity/australia/boar.pngbin3231 -> 3022 bytes
-rw-r--r--src/resources/assets/miscutils/textures/entity/australia/bush_spider.pngbin1753 -> 1445 bytes
-rw-r--r--src/resources/assets/miscutils/textures/entity/australia/dingo/dingo.pngbin4333 -> 3643 bytes
-rw-r--r--src/resources/assets/miscutils/textures/entity/australia/dingo/dingo_angry.pngbin3191 -> 1712 bytes
-rw-r--r--src/resources/assets/miscutils/textures/entity/australia/dingo/dingo_collar.pngbin4308 -> 3576 bytes
-rw-r--r--src/resources/assets/miscutils/textures/entity/australia/dingo/dingo_tame.pngbin4360 -> 3676 bytes
-rw-r--r--src/resources/assets/miscutils/textures/entity/australia/octopus.pngbin859 -> 720 bytes
-rw-r--r--src/resources/assets/miscutils/textures/entity/sickBlaze.pngbin1743 -> 1221 bytes
-rw-r--r--src/resources/assets/miscutils/textures/entity/villager/aboriginal.pngbin1499 -> 1154 bytes
-rw-r--r--src/resources/assets/miscutils/textures/entity/villager/banker.pngbin1173 -> 937 bytes
-rw-r--r--src/resources/assets/miscutils/textures/entity/villager/technician.pngbin1260 -> 996 bytes
-rw-r--r--src/resources/assets/miscutils/textures/entity/villager/trader.pngbin1188 -> 955 bytes
-rw-r--r--src/resources/assets/miscutils/textures/enviroment/moon_phases.pngbin1736 -> 1029 bytes
-rw-r--r--src/resources/assets/miscutils/textures/enviroment/snow.pngbin1177 -> 849 bytes
-rw-r--r--src/resources/assets/miscutils/textures/enviroment/sun.pngbin804 -> 694 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/AdvancedBoiler.pngbin2244 -> 1457 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/AdvancedCraftingTable.pngbin4330 -> 1212 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/BronzeCraftingTable.pngbin2053 -> 1057 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/CircuitProgrammer.pngbin3900 -> 2857 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/CokeOven.pngbin199683 -> 1025 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/FishTrap.pngbin1803 -> 882 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/Generic3By3.pngbin2116 -> 934 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/IndustrialCentrifuge.pngbin199683 -> 1104 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/IndustrialCuttingMachine.pngbin1847 -> 889 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/IndustrialElectrolyzer.pngbin4647 -> 1136 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/IndustrialExtruder.pngbin1847 -> 889 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/IndustrialMixer.pngbin1860 -> 909 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/IndustrialSifter.pngbin1847 -> 921 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/IndustrialThermalCentrifuge.pngbin1848 -> 912 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/IndustrialWashPlant.pngbin1838 -> 911 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/IndustrialWireFactory.pngbin4243 -> 1030 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/IronBlastFurnace.pngbin4118 -> 954 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/MacerationStack.pngbin1899 -> 1070 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/MaterialPress.pngbin4684 -> 1156 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/MatterFabricator.pngbin4755 -> 1167 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/ModularityTable.pngbin2020 -> 1014 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/MultiblockDisplay.pngbin3644 -> 899 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/PollutionCleaner.pngbin2605 -> 1652 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/PowerSubStation.pngbin1932 -> 1005 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/ProjectTable.pngbin2480 -> 1124 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/SafeBlock.pngbin4575 -> 952 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/SteelBoiler.pngbin5103 -> 1430 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/TreeFarmer.pngbin1982 -> 832 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/Workbench.pngbin4750 -> 1057 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/helium_collector_gui.pngbin265229 -> 2682 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/itemBackpack.pngbin3672 -> 888 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/itemGrindle.pngbin1986 -> 1254 bytes
-rw-r--r--src/resources/assets/miscutils/textures/gui/machine_Charger.pngbin69634 -> 548 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/100.pngbin2243 -> 2112 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/101.pngbin0 -> 309 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/102.pngbin16748 -> 10825 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/103.pngbin20363 -> 13990 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/104.pngbin30723 -> 24047 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/105.pngbin0 -> 30527 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/218.pngbin520 -> 508 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/40.pngbin3103 -> 788 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/44.pngbin869 -> 764 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/50.pngbin3196 -> 499 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/1.pngbin5117 -> 480 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/2.pngbin3163 -> 490 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/3.pngbin3151 -> 485 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/4.pngbin3161 -> 490 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/5.pngbin3156 -> 488 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/6.pngbin3175 -> 498 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/7.pngbin3157 -> 491 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/8.pngbin3155 -> 485 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/52.pngbin3196 -> 499 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/1.pngbin5117 -> 480 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/2.pngbin3163 -> 490 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/3.pngbin3151 -> 485 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/4.pngbin3161 -> 490 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/5.pngbin3156 -> 488 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/6.pngbin3175 -> 498 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/7.pngbin3157 -> 491 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/8.pngbin3155 -> 485 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/54.pngbin3196 -> 499 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/1.pngbin5117 -> 480 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/2.pngbin3163 -> 490 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/3.pngbin3151 -> 485 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/4.pngbin3161 -> 490 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/5.pngbin3156 -> 488 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/6.pngbin3175 -> 498 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/7.pngbin3157 -> 491 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/8.pngbin3155 -> 485 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/55.pngbin35445 -> 24039 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/60.pngbin7666 -> 5146 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/61.pngbin2944 -> 352 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/62.pngbin2944 -> 352 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/63.pngbin2944 -> 352 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/64.pngbin2955 -> 358 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/66.pngbin1319 -> 470 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/68.pngbin1319 -> 470 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/70.pngbin1328 -> 450 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/700.pngbin2893 -> 328 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/701.pngbin2954 -> 361 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/702.pngbin2970 -> 369 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/703.pngbin2972 -> 366 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/704.pngbin2954 -> 368 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/705.pngbin2990 -> 375 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/706.pngbin2994 -> 375 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/707.pngbin3013 -> 386 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/708.pngbin2942 -> 362 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/710.pngbin2883 -> 326 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/711.pngbin2882 -> 326 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/712.pngbin2899 -> 343 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/713.pngbin2923 -> 352 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/714.pngbin2925 -> 363 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/715.pngbin2925 -> 363 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/716.pngbin2924 -> 343 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/717.pngbin2924 -> 343 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/718.pngbin2924 -> 343 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/719.pngbin3075 -> 464 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/720.pngbin3094 -> 455 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/MU-metaitem.01/721.pngbin3137 -> 465 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/StoneStatue.pngbin5065 -> 3703 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/bucket/BucketEnder.pngbin4159 -> 715 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/bucket/BucketPyrotheum.pngbin5895 -> 2141 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/frameAccelerated.pngbin3074 -> 412 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/frameBusy.pngbin3033 -> 412 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/frameDecaying.pngbin2955 -> 449 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/frameMutagenic.pngbin3048 -> 412 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/frameStabilizing.pngbin2970 -> 449 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/frameUseless.pngbin2947 -> 427 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/frameVoid.pngbin3094 -> 663 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/iconsets/SKOOKUMCHOOCHER.pngbin3016 -> 382 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/iconsets/VOID.pngbin2876 -> 357 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/0.pngbin0 -> 112 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/1.pngbin0 -> 146 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/10.pngbin0 -> 161 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/100.pngbin0 -> 161 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/101.pngbin0 -> 153 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/102.pngbin0 -> 124 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/103.pngbin0 -> 148 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/104.pngbin0 -> 156 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/105.pngbin0 -> 175 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/106.pngbin0 -> 148 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/107.pngbin0 -> 143 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/108.pngbin0 -> 152 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/109.pngbin0 -> 154 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/11.pngbin0 -> 178 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/110.pngbin0 -> 163 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/111.pngbin0 -> 146 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/112.pngbin0 -> 148 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/113.pngbin0 -> 113 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/114.pngbin0 -> 160 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/115.pngbin0 -> 138 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/116.pngbin0 -> 140 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/117.pngbin0 -> 166 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/12.pngbin0 -> 147 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/13.pngbin0 -> 151 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/14.pngbin0 -> 125 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/15.pngbin0 -> 136 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/16.pngbin0 -> 136 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/17.pngbin0 -> 148 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/18.pngbin0 -> 143 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/19.pngbin0 -> 161 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/2.pngbin0 -> 115 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/20.pngbin0 -> 155 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/21.pngbin0 -> 115 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/22.pngbin0 -> 132 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/23.pngbin0 -> 144 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/24.pngbin0 -> 150 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/25.pngbin0 -> 141 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/26.pngbin0 -> 148 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/27.pngbin0 -> 141 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/28.pngbin0 -> 142 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/29.pngbin0 -> 145 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/3.pngbin0 -> 150 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/30.pngbin0 -> 159 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/31.pngbin0 -> 157 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/32.pngbin0 -> 158 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/33.pngbin0 -> 158 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/34.pngbin0 -> 144 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/35.pngbin0 -> 159 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/36.pngbin0 -> 155 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/37.pngbin0 -> 149 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/38.pngbin0 -> 135 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/39.pngbin0 -> 141 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/4.pngbin0 -> 125 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/40.pngbin0 -> 157 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/41.pngbin0 -> 162 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/42.pngbin0 -> 133 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/43.pngbin0 -> 147 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/44.pngbin0 -> 155 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/45.pngbin0 -> 152 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/46.pngbin0 -> 173 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/47.pngbin0 -> 154 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/48.pngbin0 -> 129 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/49.pngbin0 -> 152 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/5.pngbin0 -> 127 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/50.pngbin0 -> 163 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/51.pngbin0 -> 142 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/52.pngbin0 -> 110 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/53.pngbin0 -> 167 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/54.pngbin0 -> 155 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/55.pngbin0 -> 152 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/56.pngbin0 -> 142 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/57.pngbin0 -> 154 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/58.pngbin0 -> 136 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/59.pngbin0 -> 156 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/6.pngbin0 -> 131 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/60.pngbin0 -> 142 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/61.pngbin0 -> 157 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/62.pngbin0 -> 129 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/63.pngbin0 -> 165 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/64.pngbin0 -> 134 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/65.pngbin0 -> 157 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/66.pngbin0 -> 139 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/67.pngbin0 -> 129 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/68.pngbin0 -> 126 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/69.pngbin0 -> 157 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/7.pngbin0 -> 128 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/70.pngbin0 -> 121 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/71.pngbin0 -> 127 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/72.pngbin0 -> 137 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/73.pngbin0 -> 150 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/74.pngbin0 -> 153 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/75.pngbin0 -> 154 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/76.pngbin0 -> 126 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/77.pngbin0 -> 138 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/78.pngbin0 -> 152 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/79.pngbin0 -> 157 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/8.pngbin0 -> 107 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/80.pngbin0 -> 112 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/81.pngbin0 -> 151 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/82.pngbin0 -> 139 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/83.pngbin0 -> 149 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/84.pngbin0 -> 153 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/85.pngbin0 -> 152 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/86.pngbin0 -> 125 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/87.pngbin0 -> 153 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/88.pngbin0 -> 157 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/89.pngbin0 -> 125 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/9.pngbin0 -> 161 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/90.pngbin0 -> 146 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/91.pngbin0 -> 119 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/92.pngbin0 -> 163 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/93.pngbin0 -> 138 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/94.pngbin0 -> 153 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/95.pngbin0 -> 150 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/96.pngbin0 -> 157 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/97.pngbin0 -> 146 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/98.pngbin0 -> 143 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/99.pngbin0 -> 128 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/ion/IonBase.pngbin0 -> 1789 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemAirFilter.pngbin1475 -> 1469 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemAlkalusDisk.pngbin1311 -> 424 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemBackpack.pngbin4929 -> 2409 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemBlueprint.pngbin3259 -> 782 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemBoilerChassis.pngbin1822 -> 1821 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemBoots.pngbin2884 -> 358 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemBread.pngbin7666 -> 5146 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemBufferCore.pngbin3115 -> 1329 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemCell.pngbin2955 -> 362 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemCell_Overlay.pngbin2821 -> 297 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemCentidust.pngbin2878 -> 326 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemDebugShapeSpawner.pngbin19237 -> 6534 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemDecidust.pngbin2906 -> 341 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemDefault.pngbin2963 -> 376 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemEnergeticRotorBlade.pngbin1306 -> 541 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemEnergeticShaft.pngbin1297 -> 444 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemFoodCurriedSausages.pngbin4417 -> 1897 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemFoodRaisinToast.pngbin4596 -> 2076 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemGem.pngbin3058 -> 420 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemHeavyPlate.pngbin3271 -> 597 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemHeliumBlob.pngbin3827 -> 350 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemHelmet.pngbin2894 -> 396 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemHotIngotRaisinBread.pngbin7666 -> 5146 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemIngot.pngbin3000 -> 390 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemIngotBatteryAlloy.pngbin3829 -> 420 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemIngotHot.pngbin3002 -> 423 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemIngotRaisinBread.pngbin7666 -> 5146 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemIridiumRotorBlade.pngbin1306 -> 560 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemIridiumShaft.pngbin1297 -> 447 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemMagnaliumRotorBlade.pngbin1306 -> 560 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemMagnaliumShaft.pngbin1297 -> 447 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemNugget.pngbin4585 -> 1986 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemPLACEHOLDER_Circuit.pngbin3008 -> 405 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemPlateBatteryAlloy.pngbin3829 -> 491 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemPlatebody.pngbin2908 -> 378 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemPlatelegs.pngbin2873 -> 342 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemRotor.pngbin452 -> 443 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemSandstoneHammer.pngbin3063 -> 422 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemShard.pngbin3138 -> 620 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemSlowBuildersRing.pngbin1296 -> 427 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemStaballoyAxe.pngbin3201 -> 534 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemStaballoyPickaxe.pngbin3186 -> 525 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemStickyRubber.pngbin3829 -> 397 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemSword.pngbin2898 -> 363 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemTungstenSteelRotorBlade.pngbin1306 -> 544 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemUltimetRotorBlade.pngbin1306 -> 557 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemUltimetShaft.pngbin1297 -> 447 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemVibrantRotorBlade.pngbin1304 -> 530 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/itemVibrantShaft.pngbin1297 -> 447 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/material/DustBlizz.pngbin4412 -> 914 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/material/DustCryotheum.pngbin5005 -> 1303 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/material/DustPyrotheum.pngbin4816 -> 1202 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/material/RodBlizz.pngbin3067 -> 439 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/0.PNGbin0 -> 1672 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/1.pngbin0 -> 1669 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/10.PNGbin0 -> 1644 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/11.PNGbin0 -> 1678 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/12.PNGbin0 -> 1658 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/13.PNGbin0 -> 1668 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/14.PNGbin0 -> 1676 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/15.PNGbin0 -> 1675 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/16.PNGbin0 -> 1679 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/17.PNGbin0 -> 1674 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/18.PNGbin0 -> 1674 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/19.PNGbin0 -> 1685 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/2.pngbin0 -> 1683 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/20.PNGbin0 -> 1663 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/21.PNGbin0 -> 1653 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/22.PNGbin0 -> 1665 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/23.PNGbin0 -> 1680 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/24.PNGbin0 -> 1673 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/3.pngbin0 -> 1681 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/4.pngbin0 -> 1682 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/5.pngbin0 -> 1675 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/6.pngbin0 -> 1674 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/7.PNGbin0 -> 1667 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/8.PNGbin0 -> 1656 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/9.PNGbin0 -> 1663 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/science/Atom.pngbin1360 -> 1175 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/token/0.pngbin3694 -> 3345 bytes
-rw-r--r--src/resources/assets/miscutils/textures/models/TinFoil.pngbin588 -> 536 bytes
-rw-r--r--src/resources/assets/miscutils/textures/space/RocketGui.pngbin3135 -> 490 bytes
653 files changed, 8611 insertions, 1183 deletions
diff --git a/.gitignore b/.gitignore
index 9581eb380c..2144086d21 100644
--- a/.gitignore
+++ b/.gitignore
@@ -130,3 +130,4 @@ scripts
/src/Java/gtPlusPlus/xmod/galacticraft/asm/TileEntityFuelLoader_ASM.java
/src/Java/gtPlusPlus/xmod/ob/TileEntitySprinkler_ASM.java
/src/Java/gtPlusPlus/xmod/thermalfoundation/asm/OreDictionaryArbiter_ASM.java
+/GeneratedIcons
diff --git a/build.gradle b/build.gradle
index d7c9ccf6c4..c0a53d65c1 100644
--- a/build.gradle
+++ b/build.gradle
@@ -52,7 +52,7 @@ targetCompatibility = JavaVersion.VERSION_1_8
//Jar Info
archivesBaseName = "GT-PlusPlus"
-version = "1.7.02.55"
+version = "1.7.02.64-nightly"
minecraft.version = "1.7.10-10.13.4.1614-1.7.10"
minecraft {
diff --git a/src/Java/gregtech/api/util/Recipe_GT.java b/src/Java/gregtech/api/util/Recipe_GT.java
index 8a5abb529d..611f55c8b0 100644
--- a/src/Java/gregtech/api/util/Recipe_GT.java
+++ b/src/Java/gregtech/api/util/Recipe_GT.java
@@ -271,7 +271,7 @@ public class Recipe_GT extends GT_Recipe implements IComparableRecipe{
"Fuel Value: ", 1000, " EU", true, false);
//Cyclotron recipe map
- public static final GT_Recipe_Map sCyclotronRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(200), "gt.recipe.cyclotron", "COMET - Compact Cyclotron", null, RES_PATH_GUI + "basicmachines/BlastSmelter", 1, 1, 1, 0, 1, E, 1, E, true, true);
+ public static final GT_Recipe_Map sCyclotronRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(200), "gt.recipe.cyclotron", "COMET - Compact Cyclotron", null, RES_PATH_GUI + "basicmachines/BlastSmelter", 2, 16, 0, 0, 1, E, 1, E, true, true);
//Advanced Mixer
public static final GT_Recipe_Map sAdvancedMixerRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(1000), "gt.recipe.advanced.mixer",
diff --git a/src/Java/gtPlusPlus/GTplusplus.java b/src/Java/gtPlusPlus/GTplusplus.java
index 8ae48f3b3f..79a3bee7ba 100644
--- a/src/Java/gtPlusPlus/GTplusplus.java
+++ b/src/Java/gtPlusPlus/GTplusplus.java
@@ -1,6 +1,8 @@
package gtPlusPlus;
-import static gtPlusPlus.core.lib.CORE.ConfigSwitches.*;
+import static gtPlusPlus.core.lib.CORE.ConfigSwitches.enableAnimatedTurbines;
+import static gtPlusPlus.core.lib.CORE.ConfigSwitches.enableCustomCapes;
+import static gtPlusPlus.core.lib.CORE.ConfigSwitches.enableUpdateChecker;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
@@ -9,18 +11,24 @@ import java.util.Collection;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.SidedProxy;
-import cpw.mods.fml.common.event.*;
+import cpw.mods.fml.common.event.FMLInitializationEvent;
+import cpw.mods.fml.common.event.FMLLoadCompleteEvent;
+import cpw.mods.fml.common.event.FMLPostInitializationEvent;
+import cpw.mods.fml.common.event.FMLPreInitializationEvent;
+import cpw.mods.fml.common.event.FMLServerStartingEvent;
+import cpw.mods.fml.common.event.FMLServerStoppingEvent;
import cpw.mods.fml.relauncher.IFMLLoadingPlugin.MCVersion;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import gregtech.api.enums.Materials;
import gregtech.api.enums.Textures;
import gregtech.api.enums.Textures.BlockIcons;
-import gregtech.api.util.*;
+import gregtech.api.util.FishPondFakeRecipe;
+import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
+import gregtech.api.util.Recipe_GT;
+import gregtech.api.util.SemiFluidFuelHandler;
import gtPlusPlus.api.objects.Logger;
-import gtPlusPlus.api.objects.data.AutoMap;
-import gtPlusPlus.api.objects.data.Pair;
import gtPlusPlus.core.commands.CommandDebugChunks;
import gtPlusPlus.core.commands.CommandMath;
import gtPlusPlus.core.common.CommonProxy;
@@ -28,16 +36,22 @@ import gtPlusPlus.core.config.ConfigHandler;
import gtPlusPlus.core.handler.BookHandler;
import gtPlusPlus.core.handler.Recipes.RegistrationHandler;
import gtPlusPlus.core.handler.chunkloading.ChunkLoading;
-import gtPlusPlus.core.handler.events.*;
+import gtPlusPlus.core.handler.events.BlockEventHandler;
+import gtPlusPlus.core.handler.events.LoginEventHandler;
+import gtPlusPlus.core.handler.events.MissingMappingsEvent;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.lib.LoadedMods;
import gtPlusPlus.core.material.Material;
import gtPlusPlus.core.material.nuclear.FLUORIDES;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.data.LocaleUtils;
-import gtPlusPlus.core.util.minecraft.*;
+import gtPlusPlus.core.util.minecraft.FluidUtils;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
+import gtPlusPlus.core.util.minecraft.RecipeUtils;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
-import gtPlusPlus.core.util.sys.*;
+import gtPlusPlus.core.util.sys.GeoUtils;
+import gtPlusPlus.core.util.sys.NetworkUtils;
+import gtPlusPlus.core.util.sys.SystemUtils;
import gtPlusPlus.plugin.manager.Core_Manager;
import gtPlusPlus.xmod.gregtech.api.objects.GregtechBufferThread;
import gtPlusPlus.xmod.gregtech.common.Meta_GT_Proxy;
@@ -46,7 +60,6 @@ import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtTools;
import gtPlusPlus.xmod.gregtech.loaders.GT_Material_Loader;
import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_BlastSmelterGT_GTNH;
import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechMiniRaFusion;
-import gtPlusPlus.xmod.ob.SprinklerHandler;
import gtPlusPlus.xmod.thaumcraft.commands.CommandDumpAspects;
import net.minecraft.launchwrapper.Launch;
import net.minecraft.util.IIcon;
@@ -88,6 +101,7 @@ public class GTplusplus implements ActionListener {
//Mod Instance
@Mod.Instance(CORE.MODID)
public static GTplusplus instance;
+ public static Meta_GT_Proxy instanceGtProxy;
//Material Loader
public static GT_Material_Loader mGregMatLoader;
@@ -155,8 +169,12 @@ public class GTplusplus implements ActionListener {
Logger.INFO("Login Handler Initialized");
+
mChunkLoading.preInit(event);
proxy.preInit(event);
+ Logger.INFO("Setting up our own GT_Proxy.");
+ instanceGtProxy = Meta_GT_Proxy.instance;
+ instanceGtProxy.preInit();
Core_Manager.preInit();
}
@@ -167,6 +185,7 @@ public class GTplusplus implements ActionListener {
mChunkLoading.init(event);
proxy.init(event);
proxy.registerNetworkStuff();
+ instanceGtProxy.init();
Core_Manager.init();
//Used by foreign players to generate .lang files for translation.
@@ -183,6 +202,7 @@ public class GTplusplus implements ActionListener {
mChunkLoading.postInit(event);
proxy.postInit(event);
BookHandler.runLater();
+ instanceGtProxy.postInit();
Core_Manager.postInit();
//SprinklerHandler.registerModFerts();
@@ -420,69 +440,4 @@ public class GTplusplus implements ActionListener {
mGregMatLoader.enableMaterial(Materials.Force);
}
- /**
- * Capes
- */
-
- public static final AutoMap<Pair<String, String>> mOrangeCapes = new AutoMap<Pair<String, String>>();
- public static final AutoMap<Pair<String, String>> mMiscCapes = new AutoMap<Pair<String, String>>();
- public static final AutoMap<Pair<String, String>> mBetaTestCapes = new AutoMap<Pair<String, String>>();
- public static final AutoMap<Pair<String, String>> mDevCapes = new AutoMap<Pair<String, String>>();
- public static final AutoMap<Pair<String, String>> mPatreonCapes = new AutoMap<Pair<String, String>>();
-
- public static void BuildCapeList() {
- //Basic Orange Cape (I give these away at times, just because)
- mOrangeCapes.put(new Pair<String, String>("ImmortalPharaoh7", "c8c479b2-7464-4b20-adea-b43ff1c10c53"));
- mOrangeCapes.put(new Pair<String, String>("Walmart_Employee", "7a56602b-9a67-44e3-95a5-270f887712c6"));
- mOrangeCapes.put(new Pair<String, String>("ArchonCerulean", "f773e61f-261f-41e7-a221-5dcace291ced"));
- mOrangeCapes.put(new Pair<String, String>("netmc", "c3ecbcc3-0d83-4da6-bb89-69f3f1a6e38b"));
- mOrangeCapes.put(new Pair<String, String>("twinsrock8", "c1239b45b-b3a3-4282-8143-c73778897dda"));
- mOrangeCapes.put(new Pair<String, String>("Ajes", "b1781fc7-35ca-4255-a21c-cdb1b7ea1853"));
- mOrangeCapes.put(new Pair<String, String>("LAGIdiot", "44f38ff8-aad7-49c3-acb3-d92317af9078"));
- mOrangeCapes.put(new Pair<String, String>("Snaggerr", "7e553c3b-b259-4c16-992a-c8c107401e74"));
- mOrangeCapes.put(new Pair<String, String>("Semmelx4", "651b3963-038f-4769-9f75-0eaca0c4e748"));
- //mOrangeCapes.put(new Pair<String, String>("aaaa", "1234"));
- //mOrangeCapes.put(new Pair<String, String>("aaaa", "1234"));
- //mOrangeCapes.put(new Pair<String, String>("aaaa", "1234"));
-
- //Misc
- mMiscCapes.put(new Pair<String, String>("doomsquirter", "3aee80ab-d982-4e6d-b8d0-7912bbd75f5d"));
- mMiscCapes.put(new Pair<String, String>("ukdunc", "17d57521-3a1e-4eb9-91e6-901a65c15e07"));
- mMiscCapes.put(new Pair<String, String>("q009", "520aebe6-4cd9-46cd-bc7a-d47e5e648e38"));
- mMiscCapes.put(new Pair<String, String>("JaidenC", "00b157e5-cd97-43a2-a080-460f550e93cd"));
- mMiscCapes.put(new Pair<String, String>("TheGiggitygoo", "9f996c78-bddc-4dec-a522-0df7267f11f3"));
-
- //Beta/Dev Tester Capes
- mBetaTestCapes.put(new Pair<String, String>("fobius", "ca399a5b-d1bb-46e3-af5b-5939817b5cf8"));
- mBetaTestCapes.put(new Pair<String, String>("cantankerousrex", ""));
- mBetaTestCapes.put(new Pair<String, String>("stephen_2015", "004ae3d8-ecaf-48eb-9e4e-224d42d31c78"));
- mBetaTestCapes.put(new Pair<String, String>("Dyonovan", "2f3a7dff-b1ec-4c05-8eed-63ad2a3ba73f"));
- mBetaTestCapes.put(new Pair<String, String>("Bear989Sr", "1964e3d1-6500-40e7-9ff2-e6161d41a8c2"));
- mBetaTestCapes.put(new Pair<String, String>("CrazyJ1984", "d84f9654-87ea-46a9-881f-c6aa45dd5af8"));
- mBetaTestCapes.put(new Pair<String, String>("AndreyKV", "9550c173-a8c5-4e7f-bf8d-b5ded56921ef"));
- mBetaTestCapes.put(new Pair<String, String>("Piky", "7822ae35-9d5a-4fe7-bd5f-d03006932a65"));
-
- //GTNH Beta Testers
- mBetaTestCapes.put(new Pair<String, String>("bartimaeusnek", "578c2d13-9358-4ae8-95e7-a30ab9f9f3c7"));
- mBetaTestCapes.put(new Pair<String, String>("Prewf", "634433ec-6256-44aa-97b3-a615be18ce23"));
- mBetaTestCapes.put(new Pair<String, String>("FallDark", "86aa136e-9b5e-45e3-8273-6684fd7c537d"));
- mBetaTestCapes.put(new Pair<String, String>("0lafe", "8b06bcf9-7a94-45f9-a01f-2fff73e7582d"));
- mBetaTestCapes.put(new Pair<String, String>("Dogehog", "499b751e-f106-41ae-8dfe-3b88a73958e0"));
- //mBetaTestCapes.put(new Pair<String, String>("cantankerousrex", ""));
-
- //Dev Capes
- mDevCapes.put(new Pair<String, String>("draknyte1", "5652713c-668e-47f3-853a-3fa959a9dfd3"));
- mDevCapes.put(new Pair<String, String>("crimsonhood17", "c4773470-2585-4bd7-82b3-8764ca6acd08"));
-
-
- /**
- * Patreons
- */
-
- mPatreonCapes.put(new Pair<String, String>("Baxterzz", "e8aa5500-7319-4453-822c-b96b29ab5981"));
- mPatreonCapes.put(new Pair<String, String>("leagris", "09752aa3-8b9c-4f8f-b04f-5421e799547d"));
- mPatreonCapes.put(new Pair<String, String>("Traumeister", "fd3f46ac-801a-4566-90b5-75cb362d261e"));
- mPatreonCapes.put(new Pair<String, String>("asturrial", "26c4881f-c708-4c5d-aa76-4419c3a1265b"));
- }
-
}
diff --git a/src/Java/gtPlusPlus/core/block/ModBlocks.java b/src/Java/gtPlusPlus/core/block/ModBlocks.java
index eb40fd080e..dc1239f4be 100644
--- a/src/Java/gtPlusPlus/core/block/ModBlocks.java
+++ b/src/Java/gtPlusPlus/core/block/ModBlocks.java
@@ -3,6 +3,7 @@ package gtPlusPlus.core.block;
import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.block.Block;
+import net.minecraft.block.BlockJukebox;
import net.minecraft.block.material.Material;
import gtPlusPlus.api.objects.Logger;
@@ -73,8 +74,10 @@ public final class ModBlocks {
public static Block blockPlayerDoorCustom_Glass;
public static Block blockPlayerDoorCustom_Ice;
public static Block blockPlayerDoorCustom_Cactus;
-
+
public static Block blockCustomMobSpawner;
+ public static Block blockCustomSuperLight;
+ public static Block blockCustomJukebox;
public static void init() {
Logger.INFO("Initializing Blocks.");
@@ -86,7 +89,7 @@ public final class ModBlocks {
public static void registerBlocks(){
Logger.INFO("Registering Blocks.");
- GameRegistry.registerBlock(MatterFabricatorEffectBlock = new LightGlass(Material.glass, false).setHardness(0.1F).setBlockTextureName(CORE.MODID + ":" + "blockMFEffect").setStepSound(Block.soundTypeGlass), "blockMFEffect");
+ MatterFabricatorEffectBlock = new LightGlass(false);
//Fluids
FluidRegistryHandler.registerFluids();
@@ -121,6 +124,9 @@ public final class ModBlocks {
blockPlayerDoorCustom_Glass = new PlayerDoors(Material.glass, "door_glass", false);
blockPlayerDoorCustom_Ice = new PlayerDoors(Material.ice, "door_ice", false);
blockPlayerDoorCustom_Cactus = new PlayerDoors(Material.cactus, "door_cactus", false, 0.6f, Block.soundTypeGrass, "Cactus");
+
+ blockCustomSuperLight = new BlockSuperLight();
+ blockCustomJukebox = new Machine_SuperJukebox();
}
diff --git a/src/Java/gtPlusPlus/core/block/general/FluidTankInfinite.java b/src/Java/gtPlusPlus/core/block/general/FluidTankInfinite.java
index bbec95a28e..b979f7864b 100644
--- a/src/Java/gtPlusPlus/core/block/general/FluidTankInfinite.java
+++ b/src/Java/gtPlusPlus/core/block/general/FluidTankInfinite.java
@@ -4,7 +4,10 @@ import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
-
+import gtPlusPlus.core.creative.AddToCreativeTab;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.tileentities.general.TileEntityInfiniteFluid;
+import gtPlusPlus.core.util.minecraft.PlayerUtils;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
@@ -14,12 +17,10 @@ import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
-
-import gtPlusPlus.core.creative.AddToCreativeTab;
-import gtPlusPlus.core.lib.CORE;
-import gtPlusPlus.core.tileentities.general.TileEntityInfiniteFluid;
-import gtPlusPlus.core.util.minecraft.PlayerUtils;
-import net.minecraftforge.fluids.*;
+import net.minecraftforge.fluids.FluidContainerRegistry;
+import net.minecraftforge.fluids.FluidStack;
+import net.minecraftforge.fluids.IFluidContainerItem;
+import net.minecraftforge.fluids.ItemFluidContainer;
public class FluidTankInfinite extends BlockContainer {
@@ -68,69 +69,68 @@ public class FluidTankInfinite extends BlockContainer {
final int side, final float lx, final float ly, final float lz) {
if (world.isRemote) {
return true;
- }
- else {
+ } else {
TileEntityInfiniteFluid tank = (TileEntityInfiniteFluid) world.getTileEntity(x, y, z);
- if (tank != null){
+ if (tank != null) {
Item handItem;
try {
handItem = player.getHeldItem().getItem();
- }
- catch (Throwable t){
+ } catch (Throwable t) {
handItem = null;
}
- if (handItem != null && (handItem instanceof IFluidContainerItem || handItem instanceof ItemFluidContainer || FluidContainerRegistry.isFilledContainer(player.getHeldItem()))){
- if (tank.tank.getFluid() == null){
- try {
- if (!FluidContainerRegistry.isFilledContainer(player.getHeldItem())){
- ItemStack handItemStack = player.getHeldItem();
- IFluidContainerItem container = (IFluidContainerItem) handItem;
- FluidStack containerFluid = container.getFluid(handItemStack);
- container.drain(handItemStack, container.getFluid(handItemStack).amount, true);
- tank.tank.setFluid(containerFluid);
- }
- else {
- ItemStack handItemStack = player.getHeldItem();
- FluidContainerRegistry.drainFluidContainer(handItemStack);
- FluidStack containerFluid = FluidContainerRegistry.getFluidForFilledItem(handItemStack);
- ItemStack emptyContainer = FluidContainerRegistry.drainFluidContainer(handItemStack);
- player.setItemInUse(emptyContainer, 0);
-
- tank.tank.setFluid(containerFluid);
+ if (handItem != null
+ && (handItem instanceof IFluidContainerItem || handItem instanceof ItemFluidContainer
+ || FluidContainerRegistry.isFilledContainer(player.getHeldItem()))) {
+ if (tank.tank.getFluid() == null) {
+ try {
+ if (!FluidContainerRegistry.isFilledContainer(player.getHeldItem())) {
+ ItemStack handItemStack = player.getHeldItem();
+ IFluidContainerItem container = (IFluidContainerItem) handItem;
+ FluidStack containerFluid = container.getFluid(handItemStack);
+ container.drain(handItemStack, container.getFluid(handItemStack).amount, true);
+ tank.tank.setFluid(containerFluid);
+ } else {
+ ItemStack handItemStack = player.getHeldItem();
+ FluidContainerRegistry.drainFluidContainer(handItemStack);
+ FluidStack containerFluid = FluidContainerRegistry.getFluidForFilledItem(handItemStack);
+ ItemStack emptyContainer = FluidContainerRegistry.drainFluidContainer(handItemStack);
+ player.setItemInUse(emptyContainer, 0);
+
+ tank.tank.setFluid(containerFluid);
+ }
+ } catch (Throwable t) {
+ t.printStackTrace();
}
}
- catch (Throwable t){
- t.printStackTrace();
- }
+
+ }
+ if (tank.tank.getFluid() != null) {
+ PlayerUtils.messagePlayer(player, "This tank contains " + tank.tank.getFluidAmount() + "L of "
+ + tank.tank.getFluid().getLocalizedName());
}
-
- }
- if (tank.tank.getFluid() != null){
- PlayerUtils.messagePlayer(player, "This tank contains "+tank.tank.getFluidAmount()+"L of "+tank.tank.getFluid().getLocalizedName());
}
}
+ return true;
}
- return true;
-}
-@Override
-public int getRenderBlockPass() {
- return 1;
-}
+ @Override
+ public int getRenderBlockPass() {
+ return 1;
+ }
-@Override
-public boolean isOpaqueCube() {
- return false;
-}
+ @Override
+ public boolean isOpaqueCube() {
+ return false;
+ }
-@Override
-public TileEntity createNewTileEntity(final World world, final int p_149915_2_) {
- return new TileEntityInfiniteFluid();
-}
+ @Override
+ public TileEntity createNewTileEntity(final World world, final int p_149915_2_) {
+ return new TileEntityInfiniteFluid();
+ }
-@Override
-public void onBlockAdded(World world, int x, int y, int z) {
- super.onBlockAdded(world, x, y, z);
-}
+ @Override
+ public void onBlockAdded(World world, int x, int y, int z) {
+ super.onBlockAdded(world, x, y, z);
+ }
}
diff --git a/src/Java/gtPlusPlus/core/block/general/LightGlass.java b/src/Java/gtPlusPlus/core/block/general/LightGlass.java
index 5a265ed7ef..30da7f1d56 100644
--- a/src/Java/gtPlusPlus/core/block/general/LightGlass.java
+++ b/src/Java/gtPlusPlus/core/block/general/LightGlass.java
@@ -2,37 +2,46 @@ package gtPlusPlus.core.block.general;
import java.util.Random;
+import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
-
-import net.minecraft.block.BlockBreakable;
-import net.minecraft.block.material.Material;
+import net.minecraft.block.Block;
+import net.minecraft.block.BlockAir;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import gtPlusPlus.core.creative.AddToCreativeTab;
import gtPlusPlus.core.lib.CORE;
-import gtPlusPlus.core.util.Utils;
-public class LightGlass extends BlockBreakable
+/*public class LightGlass extends BlockBreakable
+{*/
+public class LightGlass extends BlockAir
{
- private int state = 0;
+
+private int state = 0;
private final int a = 255;
private int r = 255;
private int g = 0;
private int b = 0;
private int hex;
- public LightGlass(final Material mat, final boolean bool)
+ public LightGlass(final boolean bool)
{
- super("blockMFEffect", mat, bool);
+ //super("blockMFEffect", Material.air, bool);
+ super();
this.setCreativeTab(AddToCreativeTab.tabBlock);
this.setBlockName("blockMFEffect");
this.setLightLevel(12F);
+ setHardness(0.1F);
+ setBlockTextureName(CORE.MODID + ":" + "blockMFEffect");
+ setStepSound(Block.soundTypeGlass);
+ GameRegistry.registerBlock(this, "blockMFEffect");
+
+ /*
this.setLightOpacity(0);
this.setTickRandomly(true);
- this.setResistance(1);
+ this.setResistance(1);*/
}
/**
@@ -60,7 +69,7 @@ public class LightGlass extends BlockBreakable
@Override
public boolean renderAsNormalBlock()
{
- return true;
+ return false;
}
/**
@@ -129,7 +138,7 @@ public class LightGlass extends BlockBreakable
@Override
@SideOnly(Side.CLIENT)
public void randomDisplayTick(final World world, final int posX, final int posY, final int posZ, final Random random){
- Utils.spawnFX(world, posX, posY, posZ, "smoke", "cloud");
+ //Utils.spawnFX(world, posX, posY, posZ, "smoke", "cloud");
}
} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/core/block/machine/FishTrap.java b/src/Java/gtPlusPlus/core/block/machine/FishTrap.java
index 8e5f8a33f5..b5e78f23ef 100644
--- a/src/Java/gtPlusPlus/core/block/machine/FishTrap.java
+++ b/src/Java/gtPlusPlus/core/block/machine/FishTrap.java
@@ -50,6 +50,7 @@ public class FishTrap extends BlockContainer implements ITileTooltip
{
super(Material.iron);
this.setBlockName("blockFishTrap");
+ this.setHardness(5f);
this.setCreativeTab(AddToCreativeTab.tabMachines);
GameRegistry.registerBlock(this, ItemBlockBasicTile.class, "blockFishTrap");
LanguageRegistry.addName(this, "Fish Catcher");
diff --git a/src/Java/gtPlusPlus/core/block/machine/Machine_SuperJukebox.java b/src/Java/gtPlusPlus/core/block/machine/Machine_SuperJukebox.java
new file mode 100644
index 0000000000..e3d9d0e646
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/block/machine/Machine_SuperJukebox.java
@@ -0,0 +1,215 @@
+package gtPlusPlus.core.block.machine;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+import cpw.mods.fml.common.registry.LanguageRegistry;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import net.minecraft.block.Block;
+import net.minecraft.block.BlockJukebox;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.item.EntityItem;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.IIcon;
+import net.minecraft.world.World;
+
+public class Machine_SuperJukebox extends BlockJukebox
+{
+ @SideOnly(Side.CLIENT)
+ private IIcon mIcon;
+
+ public Machine_SuperJukebox(){
+ this.setBlockName("blockSuperJukebox");
+ this.setCreativeTab(CreativeTabs.tabRedstone);
+ setHardness(2.0F);
+ setResistance(10.0F);
+ setStepSound(soundTypePiston);
+ setBlockTextureName("jukebox");
+ GameRegistry.registerBlock(this, "blockSuperJukebox");
+ LanguageRegistry.addName(this, "Sir Mixalot [Jukebox]");
+ }
+
+ /**
+ * Gets the block's texture. Args: side, meta
+ */
+ @SideOnly(Side.CLIENT)
+ public IIcon getIcon(int aSide, int aMeta)
+ {
+ return aSide == 1 ? this.mIcon : this.blockIcon;
+ }
+
+ /**
+ * Called upon block activation (right click on the block.)
+ */
+ @Override
+ public boolean onBlockActivated(World aWorld, int aX, int aY, int aZ, EntityPlayer aPlayer, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_)
+ {
+ if (aWorld.getBlockMetadata(aX, aY, aZ) == 0)
+ {
+ return false;
+ }
+ else
+ {
+ this.func_149925_e(aWorld, aX, aY, aZ);
+ return true;
+ }
+ }
+
+ /**
+ * Set the record in the {@link SuperJukebox} {@link TileEntity}.
+ */
+ @Override
+ public final void func_149926_b(World aWorld, int aX, int aY, int aZ, ItemStack aStackToSet) {
+ setRecordInJukeBox(aWorld, aX, aY, aZ, aStackToSet);
+ }
+
+ public void setRecordInJukeBox(World aWorld, int aX, int aY, int aZ, ItemStack aStackToSet) {
+ if (!aWorld.isRemote) {
+ TileEntitySuperJukebox tileentityjukebox = (TileEntitySuperJukebox) aWorld.getTileEntity(aX, aY, aZ);
+ if (tileentityjukebox != null) {
+ tileentityjukebox.func_145857_a(aStackToSet.copy());
+ aWorld.setBlockMetadataWithNotify(aX, aY, aZ, 1, 2);
+ }
+ }
+ }
+
+ /**
+ * Function to handle playing of records.
+ */
+ @Override
+ public final void func_149925_e(World aWorld, int aX, int aY, int aZ) {
+ playerJukeboxRecord(aWorld, aX, aY, aZ);
+ }
+
+ public void playerJukeboxRecord(World aWorld, int aX, int aY, int aZ) {
+ if (!aWorld.isRemote) {
+ TileEntitySuperJukebox tileentityjukebox = (TileEntitySuperJukebox) aWorld.getTileEntity(aX,
+ aY, aZ);
+
+ if (tileentityjukebox != null) {
+ ItemStack itemstack = tileentityjukebox.func_145856_a();
+
+ if (itemstack != null) {
+ aWorld.playAuxSFX(1005, aX, aY, aZ, 0);
+ aWorld.playRecord((String) null, aX, aY, aZ);
+ tileentityjukebox.func_145857_a((ItemStack) null);
+ aWorld.setBlockMetadataWithNotify(aX, aY, aZ, 0, 2);
+ float f = 0.7F;
+ double d0 = (double) (aWorld.rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D;
+ double d1 = (double) (aWorld.rand.nextFloat() * f) + (double) (1.0F - f) * 0.2D + 0.6D;
+ double d2 = (double) (aWorld.rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D;
+ ItemStack itemstack1 = itemstack.copy();
+ EntityItem entityitem = new EntityItem(aWorld, (double) aX + d0,
+ (double) aY + d1, (double) aZ + d2, itemstack1);
+ entityitem.delayBeforeCanPickup = 10;
+ aWorld.spawnEntityInWorld(entityitem);
+ }
+ }
+ }
+ }
+
+ @Override
+ public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_)
+ {
+ this.func_149925_e(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_);
+ super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_);
+ }
+
+ /**
+ * Drops the block items with a specified chance of dropping the specified items
+ */
+ @Override
+ public void dropBlockAsItemWithChance(World p_149690_1_, int p_149690_2_, int p_149690_3_, int p_149690_4_, int p_149690_5_, float p_149690_6_, int p_149690_7_)
+ {
+ if (!p_149690_1_.isRemote)
+ {
+ super.dropBlockAsItemWithChance(p_149690_1_, p_149690_2_, p_149690_3_, p_149690_4_, p_149690_5_, p_149690_6_, 0);
+ }
+ }
+
+ /**
+ * Returns a new instance of a block's tile entity class. Called on placing the block.
+ */
+ @Override
+ public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_)
+ {
+ return new TileEntitySuperJukebox();
+ }
+
+ @SideOnly(Side.CLIENT)
+ @Override
+ public void registerBlockIcons(IIconRegister p_149651_1_)
+ {
+ this.blockIcon = p_149651_1_.registerIcon(this.getTextureName() + "_side");
+ this.mIcon = p_149651_1_.registerIcon(this.getTextureName() + "_top");
+ }
+
+ public static class TileEntitySuperJukebox extends TileEntityJukebox {
+
+ private ItemStack field_145858_a;
+
+ @Override
+ public void readFromNBT(NBTTagCompound aNBT)
+ {
+ super.readFromNBT(aNBT);
+
+ if (aNBT.hasKey("RecordItem", 10))
+ {
+ this.func_145857_a(ItemStack.loadItemStackFromNBT(aNBT.getCompoundTag("RecordItem")));
+ }
+ else if (aNBT.getInteger("Record") > 0)
+ {
+ this.func_145857_a(new ItemStack(Item.getItemById(aNBT.getInteger("Record")), 1, 0));
+ }
+ }
+
+ @Override
+ public void writeToNBT(NBTTagCompound aNBT)
+ {
+ super.writeToNBT(aNBT);
+
+ if (this.func_145856_a() != null)
+ {
+ aNBT.setTag("RecordItem", this.func_145856_a().writeToNBT(new NBTTagCompound()));
+ aNBT.setInteger("Record", Item.getIdFromItem(this.func_145856_a().getItem()));
+ }
+ }
+
+ /**
+ * Called to get the internal stack
+ */
+ @Override
+ public ItemStack func_145856_a()
+ {
+ return this.field_145858_a;
+ }
+
+ /**
+ * Called to get the internal stack, wraps vanilla function {@link func_145856_a}.
+ */
+ public ItemStack getCurrentRecord() {
+ return func_145856_a();
+ }
+
+ /**
+ * Called to set the internal stack
+ */
+ @Override
+ public void func_145857_a(ItemStack p_145857_1_)
+ {
+ this.field_145858_a = p_145857_1_;
+ this.markDirty();
+ }
+
+ /**
+ * Called to set the internal stack, wraps vanilla function {@link func_145857_a}.
+ */
+ public void setCurrentRecord(ItemStack aStack) {
+ func_145857_a(aStack);
+ }
+ }
+} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/core/client/renderer/RenderBatKing.java b/src/Java/gtPlusPlus/core/client/renderer/RenderBatKing.java
new file mode 100644
index 0000000000..fb260eedeb
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/client/renderer/RenderBatKing.java
@@ -0,0 +1,150 @@
+package gtPlusPlus.core.client.renderer;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import net.minecraft.client.model.ModelBat;
+import net.minecraft.client.renderer.entity.RenderLiving;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLiving;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.passive.EntityBat;
+import net.minecraft.util.MathHelper;
+import net.minecraft.util.ResourceLocation;
+import org.lwjgl.opengl.GL11;
+
+@SideOnly(Side.CLIENT)
+public class RenderBatKing extends RenderLiving {
+
+ private static final ResourceLocation batTextures = new ResourceLocation("textures/entity/bat.png");
+
+ /**
+ * not actually sure this is size, is not used as of now, but the model would be
+ * recreated if the value changed and it seems a good match for a bats size
+ */
+ private int renderedBatSize;
+
+ public RenderBatKing() {
+ super(new ModelBat(), 1F);
+ this.renderedBatSize = ((ModelBat) this.mainModel).getBatSize();
+ }
+
+ /**
+ * Actually renders the given argument. This is a synthetic bridge method,
+ * always casting down its argument and then handing it off to a worker function
+ * which does the actual work. In all probabilty, the class Render is generic
+ * (Render<T extends Entity) and this method has signature public void
+ * func_76986_a(T entity, double d, double d1, double d2, float f, float f1).
+ * But JAD is pre 1.5 so doesn't do that.
+ */
+ public void doRender(EntityBat p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_,
+ float p_76986_8_, float p_76986_9_) {
+ int i = ((ModelBat) this.mainModel).getBatSize();
+
+ if (i != this.renderedBatSize) {
+ this.renderedBatSize = i;
+ this.mainModel = new ModelBat();
+ }
+
+ super.doRender((EntityLiving) p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_);
+ }
+
+ /**
+ * Returns the location of an entity's texture. Doesn't seem to be called unless
+ * you call Render.bindEntityTexture.
+ */
+ protected ResourceLocation getEntityTexture(EntityBat p_110775_1_) {
+ return batTextures;
+ }
+
+ /**
+ * Allows the render to do any OpenGL state modifications necessary before the
+ * model is rendered. Args: entityLiving, partialTickTime
+ */
+ protected void preRenderCallback(EntityBat p_77041_1_, float p_77041_2_) {
+ GL11.glScalef(0.35F, 0.35F, 0.35F);
+ }
+
+ /**
+ * Sets a simple glTranslate on a LivingEntity.
+ */
+ protected void renderLivingAt(EntityBat p_77039_1_, double p_77039_2_, double p_77039_4_, double p_77039_6_) {
+ super.renderLivingAt(p_77039_1_, p_77039_2_, p_77039_4_, p_77039_6_);
+ }
+
+ protected void rotateCorpse(EntityBat p_77043_1_, float p_77043_2_, float p_77043_3_, float p_77043_4_) {
+ if (!p_77043_1_.getIsBatHanging()) {
+ GL11.glTranslatef(0.0F, MathHelper.cos(p_77043_2_ * 0.3F) * 0.1F, 0.0F);
+ } else {
+ GL11.glTranslatef(0.0F, -0.1F, 0.0F);
+ }
+
+ super.rotateCorpse(p_77043_1_, p_77043_2_, p_77043_3_, p_77043_4_);
+ }
+
+ /**
+ * Actually renders the given argument. This is a synthetic bridge method,
+ * always casting down its argument and then handing it off to a worker function
+ * which does the actual work. In all probabilty, the class Render is generic
+ * (Render<T extends Entity) and this method has signature public void
+ * func_76986_a(T entity, double d, double d1, double d2, float f, float f1).
+ * But JAD is pre 1.5 so doesn't do that.
+ */
+ public void doRender(EntityLiving p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_,
+ float p_76986_8_, float p_76986_9_) {
+ this.doRender((EntityBat) p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_);
+ }
+
+ /**
+ * Allows the render to do any OpenGL state modifications necessary before the
+ * model is rendered. Args: entityLiving, partialTickTime
+ */
+ protected void preRenderCallback(EntityLivingBase p_77041_1_, float p_77041_2_) {
+ this.preRenderCallback((EntityBat) p_77041_1_, p_77041_2_);
+ }
+
+ protected void rotateCorpse(EntityLivingBase p_77043_1_, float p_77043_2_, float p_77043_3_, float p_77043_4_) {
+ this.rotateCorpse((EntityBat) p_77043_1_, p_77043_2_, p_77043_3_, p_77043_4_);
+ }
+
+ /**
+ * Sets a simple glTranslate on a LivingEntity.
+ */
+ protected void renderLivingAt(EntityLivingBase p_77039_1_, double p_77039_2_, double p_77039_4_,
+ double p_77039_6_) {
+ this.renderLivingAt((EntityBat) p_77039_1_, p_77039_2_, p_77039_4_, p_77039_6_);
+ }
+
+ /**
+ * Actually renders the given argument. This is a synthetic bridge method,
+ * always casting down its argument and then handing it off to a worker function
+ * which does the actual work. In all probabilty, the class Render is generic
+ * (Render<T extends Entity) and this method has signature public void
+ * func_76986_a(T entity, double d, double d1, double d2, float f, float f1).
+ * But JAD is pre 1.5 so doesn't do that.
+ */
+ public void doRender(EntityLivingBase p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_,
+ float p_76986_8_, float p_76986_9_) {
+ this.doRender((EntityBat) p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_);
+ }
+
+ /**
+ * Returns the location of an entity's texture. Doesn't seem to be called unless
+ * you call Render.bindEntityTexture.
+ */
+ protected ResourceLocation getEntityTexture(Entity p_110775_1_) {
+ return this.getEntityTexture((EntityBat) p_110775_1_);
+ }
+
+ /**
+ * Actually renders the given argument. This is a synthetic bridge method,
+ * always casting down its argument and then handing it off to a worker function
+ * which does the actual work. In all probabilty, the class Render is generic
+ * (Render<T extends Entity) and this method has signature public void
+ * func_76986_a(T entity, double d, double d1, double d2, float f, float f1).
+ * But JAD is pre 1.5 so doesn't do that.
+ */
+ public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_,
+ float p_76986_9_) {
+ this.doRender((EntityBat) p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_);
+ }
+} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/core/common/CommonProxy.java b/src/Java/gtPlusPlus/core/common/CommonProxy.java
index 9e75cd4a16..9176dcc720 100644
--- a/src/Java/gtPlusPlus/core/common/CommonProxy.java
+++ b/src/Java/gtPlusPlus/core/common/CommonProxy.java
@@ -2,13 +2,13 @@ package gtPlusPlus.core.common;
import static gtPlusPlus.core.lib.CORE.DEBUG;
-import cpw.mods.fml.common.event.*;
+import cpw.mods.fml.common.event.FMLInitializationEvent;
+import cpw.mods.fml.common.event.FMLLoadCompleteEvent;
+import cpw.mods.fml.common.event.FMLPostInitializationEvent;
+import cpw.mods.fml.common.event.FMLPreInitializationEvent;
+import cpw.mods.fml.common.event.FMLServerStartingEvent;
import cpw.mods.fml.common.registry.GameRegistry;
-
-import net.minecraft.entity.Entity;
-
import gregtech.api.enums.ItemList;
-
import gtPlusPlus.GTplusplus;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.minecraft.ChunkManager;
@@ -18,8 +18,15 @@ import gtPlusPlus.core.entity.InternalEntityRegistry;
import gtPlusPlus.core.entity.monster.EntityGiantChickenBase;
import gtPlusPlus.core.entity.monster.EntitySickBlaze;
import gtPlusPlus.core.entity.monster.EntityStaballoyConstruct;
-import gtPlusPlus.core.handler.*;
-import gtPlusPlus.core.handler.events.*;
+import gtPlusPlus.core.handler.BookHandler;
+import gtPlusPlus.core.handler.BurnableFuelHandler;
+import gtPlusPlus.core.handler.COMPAT_HANDLER;
+import gtPlusPlus.core.handler.COMPAT_IntermodStaging;
+import gtPlusPlus.core.handler.GuiHandler;
+import gtPlusPlus.core.handler.events.BlockEventHandler;
+import gtPlusPlus.core.handler.events.GeneralTooltipEventHandler;
+import gtPlusPlus.core.handler.events.PickaxeBlockBreakEventHandler;
+import gtPlusPlus.core.handler.events.ZombieBackupSpawnEventHandler;
import gtPlusPlus.core.item.ModItems;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.lib.CORE.ConfigSwitches;
@@ -33,30 +40,20 @@ import gtPlusPlus.core.util.player.PlayerCache;
import gtPlusPlus.plugin.villagers.block.BlockGenericSpawner;
import gtPlusPlus.xmod.eio.handler.HandlerTooltip_EIO;
import gtPlusPlus.xmod.galacticraft.handler.HandlerTooltip_GC;
-import gtPlusPlus.xmod.gregtech.common.Meta_GT_Proxy;
+import net.minecraft.entity.Entity;
import net.minecraftforge.common.ForgeChunkManager;
public class CommonProxy {
- public static Meta_GT_Proxy GtProxy;
private boolean mFluidsGenerated = false;
- public CommonProxy(){
- //Should Register Gregtech Materials I've Made
+ public CommonProxy() {
+ // Should Register Gregtech Materials I've Made
Utils.registerEvent(this);
- if (LoadedMods.Gregtech){
- if (!CORE.GTNH) {
- Logger.INFO("We're using Gregtech "+Utils.getGregtechVersionAsString());
- }
- else {
- Logger.INFO("We're using GTNH's Gregtech "+Utils.getGregtechVersionAsString());
- }
-
- Logger.INFO("Setting up our own GT_Proxy.");
- GtProxy = new Meta_GT_Proxy();
- }
- else {
- GtProxy = null;
+ if (!CORE.GTNH) {
+ Logger.INFO("We're using Gregtech " + Utils.getGregtechVersionAsString());
+ } else {
+ Logger.INFO("We're using GTNH's Gregtech " + Utils.getGregtechVersionAsString());
}
}
@@ -65,38 +62,33 @@ public class CommonProxy {
LoadedMods.checkLoaded();
Logger.INFO("Making sure we're ready to party!");
-
- if (!DEBUG){
+ if (!DEBUG) {
Logger.WARNING("Development mode not enabled.");
- }
- else if (DEBUG){
+ } else if (DEBUG) {
Logger.INFO("Development mode enabled.");
- }
- else {
+ } else {
Logger.WARNING("Development mode not set.");
}
AddToCreativeTab.initialiseTabs();
-
- //Moved from Init after Debug Loading.
- //29/01/18 - Alkalus
- //Moved earlier into PreInit, so that Items exist before they're called upon in recipes.
- //20/03/18 - Alkalus
+
+ // Moved from Init after Debug Loading.
+ // 29/01/18 - Alkalus
+ // Moved earlier into PreInit, so that Items exist before they're called upon in
+ // recipes.
+ // 20/03/18 - Alkalus
ModItems.init();
ModBlocks.init();
CI.preInit();
-
-
-
+
COMPAT_IntermodStaging.preInit();
BookHandler.run();
- //Registration of entities and renderers
+ // Registration of entities and renderers
Logger.INFO("[Proxy] Calling Entity registrator.");
registerEntities();
Logger.INFO("[Proxy] Calling Tile Entity registrator.");
registerTileEntities();
-
-
+
Logger.INFO("[Proxy] Calling Render registrator.");
registerRenderThings();
@@ -104,25 +96,21 @@ public class CommonProxy {
Material.generateQueuedFluids();
mFluidsGenerated = true;
}
-
- //Must be done in pre-init.
- generateMobSpawners();
-
+
}
public void init(final FMLInitializationEvent e) {
- //Debug Loading
- if (CORE.DEBUG){
+ // Debug Loading
+ if (CORE.DEBUG) {
DEBUG_INIT.registerHandlers();
- }
+ }
ModBlocks.blockCustomMobSpawner = new BlockGenericSpawner();
-
+
if (!mFluidsGenerated && ItemList.valueOf("Cell_Empty").hasBeenSet()) {
Material.generateQueuedFluids();
mFluidsGenerated = true;
- }
- else {
+ } else {
Logger.INFO("[ERROR] Did not generate fluids at all.");
Logger.WARNING("[ERROR] Did not generate fluids at all.");
Logger.ERROR("[ERROR] Did not generate fluids at all.");
@@ -133,22 +121,22 @@ public class CommonProxy {
* Register the Event Handlers.
*/
- //Prevents my Safes being destroyed.
+ // Prevents my Safes being destroyed.
Utils.registerEvent(new PickaxeBlockBreakEventHandler());
- //Block Handler for all events.
+ // Block Handler for all events.
Utils.registerEvent(new BlockEventHandler());
Utils.registerEvent(new GeneralTooltipEventHandler());
- //Handles Custom tooltips for EIO.
+ // Handles Custom tooltips for EIO.
Utils.registerEvent(new HandlerTooltip_EIO());
- //Handles Custom Tooltips for GC
+ // Handles Custom Tooltips for GC
Utils.registerEvent(new HandlerTooltip_GC());
-
- //Register Chunkloader
+
+ // Register Chunkloader
ForgeChunkManager.setForcedChunkLoadingCallback(GTplusplus.instance, ChunkManager.getInstance());
Utils.registerEvent(ChunkManager.getInstance());
- if (ConfigSwitches.disableZombieReinforcement){
- //Make Zombie reinforcements fuck off.
+ if (ConfigSwitches.disableZombieReinforcement) {
+ // Make Zombie reinforcements fuck off.
Utils.registerEvent(new ZombieBackupSpawnEventHandler());
}
@@ -156,7 +144,7 @@ public class CommonProxy {
* End of Subscribe Event registration.
*/
- //Compat Handling
+ // Compat Handling
COMPAT_HANDLER.registerMyModsOreDictEntries();
COMPAT_HANDLER.intermodOreDictionarySupport();
COMPAT_IntermodStaging.init();
@@ -166,14 +154,14 @@ public class CommonProxy {
Logger.INFO("Cleaning up, doing postInit.");
PlayerCache.initCache();
- //Make Burnables burnable
- if (!CORE.burnables.isEmpty()){
+ // Make Burnables burnable
+ if (!CORE.burnables.isEmpty()) {
BurnableFuelHandler fuelHandler = new BurnableFuelHandler();
GameRegistry.registerFuelHandler(fuelHandler);
- Logger.INFO("[Fuel Handler] Registering "+fuelHandler.getClass().getName());
+ Logger.INFO("[Fuel Handler] Registering " + fuelHandler.getClass().getName());
}
- //Compat Handling
+ // Compat Handling
COMPAT_HANDLER.RemoveRecipesFromOtherMods();
COMPAT_HANDLER.InitialiseHandlerThenAddRecipes();
COMPAT_HANDLER.startLoadingGregAPIBasedRecipes();
@@ -181,25 +169,23 @@ public class CommonProxy {
COMPAT_HANDLER.runQueuedRecipes();
}
-
- public void serverStarting(final FMLServerStartingEvent e)
- {
+ public void serverStarting(final FMLServerStartingEvent e) {
COMPAT_HANDLER.InitialiseLateHandlerThenAddRecipes();
}
-
+
public void onLoadComplete(FMLLoadCompleteEvent event) {
COMPAT_IntermodStaging.onLoadComplete(event);
}
- public void registerNetworkStuff(){
+ public void registerNetworkStuff() {
GuiHandler.init();
}
- public void registerEntities(){
+ public void registerEntities() {
InternalEntityRegistry.registerEntities();
}
- public void registerTileEntities(){
+ public void registerTileEntities() {
ModTileEntities.init();
}
@@ -212,11 +198,11 @@ public class CommonProxy {
}
public void generateMysteriousParticles(final Entity entity) {
-
+
}
-
+
public void generateMobSpawners() {
- //Try register some test spawners
+ // Try register some test spawners
Utils.createNewMobSpawner(0, EntityGiantChickenBase.class);
Utils.createNewMobSpawner(1, EntitySickBlaze.class);
Utils.createNewMobSpawner(2, EntityStaballoyConstruct.class);
diff --git a/src/Java/gtPlusPlus/core/container/Container_SuperJukebox.java b/src/Java/gtPlusPlus/core/container/Container_SuperJukebox.java
new file mode 100644
index 0000000000..cb2f33dd47
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/container/Container_SuperJukebox.java
@@ -0,0 +1,190 @@
+package gtPlusPlus.core.container;
+
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.InventoryPlayer;
+import net.minecraft.inventory.Container;
+import net.minecraft.inventory.Slot;
+import net.minecraft.item.ItemStack;
+import net.minecraft.world.World;
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.core.block.ModBlocks;
+import gtPlusPlus.core.inventories.InventoryCircuitProgrammer;
+import gtPlusPlus.core.slots.SlotIntegratedCircuit;
+import gtPlusPlus.core.slots.SlotNoInput;
+import gtPlusPlus.core.tileentities.general.TileEntityCircuitProgrammer;
+
+public class Container_SuperJukebox extends Container {
+
+ protected TileEntityCircuitProgrammer tile_entity;
+ public final InventoryCircuitProgrammer inventoryChest;
+
+ private final World worldObj;
+ private final int posX;
+ private final int posY;
+ private final int posZ;
+
+ public static final int SLOT_OUTPUT = 25;
+
+ public static int StorageSlotNumber = 26; // Number of slots in storage area
+ public static int InventorySlotNumber = 36; // Inventory Slots (Inventory
+ // and Hotbar)
+ public static int FullSlotNumber = InventorySlotNumber + StorageSlotNumber; // All
+ // slots
+
+ public Container_SuperJukebox(final InventoryPlayer inventory, final TileEntityCircuitProgrammer te) {
+ this.tile_entity = te;
+ this.inventoryChest = te.getInventory();
+
+ int var6;
+ int var7;
+ this.worldObj = te.getWorldObj();
+ this.posX = te.xCoord;
+ this.posY = te.yCoord;
+ this.posZ = te.zCoord;
+ Logger.INFO("1");
+
+ int o = 0;
+
+ // Storage Side
+ /*for (var6 = 0; var6 < 3; var6++) {
+ for (var7 = 0; var7 < 5; var7++) {
+ this.addSlotToContainer(new SlotIntegratedCircuit(o, this.inventoryChest, o, 44 + (var7 * 18), 15 + (var6 * 18)));
+ o++;
+ }
+ }*/
+
+
+ int xStart = 8;
+ int yStart = 5;
+
+ try {
+ //0
+ this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart, yStart));
+ //1-10
+ this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+18, yStart));
+ this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+36, yStart));
+ this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+54, yStart));
+ this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+72, yStart));
+ this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+90, yStart));
+ this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+108, yStart));
+ this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+18, yStart+18));
+ this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+36, yStart+18));
+ this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+54, yStart+18));
+ this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+72, yStart+18));
+ //11-20
+ this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+90, yStart+18));
+ this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+108, yStart+18));
+ this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+18, yStart+36));
+ this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+36, yStart+36));
+ this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+54, yStart+36));
+ this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+72, yStart+36));
+ this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+90, yStart+36));
+ this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+108, yStart+36));
+ this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+18, yStart+54));
+ this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+36, yStart+54));
+ //21-24
+ this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+54, yStart+54));
+ this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+72, yStart+54));
+ this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+90, yStart+54));
+ this.addSlotToContainer(new SlotIntegratedCircuit(this.inventoryChest, o++, xStart+108, yStart+54));
+ Logger.INFO("2");
+
+ //Add Output
+ this.addSlotToContainer(new SlotNoInput(this.inventoryChest, SLOT_OUTPUT, xStart+(8*18), yStart+54));
+ o++;
+ Logger.INFO("3");
+
+
+
+ // Player Inventory
+ for (var6 = 0; var6 < 3; ++var6) {
+ for (var7 = 0; var7 < 9; ++var7) {
+ this.addSlotToContainer(new Slot(inventory, var7 + (var6 * 9) + 9, 8 + (var7 * 18), 84 + (var6 * 18)));
+ }
+ }
+ // Player Hotbar
+ for (var6 = 0; var6 < 9; ++var6) {
+ this.addSlotToContainer(new Slot(inventory, var6, 8 + (var6 * 18), 142));
+ }
+
+
+
+ Logger.INFO("4");
+ }
+ catch (Throwable t) {}
+
+ }
+
+ @Override
+ public ItemStack slotClick(final int aSlotIndex, final int aMouseclick, final int aShifthold,
+ final EntityPlayer aPlayer) {
+
+ if (!aPlayer.worldObj.isRemote) {
+ if ((aSlotIndex == 999) || (aSlotIndex == -999)) {
+ // Utils.LOG_WARNING("??? - "+aSlotIndex);
+ }
+ }
+ return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer);
+ }
+
+ @Override
+ public void onContainerClosed(final EntityPlayer par1EntityPlayer) {
+ super.onContainerClosed(par1EntityPlayer);
+ }
+
+ @Override
+ public boolean canInteractWith(final EntityPlayer par1EntityPlayer) {
+ if (this.worldObj.getBlock(this.posX, this.posY, this.posZ) != ModBlocks.blockCircuitProgrammer) {
+ return false;
+ }
+
+ return par1EntityPlayer.getDistanceSq(this.posX + 0.5D, this.posY + 0.5D, this.posZ + 0.5D) <= 64D;
+ }
+
+ @Override
+ public ItemStack transferStackInSlot(final EntityPlayer par1EntityPlayer, final int par2) {
+ ItemStack var3 = null;
+ final Slot var4 = (Slot) this.inventorySlots.get(par2);
+
+ if ((var4 != null) && var4.getHasStack()) {
+ final ItemStack var5 = var4.getStack();
+ var3 = var5.copy();
+
+ /*
+ * if (par2 == 0) { if (!this.mergeItemStack(var5,
+ * InOutputSlotNumber, FullSlotNumber, true)) { return null; }
+ *
+ * var4.onSlotChange(var5, var3); } else if (par2 >=
+ * InOutputSlotNumber && par2 < InventoryOutSlotNumber) { if
+ * (!this.mergeItemStack(var5, InventoryOutSlotNumber,
+ * FullSlotNumber, false)) { return null; } } else if (par2 >=
+ * InventoryOutSlotNumber && par2 < FullSlotNumber) { if
+ * (!this.mergeItemStack(var5, InOutputSlotNumber,
+ * InventoryOutSlotNumber, false)) { return null; } } else if
+ * (!this.mergeItemStack(var5, InOutputSlotNumber, FullSlotNumber,
+ * false)) { return null; }
+ */
+
+ if (var5.stackSize == 0) {
+ var4.putStack((ItemStack) null);
+ } else {
+ var4.onSlotChanged();
+ }
+
+ if (var5.stackSize == var3.stackSize) {
+ return null;
+ }
+
+ var4.onPickupFromSlot(par1EntityPlayer, var5);
+ }
+
+ return var3;
+ }
+
+ // Can merge Slot
+ @Override
+ public boolean func_94530_a(final ItemStack p_94530_1_, final Slot p_94530_2_) {
+ return super.func_94530_a(p_94530_1_, p_94530_2_);
+ }
+
+} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/core/entity/InternalEntityRegistry.java b/src/Java/gtPlusPlus/core/entity/InternalEntityRegistry.java
index f130a1f936..36f5b86184 100644
--- a/src/Java/gtPlusPlus/core/entity/InternalEntityRegistry.java
+++ b/src/Java/gtPlusPlus/core/entity/InternalEntityRegistry.java
@@ -8,6 +8,7 @@ import gtPlusPlus.australia.entity.type.EntityAustralianSpiderBase;
import gtPlusPlus.australia.entity.type.EntityBoar;
import gtPlusPlus.australia.entity.type.EntityDingo;
import gtPlusPlus.australia.entity.type.EntityOctopus;
+import gtPlusPlus.core.entity.monster.EntityBatKing;
import gtPlusPlus.core.entity.monster.EntityGiantChickenBase;
import gtPlusPlus.core.entity.monster.EntitySickBlaze;
import gtPlusPlus.core.entity.monster.EntityStaballoyConstruct;
@@ -55,6 +56,7 @@ public class InternalEntityRegistry {
*/
EntityRegistry.registerGlobalEntityID(EntityGiantChickenBase.class, "bigChickenFriendly", EntityRegistry.findGlobalUniqueEntityId(), Utils.rgbtoHexValue(255, 0, 0), Utils.rgbtoHexValue(175, 175, 175));
+ EntityRegistry.registerGlobalEntityID(EntityBatKing.class, "batKing", EntityRegistry.findGlobalUniqueEntityId(), Utils.rgbtoHexValue(175, 175, 0), Utils.rgbtoHexValue(0, 175, 175));
//EntityRegistry.registerModEntity(EntityGiantChickenBase.class, "bigChickenFriendly", mEntityID++, GTplusplus.instance, 64, 20, true);
diff --git a/src/Java/gtPlusPlus/core/entity/monster/EntityBatKing.java b/src/Java/gtPlusPlus/core/entity/monster/EntityBatKing.java
new file mode 100644
index 0000000000..114ca50b4b
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/entity/monster/EntityBatKing.java
@@ -0,0 +1,228 @@
+package gtPlusPlus.core.entity.monster;
+
+import java.util.Calendar;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.SharedMonsterAttributes;
+import net.minecraft.entity.passive.EntityBat;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.ChunkCoordinates;
+import net.minecraft.util.DamageSource;
+import net.minecraft.util.MathHelper;
+import net.minecraft.world.World;
+
+public class EntityBatKing extends EntityBat
+{
+ /** Coordinates of where the bat spawned. */
+ private ChunkCoordinates spawnPosition;
+
+ public EntityBatKing(World p_i1680_1_)
+ {
+ super(p_i1680_1_);
+ this.setSize(2F, 3.6F);
+ this.setIsBatHanging(false);
+ }
+
+ protected void entityInit()
+ {
+ super.entityInit();
+ }
+
+ /**
+ * Returns the volume for the sounds this mob makes.
+ */
+ protected float getSoundVolume()
+ {
+ return 0.3F;
+ }
+
+ /**
+ * Gets the pitch of living sounds in living entities.
+ */
+ protected float getSoundPitch()
+ {
+ return super.getSoundPitch() * 0.35F;
+ }
+
+ /**
+ * Returns the sound this mob makes while it's alive.
+ */
+ protected String getLivingSound()
+ {
+ return this.getIsBatHanging() && this.rand.nextInt(4) != 0 ? null : "mob.bat.idle";
+ }
+
+ /**
+ * Returns the sound this mob makes when it is hurt.
+ */
+ protected String getHurtSound()
+ {
+ return "mob.bat.hurt";
+ }
+
+ /**
+ * Returns the sound this mob makes on death.
+ */
+ protected String getDeathSound()
+ {
+ return "mob.bat.death";
+ }
+
+ /**
+ * Returns true if this entity should push and be pushed by other entities when colliding.
+ */
+ public boolean canBePushed()
+ {
+ return false;
+ }
+
+ protected void collideWithEntity(Entity p_82167_1_) {}
+
+ protected void collideWithNearbyEntities() {}
+
+ protected void applyEntityAttributes()
+ {
+ super.applyEntityAttributes();
+ this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(60.0D);
+ }
+
+ public boolean getIsBatHanging()
+ {
+ return (this.dataWatcher.getWatchableObjectByte(16) & 1) != 0;
+ }
+
+ public void setIsBatHanging(boolean p_82236_1_)
+ {
+ byte b0 = this.dataWatcher.getWatchableObjectByte(16);
+
+ if (p_82236_1_)
+ {
+ this.dataWatcher.updateObject(16, Byte.valueOf((byte)(b0 | 1)));
+ }
+ else
+ {
+ this.dataWatcher.updateObject(16, Byte.valueOf((byte)(b0 & -2)));
+ }
+ }
+
+ /**
+ * Returns true if the newer Entity AI code should be run
+ */
+ protected boolean isAIEnabled()
+ {
+ return true;
+ }
+
+ /**
+ * Called to update the entity's position/logic.
+ */
+ public void onUpdate()
+ {
+ super.onUpdate();
+ }
+
+ protected void updateAITasks()
+ {
+ super.updateAITasks();
+
+ }
+
+ /**
+ * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to
+ * prevent them from trampling crops
+ */
+ protected boolean canTriggerWalking()
+ {
+ return false;
+ }
+
+ /**
+ * Called when the mob is falling. Calculates and applies fall damage.
+ */
+ protected void fall(float p_70069_1_) {}
+
+ /**
+ * Takes in the distance the entity has fallen this tick and whether its on the ground to update the fall distance
+ * and deal fall damage if landing on the ground. Args: distanceFallenThisTick, onGround
+ */
+ protected void updateFallState(double p_70064_1_, boolean p_70064_3_) {}
+
+ /**
+ * Return whether this entity should NOT trigger a pressure plate or a tripwire.
+ */
+ public boolean doesEntityNotTriggerPressurePlate()
+ {
+ return true;
+ }
+
+ /**
+ * Called when the entity is attacked.
+ */
+ public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_)
+ {
+ if (this.isEntityInvulnerable())
+ {
+ return false;
+ }
+ else
+ {
+ if (!this.worldObj.isRemote && this.getIsBatHanging())
+ {
+ this.setIsBatHanging(false);
+ }
+
+ return super.attackEntityFrom(p_70097_1_, p_70097_2_);
+ }
+ }
+
+ /**
+ * (abstract) Protected helper method to read subclass entity data from NBT.
+ */
+ public void readEntityFromNBT(NBTTagCompound p_70037_1_)
+ {
+ super.readEntityFromNBT(p_70037_1_);
+ }
+
+ /**
+ * (abstract) Protected helper method to write subclass entity data to NBT.
+ */
+ public void writeEntityToNBT(NBTTagCompound p_70014_1_)
+ {
+ super.writeEntityToNBT(p_70014_1_);
+ }
+
+ /**
+ * Checks if the entity's current position is a valid location to spawn this entity.
+ */
+ public boolean getCanSpawnHere()
+ {
+ int i = MathHelper.floor_double(this.boundingBox.minY);
+
+ if (i >= 63)
+ {
+ return false;
+ }
+ else
+ {
+ int j = MathHelper.floor_double(this.posX);
+ int k = MathHelper.floor_double(this.posZ);
+ int l = this.worldObj.getBlockLightValue(j, i, k);
+ byte b0 = 4;
+ Calendar calendar = this.worldObj.getCurrentDate();
+
+ if ((calendar.get(2) + 1 != 10 || calendar.get(5) < 20) && (calendar.get(2) + 1 != 11 || calendar.get(5) > 3))
+ {
+ if (this.rand.nextBoolean())
+ {
+ return false;
+ }
+ }
+ else
+ {
+ b0 = 7;
+ }
+
+ return l > this.rand.nextInt(b0) ? false : super.getCanSpawnHere();
+ }
+ }
+} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/core/gui/machine/GUI_SuperJukebox.java b/src/Java/gtPlusPlus/core/gui/machine/GUI_SuperJukebox.java
new file mode 100644
index 0000000000..adaf8469ad
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/gui/machine/GUI_SuperJukebox.java
@@ -0,0 +1,44 @@
+package gtPlusPlus.core.gui.machine;
+
+import org.lwjgl.opengl.GL11;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+
+import net.minecraft.client.gui.inventory.GuiContainer;
+import net.minecraft.entity.player.InventoryPlayer;
+import net.minecraft.util.ResourceLocation;
+import gtPlusPlus.core.container.Container_CircuitProgrammer;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.tileentities.general.TileEntityCircuitProgrammer;
+
+@SideOnly(Side.CLIENT)
+public class GUI_SuperJukebox extends GuiContainer {
+
+ private static final ResourceLocation craftingTableGuiTextures = new ResourceLocation(CORE.MODID, "textures/gui/CircuitProgrammer.png");
+
+ public GUI_SuperJukebox(final InventoryPlayer player_inventory, final TileEntityCircuitProgrammer te){
+ super(new Container_CircuitProgrammer(player_inventory, te));
+ }
+
+ @Override
+ protected void drawGuiContainerForegroundLayer(final int i, final int j){
+ super.drawGuiContainerForegroundLayer(i, j);
+ }
+
+ @Override
+ protected void drawGuiContainerBackgroundLayer(final float f, final int i, final int j){
+ GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
+ this.mc.renderEngine.bindTexture(craftingTableGuiTextures);
+ final int x = (this.width - this.xSize) / 2;
+ final int y = (this.height - this.ySize) / 2;
+ this.drawTexturedModalRect(x, y, 0, 0, this.xSize, this.ySize);
+ }
+
+ //This method is called when the Gui is first called!
+ @Override
+ public void initGui(){
+ super.initGui();
+ }
+
+} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java b/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java
index c37369b00f..eaa17f9f87 100644
--- a/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java
+++ b/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java
@@ -120,6 +120,7 @@ public class COMPAT_HANDLER {
GregtechIndustrialArcFurnace.run();
GregtechSolarTower.run();
GregtechLargeTurbinesAndHeatExchanger.run();
+ GregtechPowerBreakers.run();
//New Horizons Content
NewHorizonsAccelerator.run();
diff --git a/src/Java/gtPlusPlus/core/item/ModItems.java b/src/Java/gtPlusPlus/core/item/ModItems.java
index 2fd23ec88d..a14073e569 100644
--- a/src/Java/gtPlusPlus/core/item/ModItems.java
+++ b/src/Java/gtPlusPlus/core/item/ModItems.java
@@ -292,11 +292,12 @@ public final class ModItems {
public static Item boxFood;
public static Item boxMagic;
- private static DustDecayable dustMolybdenum99;
+ public static DustDecayable dustMolybdenum99;
+ public static DustDecayable dustTechnetium99;
+ public static DustDecayable dustTechnetium99M;
- private static DustDecayable dustTechnetium99;
-
- private static DustDecayable dustTechnetium99M;
+ public static IonParticles itemIonParticleBase;
+ public static StandardBaseParticles itemStandarParticleBase;
static {
Logger.INFO("Items!");
@@ -580,7 +581,7 @@ public final class ModItems {
MaterialGenerator.generate(ALLOY.ABYSSAL);
- MaterialGenerator.generate(ALLOY.TITANSTEEL, false);
+ MaterialGenerator.generate(ALLOY.TITANSTEEL);
MaterialGenerator.generate(ALLOY.ARCANITE);
MaterialGenerator.generate(ALLOY.OCTIRON);
@@ -630,7 +631,7 @@ public final class ModItems {
dustLithiumPeroxide = ItemUtils.generateSpecialUseDusts("LithiumPeroxide", "Lithium Peroxide", "Li2O2", Utils.rgbtoHexValue(250, 250, 250))[0]; //https://en.wikipedia.org/wiki/Lithium_peroxide
dustLithiumHydroxide = ItemUtils.generateSpecialUseDusts("LithiumHydroxide", "Lithium Hydroxide", "LiOH", Utils.rgbtoHexValue(250, 250, 250))[0]; //https://en.wikipedia.org/wiki/Lithium_hydroxide
- if ((ItemUtils.getItemStackOfAmountFromOreDict("dustQuicklime", 1).getItem() == ModItems.AAA_Broken) || !LoadedMods.IHL){
+ if (!ItemUtils.checkForInvalidItems(ItemUtils.getItemStackOfAmountFromOreDict("dustQuicklime", 1)) && !LoadedMods.IHL){
dustQuicklime = ItemUtils.generateSpecialUseDusts("Quicklime", "Quicklime", "CaO", Utils.rgbtoHexValue(255, 255, 175))[0]; //https://en.wikipedia.org/wiki/Calcium_oxide
}
dustCalciumHydroxide = ItemUtils.generateSpecialUseDusts("CalciumHydroxide", "Hydrated Lime", "Ca(OH)2", Utils.rgbtoHexValue(255, 255, 255))[0]; //https://en.wikipedia.org/wiki/Calcium_hydroxide
@@ -814,8 +815,8 @@ public final class ModItems {
dustTechnetium99M = new DustDecayable("dustTechnetium99M", ELEMENT.getInstance().TECHNETIUM.getRgbAsHex(), 8570, new String[] {""+StringUtils.superscript("99ᵐTc"), "Result: Technicium 99 ("+StringUtils.superscript("99Tc")+")"}, dustTechnetium99, 4);
dustMolybdenum99 = new DustDecayable("dustMolybdenum99", ELEMENT.getInstance().MOLYBDENUM.getRgbAsHex(), 16450, new String[] {""+StringUtils.superscript("99Mo"), "Result: Technicium 99ᵐ ("+StringUtils.superscript("99ᵐTc")+")"}, dustTechnetium99M, 4);
- new IonParticles();
- new StandardBaseParticles();
+ itemIonParticleBase = new IonParticles();
+ itemStandarParticleBase = new StandardBaseParticles();
diff --git a/src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockDoor.java b/src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockDoor.java
index a41a44c113..2aba494d6e 100644
--- a/src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockDoor.java
+++ b/src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockDoor.java
@@ -1,5 +1,7 @@
package gtPlusPlus.core.item.base.itemblock;
+import java.util.List;
+
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
@@ -89,4 +91,10 @@ public class ItemBlockDoor extends ItemBlock {
}
}
}
+
+ @Override
+ public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List p_77624_3_, boolean p_77624_4_) {
+ p_77624_3_.add("This is a block, you can place it by right clicking");
+ super.addInformation(p_77624_1_, p_77624_2_, p_77624_3_, p_77624_4_);
+ }
} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/core/item/base/misc/BaseItemParticle.java b/src/Java/gtPlusPlus/core/item/base/misc/BaseItemParticle.java
index 89cd1e55ae..b7bbc84757 100644
--- a/src/Java/gtPlusPlus/core/item/base/misc/BaseItemParticle.java
+++ b/src/Java/gtPlusPlus/core/item/base/misc/BaseItemParticle.java
@@ -30,7 +30,10 @@ public abstract class BaseItemParticle extends CoreItem {
public int getColorFromItemStack(final ItemStack stack, final int HEX_OxFFFFFF) {
return aColourMap.get(stack.getItemDamage());
}
-
+
+ public int getColorFromParentClass(ItemStack stack, int aaa) {
+ return super.getColorFromItemStack(stack, aaa);
+ }
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
diff --git a/src/Java/gtPlusPlus/core/item/chemistry/IonParticles.java b/src/Java/gtPlusPlus/core/item/chemistry/IonParticles.java
index ff5f67d2da..517a698e80 100644
--- a/src/Java/gtPlusPlus/core/item/chemistry/IonParticles.java
+++ b/src/Java/gtPlusPlus/core/item/chemistry/IonParticles.java
@@ -1,23 +1,42 @@
package gtPlusPlus.core.item.chemistry;
+import java.util.HashMap;
+import java.util.List;
+
import gregtech.api.enums.Materials;
import gtPlusPlus.core.item.base.misc.BaseItemParticle;
+import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.Utils;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumRarity;
import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.IIcon;
public class IonParticles extends BaseItemParticle {
+ public static HashMap<String, Integer> NameToMetaMap = new HashMap<String, Integer>();
+ public static HashMap<Integer, String> MetaToNameMap = new HashMap<Integer, String>();
+
+
public IonParticles() {
super("Ion", aElements.length, EnumRarity.rare);
}
private static final String[] aElements = new String[]{"Hydrogen", "Helium", "Lithium", "Beryllium", "Boron", "Carbon", "Nitrogen", "Oxygen", "Fluorine", "Neon", "Sodium", "Magnesium", "Aluminum", "Silicon", "Phosphorus", "Sulfur", "Chlorine", "Argon", "Potassium", "Calcium", "Scandium", "Titanium", "Vanadium", "Chromium", "Manganese", "Iron", "Cobalt", "Nickel", "Copper", "Zinc", "Gallium", "Germanium", "Arsenic", "Selenium", "Bromine", "Krypton", "Rubidium", "Strontium", "Yttrium", "Zirconium", "Niobium", "Molybdenum", "Technetium", "Ruthenium", "Rhodium", "Palladium", "Silver", "Cadmium", "Indium", "Tin", "Antimony", "Tellurium", "Iodine", "Xenon", "Cesium", "Barium", "Lanthanum", "Cerium", "Praseodymium", "Neodymium", "Promethium", "Samarium", "Europium", "Gadolinium", "Terbium", "Dysprosium", "Holmium", "Erbium", "Thulium", "Ytterbium", "Lutetium", "Hafnium", "Tantalum", "Tungsten", "Rhenium", "Osmium", "Iridium", "Platinum", "Gold", "Mercury", "Thallium", "Lead", "Bismuth", "Polonium", "Astatine", "Radon", "Francium", "Radium", "Actinium", "Thorium", "Protactinium", "Uranium", "Neptunium", "Plutonium", "Americium", "Curium", "Berkelium", "Californium", "Einsteinium", "Fermium", "Mendelevium", "Nobelium", "Lawrencium", "Rutherfordium", "Dubnium", "Seaborgium", "Bohrium", "Hassium", "Meitnerium", "Darmstadtium", "Roentgenium", "Copernicium", "Nihonium", "Flerovium", "Moscovium", "Livermorium", "Tennessine", "Oganesson"};
+
+ public static IIcon[] overlays = new IIcon[aElements.length];
+ public static IIcon baseTexture;
static {
//Generate Ions
int key = 0;
for (String s : aElements) {
+ //Map names to Meta
+ NameToMetaMap.put(Utils.sanitizeString(s.toLowerCase()), key);
+ MetaToNameMap.put(key, Utils.sanitizeString(s.toLowerCase()));
Materials m = Materials.get(s);
int aColour = 0;
if (m == null) {
@@ -45,5 +64,103 @@ public class IonParticles extends BaseItemParticle {
public String getUnlocalizedName(final ItemStack itemStack) {
return "item.particle.ion" + "." + aElements[itemStack.getItemDamage()];
}
+
+ private static boolean createNBT(ItemStack rStack){
+ final NBTTagCompound tagMain = new NBTTagCompound();
+ final NBTTagCompound tagNBT = new NBTTagCompound();
+ tagNBT.setLong("Charge", 0);
+ tagMain.setTag("Ion", tagNBT);
+ rStack.setTagCompound(tagMain);
+ return true;
+ }
+
+ public static final long getChargeState(final ItemStack aStack) {
+ NBTTagCompound aNBT = aStack.getTagCompound();
+ if (aNBT != null) {
+ aNBT = aNBT.getCompoundTag("Ion");
+ if (aNBT != null) {
+ return aNBT.getLong("Charge");
+ }
+ }
+ else {
+ createNBT(aStack);
+ }
+ return 0L;
+ }
+
+ public static final boolean setChargeState(final ItemStack aStack, final long aCharge) {
+ NBTTagCompound aNBT = aStack.getTagCompound();
+ if (aNBT != null) {
+ aNBT = aNBT.getCompoundTag("Ion");
+ if (aNBT != null) {
+ aNBT.setLong("Charge", aCharge);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public double getDurabilityForDisplay(ItemStack stack) {
+ if (stack.getTagCompound() == null){
+ createNBT(stack);
+ }
+ double chargeState = getChargeState(stack);
+ return chargeState;
+ }
+
+ @Override
+ public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
+ long aCharge = getChargeState(stack);
+ String aState = EnumChatFormatting.YELLOW+"Unknown"+EnumChatFormatting.GRAY;
+ //State not set
+ if (aCharge == 0) {
+ list.add(EnumChatFormatting.GRAY+"A "+MetaToNameMap.get(stack.getItemDamage())+" Ion with an "+aState+" charge state");
+ }
+ else {
+ if (aCharge > 0) {
+ aState = EnumChatFormatting.GREEN+"Positive"+EnumChatFormatting.GRAY;
+ }
+ else {
+ aState = EnumChatFormatting.RED+"Negative"+EnumChatFormatting.GRAY;
+ }
+
+ list.add(EnumChatFormatting.GRAY+"A "+MetaToNameMap.get(stack.getItemDamage())+" Ion with a "+aState+" charge state of "+aCharge+"");
+ }
+ super.addInformation(stack, player, list, bool);
+ }
+
+ @Override
+ public void registerIcons(IIconRegister reg) {
+ for (int i = 0; i < IonParticles.overlays.length; i++) {
+ IonParticles.overlays[i] = reg.registerIcon(CORE.MODID + ":" + "ion/"+i);
+ }
+ IonParticles.baseTexture = reg.registerIcon(CORE.MODID + ":" + "ion/IonBase");
+ }
+
+ @Override
+ public IIcon getIconFromDamage(int meta) {
+ return IonParticles.overlays[meta];
+ }
+
+ @Override
+ public boolean requiresMultipleRenderPasses() {
+ return true;
+ }
+
+ @Override
+ public IIcon getIconFromDamageForRenderPass(int aMeta, int aPass) {
+ if (aPass == 0) {
+ return IonParticles.baseTexture;
+ }
+ else {
+ return IonParticles.overlays[aMeta];
+ }
+ }
+
+ @Override
+ public int getRenderPasses(int metadata) {
+ return 2;
+ }
}
diff --git a/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java b/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java
index 9bd8a521ab..a516cb0639 100644
--- a/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java
+++ b/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java
@@ -404,7 +404,7 @@ public class RocketFuels {
480);
ItemStack aCell11dimethylhydrazine = ItemUtils.getItemStackOfAmountFromOreDict("cell1,1Dimethylhydrazine", 2);
- if (aCell11dimethylhydrazine != null && aCell11dimethylhydrazine.getItem() != ModItems.AAA_Broken) {
+ if (ItemUtils.checkForInvalidItems(aCell11dimethylhydrazine)) {
GT_Values.RA.addCentrifugeRecipe(
CI.getNumberedCircuit(23),
aCell11dimethylhydrazine,
diff --git a/src/Java/gtPlusPlus/core/item/chemistry/StandardBaseParticles.java b/src/Java/gtPlusPlus/core/item/chemistry/StandardBaseParticles.java
index dd07d41b3d..1e833a7b00 100644
--- a/src/Java/gtPlusPlus/core/item/chemistry/StandardBaseParticles.java
+++ b/src/Java/gtPlusPlus/core/item/chemistry/StandardBaseParticles.java
@@ -1,15 +1,26 @@
package gtPlusPlus.core.item.chemistry;
-import gregtech.api.enums.Materials;
+import java.util.HashMap;
+import java.util.List;
+
+import gtPlusPlus.api.objects.data.AutoMap;
import gtPlusPlus.core.item.base.misc.BaseItemParticle;
+import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.material.Particle;
import gtPlusPlus.core.material.Particle.ElementaryGroup;
import gtPlusPlus.core.util.Utils;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumRarity;
import net.minecraft.item.ItemStack;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.IIcon;
public class StandardBaseParticles extends BaseItemParticle {
+ public static HashMap<String, Integer> NameToMetaMap = new HashMap<String, Integer>();
+ public static HashMap<Integer, String> MetaToNameMap = new HashMap<Integer, String>();
+
public StandardBaseParticles() {
super("Base", aTypes.length, EnumRarity.rare);
}
@@ -17,13 +28,19 @@ public class StandardBaseParticles extends BaseItemParticle {
private static final String[] aTypes = new String[] { "Graviton", "Up", "Down", "Charm", "Strange", "Top",
"Bottom", "Electron", "Electron Neutrino", "Muon", "Muon Neutrino", "Tau", "Tau Neutrino", "Gluon",
"Photon", "Z Boson", "W Boson", "Higgs Boson", "Proton", "Neutron", "Lambda", "Omega", "Pion",
- "ETA Meson", };
+ "ETA Meson", "Unknown" };
+
+ public IIcon[] icons = new IIcon[aTypes.length];
static {
//Generate Ions
int key = 0;
+
+
for (String s : aTypes) {
- Particle p;
+ //Map names to Meta
+ NameToMetaMap.put(Utils.sanitizeString(s.toLowerCase()), key);
+ MetaToNameMap.put(key, Utils.sanitizeString(s.toLowerCase()));
for (Particle o : Particle.aMap) {
int aColour = 0;
if (o.mParticleName.toLowerCase().equals(s.toLowerCase())) {
@@ -73,5 +90,72 @@ public class StandardBaseParticles extends BaseItemParticle {
public String getUnlocalizedName(final ItemStack itemStack) {
return "item.particle.base" + "." + aTypes[itemStack.getItemDamage()];
}
+
+ public static Particle getParticle(ItemStack aStack) {
+ AutoMap<Particle> g = Particle.aMap;
+ for (Particle p : g) {
+ String aPartName = Utils.sanitizeString(p.mParticleName.toLowerCase());
+ String expectedPart = Utils.sanitizeString(aTypes[aStack.getItemDamage()].toLowerCase());
+ if (aPartName.equals(expectedPart)) {
+ return p;
+ }
+ }
+ return Particle.UNKNOWN;
+ }
+
+ @Override
+ public int getColorFromItemStack(final ItemStack stack, final int HEX_OxFFFFFF) {
+ //return Utils.rgbtoHexValue(200, 200, 200);
+ return super.getColorFromParentClass(stack, HEX_OxFFFFFF);
+ }
+
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ @Override
+ public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
+ Particle aCharge = getParticle(stack);
+ EnumChatFormatting aColour = EnumChatFormatting.GRAY;
+ String aState = aColour+"Unknown"+EnumChatFormatting.RESET;
+ if (aCharge != null) {
+ String aGroup = aCharge.mParticleType.name().toLowerCase();
+ if (aGroup.toLowerCase().contains("quark")) {
+ aColour = EnumChatFormatting.LIGHT_PURPLE;
+ }
+ else if (aGroup.toLowerCase().contains("lepton")) {
+ aColour = EnumChatFormatting.GREEN;
+ }
+ else if (aCharge == Particle.HIGGS_BOSON) {
+ aColour = EnumChatFormatting.YELLOW;
+ }
+ else if (aGroup.toLowerCase().contains("boson")) {
+ aColour = EnumChatFormatting.RED;
+ }
+ else if (aGroup.toLowerCase().contains("baryon")) {
+ aColour = EnumChatFormatting.BLUE;
+ }
+ else if (aGroup.toLowerCase().contains("meson")) {
+ aColour = EnumChatFormatting.WHITE;
+ }
+ else {
+ aColour = EnumChatFormatting.GRAY;
+ }
+ String aFirstLet = aGroup.substring(0, 1).toUpperCase();
+ aGroup = aGroup.replaceFirst(aGroup.substring(0, 1), aFirstLet);
+ aState = aColour+aGroup+EnumChatFormatting.RESET;
+ list.add(EnumChatFormatting.GRAY + "Type: "+aState);
+ }
+ super.addInformation(stack, player, list, bool);
+ }
+
+ @Override
+ public void registerIcons(IIconRegister reg) {
+ for (int i = 0; i < this.icons.length; i++) {
+ this.icons[i] = reg.registerIcon(CORE.MODID + ":" + "particle/"+i);
+ }
+ }
+
+ @Override
+ public IIcon getIconFromDamage(int meta) {
+ return this.icons[meta];
+ }
}
diff --git a/src/Java/gtPlusPlus/core/item/general/BufferCore.java b/src/Java/gtPlusPlus/core/item/general/BufferCore.java
index d3c7d5112f..9b00d3d034 100644
--- a/src/Java/gtPlusPlus/core/item/general/BufferCore.java
+++ b/src/Java/gtPlusPlus/core/item/general/BufferCore.java
@@ -4,7 +4,7 @@ import java.util.List;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
-
+import gregtech.api.enums.GT_Values;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
@@ -21,7 +21,7 @@ public class BufferCore extends BaseItemWithDamageValue{
public BufferCore(final String unlocalizedName, final int i) {
super(unlocalizedName+i);
this.setTextureName(CORE.MODID + ":" + unlocalizedName);
- this.setMaxStackSize(2);
+ this.setMaxStackSize(32);
this.coreTier = i;
}
@@ -40,7 +40,7 @@ public class BufferCore extends BaseItemWithDamageValue{
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
public void addInformation(final ItemStack stack, final EntityPlayer aPlayer, final List list, final boolean bool) {
- list.add(EnumChatFormatting.GRAY+"A key crafting component for making energy buffers.");
+ list.add(EnumChatFormatting.GRAY+"A key crafting component for "+GT_Values.VN[this.coreTier-1]+" Applicances");
}
public final int getCoreTier() {
@@ -48,51 +48,25 @@ public class BufferCore extends BaseItemWithDamageValue{
}
@Override
- public int getColorFromItemStack(final ItemStack stack, int HEX_OxFFFFFF) {
- //Figure Out Damage
- final String s = String.format("%X", HEX_OxFFFFFF);
- //Utils.LOG_INFO(s);
- //String rgb = Utils.hex2Rgb(s);
- //Utils.LOG_INFO(rgb);
- if (this.coreTier == 1){
- HEX_OxFFFFFF = 0x4d4d4d;
- }
- else if (this.coreTier == 2){
- HEX_OxFFFFFF = 0x666666;
- }
- else if (this.coreTier == 3){
- HEX_OxFFFFFF = 0x8c8c8c;
- }
- else if (this.coreTier == 4){
- HEX_OxFFFFFF = 0xa6a6a6;
- }
- else if (this.coreTier == 5){
- HEX_OxFFFFFF = 0xcccccc;
- }
- else if (this.coreTier == 6){
- HEX_OxFFFFFF = 0xe6e6e6;
- }
- else if (this.coreTier == 7){
- HEX_OxFFFFFF = 0xffffcc;
- }
- else if (this.coreTier == 8){
- HEX_OxFFFFFF = 0xace600;
- }
- else if (this.coreTier == 9){
- HEX_OxFFFFFF = 0xffff00;
- }
- /*else if (coreTier == 10){
- HEX_OxFFFFFF = 0xff0000;
- }*/
- else if (this.coreTier == 10){
- HEX_OxFFFFFF = Utils.rgbtoHexValue(MathUtils.randInt(220, 250), MathUtils.randInt(221, 251), MathUtils.randInt(220, 250));
- }
- else {
- HEX_OxFFFFFF = 0xffffff;
- }
+ public int getColorFromItemStack(final ItemStack stack, int HEX_OxFFFFFF) {
+ int[] mTierTypes = new int[] {
+ Utils.rgbtoHexValue(200, 180, 180),
+ Utils.rgbtoHexValue(142, 153, 161),
+ Utils.rgbtoHexValue(230, 121, 75),
+ Utils.rgbtoHexValue(215, 156, 70),
+ Utils.rgbtoHexValue(97, 97, 96), //EV
+ Utils.rgbtoHexValue(202, 202, 201),
+ Utils.rgbtoHexValue(247, 159, 157),
+ Utils.rgbtoHexValue(181, 223, 223),
+ Utils.rgbtoHexValue(187, 219, 185),
+ };
+
+ if (this.coreTier == 10){
+ return Utils.rgbtoHexValue(MathUtils.randInt(220, 250), MathUtils.randInt(221, 251), MathUtils.randInt(220, 250));
+ }
- return HEX_OxFFFFFF;
+ return mTierTypes[this.coreTier-1];
}
}
diff --git a/src/Java/gtPlusPlus/core/item/general/ItemControlCore.java b/src/Java/gtPlusPlus/core/item/general/ItemControlCore.java
index 8ad87c0ea8..eb22f8fa07 100644
--- a/src/Java/gtPlusPlus/core/item/general/ItemControlCore.java
+++ b/src/Java/gtPlusPlus/core/item/general/ItemControlCore.java
@@ -4,10 +4,13 @@ import java.util.List;
import cpw.mods.fml.common.registry.GameRegistry;
import gregtech.api.GregTech_API;
+import gregtech.api.enums.GT_Values;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
+import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.IIcon;
import gtPlusPlus.core.lib.CORE;
@@ -57,6 +60,14 @@ public class ItemControlCore extends Item {
public String getUnlocalizedName(ItemStack stack) {
return this.getUnlocalizedName() + "_" + stack.getItemDamage();
}
+
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ @Override
+ public void addInformation(final ItemStack stack, final EntityPlayer aPlayer, final List list, final boolean bool) {
+ list.add(EnumChatFormatting.GRAY+"Allows a Multiblock to function upto "+GT_Values.VN[stack.getItemDamage()]+"");
+ list.add(EnumChatFormatting.GRAY+"Required Tier is determined by the sum of the eu/t of all Energy Inputs");
+ list.add(EnumChatFormatting.GRAY+"Lower tiers may be used to underclock, which is useful in some situations");
+ }
@Override
public String getItemStackDisplayName(final ItemStack tItem) {
diff --git a/src/Java/gtPlusPlus/core/lib/CORE.java b/src/Java/gtPlusPlus/core/lib/CORE.java
index 3c18e2f6f7..97da974967 100644
--- a/src/Java/gtPlusPlus/core/lib/CORE.java
+++ b/src/Java/gtPlusPlus/core/lib/CORE.java
@@ -115,7 +115,6 @@ public class CORE {
@Deprecated
public static IGregtech_RecipeAdder sRecipeAdder;
public static IGregtech_RecipeAdder RA;
- public static GregtechRecipe GT_Recipe = new GregtechRecipe();
public static final GT_Materials[] sMU_GeneratedMaterials = new GT_Materials[1000];
diff --git a/src/Java/gtPlusPlus/core/lib/LoadedMods.java b/src/Java/gtPlusPlus/core/lib/LoadedMods.java
index 2a7ef9bc39..da0357a9c4 100644
--- a/src/Java/gtPlusPlus/core/lib/LoadedMods.java
+++ b/src/Java/gtPlusPlus/core/lib/LoadedMods.java
@@ -11,7 +11,6 @@ import gtPlusPlus.xmod.gregtech.recipes.GregtechRecipeAdder;
public class LoadedMods {
-
//Initialize Variables
public static boolean Gregtech = false;
public static boolean PlayerAPI = false;
@@ -53,6 +52,7 @@ public class LoadedMods {
public static boolean TiCon = false;
public static boolean StevesCarts = false;
public static boolean Witchery = false;
+ public static boolean Waila = false;
@@ -185,6 +185,11 @@ public class LoadedMods {
Logger.INFO("Components enabled for: Railcraft");
totalMods++;
}
+ if (Loader.isModLoaded("Waila")){
+ Waila = true;
+ Logger.INFO("Components enabled for: WAILA");
+ totalMods++;
+ }
if (Loader.isModLoaded("Mekanism")){
Mekanism = true;
Logger.INFO("Components enabled for: Mekanism - This feature is not configurable and balances Mekanism to suit GT.");
diff --git a/src/Java/gtPlusPlus/core/material/Material.java b/src/Java/gtPlusPlus/core/material/Material.java
index 1ee02a2654..03e50aa7dd 100644
--- a/src/Java/gtPlusPlus/core/material/Material.java
+++ b/src/Java/gtPlusPlus/core/material/Material.java
@@ -753,7 +753,7 @@ public class Material {
}
}
//Logger.MATERIALS("Unabled to find \"" + aKey + this.unlocalizedName + "\"");
- return ItemUtils.getErrorStack(stacksize);
+ return ItemUtils.getErrorStack(stacksize, (aKey + this.unlocalizedName+" x"+stacksize));
}
}
diff --git a/src/Java/gtPlusPlus/core/material/Particle.java b/src/Java/gtPlusPlus/core/material/Particle.java
index 6cc0f878d6..e93129ec58 100644
--- a/src/Java/gtPlusPlus/core/material/Particle.java
+++ b/src/Java/gtPlusPlus/core/material/Particle.java
@@ -1,6 +1,11 @@
package gtPlusPlus.core.material;
import gtPlusPlus.api.objects.data.AutoMap;
+import gtPlusPlus.core.item.ModItems;
+import gtPlusPlus.core.item.chemistry.IonParticles;
+import gtPlusPlus.core.util.Utils;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
+import net.minecraft.item.ItemStack;
public class Particle {
@@ -34,6 +39,8 @@ public class Particle {
public static final Particle PION;
public static final Particle ETA_MESON;
+ public static final Particle UNKNOWN;
+
public static final AutoMap<Particle> aMap = new AutoMap<Particle>();
static {
@@ -80,7 +87,11 @@ public class Particle {
//Mesons
PION = new Particle(ElementaryGroup.MESON, "Pion", new Particle[] {MUON, MUON_NEUTRINO});
- ETA_MESON = new Particle(ElementaryGroup.MESON, "ETA Meson", new Particle[] {PION, PION, PION});
+ ETA_MESON = new Particle(ElementaryGroup.MESON, "ETA Meson", new Particle[] {PION, PION, PION});
+
+
+ //Wildcard
+ UNKNOWN = new Particle(ElementaryGroup.UNKNOWN, "Unknown");
}
@@ -89,7 +100,8 @@ public class Particle {
LEPTON,
BOSON,
BARYON,
- MESON;
+ MESON,
+ UNKNOWN;
}
public final ElementaryGroup mParticleType;
@@ -107,4 +119,35 @@ public class Particle {
aMap.put(this);
}
+
+ public static ItemStack getIon(String aElementName, int aCharge) {
+ for (String g : gtPlusPlus.core.item.chemistry.IonParticles.NameToMetaMap.keySet()) {
+ if (g.toLowerCase().equals(Utils.sanitizeString(aElementName.toLowerCase()))){
+ Integer meta = gtPlusPlus.core.item.chemistry.IonParticles.NameToMetaMap.get(Utils.sanitizeString(aElementName.toLowerCase()));
+ if (meta == null) {
+ meta = 0;
+ }
+ ItemStack aIon = ItemUtils.simpleMetaStack(ModItems.itemIonParticleBase, meta, 1);
+ if (aCharge != 0) {
+ IonParticles.setChargeState(aIon, aCharge);
+ }
+ return aIon;
+ }
+ }
+ return null;
+ }
+
+ public static ItemStack getBaseParticle(Particle aParticle) {
+ String aPartName = Utils.sanitizeString(aParticle.mParticleName.toLowerCase());
+ for (String g : gtPlusPlus.core.item.chemistry.StandardBaseParticles.NameToMetaMap.keySet()) {
+ if (g.toLowerCase().equals(aPartName)){
+ Integer meta = gtPlusPlus.core.item.chemistry.StandardBaseParticles.NameToMetaMap.get(aPartName);
+ if (meta == null) {
+ meta = 0;
+ }
+ return ItemUtils.simpleMetaStack(ModItems.itemStandarParticleBase, meta, 1);
+ }
+ }
+ return null;
+ }
}
diff --git a/src/Java/gtPlusPlus/core/proxy/ClientProxy.java b/src/Java/gtPlusPlus/core/proxy/ClientProxy.java
index 727a411e4f..c7374ca7d5 100644
--- a/src/Java/gtPlusPlus/core/proxy/ClientProxy.java
+++ b/src/Java/gtPlusPlus/core/proxy/ClientProxy.java
@@ -30,6 +30,7 @@ import gtPlusPlus.australia.entity.type.EntityDingo;
import gtPlusPlus.australia.entity.type.EntityOctopus;
import gtPlusPlus.core.client.model.ModelGiantChicken;
import gtPlusPlus.core.client.renderer.CustomOreBlockRenderer;
+import gtPlusPlus.core.client.renderer.RenderBatKing;
import gtPlusPlus.core.client.renderer.RenderDecayChest;
import gtPlusPlus.core.client.renderer.RenderGiantChicken;
import gtPlusPlus.core.client.renderer.RenderMiningExplosivesPrimed;
@@ -41,6 +42,7 @@ import gtPlusPlus.core.common.CommonProxy;
import gtPlusPlus.core.common.compat.COMPAT_PlayerAPI;
import gtPlusPlus.core.entity.EntityPrimedMiningExplosive;
import gtPlusPlus.core.entity.EntityTeslaTowerLightning;
+import gtPlusPlus.core.entity.monster.EntityBatKing;
import gtPlusPlus.core.entity.monster.EntityGiantChickenBase;
import gtPlusPlus.core.entity.monster.EntitySickBlaze;
import gtPlusPlus.core.entity.monster.EntityStaballoyConstruct;
@@ -55,7 +57,9 @@ import gtPlusPlus.core.tileentities.general.TileEntityDecayablesChest;
import gtPlusPlus.core.tileentities.general.TileEntityFirepit;
import gtPlusPlus.core.util.minecraft.particles.EntityParticleFXMysterious;
import gtPlusPlus.xmod.gregtech.common.render.GTPP_CapeRenderer;
+import gtPlusPlus.xmod.gregtech.common.render.GTPP_Render_MachineBlock;
import net.minecraft.client.Minecraft;
+import net.minecraft.client.model.ModelBat;
import net.minecraft.client.particle.EntityFX;
import net.minecraft.client.renderer.entity.RenderSnowball;
import net.minecraft.entity.Entity;
@@ -106,6 +110,7 @@ public class ClientProxy extends CommonProxy implements Runnable{
* Custom Block Renderers
*/
new CustomOreBlockRenderer();
+ new GTPP_Render_MachineBlock();
super.init(e);
}
@@ -132,6 +137,7 @@ public class ClientProxy extends CommonProxy implements Runnable{
RenderingRegistry.registerEntityRenderingHandler(EntityHydrofluoricAcidPotion.class, new RenderSnowball(ModItems.itemHydrofluoricPotion));
RenderingRegistry.registerEntityRenderingHandler(EntityTeslaTowerLightning.class, new RenderPlasmaBolt());
RenderingRegistry.registerEntityRenderingHandler(EntityGiantChickenBase.class, new RenderGiantChicken(new ModelGiantChicken(), 1f));
+ RenderingRegistry.registerEntityRenderingHandler(EntityBatKing.class, new RenderBatKing());
/**
* Tiles
diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
index e2c69277f6..456b535606 100644
--- a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
+++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
@@ -1,22 +1,27 @@
package gtPlusPlus.core.recipe;
-import net.minecraft.init.Blocks;
-import net.minecraft.init.Items;
-import net.minecraft.item.ItemStack;
-
-import static gtPlusPlus.core.util.minecraft.ItemUtils.getSimpleStack;
+import static gtPlusPlus.core.lib.CORE.GTNH;
import gregtech.api.GregTech_API;
-import gregtech.api.enums.*;
-import gregtech.api.util.*;
-
+import gregtech.api.enums.ConfigCategories;
+import gregtech.api.enums.GT_Values;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_OreDictUnificator;
+import gregtech.api.util.GT_Utility;
+import gregtech.api.util.HotFuel;
+import gregtech.api.util.ThermalFuel;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.block.ModBlocks;
import gtPlusPlus.core.item.ModItems;
+import gtPlusPlus.core.item.chemistry.IonParticles;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.lib.LoadedMods;
import gtPlusPlus.core.material.ALLOY;
import gtPlusPlus.core.material.ELEMENT;
+import gtPlusPlus.core.material.Particle;
import gtPlusPlus.core.material.nuclear.FLUORIDES;
import gtPlusPlus.core.material.nuclear.NUCLIDE;
import gtPlusPlus.core.recipe.common.CI;
@@ -25,10 +30,12 @@ import gtPlusPlus.core.util.minecraft.EnchantingUtils;
import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.core.util.minecraft.MaterialUtils;
-import gtPlusPlus.core.util.minecraft.RecipeUtils;
import gtPlusPlus.core.util.reflect.AddGregtechRecipe;
import gtPlusPlus.everglades.dimension.Dimension_Everglades;
import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList;
+import net.minecraft.init.Blocks;
+import net.minecraft.init.Items;
+import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
public class RECIPES_GREGTECH {
@@ -70,9 +77,76 @@ public class RECIPES_GREGTECH {
extruderRecipes();
cuttingSawRecipes();
breweryRecipes();
+ laserEngraverRecipes();
+ assemblyLineRecipes();
addFuels();
}
+ private static void assemblyLineRecipes() {
+
+ CORE.RA.addAssemblylineRecipe(
+ ItemList.Field_Generator_IV.get(1),
+ 20 * 60 * 30,
+ new ItemStack[] {
+ ItemList.Field_Generator_IV.get(GTNH ? 32 : 16),
+ ItemList.Electric_Motor_EV.get(GTNH ? 64 : 32),
+ ItemList.Energy_LapotronicOrb.get(GTNH ? 32 : 16),
+ CI.getTieredComponent(OrePrefixes.cableGt12, 7, GTNH ? 32 : 16),
+ CI.getTieredComponent(OrePrefixes.wireGt16, 6, GTNH ? 64 : 32),
+ ItemUtils.getOrePrefixStack(OrePrefixes.plate, Materials.Naquadria, GTNH ? 64 : 16),
+ ELEMENT.getInstance().GADOLINIUM.getDust(GTNH ? 32 : 8),
+ ELEMENT.getInstance().SAMARIUM.getDust(GTNH ? 16 : 4),
+ ALLOY.ARCANITE.getGear(GTNH ? 8 : 2),
+ CI.getTieredComponent(OrePrefixes.circuit, 5, GTNH ? 64 : 32),
+ CI.getTieredComponent(OrePrefixes.circuit, 6, GTNH ? 32 : 16),
+ CI.getTieredComponent(OrePrefixes.circuit, 7, GTNH ? 16 : 8),
+ GregtechItemList.Laser_Lens_Special.get(1)
+ },
+ new FluidStack[] {
+ ALLOY.NITINOL_60.getFluid(144 * 9 * (GTNH ? 4 : 2)),
+ ALLOY.ENERGYCRYSTAL.getFluid(144 * 9 * (GTNH ? 8 : 4)),
+ ALLOY.TUMBAGA.getFluid(144 * 9 * (GTNH ? 32 : 8)),
+ ALLOY.NICHROME.getFluid(144 * 1 * (GTNH ? 16 : 4)),
+
+ },
+ ItemUtils.getSimpleStack(ModBlocks.blockCasings3Misc, 15, 32),
+ 20 * 60 * 10 * (GTNH ? 2 : 1),
+ (int) GT_Values.V[6]);
+
+ }
+
+ private static void laserEngraverRecipes() {
+
+ GT_Values.RA.addLaserEngraverRecipe(
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Tungsten, 6L),
+ GregtechItemList.Laser_Lens_Special.get(0),
+ ELEMENT.STANDALONE.CELESTIAL_TUNGSTEN.getDust(1),
+ 20 * 60 * 3,
+ MaterialUtils.getVoltageForTier(ELEMENT.STANDALONE.CELESTIAL_TUNGSTEN.vTier));
+
+ GT_Values.RA.addLaserEngraverRecipe(
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Titanium, 8L),
+ GregtechItemList.Laser_Lens_Special.get(0),
+ ELEMENT.STANDALONE.ASTRAL_TITANIUM.getDust(1),
+ 20 * 60 * 2,
+ MaterialUtils.getVoltageForTier(ELEMENT.STANDALONE.ASTRAL_TITANIUM.vTier));
+
+ GT_Values.RA.addLaserEngraverRecipe(
+ ALLOY.NITINOL_60.getBlock(2),
+ GregtechItemList.Laser_Lens_Special.get(0),
+ ELEMENT.STANDALONE.ADVANCED_NITINOL.getBlock(1),
+ 20 * 60 * 1,
+ MaterialUtils.getVoltageForTier(ELEMENT.STANDALONE.ADVANCED_NITINOL.vTier));
+
+ GT_Values.RA.addLaserEngraverRecipe(
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glass, 64L),
+ GregtechItemList.Laser_Lens_Special.get(0),
+ ELEMENT.STANDALONE.CHRONOMATIC_GLASS.getDust(1),
+ 20 * 60 * 5,
+ MaterialUtils.getVoltageForTier(ELEMENT.STANDALONE.CHRONOMATIC_GLASS.vTier));
+
+ }
+
private static void breweryRecipes() {
CORE.RA.addBrewingRecipe(14, EnchantingUtils.getMobEssence(100), EnchantingUtils.getLiquidXP(1332), 100, 120, false);
CORE.RA.addBrewingRecipe(14, EnchantingUtils.getLiquidXP(1332), EnchantingUtils.getMobEssence(100), 100, 120, false);
@@ -92,7 +166,7 @@ public class RECIPES_GREGTECH {
ItemUtils.getSimpleStack(ModItems.dustDecayedRadium226, 1),
null,
null,
- FluidUtils.getFluidStack("radon", !CORE.GTNH ? 500 : 144),
+ FluidUtils.getFluidStack("radon", !GTNH ? 500 : 144),
null,
null,
null,
@@ -118,7 +192,7 @@ public class RECIPES_GREGTECH {
private static void blastSmelterRecipes() {
- if (!CORE.GTNH) {
+ if (!GTNH) {
// Trinium
CORE.RA.addBlastSmelterRecipe(
new ItemStack[] {
@@ -481,10 +555,9 @@ public class RECIPES_GREGTECH {
}
// Calcium Hydroxide
- if ((ItemUtils.getItemStackOfAmountFromOreDict("dustQuicklime", 1).getItem() != ModItems.AAA_Broken)
- || LoadedMods.IHL) {
+ if ((ItemUtils.checkForInvalidItems(ItemUtils.getItemStackOfAmountFromOreDict("dustQuicklime", 1))) || LoadedMods.IHL) {
try {
-
+
CORE.RA.addDehydratorRecipe(
new ItemStack[] { ItemUtils.getItemStackOfAmountFromOreDict("dustQuicklime", 10) }, // Item
FluidUtils.getFluidStack("water", 10000), // Fluid input
@@ -908,13 +981,6 @@ public class RECIPES_GREGTECH {
}
- private static boolean addAR(final ItemStack inputA, final ItemStack inputB, final ItemStack outputA,
- final int seconds, final int voltage) {
- // return GT_Values.RA.addAssemblerRecipe(inputA, inputB, outputA,
- // seconds*20, voltage);
- return addAR(inputA, inputB, null, outputA, seconds * 20, voltage);
- }
-
private static boolean addAR(final ItemStack inputA, final ItemStack inputB, final FluidStack inputFluidA,
final ItemStack outputA, final int seconds, final int voltage) {
// return GT_Values.RA.addAssemblerRecipe(inputA, inputB, outputA,
@@ -953,7 +1019,7 @@ public class RECIPES_GREGTECH {
private static void addFuels() {
Logger.INFO("Registering New Fuels.");
- if (!CORE.GTNH) {
+ if (!GTNH) {
GT_Values.RA.addFuel(ItemUtils.simpleMetaStack("EnderIO:bucketFire_water", 0, 1), null, 120, 0);
GT_Values.RA.addFuel(ItemUtils.simpleMetaStack("EnderIO:bucketRocket_fuel", 0, 1), null, 112, 0);
GT_Values.RA.addFuel(ItemUtils.simpleMetaStack("EnderIO:bucketHootch", 0, 1), null, 36, 0);
@@ -1116,7 +1182,7 @@ public class RECIPES_GREGTECH {
CI.emptyCells(1), 300 * 20);
// LFTR Fuel Related Compounds
- if (CORE.GTNH) {
+ if (GTNH) {
// Hydroxide
AddGregtechRecipe.addChemicalRecipeForBasicMachineOnly(
ItemUtils.getItemStackOfAmountFromOreDict("cellOxygen", 1),
@@ -1140,7 +1206,7 @@ public class RECIPES_GREGTECH {
CI.emptyCells(2), GT_Values.NI, 20 * 20, 30);
}
- if (!CORE.GTNH) {
+ if (!GTNH) {
// Hydroxide
GT_Values.RA.addChemicalRecipe(ItemUtils.getItemStackOfAmountFromOreDict("cellOxygen", 1),
ItemUtils.getItemStackOfAmountFromOreDict("cellHydrogen", 1), GT_Values.NF,
@@ -1261,40 +1327,202 @@ public class RECIPES_GREGTECH {
//Polonium
CORE.RA.addCyclotronRecipe(CI.getNumberedCircuit(0), FluidUtils.getFluidStack("molten.bismuth", 1),
- new ItemStack[] { GregtechItemList.Pellet_RTG_PO210.get(1) }, null, new int[] { 100 }, 20 * 300, 2040,
+ new ItemStack[] { GregtechItemList.Pellet_RTG_PO210.get(1) }, null, new int[] { 100 }, 20 * 300 * 100, 2040,
500 * 20);
//Americium
CORE.RA.addCyclotronRecipe(CI.getNumberedCircuit(0), FluidUtils.getFluidStack("molten.americium", 1),
- new ItemStack[] { GregtechItemList.Pellet_RTG_AM241.get(4) }, null, new int[] { 2500 }, 20 * 300, 1020,
+ new ItemStack[] { GregtechItemList.Pellet_RTG_AM241.get(4) }, null, new int[] { 2500 }, 20 * 300 * 100, 1020,
500 * 20); //PO Special Value
//Strontium u235
CORE.RA.addCyclotronRecipe(CI.getNumberedCircuit(0), FluidUtils.getFluidStack("molten.uranium235", 10),
- new ItemStack[] { GregtechItemList.Pellet_RTG_SR90.get(1) }, null, new int[] { 570 }, 20 * 300, 1020,
+ new ItemStack[] { GregtechItemList.Pellet_RTG_SR90.get(1) }, null, new int[] { 570 }, 20 * 300 * 100, 1020,
500 * 20); //PO Special Value
//Strontium u233
CORE.RA.addCyclotronRecipe(CI.getNumberedCircuit(0), FluidUtils.getFluidStack("molten.uranium233", 10),
- new ItemStack[] { GregtechItemList.Pellet_RTG_SR90.get(1) }, null, new int[] { 660 }, 20 * 300, 1020,
+ new ItemStack[] { GregtechItemList.Pellet_RTG_SR90.get(1) }, null, new int[] { 660 }, 20 * 300 * 100, 1020,
500 * 20); //PO Special Value
//Strontium pu239
CORE.RA.addCyclotronRecipe(CI.getNumberedCircuit(0), FluidUtils.getFluidStack("molten.plutonium239", 10),
- new ItemStack[] { GregtechItemList.Pellet_RTG_SR90.get(1) }, null, new int[] { 220 }, 20 * 300, 1020,
+ new ItemStack[] { GregtechItemList.Pellet_RTG_SR90.get(1) }, null, new int[] { 220 }, 20 * 300 * 100, 1020,
500 * 20); //PO Special Value
//Plutonium
CORE.RA.addCyclotronRecipe(CI.getNumberedCircuit(0), FluidUtils.getFluidStack("molten.plutonium238", 1),
- new ItemStack[] { GregtechItemList.Pellet_RTG_PU238.get(2) }, null, new int[] { 780 }, 20 * 300, 1020,
+ new ItemStack[] { GregtechItemList.Pellet_RTG_PU238.get(2) }, null, new int[] { 780 }, 20 * 300 * 100, 1020,
500 * 20); //PO Special Value
-
//Neptunium
CORE.RA.addCyclotronRecipe(new ItemStack[] {ELEMENT.getInstance().URANIUM238.getDust(1) }, FluidUtils.getFluidStack("deuterium", 400),
- ItemUtils.getSimpleStack(ModItems.dustNeptunium238), null, new int[] { 500 }, 20 * 5, 500,
+ new ItemStack[] {ItemUtils.getSimpleStack(ModItems.dustNeptunium238)}, null, new int[] { 500 }, 20 * 5, 500,
500 * 20); //PO Special Value
+
+
+ /**
+ * Particle Science
+ */
+
+ // Quark Smash
+ CORE.RA.addCyclotronRecipe(
+ CI.getNumberedCircuit(3),
+ FluidUtils.getFluidStack("plasma.hydrogen", 1000),
+ new ItemStack[] {
+ Particle.getBaseParticle(Particle.UP),
+ Particle.getBaseParticle(Particle.DOWN),
+ Particle.getBaseParticle(Particle.CHARM),
+ Particle.getBaseParticle(Particle.STRANGE),
+ Particle.getBaseParticle(Particle.TOP),
+ Particle.getBaseParticle(Particle.BOTTOM),
+ },
+ null,
+ new int[] { 50, 50, 50, 50, 50, 50 },
+ 20 * 300 * 38,
+ (int) GT_Values.V[7],
+ 750 * 20);
+
+ // Lepton Smash
+ CORE.RA.addCyclotronRecipe(
+ CI.getNumberedCircuit(6),
+ FluidUtils.getFluidStack("plasma.helium", 1500),
+ new ItemStack[] {
+ Particle.getBaseParticle(Particle.ELECTRON),
+ Particle.getBaseParticle(Particle.MUON),
+ Particle.getBaseParticle(Particle.TAU),
+ Particle.getBaseParticle(Particle.ELECTRON_NEUTRINO),
+ Particle.getBaseParticle(Particle.MUON_NEUTRINO),
+ Particle.getBaseParticle(Particle.TAU_NEUTRINO),
+ },
+ null,
+ new int[] { 60, 40, 20, 15, 10, 5 },
+ 20 * 300 * 38,
+ (int) GT_Values.V[7],
+ 750 * 20);
+
+ //Boson Smash
+ CORE.RA.addCyclotronRecipe(
+ CI.getNumberedCircuit(9),
+ FluidUtils.getFluidStack("plasma.helium", 1500),
+ new ItemStack[] {
+ Particle.getBaseParticle(Particle.GLUON),
+ Particle.getBaseParticle(Particle.PHOTON),
+ Particle.getBaseParticle(Particle.Z_BOSON),
+ Particle.getBaseParticle(Particle.W_BOSON),
+ Particle.getBaseParticle(Particle.HIGGS_BOSON),
+ },
+ null,
+ new int[] { 60, 60, 50, 50, 1 },
+ 20 * 300 * 38,
+ (int) GT_Values.V[7],
+ 750 * 20);
+
+
+ // Mixed Smash 1
+ CORE.RA.addCyclotronRecipe(
+ CI.getNumberedCircuit(12),
+ FluidUtils.getFluidStack("plasma.beryllium", 2500),
+ new ItemStack[] {
+ Particle.getBaseParticle(Particle.GRAVITON),
+ Particle.getBaseParticle(Particle.ETA_MESON),
+ Particle.getBaseParticle(Particle.PION),
+ Particle.getBaseParticle(Particle.PROTON),
+ Particle.getBaseParticle(Particle.NEUTRON),
+ Particle.getBaseParticle(Particle.LAMBDA),
+ Particle.getBaseParticle(Particle.OMEGA),
+ Particle.getBaseParticle(Particle.HIGGS_BOSON),
+ },
+ null,
+ new int[] { 10, 20, 20, 10, 10, 5, 5, 2 },
+ 17 * 247 * 134,
+ (int) GT_Values.V[8],
+ 750 * 20);
+
+ //Graviton Smash
+ CORE.RA.addCyclotronRecipe(
+ CI.getNumberedCircuit(15),
+ FluidUtils.getFluidStack("plasma.hydrogen", GTNH ? 50 : 10),
+ new ItemStack[] {
+ Particle.getBaseParticle(Particle.GRAVITON),
+ Particle.getBaseParticle(Particle.UNKNOWN)
+ },
+ null,
+ new int[] {15, 100},
+ 20 * (GTNH ? 90 : 30),
+ (int) GT_Values.V[6],
+ 1000 * 20);
+
+ FluidStack aPlasma = Materials.Duranium.getMolten(GTNH ? 40 : 10);
+ FluidStack aPlasma_NULL = Materials._NULL.getPlasma(1);
+
+ if (aPlasma == null || aPlasma.isFluidEqual(aPlasma_NULL)) {
+ aPlasma = Materials.Americium.getMolten(GTNH ? 20 : 5);
+ }
+
+ //Quantum Anomaly
+ CORE.RA.addCyclotronRecipe(
+ new ItemStack[] {
+ CI.getNumberedCircuit(24),
+ Particle.getBaseParticle(Particle.UNKNOWN),
+ },
+ aPlasma,
+ new ItemStack[] {
+ GregtechItemList.Laser_Lens_Special.get(1)
+ },
+ null,
+ new int[] {100},
+ 20 * (GTNH ? 300 : 60),
+ (int) GT_Values.V[6],
+ 1000 * 20);
+
+ /*
+ * Ions
+ */
+
+ int IonCount = 2;
+ int tenCountA = (GTNH ? 2 : 1);
+ int tenCountB = 0;
+ for (String y : IonParticles.MetaToNameMap.values()) {
+ FluidStack aPlasma2 = FluidUtils.getFluidStack("plasma."+y.toLowerCase(), 2);
+ Materials aTestMat = MaterialUtils.getMaterial(y);
+ FluidStack aPlasma3 = aTestMat != null ? aTestMat.getPlasma(2) : aPlasma2;
+
+ // Ionize Plasma
+ if ((aPlasma2 != null && !aPlasma2.isFluidEqual(aPlasma_NULL)) || (aPlasma3 != null && !aPlasma3.isFluidEqual(aPlasma_NULL))) {
+ CORE.RA.addCyclotronRecipe(
+ CI.getNumberedCircuit(1+(tenCountA-1)),
+ aPlasma2 != null ? aPlasma2 : aPlasma3,
+ new ItemStack[] {
+ Particle.getIon(y, 1),
+ Particle.getIon(y, 2),
+ Particle.getIon(y, 3),
+ Particle.getIon(y, -1),
+ Particle.getIon(y, -2),
+ Particle.getIon(y, -3),
+ Particle.getIon(y, 1),
+ Particle.getIon(y, 2),
+ Particle.getIon(y, -1),
+ },
+ null,
+ new int[] { 75, 50, 25, 75, 50, 25, 75, 50, 75},
+ 20 * 20 * (IonCount++) * tenCountA,
+ (int) GT_Values.V[7],
+ 1500 * 20 * tenCountA);
+ }
+ else {
+ Logger.INFO("Plasma for "+y+" does not exist, please report this to Alkalus.");
+ }
+
+ if (tenCountB == 12) {
+ tenCountB = 0;
+ tenCountA++;
+ }
+ else {
+ tenCountB++;
+ }
+ }
}
diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java
index 0040edfa99..e2cfb3516e 100644
--- a/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java
+++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java
@@ -208,6 +208,8 @@ public class RECIPES_Machines {
private static void run(){
initModItems();
controlCores();
+ energyCores();
+ wirelessChargers();
}
private static void initModItems(){
@@ -338,109 +340,7 @@ public class RECIPES_Machines {
8000);
- //Buffer Core
- RecipeUtils.addShapedGregtechRecipe(
- CI.component_Plate[1], cableTier1, CI.component_Plate[1],
- "circuitPrimitive", "plateStaballoy", "circuitPrimitive",
- CI.component_Plate[1], cableTier1, CI.component_Plate[1],
- RECIPE_BufferCore_ULV);
- RecipeUtils.addShapedGregtechRecipe(
- CI.component_Plate[2], cableTier2, CI.component_Plate[2],
- RECIPE_BufferCore_ULV, CI.machineHull_HV, RECIPE_BufferCore_ULV,
- CI.component_Plate[2], cableTier2, CI.component_Plate[2],
- RECIPE_BufferCore_LV);
- RecipeUtils.addShapedGregtechRecipe(
- CI.component_Plate[3], cableTier3, CI.component_Plate[3],
- RECIPE_BufferCore_LV, CI.circuitTier2, RECIPE_BufferCore_LV,
- CI.component_Plate[3], cableTier3, CI.component_Plate[3],
- RECIPE_BufferCore_MV);
- RecipeUtils.addShapedGregtechRecipe(
- CI.component_Plate[4], cableTier4, CI.component_Plate[4],
- RECIPE_BufferCore_MV, CI.circuitTier3, RECIPE_BufferCore_MV,
- CI.component_Plate[4], cableTier4, CI.component_Plate[4],
- RECIPE_BufferCore_HV);
- RecipeUtils.addShapedGregtechRecipe(
- CI.component_Plate[5], cableTier5, CI.component_Plate[5],
- RECIPE_BufferCore_HV, CI.circuitTier4, RECIPE_BufferCore_HV,
- CI.component_Plate[5], cableTier5, CI.component_Plate[5],
- RECIPE_BufferCore_EV);
- RecipeUtils.addShapedGregtechRecipe(
- CI.component_Plate[6], cableTier6, CI.component_Plate[6],
- RECIPE_BufferCore_EV, CI.circuitTier5, RECIPE_BufferCore_EV,
- CI.component_Plate[6], cableTier6, CI.component_Plate[6],
- RECIPE_BufferCore_IV);
- RecipeUtils.addShapedGregtechRecipe(
- CI.component_Plate[7], cableTier7, CI.component_Plate[7],
- RECIPE_BufferCore_IV, CI.circuitTier6, RECIPE_BufferCore_IV,
- CI.component_Plate[7], cableTier7, CI.component_Plate[7],
- RECIPE_BufferCore_LuV);
- RecipeUtils.addShapedGregtechRecipe(
- CI.component_Plate[8], cableTier8, CI.component_Plate[8],
- RECIPE_BufferCore_LuV, CI.circuitTier7, RECIPE_BufferCore_LuV,
- CI.component_Plate[8], cableTier8, CI.component_Plate[8],
- RECIPE_BufferCore_ZPM);
- RecipeUtils.addShapedGregtechRecipe(
- CI.component_Plate[9], cableTier9, CI.component_Plate[9],
- RECIPE_BufferCore_ZPM, CI.circuitTier8, RECIPE_BufferCore_ZPM,
- CI.component_Plate[9], cableTier9, CI.component_Plate[9],
- RECIPE_BufferCore_UV);
- RecipeUtils.addShapedGregtechRecipe(
- CI.component_Plate[10], cableTier10, CI.component_Plate[10],
- RECIPE_BufferCore_UV, CI.circuitTier9, RECIPE_BufferCore_UV,
- CI.component_Plate[10], cableTier10, CI.component_Plate[10],
- RECIPE_BufferCore_MAX);
-
-
- RecipeUtils.addShapedGregtechRecipe(
- wireTier1, RECIPE_BufferCore_ULV, wireTier1,
- wireTier1, CI.machineCasing_ULV, wireTier1,
- CI.circuitPrimitive, CI.circuitTier1, CI.circuitPrimitive,
- RECIPE_Buffer_ULV);
- RecipeUtils.addShapedGregtechRecipe(
- wireTier2, RECIPE_BufferCore_LV, wireTier2,
- wireTier2, CI.machineCasing_LV, wireTier2,
- CI.circuitTier1, RECIPE_BufferCore_LV, CI.circuitTier1,
- RECIPE_Buffer_LV);
- RecipeUtils.addShapedGregtechRecipe(
- wireTier3, RECIPE_BufferCore_MV, wireTier3,
- wireTier3, CI.machineCasing_MV, wireTier3,
- CI.circuitTier2, RECIPE_BufferCore_MV, CI.circuitTier2,
- RECIPE_Buffer_MV);
- RecipeUtils.addShapedGregtechRecipe(
- wireTier4, RECIPE_BufferCore_HV, wireTier4,
- wireTier4, CI.machineCasing_HV, wireTier4,
- CI.circuitTier3, RECIPE_BufferCore_HV, CI.circuitTier3,
- RECIPE_Buffer_HV);
- RecipeUtils.addShapedGregtechRecipe(
- wireTier5, RECIPE_BufferCore_EV, wireTier5,
- wireTier5, CI.machineCasing_EV, wireTier5,
- CI.circuitTier4, RECIPE_BufferCore_EV, CI.circuitTier4,
- RECIPE_Buffer_EV);
- RecipeUtils.addShapedGregtechRecipe(
- wireTier6, RECIPE_BufferCore_IV, wireTier6,
- wireTier6, CI.machineCasing_IV, wireTier6,
- CI.circuitTier5, RECIPE_BufferCore_IV, CI.circuitTier5,
- RECIPE_Buffer_IV);
- RecipeUtils.addShapedGregtechRecipe(
- wireTier7, RECIPE_BufferCore_LuV, wireTier7,
- wireTier7, CI.machineCasing_LuV, wireTier7,
- CI.circuitTier6, RECIPE_BufferCore_LuV, CI.circuitTier6,
- RECIPE_Buffer_LuV);
- RecipeUtils.addShapedGregtechRecipe(
- wireTier8, RECIPE_BufferCore_ZPM, wireTier8,
- wireTier8, CI.machineCasing_ZPM, wireTier8,
- CI.circuitTier7, RECIPE_BufferCore_ZPM, CI.circuitTier7,
- RECIPE_Buffer_ZPM);
- RecipeUtils.addShapedGregtechRecipe(
- wireTier9, RECIPE_BufferCore_UV, wireTier9,
- wireTier9, CI.machineCasing_UV, wireTier9,
- CI.circuitTier8, RECIPE_BufferCore_UV, CI.circuitTier8,
- RECIPE_Buffer_UV);
- RecipeUtils.addShapedGregtechRecipe(
- CI.component_Plate[11], RECIPE_BufferCore_MAX, CI.component_Plate[11],
- wireTier10, CI.machineCasing_MAX, wireTier10,
- CI.circuitTier9, RECIPE_BufferCore_MAX, CI.circuitTier9,
- RECIPE_Buffer_MAX);
+
//Steam Condenser
if (CORE.ConfigSwitches.enableMachine_SteamConverter ){
@@ -1382,53 +1282,6 @@ public class RECIPES_Machines {
o_Fermenter, o_Distillery, o_Extractor,
GregtechItemList.Industrial_MultiMachine.get(1));
}
-
- //Wireless Chargers
- RecipeUtils.addShapedGregtechRecipe(
- CI.emitter_LV, CI.circuitTier1, CI.emitter_LV,
- CI.component_Plate[3], CI.machineHull_LV, CI.component_Plate[3],
- CI.sensor_LV, CI.fieldGenerator_LV, CI.sensor_LV,
- GregtechItemList.Charger_LV.get(1));
- RecipeUtils.addShapedGregtechRecipe(
- CI.emitter_MV, CI.circuitTier2, CI.emitter_MV,
- CI.component_Plate[4], CI.machineHull_MV, CI.component_Plate[4],
- CI.sensor_MV, CI.fieldGenerator_MV, CI.sensor_MV,
- GregtechItemList.Charger_MV.get(1));
- RecipeUtils.addShapedGregtechRecipe(
- CI.emitter_HV, CI.circuitTier3, CI.emitter_HV,
- CI.component_Plate[5], CI.machineHull_HV, CI.component_Plate[5],
- CI.sensor_HV, CI.fieldGenerator_HV, CI.sensor_HV,
- GregtechItemList.Charger_HV.get(1));
- RecipeUtils.addShapedGregtechRecipe(
- CI.emitter_EV, CI.circuitTier4, CI.emitter_EV,
- CI.component_Plate[6], CI.machineHull_EV, CI.component_Plate[6],
- CI.sensor_EV, CI.fieldGenerator_EV, CI.sensor_EV,
- GregtechItemList.Charger_EV.get(1));
- RecipeUtils.addShapedGregtechRecipe(
- CI.emitter_IV, CI.circuitTier5, CI.emitter_IV,
- CI.component_Plate[7], CI.machineHull_IV, CI.component_Plate[7],
- CI.sensor_IV, CI.fieldGenerator_IV, CI.sensor_IV,
- GregtechItemList.Charger_IV.get(1));
- RecipeUtils.addShapedGregtechRecipe(
- CI.emitter_LuV, CI.circuitTier6, CI.emitter_LuV,
- CI.component_Plate[8], CI.machineHull_LuV, CI.component_Plate[8],
- CI.sensor_LuV, CI.fieldGenerator_LuV, CI.sensor_LuV,
- GregtechItemList.Charger_LuV.get(1));
- RecipeUtils.addShapedGregtechRecipe(
- CI.emitter_ZPM, CI.circuitTier7, CI.emitter_ZPM,
- CI.component_Plate[9], CI.machineHull_ZPM, CI.component_Plate[9],
- CI.sensor_ZPM, CI.fieldGenerator_ZPM, CI.sensor_ZPM,
- GregtechItemList.Charger_ZPM.get(1));
- RecipeUtils.addShapedGregtechRecipe(
- CI.emitter_UV, CI.circuitTier8, CI.emitter_UV,
- CI.component_Plate[10], CI.machineHull_UV, CI.component_Plate[10],
- CI.sensor_UV, CI.fieldGenerator_UV, CI.sensor_UV,
- GregtechItemList.Charger_UV.get(1));
- RecipeUtils.addShapedGregtechRecipe(
- CI.emitter_MAX, CI.circuitTier9, CI.emitter_MAX,
- CI.component_Plate[11], CI.machineHull_MAX, CI.component_Plate[11],
- CI.sensor_MAX, CI.fieldGenerator_MAX, CI.sensor_MAX,
- GregtechItemList.Charger_MAX.get(1));
@@ -1576,17 +1429,60 @@ public class RECIPES_Machines {
}
-
+ int aCostMultiplier = GTNH ? 2 : 1;
//Mystic Frame
- Logger.RECIPE("[Inspection] Portal Frame");
- if (RecipeUtils.addShapedGregtechRecipe(
- "circuitMaster", ItemList.Field_Generator_MV.get(1, CI.circuitTier7), "circuitElite",
- CI.craftingToolScrewdriver, GregtechItemList.Casing_Multi_Use.get(1), CI.craftingToolWrench,
- ItemList.Sensor_HV.get(1, CI.circuitTier7), ItemList.Field_Generator_HV.get(1, CI.circuitTier7), ItemList.Emitter_HV.get(1, CI.circuitTier7),
- ItemUtils.getSimpleStack(Dimension_Everglades.blockPortalFrame, 2))){
- Logger.INFO("Added a recipe for the Toxic Everglades Portal frame");
+ CORE.RA.addSixSlotAssemblingRecipe(
+ new ItemStack[] {
+ GregtechItemList.Casing_Multi_Use.get(1),
+ ItemList.Field_Generator_MV.get(1, CI.circuitTier7),
+ ItemList.Field_Generator_HV.get(1, CI.circuitTier7),
+ ItemList.Emitter_HV.get(1, CI.circuitTier7),
+ ItemList.Sensor_HV.get(1, CI.circuitTier7),
+ CI.getTieredComponent(OrePrefixes.plate, 7, 8 * aCostMultiplier),
+ CI.getTieredComponent(OrePrefixes.wireGt08, 8, 4 * aCostMultiplier),
+ },
+ CI.getTieredFluid(6, (144 * 8)), //Input Fluid
+ ItemUtils.getSimpleStack(Dimension_Everglades.blockPortalFrame, 2),
+ 45 * 20 * 1 * (6),
+ MaterialUtils.getVoltageForTier(6));
+
+
+ //Player Doors
+ ItemStack[] aDoorInputs = new ItemStack[] {
+ ItemUtils.getSimpleStack(Blocks.log2),
+ ItemUtils.getSimpleStack(Blocks.iron_block),
+ ItemUtils.getSimpleStack(Blocks.glass),
+ ItemUtils.getSimpleStack(Blocks.packed_ice),
+ ItemUtils.getSimpleStack(Blocks.cactus),
+ };
+ ItemStack[] aDoorOutputs = new ItemStack[] {
+ ItemUtils.getSimpleStack(ModBlocks.blockPlayerDoorWooden),
+ ItemUtils.getSimpleStack(ModBlocks.blockPlayerDoorIron),
+ ItemUtils.getSimpleStack(ModBlocks.blockPlayerDoorCustom_Glass),
+ ItemUtils.getSimpleStack(ModBlocks.blockPlayerDoorCustom_Ice),
+ ItemUtils.getSimpleStack(ModBlocks.blockPlayerDoorCustom_Cactus),
+ };
+
+ for (int y = 0; y < aDoorInputs.length; y++) {
+ CORE.RA.addSixSlotAssemblingRecipe(
+ new ItemStack[] {
+ ItemUtils.getSimpleStack(Items.iron_door),
+ aDoorInputs[y],
+ ItemList.Sensor_LV.get(1, CI.circuitTier7),
+ CI.getTieredComponent(OrePrefixes.plate, 1, 2 * aCostMultiplier),
+ CI.getTieredComponent(OrePrefixes.wireGt02, 1, 2 * aCostMultiplier),
+ ItemUtils.getSimpleStack(Items.redstone, 16)
+ },
+ CI.getTieredFluid(1, (144 * 2)), //Input Fluid
+ aDoorOutputs[y],
+ 100,
+ MaterialUtils.getVoltageForTier(1));
}
+
+
+
+
Logger.INFO("Done loading recipes for the Various machine blocks.");
@@ -1622,7 +1518,7 @@ public class RECIPES_Machines {
Item aBaseCore = ModItems.itemControlCore;
ItemStack[] aInputPrevTier = new ItemStack[] {
- ItemUtils.getItemStack("miscutils:item.itemBufferCore5", 1),
+ GTNH ? ItemUtils.getItemStack("miscutils:item.itemBufferCore3", 1) : ItemUtils.getItemStack("miscutils:item.itemBufferCore2", 1),
ItemUtils.simpleMetaStack(aBaseCore, 0, 1),
ItemUtils.simpleMetaStack(aBaseCore, 1, 1),
ItemUtils.simpleMetaStack(aBaseCore, 2, 1),
@@ -1653,7 +1549,7 @@ public class RECIPES_Machines {
aOutput[2],
aMat_A[3].getGear(GTNH ? 4 : 2),
aMat_B[5].getPlateDouble(GTNH ? 16 : 8),
- ItemUtils.getItemStack("miscutils:item.itemBufferCore"+(GTNH ? "5" : "4"), GTNH ? 4 : 2),
+ ItemUtils.getItemStack("miscutils:item.itemBufferCore"+(GTNH ? "4" : "3"), GTNH ? 4 : 2),
ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(GTNH ? 4 : 3), GTNH ? 10 : 5)
},
aMat_B[4].getFluid(144 * 16), //Input Fluid
@@ -1702,10 +1598,219 @@ public class RECIPES_Machines {
aOutput[i],
60 * 20 * 1 * (i+1),
MaterialUtils.getVoltageForTier(i));
+ }
+ }
+
+ private static void energyCores() {
+
+ //Simpler Recipes for normal Players, Force assembly crafting in GTNH
+ if (!GTNH) {
+ //Buffer Core
+ /*RecipeUtils.addShapedGregtechRecipe(
+ CI.component_Plate[1], cableTier1, CI.component_Plate[1],
+ "circuitPrimitive", "plateStaballoy", "circuitPrimitive",
+ CI.component_Plate[1], cableTier1, CI.component_Plate[1],
+ RECIPE_BufferCore_ULV);
+ RecipeUtils.addShapedGregtechRecipe(
+ CI.component_Plate[2], cableTier2, CI.component_Plate[2],
+ RECIPE_BufferCore_ULV, CI.machineHull_HV, RECIPE_BufferCore_ULV,
+ CI.component_Plate[2], cableTier2, CI.component_Plate[2],
+ RECIPE_BufferCore_LV);
+ RecipeUtils.addShapedGregtechRecipe(
+ CI.component_Plate[3], cableTier3, CI.component_Plate[3],
+ RECIPE_BufferCore_LV, CI.circuitTier2, RECIPE_BufferCore_LV,
+ CI.component_Plate[3], cableTier3, CI.component_Plate[3],
+ RECIPE_BufferCore_MV);
+ RecipeUtils.addShapedGregtechRecipe(
+ CI.component_Plate[4], cableTier4, CI.component_Plate[4],
+ RECIPE_BufferCore_MV, CI.circuitTier3, RECIPE_BufferCore_MV,
+ CI.component_Plate[4], cableTier4, CI.component_Plate[4],
+ RECIPE_BufferCore_HV);
+ RecipeUtils.addShapedGregtechRecipe(
+ CI.component_Plate[5], cableTier5, CI.component_Plate[5],
+ RECIPE_BufferCore_HV, CI.circuitTier4, RECIPE_BufferCore_HV,
+ CI.component_Plate[5], cableTier5, CI.component_Plate[5],
+ RECIPE_BufferCore_EV);
+ RecipeUtils.addShapedGregtechRecipe(
+ CI.component_Plate[6], cableTier6, CI.component_Plate[6],
+ RECIPE_BufferCore_EV, CI.circuitTier5, RECIPE_BufferCore_EV,
+ CI.component_Plate[6], cableTier6, CI.component_Plate[6],
+ RECIPE_BufferCore_IV);
+ RecipeUtils.addShapedGregtechRecipe(
+ CI.component_Plate[7], cableTier7, CI.component_Plate[7],
+ RECIPE_BufferCore_IV, CI.circuitTier6, RECIPE_BufferCore_IV,
+ CI.component_Plate[7], cableTier7, CI.component_Plate[7],
+ RECIPE_BufferCore_LuV);
+ RecipeUtils.addShapedGregtechRecipe(
+ CI.component_Plate[8], cableTier8, CI.component_Plate[8],
+ RECIPE_BufferCore_LuV, CI.circuitTier7, RECIPE_BufferCore_LuV,
+ CI.component_Plate[8], cableTier8, CI.component_Plate[8],
+ RECIPE_BufferCore_ZPM);
+ RecipeUtils.addShapedGregtechRecipe(
+ CI.component_Plate[9], cableTier9, CI.component_Plate[9],
+ RECIPE_BufferCore_ZPM, CI.circuitTier8, RECIPE_BufferCore_ZPM,
+ CI.component_Plate[9], cableTier9, CI.component_Plate[9],
+ RECIPE_BufferCore_UV);
+ RecipeUtils.addShapedGregtechRecipe(
+ CI.component_Plate[10], cableTier10, CI.component_Plate[10],
+ RECIPE_BufferCore_UV, CI.circuitTier9, RECIPE_BufferCore_UV,
+ CI.component_Plate[10], cableTier10, CI.component_Plate[10],
+ RECIPE_BufferCore_MAX);*/
+
+
+ /*RecipeUtils.addShapedGregtechRecipe(
+ wireTier1, RECIPE_BufferCore_ULV, wireTier1,
+ wireTier1, CI.machineCasing_ULV, wireTier1,
+ CI.circuitPrimitive, CI.circuitTier1, CI.circuitPrimitive,
+ RECIPE_Buffer_ULV);
+ RecipeUtils.addShapedGregtechRecipe(
+ wireTier2, RECIPE_BufferCore_LV, wireTier2,
+ wireTier2, CI.machineCasing_LV, wireTier2,
+ CI.circuitTier1, RECIPE_BufferCore_LV, CI.circuitTier1,
+ RECIPE_Buffer_LV);
+ RecipeUtils.addShapedGregtechRecipe(
+ wireTier3, RECIPE_BufferCore_MV, wireTier3,
+ wireTier3, CI.machineCasing_MV, wireTier3,
+ CI.circuitTier2, RECIPE_BufferCore_MV, CI.circuitTier2,
+ RECIPE_Buffer_MV);
+ RecipeUtils.addShapedGregtechRecipe(
+ wireTier4, RECIPE_BufferCore_HV, wireTier4,
+ wireTier4, CI.machineCasing_HV, wireTier4,
+ CI.circuitTier3, RECIPE_BufferCore_HV, CI.circuitTier3,
+ RECIPE_Buffer_HV);
+ RecipeUtils.addShapedGregtechRecipe(
+ wireTier5, RECIPE_BufferCore_EV, wireTier5,
+ wireTier5, CI.machineCasing_EV, wireTier5,
+ CI.circuitTier4, RECIPE_BufferCore_EV, CI.circuitTier4,
+ RECIPE_Buffer_EV);
+ RecipeUtils.addShapedGregtechRecipe(
+ wireTier6, RECIPE_BufferCore_IV, wireTier6,
+ wireTier6, CI.machineCasing_IV, wireTier6,
+ CI.circuitTier5, RECIPE_BufferCore_IV, CI.circuitTier5,
+ RECIPE_Buffer_IV);
+ RecipeUtils.addShapedGregtechRecipe(
+ wireTier7, RECIPE_BufferCore_LuV, wireTier7,
+ wireTier7, CI.machineCasing_LuV, wireTier7,
+ CI.circuitTier6, RECIPE_BufferCore_LuV, CI.circuitTier6,
+ RECIPE_Buffer_LuV);
+ RecipeUtils.addShapedGregtechRecipe(
+ wireTier8, RECIPE_BufferCore_ZPM, wireTier8,
+ wireTier8, CI.machineCasing_ZPM, wireTier8,
+ CI.circuitTier7, RECIPE_BufferCore_ZPM, CI.circuitTier7,
+ RECIPE_Buffer_ZPM);
+ RecipeUtils.addShapedGregtechRecipe(
+ wireTier9, RECIPE_BufferCore_UV, wireTier9,
+ wireTier9, CI.machineCasing_UV, wireTier9,
+ CI.circuitTier8, RECIPE_BufferCore_UV, CI.circuitTier8,
+ RECIPE_Buffer_UV);
+ RecipeUtils.addShapedGregtechRecipe(
+ CI.component_Plate[11], RECIPE_BufferCore_MAX, CI.component_Plate[11],
+ wireTier10, CI.machineCasing_MAX, wireTier10,
+ CI.circuitTier9, RECIPE_BufferCore_MAX, CI.circuitTier9,
+ RECIPE_Buffer_MAX);*/
+ }
+
+
+ ItemStack[] aBufferOutput = new ItemStack[] {
+ RECIPE_Buffer_ULV, RECIPE_Buffer_LV, RECIPE_Buffer_MV,
+ RECIPE_Buffer_HV, RECIPE_Buffer_EV, RECIPE_Buffer_IV,
+ RECIPE_Buffer_LuV, RECIPE_Buffer_ZPM, RECIPE_Buffer_UV, RECIPE_Buffer_MAX };
+
+
+
+ ItemStack[] aOutput = new ItemStack[] {
+ ItemUtils.getItemStack("miscutils:item.itemBufferCore"+"1", 1),
+ ItemUtils.getItemStack("miscutils:item.itemBufferCore"+"2", 1),
+ ItemUtils.getItemStack("miscutils:item.itemBufferCore"+"3", 1),
+ ItemUtils.getItemStack("miscutils:item.itemBufferCore"+"4", 1),
+ ItemUtils.getItemStack("miscutils:item.itemBufferCore"+"5", 1),
+ ItemUtils.getItemStack("miscutils:item.itemBufferCore"+"6", 1),
+ ItemUtils.getItemStack("miscutils:item.itemBufferCore"+"7", 1),
+ ItemUtils.getItemStack("miscutils:item.itemBufferCore"+"8", 1),
+ ItemUtils.getItemStack("miscutils:item.itemBufferCore"+"9", 1),
+ ItemUtils.getItemStack("miscutils:item.itemBufferCore"+"10", 1)
+ };
+
+ int aCostMultiplier = GTNH ? 4 : 1;
+
+ for (int i = 0; i < 10; i++) {
+
+ ItemStack aPrevTier = (i == 0 ? CI.getTieredMachineHull(GTNH ? 2 : 1) : aOutput[i-1]);
+ aPrevTier.stackSize = GTNH ? 2 : 1;
+ int aTier = (i + 1);
+ CORE.RA.addSixSlotAssemblingRecipe(
+ new ItemStack[] {
+ aPrevTier,
+ CI.getTieredComponent(OrePrefixes.plate, aTier, 4 * aCostMultiplier),
+ CI.getTieredComponent(OrePrefixes.cableGt04, i, 2 * aCostMultiplier),
+ CI.getTieredComponent(OrePrefixes.circuit, aTier, 2 * aCostMultiplier),
+ CI.getTieredComponent(OrePrefixes.screw, aTier, 6 * aCostMultiplier),
+ CI.getTieredComponent(OrePrefixes.bolt, i, 12 * (GTNH ? 2 : 1)),
+ },
+ CI.getTieredFluid(i, (144 * 4 * aTier)), //Input Fluid
+ aOutput[i],
+ 45 * 10 * 1 * (aTier),
+ MaterialUtils.getVoltageForTier(i));
+
+ //Energy Buffer
+ CORE.RA.addSixSlotAssemblingRecipe(
+ new ItemStack[] {
+ ItemUtils.getSimpleStack(aOutput[i], 4),
+ CI.getTieredComponent(OrePrefixes.plate, aTier, 8 * aCostMultiplier),
+ CI.getTieredComponent(OrePrefixes.wireGt08, i, 4 * aCostMultiplier),
+ CI.getTieredComponent(OrePrefixes.circuit, i, 4 * aCostMultiplier),
+ CI.getTieredComponent(OrePrefixes.stickLong, aTier, 4 * aCostMultiplier),
+ CI.getTieredComponent(OrePrefixes.gearGt, i, 5 * (GTNH ? 2 : 1)),
+ },
+ CI.getTieredFluid(aTier, (144 * 16 * aTier)), //Input Fluid
+ aBufferOutput[i],
+ 45 * 20 * 1 * (aTier),
+ MaterialUtils.getVoltageForTier(i));
+
}
}
+
+ private static void wirelessChargers() {
+
+ ItemStack[] aChargers = new ItemStack[] {
+ null,
+ GregtechItemList.Charger_LV.get(1),
+ GregtechItemList.Charger_MV.get(1),
+ GregtechItemList.Charger_HV.get(1),
+ GregtechItemList.Charger_EV.get(1),
+ GregtechItemList.Charger_IV.get(1),
+ GregtechItemList.Charger_LuV.get(1),
+ GregtechItemList.Charger_ZPM.get(1),
+ GregtechItemList.Charger_UV.get(1),
+ GregtechItemList.Charger_MAX.get(1)
+ };
+
+ int aCostMultiplier = GTNH ? 2 : 1;
+
+ for (int i = 0; i < 10; i++) {
+ if (i == 0) {
+ continue;
+ }
+ int aTier = (i + 1);
+ ItemStack[] aInputs = new ItemStack[] {
+ CI.getTieredMachineHull(i, 1 * aCostMultiplier),
+ CI.getEmitter(i, 2 * aCostMultiplier),
+ CI.getSensor(i, 2 * aCostMultiplier),
+ CI.getFieldGenerator(i, 1 * aCostMultiplier),
+ CI.getTieredComponent(OrePrefixes.plate, aTier, 4 * aCostMultiplier),
+ CI.getTieredComponent(OrePrefixes.circuit, aTier, 2 * aCostMultiplier),
+ };
+ CORE.RA.addSixSlotAssemblingRecipe(
+ aInputs,
+ CI.getAlternativeTieredFluid(i, (144 * 2 * aTier)), //Input Fluid
+ aChargers[i],
+ 45 * 10 * 1 * (aTier),
+ MaterialUtils.getVoltageForTier(i));
+
+ }
+ }
}
diff --git a/src/Java/gtPlusPlus/core/recipe/common/CI.java b/src/Java/gtPlusPlus/core/recipe/common/CI.java
index dc156c6f91..13a30a510c 100644
--- a/src/Java/gtPlusPlus/core/recipe/common/CI.java
+++ b/src/Java/gtPlusPlus/core/recipe/common/CI.java
@@ -1,29 +1,31 @@
package gtPlusPlus.core.recipe.common;
-import net.minecraft.init.Blocks;
-import net.minecraft.init.Items;
-import net.minecraft.item.ItemStack;
-
import gregtech.api.enums.ItemList;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.util.GT_ModHandler;
-
+import gregtech.api.util.GT_Utility;
import gtPlusPlus.api.objects.Logger;
-import gtPlusPlus.core.item.ModItems;
import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.lib.LoadedMods;
import gtPlusPlus.core.material.ALLOY;
+import gtPlusPlus.core.material.ELEMENT;
import gtPlusPlus.core.material.Material;
import gtPlusPlus.core.recipe.LOADER_Machine_Components;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
+import gtPlusPlus.xmod.eio.material.MaterialEIO;
import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList;
import ic2.core.Ic2Items;
+import net.minecraft.init.Blocks;
+import net.minecraft.init.Items;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.FluidStack;
public class CI {
//null
- public static ItemStack _NULL = ItemUtils.getSimpleStack(ModItems.AAA_Broken);
+ public static ItemStack _NULL = ItemUtils.getErrorStack(1);
//bits
public static long bits = GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE
@@ -520,5 +522,630 @@ public class CI {
public static ItemStack emptyCells(int i) {
return ItemUtils.getEmptyCell(i);
}
+
+
+
+ /*
+ *
+ */
+
+ private static final Material[] aMaterial_Main = new Material[] {
+ MaterialEIO.REDSTONE_ALLOY,
+ ALLOY.POTIN,
+ ALLOY.ZIRCONIUM_CARBIDE,
+ ALLOY.EGLIN_STEEL,
+ ALLOY.INCONEL_792,
+ ALLOY.TUNGSTEN_TITANIUM_CARBIDE,
+ ALLOY.NITINOL_60,
+ ALLOY.ZERON_100,
+ ALLOY.PIKYONIUM,
+ ELEMENT.STANDALONE.ADVANCED_NITINOL,
+ ALLOY.ABYSSAL,
+ ALLOY.QUANTUM
+ };
+
+ private static final Material[] aMaterial_Secondary = new Material[] {
+ ELEMENT.getInstance().LEAD,
+ ALLOY.TUMBAGA,
+ ALLOY.SILICON_CARBIDE,
+ ALLOY.TUNGSTEN_CARBIDE,
+ ALLOY.INCONEL_690,
+ ALLOY.STELLITE,
+ ALLOY.ARCANITE,
+ ALLOY.LAFIUM,
+ ALLOY.CINOBITE,
+ ALLOY.TITANSTEEL,
+ ALLOY.OCTIRON,
+ ELEMENT.STANDALONE.CELESTIAL_TUNGSTEN
+ };
+
+ private static final Material[] aMaterial_Tertiary = new Material[] {
+ ELEMENT.getInstance().IRON,
+ ALLOY.STEEL,
+ ELEMENT.getInstance().ALUMINIUM,
+ ALLOY.STAINLESSSTEEL,
+ ELEMENT.getInstance().TUNGSTEN,
+ ALLOY.HASTELLOY_N,
+ ALLOY.ENERGYCRYSTAL,
+ ALLOY.TRINIUM_NAQUADAH_CARBON,
+ ALLOY.TRINIUM_REINFORCED_STEEL, //Arceus
+ ALLOY.TITANSTEEL,
+ ELEMENT.STANDALONE.ASTRAL_TITANIUM,
+ ELEMENT.STANDALONE.CELESTIAL_TUNGSTEN
+ };
+
+ private static final Materials[] aMaterial_Cables = new Materials[] {
+ (CORE.ConfigSwitches.enableCustom_Cables && LoadedMods.EnderIO) ? Materials.RedstoneAlloy : CORE.GTNH ? Materials.Lead : Materials.Tin,
+ Materials.Cobalt,
+ Materials.AnnealedCopper,
+ Materials.Gold,
+ Materials.Titanium,
+ Materials.Nichrome,
+ Materials.Platinum,
+ Materials.YttriumBariumCuprate,
+ Materials.Naquadah,
+ Materials.Duranium,
+ Materials.Superconductor,
+ };
+
+ private static final Materials[] aMaterial_Circuits = new Materials[] {
+ Materials.Primitive,
+ Materials.Basic,
+ Materials.Good,
+ Materials.Advanced,
+ Materials.Data,
+ Materials.Data,
+ Materials.Elite,
+ Materials.Master,
+ Materials.Ultimate,
+ Materials.Superconductor,
+ Materials.Infinite,
+ };
+
+ private static final Material[][] aMaster = new Material[][] {aMaterial_Main, aMaterial_Secondary, aMaterial_Tertiary};
+
+
+ public static FluidStack getTieredFluid(int aTier, int aAmount) {
+ return getTieredFluid(aTier, aAmount, 0);
+ }
+
+ public static FluidStack getAlternativeTieredFluid(int aTier, int aAmount) {
+ return getTieredFluid(aTier, aAmount, 1);
+ }
+
+ public static FluidStack getTertiaryTieredFluid(int aTier, int aAmount) {
+ return getTieredFluid(aTier, aAmount, 2);
+ }
+
+ public static FluidStack getTieredFluid(int aTier, int aAmount, int aType) {
+ ItemStack aCell = getTieredComponent(OrePrefixes.liquid, aTier, 1);
+ FluidStack a = GT_Utility.getFluidForFilledItem(aCell, true);
+ if (a == null) {
+ a = aMaster[aType][aTier].getFluid(aAmount);
+ }
+ a.amount = aAmount;
+ return a;
+ }
+
+ public static ItemStack getTieredComponent(OrePrefixes aPrefix, int aTier, int aAmount) {
+ aTier = Math.max(0, aTier);
+
+ Material m = null;
+
+
+
+
+
+
+ if (aPrefix == OrePrefixes.liquid) {
+ int aMatID = (aTier == 0 || aTier == 2 || aTier == 5 || aTier == 8 ? 0 : (aTier == 1 || aTier == 3 || aTier == 6 || aTier == 9 ? 1 : 2));
+ ItemStack aCell = aMaster[aMatID][aTier].getCell(aAmount);
+ return aCell;
+ }
+
+ if (aPrefix == OrePrefixes.circuit) {
+ if (aTier == 4) {
+ return ItemUtils.getSimpleStack(CI.getDataStick(), aAmount);
+ }
+ else if (aTier == 5) {
+ return ItemUtils.getSimpleStack(CI.getDataOrb(), aAmount);
+ }
+ return ItemUtils.getOrePrefixStack(OrePrefixes.circuit, aMaterial_Circuits[aTier], aAmount);
+ }
+
+ //Check for Cables first, catch SuperConductor case and swap to wire.
+ if (aPrefix == OrePrefixes.cableGt01 || aPrefix == OrePrefixes.cableGt02 || aPrefix == OrePrefixes.cableGt04 || aPrefix == OrePrefixes.cableGt08 || aPrefix == OrePrefixes.cableGt12) {
+ //Special Handler
+ if (aTier == 10) {
+ if (aPrefix == OrePrefixes.cableGt01) {
+ aPrefix = OrePrefixes.wireGt02;
+ }
+ else if (aPrefix == OrePrefixes.cableGt02) {
+ aPrefix = OrePrefixes.wireGt04;
+ }
+ else if (aPrefix == OrePrefixes.cableGt04) {
+ aPrefix = OrePrefixes.wireGt08;
+ }
+ else if (aPrefix == OrePrefixes.cableGt08) {
+ aPrefix = OrePrefixes.wireGt12;
+ }
+ else if (aPrefix == OrePrefixes.cableGt12) {
+ aPrefix = OrePrefixes.wireGt16;
+ }
+ }
+ else {
+ return ItemUtils.getOrePrefixStack(aPrefix, aMaterial_Cables[aTier], aAmount);
+ }
+
+
+ }
+ if (aPrefix == OrePrefixes.wireGt01 || aPrefix == OrePrefixes.wireGt02 || aPrefix == OrePrefixes.wireGt04 || aPrefix == OrePrefixes.wireGt08 || aPrefix == OrePrefixes.wireGt12 || aPrefix == OrePrefixes.wireGt16) {
+ return ItemUtils.getOrePrefixStack(aPrefix, aMaterial_Cables[aTier], aAmount);
+ }
+
+ if (aPrefix == OrePrefixes.pipeTiny || aPrefix == OrePrefixes.pipeSmall || aPrefix == OrePrefixes.pipe || aPrefix == OrePrefixes.pipeMedium || aPrefix == OrePrefixes.pipeLarge || aPrefix == OrePrefixes.pipeHuge) {
+ if (aTier == 0) {
+ return ItemUtils.getOrePrefixStack(aPrefix, Materials.Lead, aAmount);
+ }
+ else if (aTier == 1) {
+ return ItemUtils.getOrePrefixStack(aPrefix, Materials.Steel, aAmount);
+ }
+ else if (aTier == 2) {
+ return ItemUtils.getOrePrefixStack(aPrefix, Materials.StainlessSteel, aAmount);
+ }
+ else if (aTier == 3) {
+ return ItemUtils.getOrePrefixStack(aPrefix, Materials.Tungsten, aAmount);
+ }
+ else if (aTier == 4) {
+ return ItemUtils.getOrePrefixStack(aPrefix, Materials.TungstenSteel, aAmount);
+ }
+ else if (aTier == 5) {
+ return ItemUtils.getOrePrefixStack(aPrefix, ALLOY.MARAGING350, aAmount);
+ }
+ else if (aTier == 6) {
+ return ItemUtils.getOrePrefixStack(aPrefix, ALLOY.STABALLOY, aAmount);
+ }
+ else if (aTier == 7) {
+ return ItemUtils.getOrePrefixStack(aPrefix, ALLOY.HASTELLOY_X, aAmount);
+ }
+ else if (aTier == 8) {
+ return ItemUtils.getOrePrefixStack(aPrefix, Materials.Ultimate, aAmount);
+ }
+ else if (aTier == 9) {
+ return ItemUtils.getOrePrefixStack(OrePrefixes.pipeMedium, Materials.Superconductor, aAmount);
+ }
+ else if (aTier == 10) {
+ return ItemUtils.getOrePrefixStack(aPrefix, Materials.Europium, aAmount);
+ }
+ else {
+ return ItemUtils.getOrePrefixStack(aPrefix, Materials.Titanium, aAmount);
+ }
+ }
+
+ ItemStack aTempStack = null;
+
+ if (aPrefix == OrePrefixes.gear || aPrefix == OrePrefixes.gearGt) {
+ m = aMaster[0][aTier];
+ }
+ else if (aPrefix == OrePrefixes.rod || aPrefix == OrePrefixes.stick) {
+ m = aMaster[0][aTier];
+ }
+ else if (aPrefix == OrePrefixes.stickLong) {
+ m = aMaster[1][aTier];
+ }
+ else if (aPrefix == OrePrefixes.bolt) {
+ m = aMaster[2][aTier];
+ }
+ else if (aPrefix == OrePrefixes.screw) {
+ m = aMaster[0][aTier];
+ }
+ else if (aPrefix == OrePrefixes.rotor) {
+ m = aMaster[1][aTier];
+ }
+ else if (aPrefix == OrePrefixes.frame || aPrefix == OrePrefixes.frameGt) {
+ m = aMaster[2][aTier];
+ }
+ else if (aPrefix == OrePrefixes.ingot) {
+ m = aMaster[1][aTier];
+ }
+ else if (aPrefix == OrePrefixes.plate) {
+ m = aMaster[0][aTier];
+ }
+ else if (aPrefix == OrePrefixes.plateDouble) {
+ m = aMaster[0][aTier];
+ }
+ else if (aPrefix == OrePrefixes.ring) {
+ m = aMaster[2][aTier];
+ }
+ else if (aPrefix == OrePrefixes.cell) {
+ m = aMaster[1][aTier];
+ }
+ else {
+ m = aMaterial_Main[aTier];
+ }
+
+ ItemStack aReturn = ItemUtils.getOrePrefixStack(aPrefix, m, aAmount);
+
+ //If Invalid, Try First Material
+ if (!ItemUtils.checkForInvalidItems(aReturn)) {
+ m = aMaster[0][aTier];
+ aReturn = ItemUtils.getOrePrefixStack(aPrefix, m, aAmount);
+
+ //If Invalid, Try Second Material
+ if (!ItemUtils.checkForInvalidItems(aReturn)) {
+ m = aMaster[1][aTier];
+ aReturn = ItemUtils.getOrePrefixStack(aPrefix, m, aAmount);
+
+ //If Invalid, Try Third Material
+ if (!ItemUtils.checkForInvalidItems(aReturn)) {
+ m = aMaster[2][aTier];
+ aReturn = ItemUtils.getOrePrefixStack(aPrefix, m, aAmount);
+
+ //All Invalid? Ok, shit.
+ //Let's add a special error ingot.
+ if (!ItemUtils.checkForInvalidItems(aReturn)) {
+ aReturn = ItemUtils.getErrorStack(1, (aPrefix.toString()+m.getLocalizedName()+" x"+aAmount));
+ }
+ }
+ }
+ }
+
+ return aReturn;
+
+
+ }
+
+ public static ItemStack getElectricMotor(int aTier, int aSize) {
+ ItemStack aType;
+ int aLazyTier = 0;
+ if (aTier == aLazyTier++) {
+ aType = CI.electricMotor_ULV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.electricMotor_LV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.electricMotor_MV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.electricMotor_HV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.electricMotor_EV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.electricMotor_IV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.electricMotor_LuV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.electricMotor_ZPM;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.electricMotor_UV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.electricMotor_MAX;
+ }
+ else {
+ aType = CI.electricMotor_LV;
+ }
+ return ItemUtils.getSimpleStack(aType, aSize);
+ }
+
+ public static ItemStack getElectricPiston(int aTier, int aSize) {
+ ItemStack aType;
+ int aLazyTier = 0;
+ if (aTier == aLazyTier++) {
+ aType = CI.electricPiston_ULV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.electricPiston_LV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.electricPiston_MV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.electricPiston_HV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.electricPiston_EV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.electricPiston_IV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.electricPiston_LuV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.electricPiston_ZPM;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.electricPiston_UV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.electricPiston_MAX;
+ }
+ else {
+ aType = CI.electricPiston_LV;
+ }
+ return ItemUtils.getSimpleStack(aType, aSize);
+ }
+
+ public static ItemStack getElectricPump(int aTier, int aSize) {
+ ItemStack aType;
+ int aLazyTier = 0;
+ if (aTier == aLazyTier++) {
+ aType = CI.electricPump_ULV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.electricPump_LV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.electricPump_MV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.electricPump_HV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.electricPump_EV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.electricPump_IV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.electricPump_LuV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.electricPump_ZPM;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.electricPump_UV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.electricPump_MAX;
+ }
+ else {
+ aType = CI.electricPump_LV;
+ }
+ return ItemUtils.getSimpleStack(aType, aSize);
+ }
+
+ public static ItemStack getRobotArm(int aTier, int aSize) {
+ ItemStack aType;
+ int aLazyTier = 0;
+ if (aTier == aLazyTier++) {
+ aType = CI.robotArm_ULV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.robotArm_LV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.robotArm_MV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.robotArm_HV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.robotArm_EV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.robotArm_IV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.robotArm_LuV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.robotArm_ZPM;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.robotArm_UV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.robotArm_MAX;
+ }
+ else {
+ aType = CI.robotArm_LV;
+ }
+ return ItemUtils.getSimpleStack(aType, aSize);
+ }
+
+ public static ItemStack getConveyor(int aTier, int aSize) {
+ ItemStack aType;
+ int aLazyTier = 0;
+ if (aTier == aLazyTier++) {
+ aType = CI.conveyorModule_ULV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.conveyorModule_LV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.conveyorModule_MV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.conveyorModule_HV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.conveyorModule_EV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.conveyorModule_IV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.conveyorModule_LuV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.conveyorModule_ZPM;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.conveyorModule_UV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.conveyorModule_MAX;
+ }
+ else {
+ aType = CI.conveyorModule_LV;
+ }
+ return ItemUtils.getSimpleStack(aType, aSize);
+ }
+
+ public static ItemStack getEmitter(int aTier, int aSize) {
+ ItemStack aType;
+ int aLazyTier = 0;
+ if (aTier == aLazyTier++) {
+ aType = CI.emitter_ULV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.emitter_LV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.emitter_MV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.emitter_HV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.emitter_EV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.emitter_IV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.emitter_LuV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.emitter_ZPM;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.emitter_UV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.emitter_MAX;
+ }
+ else {
+ aType = CI.emitter_LV;
+ }
+ return ItemUtils.getSimpleStack(aType, aSize);
+ }
+
+ public static ItemStack getSensor(int aTier, int aSize) {
+ ItemStack aType;
+ int aLazyTier = 0;
+ if (aTier == aLazyTier++) {
+ aType = CI.sensor_ULV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.sensor_LV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.sensor_MV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.sensor_HV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.sensor_EV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.sensor_IV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.sensor_LuV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.sensor_ZPM;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.sensor_UV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.sensor_MAX;
+ }
+ else {
+ aType = CI.sensor_LV;
+ }
+ return ItemUtils.getSimpleStack(aType, aSize);
+ }
+
+ public static ItemStack getFieldGenerator(int aTier, int aSize) {
+ ItemStack aType;
+ int aLazyTier = 0;
+ if (aTier == aLazyTier++) {
+ aType = CI.fieldGenerator_ULV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.fieldGenerator_LV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.fieldGenerator_MV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.fieldGenerator_HV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.fieldGenerator_EV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.fieldGenerator_IV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.fieldGenerator_LuV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.fieldGenerator_ZPM;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.fieldGenerator_UV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.fieldGenerator_MAX;
+ }
+ else {
+ aType = CI.fieldGenerator_LV;
+ }
+ return ItemUtils.getSimpleStack(aType, aSize);
+ }
+
+
+
+ public static ItemStack getTieredMachineHull(int aTier, int aSize) {
+ ItemStack aType;
+ int aLazyTier = 0;
+ if (aTier == aLazyTier++) {
+ aType = CI.machineHull_ULV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.machineHull_LV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.machineHull_MV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.machineHull_HV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.machineHull_EV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.machineHull_IV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.machineHull_LuV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.machineHull_ZPM;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.machineHull_UV;
+ }
+ else if (aTier == aLazyTier++) {
+ aType = CI.machineHull_MAX;
+ }
+ else {
+ aType = CI.machineHull_LV;
+ }
+ return ItemUtils.getSimpleStack(aType, aSize);
+ }
}
diff --git a/src/Java/gtPlusPlus/core/tileentities/ModTileEntities.java b/src/Java/gtPlusPlus/core/tileentities/ModTileEntities.java
index 771283d686..da018675f3 100644
--- a/src/Java/gtPlusPlus/core/tileentities/ModTileEntities.java
+++ b/src/Java/gtPlusPlus/core/tileentities/ModTileEntities.java
@@ -3,6 +3,8 @@ package gtPlusPlus.core.tileentities;
import cpw.mods.fml.common.registry.GameRegistry;
import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.core.block.general.BlockSuperLight.TileEntitySuperLight;
+import gtPlusPlus.core.block.machine.Machine_SuperJukebox.TileEntitySuperJukebox;
import gtPlusPlus.core.lib.LoadedMods;
import gtPlusPlus.core.tileentities.general.*;
import gtPlusPlus.core.tileentities.machines.*;
@@ -25,7 +27,9 @@ public class ModTileEntities {
GameRegistry.registerTileEntity(TileEntityGenericSpawner.class, "TileEntityGenericSpawner");
GameRegistry.registerTileEntity(TileEntityCircuitProgrammer.class, "TileCircuitProgrammer");
GameRegistry.registerTileEntity(TileEntityPlayerDoorBase.class, "TilePlayerDoorBase");
- GameRegistry.registerTileEntity(TileEntityDecayablesChest.class, "TileDecayablesChest");
+ GameRegistry.registerTileEntity(TileEntityDecayablesChest.class, "TileDecayablesChest");
+ GameRegistry.registerTileEntity(TileEntitySuperJukebox.class, "TileEntitySuperJukebox");
+ GameRegistry.registerTileEntity(TileEntitySuperLight.class, "TileEntitySuperLight");
//Mod TEs
diff --git a/src/Java/gtPlusPlus/core/util/Utils.java b/src/Java/gtPlusPlus/core/util/Utils.java
index e2220f74f8..968de2f55a 100644
--- a/src/Java/gtPlusPlus/core/util/Utils.java
+++ b/src/Java/gtPlusPlus/core/util/Utils.java
@@ -485,7 +485,10 @@ public class Utils {
return true;
}
- public static File getMcDir() {
+ public static File getMcDir() {
+ if (Minecraft.getMinecraft() == null) {
+ return new File("testdir");
+ }
if ((MinecraftServer.getServer() != null) && MinecraftServer.getServer().isDedicatedServer()) {
return new File(".");
}
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java
index 425606dd8e..486cda42f9 100644
--- a/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java
+++ b/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java
@@ -1,26 +1,18 @@
package gtPlusPlus.core.util.minecraft;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.GameRegistry.UniqueIdentifier;
-
-import net.minecraft.block.Block;
-import net.minecraft.init.Items;
-import net.minecraft.inventory.IInventory;
-import net.minecraft.item.Item;
-import net.minecraft.item.Item.ToolMaterial;
-import net.minecraft.item.ItemStack;
-import net.minecraft.util.StatCollector;
-
import gregtech.api.enums.ItemList;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Utility;
-import gtPlusPlus.GTplusplus;
-import gtPlusPlus.api.objects.GregtechException;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.Pair;
import gtPlusPlus.api.objects.minecraft.BlockPos;
@@ -38,6 +30,14 @@ import gtPlusPlus.core.material.Material;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_DustGeneration;
+import net.minecraft.block.Block;
+import net.minecraft.init.Items;
+import net.minecraft.inventory.IInventory;
+import net.minecraft.item.Item;
+import net.minecraft.item.Item.ToolMaterial;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.StatCollector;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.oredict.OreDictionary;
@@ -50,9 +50,18 @@ public class ItemUtils {
public static ItemStack getSimpleStack(final Block x) {
return simpleMetaStack(Item.getItemFromBlock(x), 0, 1);
}
+
- public static ItemStack getSimpleStack(final Block x, int meta) {
- return simpleMetaStack(Item.getItemFromBlock(x), meta, 1);
+ public static ItemStack getSimpleStack(final Block x, int i) {
+ if (i == 0) {
+ return getSimpleStack(x, i, 1);
+ }
+
+ return getSimpleStack(x, 0, i);
+ }
+
+ public static ItemStack getSimpleStack(final Block x, int meta, int i) {
+ return simpleMetaStack(Item.getItemFromBlock(x), meta, i);
}
public static ItemStack getSimpleStack(final Item x, final int i) {
@@ -315,7 +324,7 @@ public class ItemUtils {
return returnValue;
}
Logger.INFO("Failed to find `" + oredictName + "` in OD.");
- return getErrorStack(amount);
+ return getErrorStack(amount, oredictName+" x"+amount);
//return getItemStackOfAmountFromOreDictNoBroken(mTemp, amount);
}
@@ -366,8 +375,7 @@ public class ItemUtils {
public static ItemStack getGregtechDust(final Materials material, final int amount) {
final ItemStack returnValue = GT_OreDictUnificator.get(OrePrefixes.dust, material, 1L);
if (returnValue != null) {
- if ((returnValue.getItem().getClass() != ModItems.AAA_Broken.getClass())
- || (returnValue.getItem() != ModItems.AAA_Broken)) {
+ if (ItemUtils.checkForInvalidItems(returnValue)) {
return returnValue.copy();
}
}
@@ -600,25 +608,40 @@ public class ItemUtils {
public static String getArrayStackNames(final ItemStack[] aStack) {
String itemNames = "Item Array: ";
- for (final ItemStack alph : aStack) {
-
+ int aPos = 0;
+ for (final ItemStack alph : aStack) {
+ if (alph == null) {
+ continue;
+ }
if (alph != null) {
final String temp = itemNames;
- itemNames = temp + ", " + alph.getDisplayName() + " x" + alph.stackSize;
- } else {
- final String temp = itemNames;
- itemNames = temp + ", " + "null" + " x" + "0";
+ itemNames = temp + (aPos > 0 ? ", " : "") + alph.getDisplayName() + " x" + alph.stackSize;
+ aPos++;
}
}
return itemNames;
}
public static String[] getArrayStackNamesAsArray(final ItemStack[] aStack) {
- final String[] itemNames = {};
+ final String[] itemNames = aStack == null ? new String[] {} : new String[aStack.length];
+ Logger.INFO(""+aStack.length);
+
+ if (aStack == null || aStack.length < 1) {
+ return itemNames;
+ }
+
int arpos = 0;
- for (final ItemStack alph : aStack) {
+ for (final ItemStack alph : aStack) {
+ if (alph == null) {
+ continue;
+ }
+ try {
itemNames[arpos] = alph.getDisplayName();
arpos++;
+ }
+ catch (Throwable t) {
+ t.printStackTrace();
+ }
}
return itemNames;
@@ -762,23 +785,23 @@ public class ItemUtils {
if (aGtStack == null) {
Logger.INFO(
"Failed to find `" + mPrefix + MaterialUtils.getMaterialName(mMat) + "` in OD. [Prefix Search]");
- return getErrorStack(mAmount);
+ return getErrorStack(mAmount, (mPrefix.toString()+MaterialUtils.getMaterialName(mMat)+" x"+mAmount));
} else {
return aGtStack;
}
}
- public static ItemStack getErrorStack(int mAmount) {
- //System.exit(1);
- try {
- //new GregtechException("Logging - [Issue #999]");
- }
- catch (Throwable t) {
- t.printStackTrace();
- }
+ public static ItemStack getErrorStack(int mAmount) {
+ return getErrorStack(mAmount, null);
+ }
- return getSimpleStack(ModItems.AAA_Broken, mAmount);
- //return null;
+ public static ItemStack getErrorStack(int mAmount, String aName) {
+ ItemStack g = getSimpleStack(ModItems.AAA_Broken, 1);
+ NBTUtils.setString(g, "Lore", EnumChatFormatting.RED+aName);
+ if (aName != null) {
+ NBTUtils.setBookTitle(g, EnumChatFormatting.YELLOW+"Maybe Alkalus should know about this");
+ }
+ return g;
}
public static ItemStack[] getStackOfAllOreDictGroup(String oredictname) {
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/gregtech/PollutionUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/gregtech/PollutionUtils.java
index d4f217bbfd..dde785cee6 100644
--- a/src/Java/gtPlusPlus/core/util/minecraft/gregtech/PollutionUtils.java
+++ b/src/Java/gtPlusPlus/core/util/minecraft/gregtech/PollutionUtils.java
@@ -10,18 +10,22 @@ import gregtech.api.interfaces.tileentity.IHasWorldObjectAndCoords;
import gregtech.common.GT_Proxy;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
-import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.chunk.Chunk;
public class PollutionUtils {
private static boolean mIsPollutionEnabled = true;
+ private static Method mAddPollution;
+ private static Method mAddPollution2;
+
+ private static Method mGetPollution;
+ private static Method mGetPollution2;
+
static {
if (CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK || CORE.GTNH) {
mIsPollutionEnabled = mPollution();
- }
- else {
+ } else {
mIsPollutionEnabled = false;
}
}
@@ -42,65 +46,123 @@ public class PollutionUtils {
public static boolean addPollution(IGregTechTileEntity te, int pollutionValue) {
if (mIsPollutionEnabled)
- try {
- Class<?> GT_Pollution = Class.forName("gregtech.common.GT_Pollution");
- if (GT_Pollution != null) {
- Method addPollution = GT_Pollution.getMethod("addPollution", IGregTechTileEntity.class, int.class);
- if (addPollution != null) {
- addPollution.invoke(null, te, pollutionValue);
- return true;
+ try {
+ if (te == null) {
+ return false;
}
+ if (mAddPollution != null) {
+ mAddPollution.invoke(null, te, pollutionValue);
+ }
+ Class<?> GT_Pollution = Class.forName("gregtech.common.GT_Pollution");
+ if (GT_Pollution != null) {
+ Method addPollution = GT_Pollution.getMethod("addPollution", IGregTechTileEntity.class, int.class);
+ if (addPollution != null) {
+ mAddPollution = addPollution;
+ addPollution.invoke(null, te, pollutionValue);
+ return true;
+ }
+ }
+ } catch (ClassNotFoundException | SecurityException | NoSuchMethodException | IllegalAccessException
+ | IllegalArgumentException | InvocationTargetException e) {
}
- } catch (ClassNotFoundException | SecurityException | NoSuchMethodException | IllegalAccessException
- | IllegalArgumentException | InvocationTargetException e) {
- }
return false;
}
- public static int getPollution(IGregTechTileEntity te) {
+ public static boolean addPollution(IHasWorldObjectAndCoords aTileOfSomeSort, int pollutionValue) {
if (mIsPollutionEnabled)
- try {
- Class<?> GT_Pollution = Class.forName("gregtech.common.GT_Pollution");
- if (GT_Pollution != null) {
- Method addPollution = GT_Pollution.getMethod("getPollution", IGregTechTileEntity.class);
- if (addPollution != null) {
- return (int) addPollution.invoke(null, te);
+ try {
+ if (aTileOfSomeSort == null) {
+ return false;
}
+ IHasWorldObjectAndCoords j = (IHasWorldObjectAndCoords) aTileOfSomeSort;
+ Chunk c = j.getWorld().getChunkFromBlockCoords(j.getXCoord(), j.getZCoord());
+ return addPollution(c, pollutionValue);
+ } catch (SecurityException | IllegalArgumentException e) {
}
- } catch (ClassNotFoundException | SecurityException | NoSuchMethodException | IllegalAccessException
- | IllegalArgumentException | InvocationTargetException e) {
- }
- return 0;
+ return false;
}
- public static boolean addPollution(Object aTileOfSomeSort, int pollutionValue) {
+ public static boolean addPollution(Chunk aChunk, int pollutionValue) {
if (mIsPollutionEnabled)
- try {
- Class<?> GT_Pollution = Class.forName("gregtech.common.GT_Pollution");
- if (GT_Pollution != null) {
- Method addPollution = GT_Pollution.getMethod("addPollution", Chunk.class, int.class);
- if (addPollution != null) {
- IHasWorldObjectAndCoords j = (IHasWorldObjectAndCoords) aTileOfSomeSort;
- if (j != null) {
- Chunk c = j.getWorld().getChunkFromBlockCoords(j.getXCoord(), j.getZCoord());
- addPollution.invoke(null, c, pollutionValue);
+ try {
+ if (aChunk == null) {
+ return false;
+ }
+ if (mAddPollution2 != null) {
+ mAddPollution2.invoke(null, aChunk, pollutionValue);
+ return true;
+ }
+ Class<?> GT_Pollution = Class.forName("gregtech.common.GT_Pollution");
+ if (GT_Pollution != null) {
+ Method addPollution = GT_Pollution.getMethod("addPollution", Chunk.class, int.class);
+ if (addPollution != null) {
+ mAddPollution2 = addPollution;
+ mAddPollution2.invoke(null, aChunk, pollutionValue);
return true;
- } else {
- TileEntity t = (TileEntity) aTileOfSomeSort;
- if (t != null) {
- Chunk c = t.getWorldObj().getChunkFromBlockCoords(t.xCoord, t.zCoord);
- addPollution.invoke(null, c, pollutionValue);
- return true;
- }
}
-
}
+ } catch (ClassNotFoundException | SecurityException | NoSuchMethodException | IllegalAccessException
+ | IllegalArgumentException | InvocationTargetException e) {
}
- } catch (ClassNotFoundException | SecurityException | NoSuchMethodException | IllegalAccessException
- | IllegalArgumentException | InvocationTargetException e) {
- }
return false;
+ }
+
+ public static boolean removePollution(IGregTechTileEntity te, int pollutionValue) {
+ return addPollution(te, -pollutionValue);
+ }
+
+ public static boolean removePollution(IHasWorldObjectAndCoords aTileOfSomeSort, int pollutionValue) {
+ return addPollution(aTileOfSomeSort, -pollutionValue);
+ }
+
+ public static boolean removePollution(Chunk aChunk, int pollutionValue) {
+ return addPollution(aChunk, -pollutionValue);
+ }
+
+ public static int getPollution(IGregTechTileEntity te) {
+ if (mIsPollutionEnabled)
+ try {
+ if (te == null) {
+ return 0;
+ }
+ if (mGetPollution != null) {
+ mGetPollution.invoke(null, te);
+ }
+ Class<?> GT_Pollution = Class.forName("gregtech.common.GT_Pollution");
+ if (GT_Pollution != null) {
+ Method addPollution = GT_Pollution.getMethod("getPollution", IGregTechTileEntity.class);
+ if (addPollution != null) {
+ mGetPollution = addPollution;
+ return (int) addPollution.invoke(null, te);
+ }
+ }
+ } catch (ClassNotFoundException | SecurityException | NoSuchMethodException | IllegalAccessException
+ | IllegalArgumentException | InvocationTargetException e) {
+ }
+ return 0;
+ }
+ public static int getPollution(Chunk te) {
+ if (mIsPollutionEnabled)
+ try {
+ if (te == null) {
+ return 0;
+ }
+ if (mGetPollution2 != null) {
+ mGetPollution2.invoke(null, te);
+ }
+ Class<?> GT_Pollution = Class.forName("gregtech.common.GT_Pollution");
+ if (GT_Pollution != null) {
+ Method addPollution = GT_Pollution.getMethod("getPollution", Chunk.class);
+ if (addPollution != null) {
+ mGetPollution2 = addPollution;
+ return (int) addPollution.invoke(null, te);
+ }
+ }
+ } catch (ClassNotFoundException | SecurityException | NoSuchMethodException | IllegalAccessException
+ | IllegalArgumentException | InvocationTargetException e) {
+ }
+ return 0;
}
}
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/gregtech/recipehandlers/GregtechRecipe.java b/src/Java/gtPlusPlus/core/util/minecraft/gregtech/recipehandlers/GregtechRecipe.java
index afba320fe7..635239bbfc 100644
--- a/src/Java/gtPlusPlus/core/util/minecraft/gregtech/recipehandlers/GregtechRecipe.java
+++ b/src/Java/gtPlusPlus/core/util/minecraft/gregtech/recipehandlers/GregtechRecipe.java
@@ -1,76 +1,3 @@
package gtPlusPlus.core.util.minecraft.gregtech.recipehandlers;
-import java.lang.reflect.Method;
-
-import net.minecraft.item.ItemStack;
-
-import gregtech.api.util.GT_ModHandler;
-
-import gtPlusPlus.api.objects.Logger;
-import gtPlusPlus.core.lib.CORE;
-
-public final class GregtechRecipe {
-
- public LibraryProxy ourProxy;
- public GregtechRecipe(){
- Logger.INFO("Initializing a recipe handler for different versions of Gregtech 5.");
- try {
- if (!CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK){
- this.ourProxy = new LibProxy1();
- Logger.INFO("Selecting GT 5.7/5.8 Recipe Set");
- }
- if (CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK){
- this.ourProxy = new LibProxy2();
- Logger.INFO("Selecting GT 5.9 Recipe Set");
- }
- } catch (final NoSuchMethodException e) {
- this.ourProxy = null;
- }
- }
-
- public boolean addSmeltingAndAlloySmeltingRecipe(final ItemStack aInput, final ItemStack aOutput) {
- Logger.WARNING("Adding a GT Furnace/Alloy Smelter Recipe"+"| Input:"+aInput.getDisplayName()+" | Output:"+aOutput.getDisplayName()+" |");
- return this.ourProxy.addSmeltingAndAlloySmeltingRecipe(aInput, aOutput);
- }
-
-}
-
-abstract class LibraryProxy { // can also be interface unless you want to have common code here
- abstract public boolean addSmeltingAndAlloySmeltingRecipe(ItemStack aInput, ItemStack aOutput);
-}
-
-class LibProxy1 extends LibraryProxy {
- final Method m1;
-
- public LibProxy1() throws NoSuchMethodException {
- this.m1 = GT_ModHandler.class.getDeclaredMethod("addSmeltingAndAlloySmeltingRecipe", ItemStack.class, ItemStack.class);
- }
-
- @Override
- public boolean addSmeltingAndAlloySmeltingRecipe(final ItemStack aInput, final ItemStack aOutput) {
- try {
- //Logger.INFO("Trying with Gt 5.7/5.8 Method.");
- return (boolean) this.m1.invoke(null, aInput, aOutput);
- } catch (final Exception e) {
- throw new RuntimeException(e);
- }
- }
-}
-
-class LibProxy2 extends LibraryProxy {
- final Method m2;
-
- public LibProxy2() throws NoSuchMethodException {
- this.m2 = GT_ModHandler.class.getDeclaredMethod("addSmeltingAndAlloySmeltingRecipe", ItemStack.class, ItemStack.class, boolean.class);
- }
-
- @Override
- public boolean addSmeltingAndAlloySmeltingRecipe(final ItemStack aInput, final ItemStack aOutput) {
- try {
- //Logger.INFO("Trying with Gt 5.9 Method.");
- return (boolean) this.m2.invoke(null, aInput, aOutput, true);
- } catch (final Exception e) {
- throw new RuntimeException(e);
- }
- }
-} \ No newline at end of file
+public final class GregtechRecipe {} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/plugin/waila/Core_WailaPlugin.java b/src/Java/gtPlusPlus/plugin/waila/Core_WailaPlugin.java
new file mode 100644
index 0000000000..e3af6d9681
--- /dev/null
+++ b/src/Java/gtPlusPlus/plugin/waila/Core_WailaPlugin.java
@@ -0,0 +1,49 @@
+package gtPlusPlus.plugin.waila;
+
+import gtPlusPlus.api.interfaces.IPlugin;
+import gtPlusPlus.core.lib.LoadedMods;
+import gtPlusPlus.plugin.manager.Core_Manager;
+
+public class Core_WailaPlugin implements IPlugin {
+
+ final static Core_WailaPlugin mInstance;
+ static boolean mActive = false;
+
+ static {
+ mInstance = new Core_WailaPlugin();
+ mInstance.log("Preparing "+mInstance.getPluginName()+" for use.");
+ }
+
+ Core_WailaPlugin() {
+ Core_Manager.registerPlugin(this);
+ }
+
+ @Override
+ public boolean preInit() {
+ if (LoadedMods.Waila) {
+ mActive = true;
+ }
+ return mActive;
+ }
+
+ @Override
+ public boolean init() {
+ return mActive;
+ }
+
+ @Override
+ public boolean postInit() {
+ return mActive;
+ }
+
+ @Override
+ public String getPluginName() {
+ return "GT++ WAILA module";
+ }
+
+ @Override
+ public String getPluginAbbreviation() {
+ return "Look";
+ }
+
+}
diff --git a/src/Java/gtPlusPlus/preloader/asm/AsmConfig.java b/src/Java/gtPlusPlus/preloader/asm/AsmConfig.java
index d68ba3c2a6..aa1e382278 100644
--- a/src/Java/gtPlusPlus/preloader/asm/AsmConfig.java
+++ b/src/Java/gtPlusPlus/preloader/asm/AsmConfig.java
@@ -76,7 +76,11 @@ public class AsmConfig {
prop = config.get("general", "enableGcFuelChanges", true);
prop.comment = "Enable/Disable changes to Galacticraft Rocket Fuels.";
prop.setLanguageKey("gtpp.enableGcFuelChanges").setRequiresMcRestart(true);
- enableGcFuelChanges = prop.getBoolean(true);
+
+ //Disabled because Broken
+ //enableGcFuelChanges = prop.getBoolean(true);
+ enableGcFuelChanges = false;
+
propOrder.add(prop.getName());
diff --git a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BlockMachines_MetaPipeEntity.java b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BlockMachines_MetaPipeEntity.java
new file mode 100644
index 0000000000..39cd8c248e
--- /dev/null
+++ b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BlockMachines_MetaPipeEntity.java
@@ -0,0 +1,266 @@
+package gtPlusPlus.preloader.asm.transformers;
+
+import static org.objectweb.asm.Opcodes.*;
+
+import java.io.IOException;
+import org.apache.logging.log4j.Level;
+import org.objectweb.asm.ClassReader;
+import org.objectweb.asm.ClassVisitor;
+import org.objectweb.asm.ClassWriter;
+import org.objectweb.asm.Label;
+import org.objectweb.asm.MethodVisitor;
+
+import cpw.mods.fml.relauncher.FMLRelaunchLog;
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.SubTag;
+import gregtech.api.metatileentity.BaseMetaPipeEntity;
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.preloader.DevHelper;
+import gtPlusPlus.preloader.asm.AsmConfig;
+import gtPlusPlus.xmod.gregtech.common.Meta_GT_Proxy;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.World;
+
+public class ClassTransformer_GT_BlockMachines_MetaPipeEntity {
+
+ //The qualified name of the class we plan to transform.
+ //gregtech/common/blocks/GT_Block_Machines
+
+ private final boolean isValid;
+ private final ClassReader reader;
+ private final ClassWriter writer;
+
+ /**
+ * Utility Functions
+ */
+
+ public static String getHarvestTool(int aMeta) {
+ //FMLRelaunchLog.log("[GT++ ASM] Gregtech getTileEntityBaseType Patch", Level.INFO, "Attempting to call getHarvestTool. Meta: "+aMeta);
+ if (aMeta >= 8 && aMeta <= 11) {
+ return "cutter";
+ }
+ return "wrench";
+ }
+
+ /**
+ * This determines the BaseMetaTileEntity belonging to this MetaTileEntity by using the Meta ID of the Block itself.
+ * <p/>
+ * 0 = BaseMetaTileEntity, Wrench lvl 0 to dismantle
+ * 1 = BaseMetaTileEntity, Wrench lvl 1 to dismantle
+ * <p/>
+ * 2 = BaseMetaTileEntity, Wrench lvl 2 to dismantle
+ * 3 = BaseMetaTileEntity, Wrench lvl 3 to dismantle
+ * <p/>
+ * 4 = BaseMetaPipeEntity, Wrench lvl 0 to dismantle
+ * 5 = BaseMetaPipeEntity, Wrench lvl 1 to dismantle
+ * <p/>
+ * 6 = BaseMetaPipeEntity, Wrench lvl 2 to dismantle
+ * 7 = BaseMetaPipeEntity, Wrench lvl 3 to dismantle
+ * <p/>
+ * 8 = BaseMetaPipeEntity, Cutter lvl 0 to dismantle
+ * 9 = BaseMetaPipeEntity, Cutter lvl 1 to dismantle
+ * <p/>
+ * 10 = BaseMetaPipeEntity, Cutter lvl 2 to dismantle
+ * 11 = BaseMetaPipeEntity, Cutter lvl 3 to dismantle
+ * <p/>
+ * == Reserved For Alkalus (Was previously used to allow axes on wooden blocks, but that's fucking stupid.)
+ * <p/>
+ * 12 = BaseMetaTileEntity, Wrench lvl 0 to dismantle
+ * 13 = BaseMetaTileEntity, Wrench lvl 1 to dismantle
+ * <p/>
+ * 14 = BaseMetaTileEntity, Wrench lvl 2 to dismantle
+ * 15 = BaseMetaTileEntity, Wrench lvl 3 to dismantle
+ */
+ public static byte getTileEntityBaseType(Materials mMaterial) {
+ //FMLRelaunchLog.log("[GT++ ASM] Gregtech getTileEntityBaseType Patch", Level.INFO, "Attempting to call getTileEntityBaseType.");
+ return (byte) (mMaterial == null ? 4 : (byte) (4) + Math.max(0, Math.min(3, mMaterial.mToolQuality)));
+ }
+
+
+
+ /**
+ * This determines the BaseMetaTileEntity belonging to this MetaTileEntity by using the Meta ID of the Block itself.
+ * <p/>
+ * 0 = BaseMetaTileEntity, Wrench lvl 0 to dismantle
+ * 1 = BaseMetaTileEntity, Wrench lvl 1 to dismantle
+ * <p/>
+ * 2 = BaseMetaTileEntity, Wrench lvl 2 to dismantle
+ * 3 = BaseMetaTileEntity, Wrench lvl 3 to dismantle
+ * <p/>
+ * 4 = BaseMetaPipeEntity, Wrench lvl 0 to dismantle
+ * 5 = BaseMetaPipeEntity, Wrench lvl 1 to dismantle
+ * <p/>
+ * 6 = BaseMetaPipeEntity, Wrench lvl 2 to dismantle
+ * 7 = BaseMetaPipeEntity, Wrench lvl 3 to dismantle
+ * <p/>
+ * 8 = BaseMetaPipeEntity, Cutter lvl 0 to dismantle
+ * 9 = BaseMetaPipeEntity, Cutter lvl 1 to dismantle
+ * <p/>
+ * 10 = BaseMetaPipeEntity, Cutter lvl 2 to dismantle
+ * 11 = BaseMetaPipeEntity, Cutter lvl 3 to dismantle
+ * <p/>
+ * == Reserved For Alkalus (Was previously used to allow axes on wooden blocks, but that's fucking stupid.)
+ * <p/>
+ * 12 = BaseMetaTileEntity, Wrench lvl 2 to dismantle
+ * 13 = BaseMetaTileEntity, Wrench lvl 2 to dismantle
+ * <p/>
+ * 14 = BaseMetaTileEntity, Wrench lvl 3 to dismantle
+ * 15 = BaseMetaTileEntity, Wrench lvl 3 to dismantle
+ */
+ public static TileEntity createTileEntity(World aWorld, int aMeta) {
+ Logger.INFO("Creating Tile Entity with Meta of "+aMeta);
+ if (aMeta < 4) {
+ return GregTech_API.constructBaseMetaTileEntity();
+ } else if (aMeta < 12) {
+ return new BaseMetaPipeEntity();
+ } else {
+ return Meta_GT_Proxy.constructCustomGregtechMetaTileEntityByMeta(aMeta);
+ }
+ }
+
+
+
+ String aEntityPlayer;
+ String aEntityPlayerMP;
+ String aWorld;
+ int mMode;
+
+ public ClassTransformer_GT_BlockMachines_MetaPipeEntity(byte[] basicClass, boolean obfuscated, int aMode) {
+ mMode = aMode;
+ ClassReader aTempReader = null;
+ ClassWriter aTempWriter = null;
+
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech getTileEntityBaseType Patch", Level.INFO, "Attempting to patch in mode "+aMode+".");
+
+ aTempReader = new ClassReader(basicClass);
+ aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES);
+ aTempReader.accept(new localClassVisitor(aTempWriter), 0);
+
+ if (aTempReader != null && aTempWriter != null) {
+ isValid = true;
+ }
+ else {
+ isValid = false;
+ }
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech getTileEntityBaseType Patch", Level.INFO, "Valid patch? "+isValid+".");
+ reader = aTempReader;
+ writer = aTempWriter;
+
+
+ if (reader != null && writer != null) {
+ aEntityPlayer = obfuscated ? DevHelper.getObfuscated("net/minecraft/entity/player/EntityPlayer") : "net/minecraft/entity/player/EntityPlayer";
+ aEntityPlayerMP = obfuscated ? DevHelper.getObfuscated("net/minecraft/entity/player/EntityPlayerMP") : "net/minecraft/entity/player/EntityPlayerMP";
+ aWorld = obfuscated ? DevHelper.getObfuscated("net/minecraft/world/World") : "net/minecraft/world/World";
+
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech getTileEntityBaseType Patch", Level.INFO, "Attempting Method Injection.");
+ if (aMode == 0) {
+ injectMethod("getHarvestTool");
+ injectMethod("createTileEntity");
+ }
+ else {
+ injectMethod("getTileEntityBaseType");
+ }
+ }
+
+ }
+
+ public boolean isValidTransformer() {
+ return isValid;
+ }
+
+ public ClassReader getReader() {
+ return reader;
+ }
+
+ public ClassWriter getWriter() {
+ return writer;
+ }
+
+ public boolean injectMethod(String aMethodName) {
+ MethodVisitor mv;
+ boolean didInject = false;
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech getTileEntityBaseType Patch", Level.INFO, "Injecting "+aMethodName+".");
+ if (aMethodName.equals("getHarvestTool")) {
+ mv = getWriter().visitMethod(ACC_PUBLIC, "getHarvestTool", "(I)Ljava/lang/String;", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(63, l0);
+ mv.visitVarInsn(ILOAD, 1);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BlockMachines_MetaPipeEntity", "getHarvestTool", "(I)Ljava/lang/String;", false);
+ mv.visitInsn(ARETURN);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLocalVariable("this", "Lgregtech/common/blocks/GT_Block_Machines;", null, l0, l1, 0);
+ mv.visitLocalVariable("aMeta", "I", null, l0, l1, 1);
+ mv.visitMaxs(1, 2);
+ mv.visitEnd();
+ didInject = true;
+ }
+ else if (aMethodName.equals("createTileEntity")) {
+ mv = getWriter().visitMethod(ACC_PUBLIC, "createTileEntity", "(Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity;", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(442, l0);
+ mv.visitVarInsn(ALOAD, 1);
+ mv.visitVarInsn(ILOAD, 2);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BlockMachines_MetaPipeEntity", "createTileEntity", "(Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity;", false);
+ mv.visitInsn(ARETURN);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLocalVariable("this", "Lgregtech/common/blocks/GT_Block_Machines;", null, l0, l1, 0);
+ mv.visitLocalVariable("aWorld", "Lnet/minecraft/world/World;", null, l0, l1, 1);
+ mv.visitLocalVariable("aMeta", "I", null, l0, l1, 2);
+ mv.visitMaxs(2, 3);
+ mv.visitEnd();
+ didInject = true;
+
+ }
+ else if (aMethodName.equals("getTileEntityBaseType")) {
+
+ String aClassName = mMode == 1 ? "gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item" : mMode == 2 ? "gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Frame" : "gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid";
+ mv = getWriter().visitMethod(ACC_PUBLIC, "getTileEntityBaseType", "()B", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(37, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitFieldInsn(GETFIELD, ""+aClassName+"", "mMaterial", "Lgregtech/api/enums/Materials;");
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BlockMachines_MetaPipeEntity", "getTileEntityBaseType", "(Lgregtech/api/enums/Materials;)B", false);
+ mv.visitInsn(IRETURN);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLocalVariable("this", "L"+aClassName+";", null, l0, l1, 0);
+ mv.visitMaxs(1, 1);
+ mv.visitEnd();
+ didInject = true;
+
+ }
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech getTileEntityBaseType Patch", Level.INFO, "Method injection complete.");
+ return didInject;
+ }
+
+ public static final class localClassVisitor extends ClassVisitor {
+
+ public localClassVisitor(ClassVisitor cv) {
+ super(ASM5, cv);
+ }
+
+ @Override
+ public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
+ MethodVisitor methodVisitor;
+ if (name.equals("getHarvestTool") || name.equals("createTileEntity") || name.equals("getTileEntityBaseType")) {
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech getTileEntityBaseType Patch", Level.INFO, "Found method "+name+", removing.");
+ methodVisitor = null;
+ }
+ else {
+ methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
+ }
+ return methodVisitor;
+ }
+ }
+
+}
diff --git a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_GetHarvestTool.java b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_GetHarvestTool.java
new file mode 100644
index 0000000000..1e67619337
--- /dev/null
+++ b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_GetHarvestTool.java
@@ -0,0 +1,206 @@
+package gtPlusPlus.preloader.asm.transformers;
+
+import static org.objectweb.asm.Opcodes.*;
+
+import java.util.Random;
+
+import org.apache.logging.log4j.Level;
+import org.objectweb.asm.ClassReader;
+import org.objectweb.asm.ClassVisitor;
+import org.objectweb.asm.ClassWriter;
+import org.objectweb.asm.Label;
+import org.objectweb.asm.MethodVisitor;
+
+import cpw.mods.fml.relauncher.FMLRelaunchLog;
+import net.minecraft.block.Block;
+import net.minecraft.item.Item;
+
+public class ClassTransformer_IC2_GetHarvestTool {
+
+ private final boolean isValid;
+ private final ClassReader reader;
+ private final ClassWriter writer;
+ private final String className;
+
+ public static String getHarvestTool(int aMeta) {
+ return "wrench";
+ }
+
+ public static Item getItemDropped(Block aBlock, int meta, Random random, int fortune) {
+ return Item.getItemFromBlock(aBlock);
+ }
+
+ public static int damageDropped(int aMeta) {
+ return aMeta;
+ }
+
+ public ClassTransformer_IC2_GetHarvestTool(byte[] basicClass, boolean obfuscated, String aClassName) {
+ className = aClassName;
+ ClassReader aTempReader = null;
+ ClassWriter aTempWriter = null;
+
+ FMLRelaunchLog.log("[GT++ ASM] IC2 getHarvestTool Patch", Level.INFO,
+ "Attempting to patch in mode " + className + ".");
+
+ aTempReader = new ClassReader(basicClass);
+ aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES);
+ aTempReader.accept(new localClassVisitor(aTempWriter, className), 0);
+
+ if (aTempReader != null && aTempWriter != null) {
+ isValid = true;
+ } else {
+ isValid = false;
+ }
+ FMLRelaunchLog.log("[GT++ ASM] IC2 getHarvestTool Patch", Level.INFO, "Valid patch? " + isValid + ".");
+ reader = aTempReader;
+ writer = aTempWriter;
+
+ if (reader != null && writer != null) {
+ FMLRelaunchLog.log("[GT++ ASM] IC2 getHarvestTool Patch", Level.INFO, "Attempting Method Injection.");
+ injectMethod("getHarvestTool");
+
+ if (aClassName.equals("ic2.core.block.machine.BlockMachine2")
+ || aClassName.equals("ic2.core.block.machine.BlockMachine3")) {
+ injectMethod("getItemDropped");
+ injectMethod("damageDropped");
+ }
+ else if (aClassName.equals("ic2.core.block.generator.block.BlockGenerator")
+ || aClassName.equals("ic2.core.block.machine.BlockMachine")) {
+ injectMethod("damageDropped");
+ }
+ }
+
+ }
+
+ public boolean isValidTransformer() {
+ return isValid;
+ }
+
+ public ClassReader getReader() {
+ return reader;
+ }
+
+ public ClassWriter getWriter() {
+ return writer;
+ }
+
+ public boolean injectMethod(String aMethodName) {
+ MethodVisitor mv;
+ boolean didInject = false;
+ String aFormattedClassName = className.replace('.', '/');
+ ClassWriter cw = getWriter();
+
+
+ FMLRelaunchLog.log("[GT++ ASM] IC2 getHarvestTool Patch", Level.INFO, "Injecting " + aMethodName + ".");
+ if (aMethodName.equals("getHarvestTool")) {
+ mv = getWriter().visitMethod(ACC_PUBLIC, "getHarvestTool", "(I)Ljava/lang/String;", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(63, l0);
+ mv.visitVarInsn(ILOAD, 1);
+ mv.visitMethodInsn(INVOKESTATIC,
+ "gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_GetHarvestTool", "getHarvestTool",
+ "(I)Ljava/lang/String;", false);
+ mv.visitInsn(ARETURN);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLocalVariable("this", "L" + aFormattedClassName + ";", null, l0, l1, 0);
+ mv.visitLocalVariable("aMeta", "I", null, l0, l1, 1);
+ mv.visitMaxs(1, 2);
+ mv.visitEnd();
+ didInject = true;
+ }
+ else if (aMethodName.equals("getItemDropped")) {
+ mv = cw.visitMethod(ACC_PUBLIC, "getItemDropped", "(ILjava/util/Random;I)Lnet/minecraft/item/Item;", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(44, l0);
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitVarInsn(ILOAD, 1);
+ mv.visitVarInsn(ALOAD, 2);
+ mv.visitVarInsn(ILOAD, 3);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_GetHarvestTool", "getItemDropped", "(Lnet/minecraft/block/Block;ILjava/util/Random;I)Lnet/minecraft/item/Item;", false);
+ mv.visitInsn(ARETURN);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLocalVariable("this", "L"+aFormattedClassName+";", null, l0, l1, 0);
+ mv.visitLocalVariable("meta", "I", null, l0, l1, 1);
+ mv.visitLocalVariable("random", "Ljava/util/Random;", null, l0, l1, 2);
+ mv.visitLocalVariable("fortune", "I", null, l0, l1, 3);
+ mv.visitMaxs(4, 4);
+ mv.visitEnd();
+ didInject = true;
+ }
+ else if (aMethodName.equals("damageDropped")) {
+ mv = cw.visitMethod(ACC_PUBLIC, "damageDropped", "(I)I", null, null);
+ mv.visitCode();
+ Label l0 = new Label();
+ mv.visitLabel(l0);
+ mv.visitLineNumber(48, l0);
+ mv.visitVarInsn(ILOAD, 1);
+ mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_GetHarvestTool", "damageDropped", "(I)I", false);
+ mv.visitInsn(IRETURN);
+ Label l1 = new Label();
+ mv.visitLabel(l1);
+ mv.visitLocalVariable("this", "L"+aFormattedClassName+";", null, l0, l1, 0);
+ mv.visitLocalVariable("meta", "I", null, l0, l1, 1);
+ mv.visitMaxs(1, 2);
+ mv.visitEnd();
+ didInject = true;
+ }
+ FMLRelaunchLog.log("[GT++ ASM] IC2 getHarvestTool Patch", Level.INFO, "Method injection complete.");
+ return didInject;
+ }
+
+ public final class localClassVisitor extends ClassVisitor {
+
+ String aClassName;
+
+ public localClassVisitor(ClassVisitor cv, String aName) {
+ super(ASM5, cv);
+ aClassName = aName;
+ }
+
+ @Override
+ public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
+ MethodVisitor methodVisitor;
+ if (aClassName.equals("ic2.core.block.machine.BlockMachine2")
+ || aClassName.equals("ic2.core.block.machine.BlockMachine3")) {
+ if (name.equals("getItemDropped")) {
+ methodVisitor = null;
+ } else if (name.equals("damageDropped")) {
+ methodVisitor = null;
+ } else if (name.equals("getHarvestTool")) {
+ methodVisitor = null;
+ } else {
+ methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
+ }
+ }
+ else if (aClassName.equals("ic2.core.block.generator.block.BlockGenerator")
+ || aClassName.equals("ic2.core.block.machine.BlockMachine")) {
+ if (name.equals("damageDropped")) {
+ methodVisitor = null;
+ } else if (name.equals("getHarvestTool")) {
+ methodVisitor = null;
+ } else {
+ methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
+ }
+ }
+ else {
+ if (name.equals("getHarvestTool")) {
+ methodVisitor = null;
+ } else {
+ methodVisitor = super.visitMethod(access, name, desc, signature, exceptions);
+ }
+ }
+ if (methodVisitor == null) {
+ FMLRelaunchLog.log("[GT++ ASM] IC2 getHarvestTool Patch", Level.INFO,
+ "Found method " + name + ", removing.");
+ }
+ return methodVisitor;
+ }
+ }
+
+}
diff --git a/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java b/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java
index 8a8f0d86db..df9cd658be 100644
--- a/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java
+++ b/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java
@@ -2,6 +2,8 @@ package gtPlusPlus.preloader.asm.transformers;
import java.io.File;
import java.io.IOException;
+import java.util.Random;
+
import org.apache.logging.log4j.Level;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassWriter;
@@ -10,16 +12,24 @@ import cpw.mods.fml.relauncher.CoreModManager;
import cpw.mods.fml.relauncher.FMLRelaunchLog;
import cpw.mods.fml.relauncher.ReflectionHelper;
import galaxyspace.SolarSystem.core.configs.GSConfigDimensions;
+import net.minecraft.block.Block;
+import net.minecraft.item.Item;
import net.minecraft.launchwrapper.IClassTransformer;
import net.minecraft.launchwrapper.Launch;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.preloader.asm.AsmConfig;
import gtPlusPlus.preloader.asm.transformers.Preloader_ClassTransformer.OreDictionaryVisitor;
+@SuppressWarnings("static-access")
public class Preloader_Transformer_Handler implements IClassTransformer {
private final boolean mEnabled = false;
- public static final AsmConfig mConfig;
+ public static final AsmConfig mConfig;
+
+ private static final String class_Block_Machines = "gregtech.common.blocks.GT_Block_Machines";
+ private static final String class_GT_MetaPipeEntity_Item = "gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Item";
+ private static final String class_GT_MetaPipeEntity_Frame = "gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Frame";
+ private static final String class_GT_MetaPipeEntity_Fluid = "gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Fluid";
static {
mConfig = new AsmConfig(new File("config/GTplusplus/asm.cfg"));
@@ -27,6 +37,7 @@ public class Preloader_Transformer_Handler implements IClassTransformer {
System.out.println("[GT++ ASM] Is DevHelper Valid? "+gtPlusPlus.preloader.DevHelper.mIsValidHelper);
}
+ @SuppressWarnings("static-access")
public byte[] transform(String name, String transformedName, byte[] basicClass) {
@@ -93,11 +104,6 @@ public class Preloader_Transformer_Handler implements IClassTransformer {
}
}
- //Fix GT NBT Persistency issue
- if (transformedName.equals("gregtech.common.blocks.GT_Block_Machines")) {
- FMLRelaunchLog.log("[GT++ ASM] Gregtech NBT Persistency Patch", Level.INFO, "Transforming %s", transformedName);
- return new ClassTransformer_GT_BlockMachines_NBT(basicClass, probablyShouldBeFalse).getWriter().toByteArray();
- }
//Patching Meta Tile Tooltips
if (transformedName.equals("gregtech.common.blocks.GT_Item_Machines") && mConfig.enableGtTooltipFix) {
FMLRelaunchLog.log("[GT++ ASM] Gregtech Tooltip Patch", Level.INFO, "Transforming %s", transformedName);
@@ -105,7 +111,55 @@ public class Preloader_Transformer_Handler implements IClassTransformer {
}
+ if (transformedName.equals(class_Block_Machines)) {
+ //Fix GT NBT Persistency issue
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech NBT Persistency Patch", Level.INFO, "Transforming %s", transformedName);
+ byte[] g = new ClassTransformer_GT_BlockMachines_NBT(basicClass, probablyShouldBeFalse).getWriter().toByteArray();
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech getTileEntityBaseType Patch", Level.INFO, "Transforming %s", transformedName);
+ return new ClassTransformer_GT_BlockMachines_MetaPipeEntity(g, probablyShouldBeFalse, 0).getWriter().toByteArray();
+ }
+ if (transformedName.equals(class_GT_MetaPipeEntity_Item) || transformedName.equals(class_GT_MetaPipeEntity_Frame) || transformedName.equals(class_GT_MetaPipeEntity_Fluid)) {
+ FMLRelaunchLog.log("[GT++ ASM] Gregtech getTileEntityBaseType Patch", Level.INFO, "Transforming %s", transformedName);
+ int mode = 0;
+ if (transformedName.equals(class_GT_MetaPipeEntity_Item)) {
+ mode = 1;
+ }
+ else if (transformedName.equals(class_GT_MetaPipeEntity_Frame)) {
+ mode = 2;
+ }
+ else {
+ mode = 3;
+ }
+ return new ClassTransformer_GT_BlockMachines_MetaPipeEntity(basicClass, probablyShouldBeFalse, mode).getWriter().toByteArray();
+ }
+
+ String[] aIC2ClassNames = new String[] {
+ "ic2.core.block.BlockTileEntity",
+ "ic2.core.block.machine.BlockMachine",
+ "ic2.core.block.machine.BlockMachine2",
+ "ic2.core.block.machine.BlockMachine3",
+ "ic2.core.block.kineticgenerator.block.BlockKineticGenerator",
+ "ic2.core.block.heatgenerator.block.BlockHeatGenerator",
+ "ic2.core.block.generator.block.BlockGenerator",
+ "ic2.core.block.reactor.block.BlockReactorAccessHatch",
+ "ic2.core.block.reactor.block.BlockReactorChamber",
+ "ic2.core.block.reactor.block.BlockReactorFluidPort",
+ "ic2.core.block.reactor.block.BlockReactorRedstonePort",
+ "ic2.core.block.reactor.block.BlockReactorVessel",
+ };
+
+ //Fix IC2 Shit
+ for (String y : aIC2ClassNames) {
+ if (transformedName.equals(y)) {
+ //Fix GT NBT Persistency issue
+ FMLRelaunchLog.log("[GT++ ASM] IC2 getHarvestTool Patch", Level.INFO, "Transforming %s", transformedName);
+ return new ClassTransformer_IC2_GetHarvestTool(basicClass, probablyShouldBeFalse, transformedName).getWriter().toByteArray();
+ }
+ }
+
return basicClass;
}
+
+
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java b/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java
index def213ec7c..068f47e0c4 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java
@@ -96,6 +96,9 @@ public enum GregtechItemList implements GregtechItemContainer {
Carbyne_Tube_Finished,
Carbyne_Sheet_Finished,
+ //End Game Laser Engraver Lens
+ Laser_Lens_Special,
+
//----------------------------------------------------------------------------
@@ -332,6 +335,19 @@ public enum GregtechItemList implements GregtechItemContainer {
Hatch_Muffler_Adv_EV, Hatch_Muffler_Adv_IV, Hatch_Muffler_Adv_LuV,
Hatch_Muffler_Adv_ZPM, Hatch_Muffler_Adv_UV, Hatch_Muffler_Adv_MAX,
+ //Super Input Busses
+ Hatch_SuperBus_Input_ULV, Hatch_SuperBus_Input_LV, Hatch_SuperBus_Input_MV,
+ Hatch_SuperBus_Input_HV, Hatch_SuperBus_Input_EV, Hatch_SuperBus_Input_IV,
+ Hatch_SuperBus_Input_LuV, Hatch_SuperBus_Input_ZPM, Hatch_SuperBus_Input_UV,
+ Hatch_SuperBus_Input_MAX,
+
+ //Super Output Busses
+ Hatch_SuperBus_Output_ULV, Hatch_SuperBus_Output_LV, Hatch_SuperBus_Output_MV,
+ Hatch_SuperBus_Output_HV, Hatch_SuperBus_Output_EV, Hatch_SuperBus_Output_IV,
+ Hatch_SuperBus_Output_LuV, Hatch_SuperBus_Output_ZPM, Hatch_SuperBus_Output_UV,
+ Hatch_SuperBus_Output_MAX,
+
+
//----------------------------------------------------------------------------
@@ -429,6 +445,12 @@ public enum GregtechItemList implements GregtechItemContainer {
Machine_ZPM_Component_Maker,
Machine_UV_Component_Maker,
+ //Breakers
+ BreakerBox_ULV, BreakerBox_LV, BreakerBox_MV,
+ BreakerBox_HV, BreakerBox_EV, BreakerBox_IV,
+ BreakerBox_LuV, BreakerBox_ZPM, BreakerBox_UV,
+ BreakerBox_MAX,
+
//Solar Generators
GT_Solar_ULV, GT_Solar_LV, GT_Solar_MV,
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/gui/CONTAINER_Cyclotron.java b/src/Java/gtPlusPlus/xmod/gregtech/api/gui/CONTAINER_Cyclotron.java
new file mode 100644
index 0000000000..fff86ba7bd
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/gui/CONTAINER_Cyclotron.java
@@ -0,0 +1,232 @@
+package gtPlusPlus.xmod.gregtech.api.gui;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import gregtech.api.gui.GT_ContainerMetaTile_Machine;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.util.GT_LanguageManager;
+import java.util.Iterator;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.InventoryPlayer;
+import net.minecraft.inventory.ICrafting;
+
+public class CONTAINER_Cyclotron extends GT_ContainerMetaTile_Machine {
+
+ public int mActive = 0;
+ public int mMaxProgressTime = 0;
+ public int mProgressTime = 0;
+ public long mEnergy = 0;
+ public int mSteam = 0;
+ public int mSteamStorage = 0;
+ public int mStorage = 0;
+ public int mOutput = 0;
+ public int mInput = 0;
+ public int mID = 0;
+ public int mDisplayErrorCode = 0;
+ private int oActive = 0;
+ private int oMaxProgressTime = 0;
+ private int oProgressTime = 0;
+ private long oEnergy = 0;
+ private int oSteam = 0;
+ private int oSteamStorage = 0;
+ private int oStorage = 0;
+ private int oOutput = 0;
+ private int oInput = 0;
+ private int oID = 0;
+ private int oDisplayErrorCode = 0;
+ private int mTimer = 0;
+
+ public CONTAINER_Cyclotron(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) {
+ super(aInventoryPlayer, aTileEntity);
+ this.mTileEntity = aTileEntity;
+ if (this.mTileEntity != null && this.mTileEntity.getMetaTileEntity() != null) {
+ this.addSlots(aInventoryPlayer);
+ if (this.doesBindPlayerInventory()) {
+ this.bindPlayerInventory(aInventoryPlayer);
+ }
+
+ this.detectAndSendChanges();
+ } else {
+ aInventoryPlayer.player.openContainer = aInventoryPlayer.player.inventoryContainer;
+ }
+
+ }
+
+ public CONTAINER_Cyclotron(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity,
+ boolean doesBindInventory) {
+ super(aInventoryPlayer, aTileEntity);
+ this.mTileEntity = aTileEntity;
+ if (this.mTileEntity != null && this.mTileEntity.getMetaTileEntity() != null) {
+ this.addSlots(aInventoryPlayer);
+ if (this.doesBindPlayerInventory() && doesBindInventory) {
+ this.bindPlayerInventory(aInventoryPlayer);
+ }
+
+ this.detectAndSendChanges();
+ } else {
+ aInventoryPlayer.player.openContainer = aInventoryPlayer.player.inventoryContainer;
+ }
+
+ }
+
+ public void detectAndSendChanges() {
+ super.detectAndSendChanges();
+ if (!this.mTileEntity.isClientSide() && this.mTileEntity.getMetaTileEntity() != null) {
+ this.mStorage = (int) Math.min(2147483647L, this.mTileEntity.getEUCapacity());
+ this.mEnergy = this.mTileEntity.getStoredEU();
+ this.mSteamStorage = (int) Math.min(2147483647L, this.mTileEntity.getSteamCapacity());
+ this.mSteam = (int) Math.min(2147483647L, this.mTileEntity.getStoredSteam());
+ this.mOutput = (int) Math.min(2147483647L, this.mTileEntity.getOutputVoltage());
+ this.mInput = (int) Math.min(2147483647L, this.mTileEntity.getInputVoltage());
+ this.mDisplayErrorCode = this.mTileEntity.getErrorDisplayID();
+ this.mProgressTime = this.mTileEntity.getProgress();
+ this.mMaxProgressTime = this.mTileEntity.getMaxProgress();
+ this.mActive = this.mTileEntity.isActive() ? 1 : 0;
+ ++this.mTimer;
+ Iterator var2 = this.crafters.iterator();
+
+ while (true) {
+ ICrafting var1;
+ do {
+ if (!var2.hasNext()) {
+ this.oID = this.mID;
+ this.oSteam = this.mSteam;
+ this.oInput = this.mInput;
+ this.oActive = this.mActive;
+ this.oOutput = this.mOutput;
+ this.oEnergy = this.mEnergy;
+ this.oStorage = this.mStorage;
+ this.oSteamStorage = this.mSteamStorage;
+ this.oProgressTime = this.mProgressTime;
+ this.oMaxProgressTime = this.mMaxProgressTime;
+ this.oDisplayErrorCode = this.mDisplayErrorCode;
+ return;
+ }
+
+ var1 = (ICrafting) var2.next();
+ if (this.mTimer % 500 == 10 || this.oEnergy != this.mEnergy) {
+
+ int uEnergy = (int) Math.min(2147483647L, this.mTileEntity.getStoredEU());
+
+ var1.sendProgressBarUpdate(this, 0, uEnergy & '￿');
+ var1.sendProgressBarUpdate(this, 1, uEnergy >>> 16);
+ }
+
+ if (this.mTimer % 500 == 10 || this.oStorage != this.mStorage) {
+ var1.sendProgressBarUpdate(this, 2, this.mStorage & '￿');
+ var1.sendProgressBarUpdate(this, 3, this.mStorage >>> 16);
+ }
+
+ if (this.mTimer % 500 == 10 || this.oOutput != this.mOutput) {
+ var1.sendProgressBarUpdate(this, 4, this.mOutput);
+ }
+
+ if (this.mTimer % 500 == 10 || this.oInput != this.mInput) {
+ var1.sendProgressBarUpdate(this, 5, this.mInput);
+ }
+
+ if (this.mTimer % 500 == 10 || this.oDisplayErrorCode != this.mDisplayErrorCode) {
+ var1.sendProgressBarUpdate(this, 6, this.mDisplayErrorCode);
+ }
+
+ if (this.mTimer % 500 == 10 || this.oProgressTime != this.mProgressTime) {
+ var1.sendProgressBarUpdate(this, 11, this.mProgressTime & '￿');
+ var1.sendProgressBarUpdate(this, 12, this.mProgressTime >>> 16);
+ }
+
+ if (this.mTimer % 500 == 10 || this.oMaxProgressTime != this.mMaxProgressTime) {
+ var1.sendProgressBarUpdate(this, 13, this.mMaxProgressTime & '￿');
+ var1.sendProgressBarUpdate(this, 14, this.mMaxProgressTime >>> 16);
+ }
+
+ if (this.mTimer % 500 == 10 || this.oID != this.mID) {
+ var1.sendProgressBarUpdate(this, 15, this.mID);
+ }
+
+ if (this.mTimer % 500 == 10 || this.oActive != this.mActive) {
+ var1.sendProgressBarUpdate(this, 16, this.mActive);
+ }
+
+ if (this.mTimer % 500 == 10 || this.oSteam != this.mSteam) {
+ var1.sendProgressBarUpdate(this, 17, this.mSteam & '￿');
+ var1.sendProgressBarUpdate(this, 18, this.mSteam >>> 16);
+ }
+ } while (this.mTimer % 500 != 10 && this.oSteamStorage == this.mSteamStorage);
+
+ var1.sendProgressBarUpdate(this, 19, this.mSteamStorage & '￿');
+ var1.sendProgressBarUpdate(this, 20, this.mSteamStorage >>> 16);
+ }
+ }
+ }
+
+ @SideOnly(Side.CLIENT)
+ public void updateProgressBar(int par1, int par2) {
+ super.updateProgressBar(par1, par2);
+ switch (par1) {
+ case 0 :
+ this.mEnergy = this.mEnergy & -65536 | par2;
+ break;
+ case 1 :
+ this.mEnergy = this.mEnergy & '￿' | par2 << 16;
+ break;
+ case 2 :
+ this.mStorage = this.mStorage & -65536 | par2;
+ break;
+ case 3 :
+ this.mStorage = this.mStorage & '￿' | par2 << 16;
+ break;
+ case 4 :
+ this.mOutput = par2;
+ break;
+ case 5 :
+ this.mInput = par2;
+ break;
+ case 6 :
+ this.mDisplayErrorCode = par2;
+ case 7 :
+ case 8 :
+ case 9 :
+ case 10 :
+ default :
+ break;
+ case 11 :
+ this.mProgressTime = this.mProgressTime & -65536 | par2;
+ break;
+ case 12 :
+ this.mProgressTime = this.mProgressTime & '￿' | par2 << 16;
+ break;
+ case 13 :
+ this.mMaxProgressTime = this.mMaxProgressTime & -65536 | par2;
+ break;
+ case 14 :
+ this.mMaxProgressTime = this.mMaxProgressTime & '￿' | par2 << 16;
+ break;
+ case 15 :
+ this.mID = par2;
+ break;
+ case 16 :
+ this.mActive = par2;
+ break;
+ case 17 :
+ this.mSteam = this.mSteam & -65536 | par2;
+ break;
+ case 18 :
+ this.mSteam = this.mSteam & '￿' | par2 << 16;
+ break;
+ case 19 :
+ this.mSteamStorage = this.mSteamStorage & -65536 | par2;
+ break;
+ case 20 :
+ this.mSteamStorage = this.mSteamStorage & '￿' | par2 << 16;
+ }
+
+ }
+
+ public boolean canInteractWith(EntityPlayer player) {
+ return this.mTileEntity.isUseableByPlayer(player);
+ }
+
+ public String trans(String aKey, String aEnglish) {
+ return GT_LanguageManager.addStringLocalization("Interaction_DESCRIPTION_Index_" + aKey, aEnglish, false);
+ }
+} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/gui/basic/CONTAINER_PollutionCleaner.java b/src/Java/gtPlusPlus/xmod/gregtech/api/gui/basic/CONTAINER_PollutionCleaner.java
index 788fff4031..e3365935aa 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/gui/basic/CONTAINER_PollutionCleaner.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/gui/basic/CONTAINER_PollutionCleaner.java
@@ -14,6 +14,7 @@ import net.minecraft.item.ItemStack;
import gregtech.api.gui.*;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine;
+import gtPlusPlus.xmod.gregtech.common.tileentities.machines.basic.GregtechMetaAtmosphericReconditioner;
/**
* NEVER INCLUDE THIS FILE IN YOUR MOD!!!
@@ -23,6 +24,7 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachin
public class CONTAINER_PollutionCleaner extends GT_Container_BasicTank {
public boolean mFluidTransfer = false, mItemTransfer = false, mStuttering = false;
+ public int mReduction = 0;
public CONTAINER_PollutionCleaner(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) {
super(aInventoryPlayer, aTileEntity);
@@ -37,72 +39,11 @@ public class CONTAINER_PollutionCleaner extends GT_Container_BasicTank {
int tStartIndex = ((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).getInputSlot();
switch (((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).mInputSlotCount) {
- case 0:
- break;
- case 1: //Chemical Mixer
- //Add 3 Item Slots
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 7));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 7));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 7));
- //Add 6 Fluid Slots
- addSlotToContainer(new GT_Slot_Render(mTileEntity, tStartIndex++, 17, 25));
- addSlotToContainer(new GT_Slot_Render(mTileEntity, tStartIndex++, 35, 25));
- addSlotToContainer(new GT_Slot_Render(mTileEntity, tStartIndex++, 53, 25));
- addSlotToContainer(new GT_Slot_Render(mTileEntity, tStartIndex++, 17, 43));
- addSlotToContainer(new GT_Slot_Render(mTileEntity, tStartIndex++, 35, 43));
- addSlotToContainer(new GT_Slot_Render(mTileEntity, tStartIndex++, 53, 43));
-
- break;
case 2: //Pollution Scrubber
//Add 2 Item Slots
addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 25));
addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 107, 25));
- break;
- case 3:
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 25));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 25));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 25));
- break;
- case 4:
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 16));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 16));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 34));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 34));
- break;
- case 5:
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 16));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 16));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 16));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 34));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 34));
- break;
- case 6:
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 16));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 16));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 16));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 34));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 34));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 34));
- break;
- case 7:
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 7));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 7));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 7));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 25));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 25));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 25));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 43));
- break;
- case 8:
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 7));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 7));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 7));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 25));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 25));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 53, 25));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 43));
- addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 43));
- break;
+ break;
default:
addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 17, 7));
addSlotToContainer(new Slot(mTileEntity, tStartIndex++, 35, 7));
@@ -121,68 +62,7 @@ public class CONTAINER_PollutionCleaner extends GT_Container_BasicTank {
switch (((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).mOutputItems.length) {
case 0:
break;
- case 1:
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 25));
- break;
- case 2:
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 25));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 25));
- break;
- case 3:
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 25));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 25));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 25));
- break;
- case 4:
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 16));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 16));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 34));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 34));
- break;
- case 5:
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 16));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 16));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 16));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 34));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 34));
- break;
- case 6:
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 16));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 16));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 16));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 34));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 34));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 34));
- break;
- case 7:
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 7));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 7));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 7));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 25));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 25));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 25));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 43));
- break;
- case 8:
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 7));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 7));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 7));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 25));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 25));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 25));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 43));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 43));
- break;
default:
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 7));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 7));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 7));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 25));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 25));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 25));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 107, 43));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 125, 43));
- addSlotToContainer(new GT_Slot_Output(mTileEntity, tStartIndex++, 143, 43));
break;
}
@@ -215,6 +95,7 @@ public class CONTAINER_PollutionCleaner extends GT_Container_BasicTank {
mFluidTransfer = ((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).mFluidTransfer;
mItemTransfer = ((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).mItemTransfer;
mStuttering = ((GT_MetaTileEntity_BasicMachine) mTileEntity.getMetaTileEntity()).mStuttering;
+ mReduction = ((GregtechMetaAtmosphericReconditioner) mTileEntity.getMetaTileEntity()).mPollutionReduction;
Iterator var2 = this.crafters.iterator();
while (var2.hasNext()) {
@@ -222,6 +103,7 @@ public class CONTAINER_PollutionCleaner extends GT_Container_BasicTank {
var1.sendProgressBarUpdate(this, 102, mFluidTransfer ? 1 : 0);
var1.sendProgressBarUpdate(this, 103, mItemTransfer ? 1 : 0);
var1.sendProgressBarUpdate(this, 104, mStuttering ? 1 : 0);
+ var1.sendProgressBarUpdate(this, 105, mReduction);
}
}
@@ -244,6 +126,9 @@ public class CONTAINER_PollutionCleaner extends GT_Container_BasicTank {
case 104:
mStuttering = (par2 != 0);
break;
+ case 105:
+ mReduction = (par2);
+ break;
}
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/gui/basic/GUI_PollutionCleaner.java b/src/Java/gtPlusPlus/xmod/gregtech/api/gui/basic/GUI_PollutionCleaner.java
index edc1ad4c8b..2c1601cee2 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/gui/basic/GUI_PollutionCleaner.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/gui/basic/GUI_PollutionCleaner.java
@@ -6,15 +6,20 @@ import java.util.List;
import net.minecraft.entity.player.InventoryPlayer;
import gregtech.api.gui.GT_GUIContainerMetaTile_Machine;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-
+import gregtech.api.util.GT_Utility;
import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.util.math.MathUtils;
+import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_ControlCore;
+import gtPlusPlus.xmod.gregtech.common.tileentities.machines.basic.GregtechMetaAtmosphericReconditioner;
public class GUI_PollutionCleaner extends GT_GUIContainerMetaTile_Machine {
public final String mName;
public final String mNEI;
public final byte mProgressBarDirection;
public final byte mProgressBarAmount;
+ public int mReduction;
public GUI_PollutionCleaner(final InventoryPlayer aInventoryPlayer, final IGregTechTileEntity aTileEntity,
final String aName, final String aTextureFile) {
@@ -50,6 +55,12 @@ public class GUI_PollutionCleaner extends GT_GUIContainerMetaTile_Machine {
if (x3 >= 25 && x3 <= 42) {
list.add("Item Auto-Output");
}
+ if (x3 >= 77 && x3 <= 95) {
+ //Do Dumb shit
+ CONTAINER_PollutionCleaner aContainerCast = (CONTAINER_PollutionCleaner) this.mContainer;
+ mReduction = aContainerCast.mReduction;
+ list.add("Reduction: "+mReduction);
+ }
}
if (!list.isEmpty()) {
this.drawHoveringText(list, x3, y3, this.fontRendererObj);
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java b/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java
index 4c7ea6d05d..ac2320afdb 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java
@@ -135,7 +135,7 @@ public interface IGregtech_RecipeAdder {
public boolean addCyclotronRecipe(ItemStack aInput, FluidStack aFluidInput, ItemStack[] aOutputs,
FluidStack aFluidOutput, int[] aChances, int aDuration, int aEUt, int aSpecialValue);
- boolean addCyclotronRecipe(ItemStack[] aInputs, FluidStack aFluidInput, ItemStack aOutput, FluidStack aFluidOutput,
+ boolean addCyclotronRecipe(ItemStack[] aInputs, FluidStack aFluidInput, ItemStack[] aOutput, FluidStack aFluidOutput,
int[] aChances, int aDuration, int aEUt, int aSpecialValue);
public boolean addMixerRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aInput3, ItemStack aInput4,
@@ -179,4 +179,6 @@ public interface IGregtech_RecipeAdder {
public boolean addBrewingRecipe(ItemStack aIngredient, FluidStack aInput, FluidStack aOutput, int aTime, int aEu, boolean aHidden);
public boolean addBrewingRecipe(int aCircuit, FluidStack aInput, FluidStack aOutput, int aTime, int aEu, boolean aHidden);
+
+ public boolean addSmeltingAndAlloySmeltingRecipe(ItemStack aDust, ItemStack aOutput);
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/BaseCustomTileEntity.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/BaseCustomTileEntity.java
new file mode 100644
index 0000000000..939cac2779
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/BaseCustomTileEntity.java
@@ -0,0 +1,115 @@
+package gtPlusPlus.xmod.gregtech.api.metatileentity;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+
+import gregtech.GT_Mod;
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.GT_Values;
+import gregtech.api.metatileentity.BaseMetaTileEntity;
+import gregtech.api.util.GT_Log;
+import gregtech.api.util.GT_Utility;
+import gregtech.common.GT_Pollution;
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.xmod.gregtech.common.Meta_GT_Proxy;
+import ic2.api.Direction;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+
+public class BaseCustomTileEntity extends BaseMetaTileEntity {
+
+ protected NBTTagCompound mRecipeStuff2;
+
+ public BaseCustomTileEntity() {
+ super();
+ Logger.INFO("Created new BaseCustomTileEntity");
+ }
+
+ public void writeToNBT(NBTTagCompound aNBT) {
+ try {
+ super.writeToNBT(aNBT);
+ } catch (Throwable arg7) {
+ GT_Log.err.println(
+ "Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould\'ve been corrupted by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!");
+ arg7.printStackTrace(GT_Log.err);
+ }
+
+ try {
+ if (!aNBT.hasKey("ModVersion"))
+ aNBT.setString("ModVersion", CORE.VERSION);
+ } catch (Throwable arg6) {
+ GT_Log.err.println(
+ "Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould\'ve been corrupted by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!");
+ arg6.printStackTrace(GT_Log.err);
+ }
+ }
+
+ public void doEnergyExplosion() {
+ if (this.getUniversalEnergyCapacity() > 0L
+ && this.getUniversalEnergyStored() >= this.getUniversalEnergyCapacity() / 5L) {
+ this.doExplosion(
+ this.getOutput() * (long) (this.getUniversalEnergyStored() >= this.getUniversalEnergyCapacity() ? 4
+ : (this.getUniversalEnergyStored() >= this.getUniversalEnergyCapacity() / 2L ? 2 : 1)));
+ GT_Mod arg9999 = GT_Mod.instance;
+ GT_Mod.achievements.issueAchievement(this.getWorldObj().getPlayerEntityByName(this.getOwnerName()),
+ "electricproblems");
+ }
+
+ }
+
+ public void doExplosion(long aAmount) {
+ if (this.canAccessData()) {
+ if (GregTech_API.sMachineWireFire && this.mMetaTileEntity.isElectric()) {
+ try {
+ this.mReleaseEnergy = true;
+ Util.emitEnergyToNetwork(GT_Values.V[5], Math.max(1L, this.getStoredEU() / GT_Values.V[5]), this);
+ } catch (Exception arg4) {
+ ;
+ }
+ }
+
+ this.mReleaseEnergy = false;
+ this.mMetaTileEntity.onExplosion();
+ int i;
+ if (GT_Mod.gregtechproxy.mExplosionItemDrop) {
+ for (i = 0; i < this.getSizeInventory(); ++i) {
+ ItemStack tItem = this.getStackInSlot(i);
+ if (tItem != null && tItem.stackSize > 0 && this.isValidSlot(i)) {
+ this.dropItems(tItem);
+ this.setInventorySlotContents(i, (ItemStack) null);
+ }
+ }
+ }
+
+ if (this.mRecipeStuff2 != null) {
+ for (i = 0; i < 9; ++i) {
+ this.dropItems(GT_Utility.loadItem(this.mRecipeStuff2, "Ingredient." + i));
+ }
+ }
+
+ GT_Pollution.addPollution(this, 100000);
+ this.mMetaTileEntity.doExplosion(aAmount);
+ }
+
+ }
+
+ public ArrayList<ItemStack> getDrops() {
+ ItemStack rStack = new ItemStack(Meta_GT_Proxy.sBlockMachines, 1, this.getMetaTileID());
+ NBTTagCompound aSuperNBT = super.getDrops().get(0).getTagCompound();
+ NBTTagCompound tNBT = aSuperNBT;
+ if (this.hasValidMetaTileEntity()) {
+ this.mMetaTileEntity.setItemNBT(tNBT);
+ }
+ if (!tNBT.hasNoTags()) {
+ rStack.setTagCompound(tNBT);
+ }
+
+ return new ArrayList<ItemStack>(Arrays.asList(new ItemStack[] { rStack }));
+ }
+
+ public boolean isTeleporterCompatible(Direction aSide) {
+ return this.canAccessData() && this.mMetaTileEntity.isTeleporterCompatible();
+ }
+
+} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/BaseCustomPower_MTE.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/BaseCustomPower_MTE.java
new file mode 100644
index 0000000000..0b8cb10606
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/BaseCustomPower_MTE.java
@@ -0,0 +1,280 @@
+package gtPlusPlus.xmod.gregtech.api.metatileentity.custom.power;
+
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.xmod.gregtech.api.metatileentity.BaseCustomTileEntity;
+import ic2.api.Direction;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraftforge.common.util.ForgeDirection;
+
+public class BaseCustomPower_MTE extends BaseCustomTileEntity {
+
+ public BaseCustomPower_MTE() {
+ super();
+ Logger.INFO("Created new BaseCustomPower_MTE");
+ }
+
+ public long injectEnergyUnits(byte aSide, long aVoltage, long aAmperage) {
+ if (mMetaTileEntity == null) {
+ Logger.MACHINE_INFO("Bad Tile");
+ }
+ if (this.canAccessData() && this.mMetaTileEntity.isElectric() && this.inputEnergyFrom(aSide) && aAmperage > 0L
+ && aVoltage > 0L && this.getStoredEU() < this.getEUCapacity()
+ && this.mMetaTileEntity.maxAmperesIn() >= this.getInputAmperage()) {
+ Logger.MACHINE_INFO("Injecting Energy Units");
+ return super.injectEnergyUnits(aSide, aVoltage, aAmperage);
+ } else {
+ Logger.MACHINE_INFO("canAccessData(): "+canAccessData());
+ Logger.MACHINE_INFO("isElectric(): "+this.mMetaTileEntity.isElectric());
+ Logger.MACHINE_INFO("InputEnergyFromSide("+aSide+"): "+this.inputEnergyFrom(aSide));
+ Logger.MACHINE_INFO("aAmperage: "+aAmperage);
+ Logger.MACHINE_INFO("aVoltage: "+aVoltage);
+ Logger.MACHINE_INFO("this.getStoredEU() < this.getEUCapacity(): "+(this.getStoredEU() < this.getEUCapacity()));
+ Logger.MACHINE_INFO("this.mMetaTileEntity.maxAmperesIn() >= this.mAcceptedAmperes: "+(this.mMetaTileEntity.maxAmperesIn() >= this.getInputAmperage()));
+ Logger.MACHINE_INFO("this.mMetaTileEntity.maxAmperesIn(): "+(this.mMetaTileEntity.maxAmperesIn()));
+ Logger.MACHINE_INFO("this.mAcceptedAmperes: "+(this.getInputAmperage()));
+ return 0L;
+ }
+ }
+
+ public boolean drainEnergyUnits(byte aSide, long aVoltage, long aAmperage) {
+ Logger.MACHINE_INFO("Draining Energy Units 4");
+ if (this.canAccessData() && this.mMetaTileEntity.isElectric() && this.outputsEnergyTo(aSide)
+ && this.getStoredEU() - aVoltage * aAmperage >= this.mMetaTileEntity.getMinimumStoredEU()) {
+ if (this.decreaseStoredEU(aVoltage * aAmperage, false)) {
+ this.mAverageEUOutput[this.mAverageEUOutputIndex] = (int) ((long) this.mAverageEUOutput[this.mAverageEUOutputIndex]
+ + aVoltage * aAmperage);
+ return true;
+ } else {
+ return false;
+ }
+ } else {
+ return false;
+ }
+ }
+
+ @Override
+ public boolean decreaseStoredEnergyUnits(long aEnergy, boolean aIgnoreTooLessEnergy) {
+ Logger.MACHINE_INFO("Draining Energy Units 3");
+ // TODO Auto-generated method stub
+ return super.decreaseStoredEnergyUnits(aEnergy, aIgnoreTooLessEnergy);
+ }
+
+ @Override
+ public boolean increaseStoredEnergyUnits(long aEnergy, boolean aIgnoreTooMuchEnergy) {
+ // TODO Auto-generated method stub
+ return super.increaseStoredEnergyUnits(aEnergy, aIgnoreTooMuchEnergy);
+ }
+
+ @Override
+ public boolean inputEnergyFrom(byte aSide) {
+ // TODO Auto-generated method stub
+ return super.inputEnergyFrom(aSide);
+ }
+
+ @Override
+ public boolean outputsEnergyTo(byte aSide) {
+ Logger.MACHINE_INFO("Draining Energy Units 2");
+ // TODO Auto-generated method stub
+ return super.outputsEnergyTo(aSide);
+ }
+
+ @Override
+ public long getOutputAmperage() {
+ // TODO Auto-generated method stub
+ return super.getOutputAmperage();
+ }
+
+ @Override
+ public long getOutputVoltage() {
+ // TODO Auto-generated method stub
+ return super.getOutputVoltage();
+ }
+
+ @Override
+ public long getInputAmperage() {
+ // TODO Auto-generated method stub
+ return super.getInputAmperage();
+ }
+
+ @Override
+ public long getInputVoltage() {
+ // TODO Auto-generated method stub
+ return super.getInputVoltage();
+ }
+
+ @Override
+ public long getUniversalEnergyStored() {
+ // TODO Auto-generated method stub
+ return super.getUniversalEnergyStored();
+ }
+
+ @Override
+ public long getUniversalEnergyCapacity() {
+ // TODO Auto-generated method stub
+ return super.getUniversalEnergyCapacity();
+ }
+
+ @Override
+ public long getStoredEU() {
+ // TODO Auto-generated method stub
+ return super.getStoredEU();
+ }
+
+ @Override
+ public long getEUCapacity() {
+ // TODO Auto-generated method stub
+ return super.getEUCapacity();
+ }
+
+ @Override
+ public boolean setStoredEU(long aEnergy) {
+ // TODO Auto-generated method stub
+ return super.setStoredEU(aEnergy);
+ }
+
+ @Override
+ public boolean decreaseStoredEU(long aEnergy, boolean aIgnoreTooLessEnergy) {
+ Logger.MACHINE_INFO("Draining Energy Units 1");
+ // TODO Auto-generated method stub
+ return super.decreaseStoredEU(aEnergy, aIgnoreTooLessEnergy);
+ }
+
+ @Override
+ public boolean decreaseStoredSteam(long aEnergy, boolean aIgnoreTooLessEnergy) {
+ // TODO Auto-generated method stub
+ return super.decreaseStoredSteam(aEnergy, aIgnoreTooLessEnergy);
+ }
+
+ @Override
+ public void doEnergyExplosion() {
+ // TODO Auto-generated method stub
+ super.doEnergyExplosion();
+ }
+
+ @Override
+ public void doExplosion(long aAmount) {
+ // TODO Auto-generated method stub
+ super.doExplosion(aAmount);
+ }
+
+ @Override
+ public byte getLightValue() {
+ // TODO Auto-generated method stub
+ return super.getLightValue();
+ }
+
+ @Override
+ public long getAverageElectricInput() {
+ // TODO Auto-generated method stub
+ return super.getAverageElectricInput();
+ }
+
+ @Override
+ public long getAverageElectricOutput() {
+ // TODO Auto-generated method stub
+ return super.getAverageElectricOutput();
+ }
+
+ @Override
+ public double getOutputEnergyUnitsPerTick() {
+ // TODO Auto-generated method stub
+ return super.getOutputEnergyUnitsPerTick();
+ }
+
+ @Override
+ public double demandedEnergyUnits() {
+ // TODO Auto-generated method stub
+ return super.demandedEnergyUnits();
+ }
+
+ @Override
+ public double injectEnergyUnits(ForgeDirection aDirection, double aAmount) {
+ // TODO Auto-generated method stub
+ return super.injectEnergyUnits(aDirection, aAmount);
+ }
+
+ @Override
+ public boolean acceptsEnergyFrom(TileEntity aEmitter, ForgeDirection aDirection) {
+ // TODO Auto-generated method stub
+ return super.acceptsEnergyFrom(aEmitter, aDirection);
+ }
+
+ @Override
+ public boolean emitsEnergyTo(TileEntity aReceiver, ForgeDirection aDirection) {
+ // TODO Auto-generated method stub
+ return super.emitsEnergyTo(aReceiver, aDirection);
+ }
+
+ @Override
+ public double getOfferedEnergy() {
+ // TODO Auto-generated method stub
+ return super.getOfferedEnergy();
+ }
+
+ @Override
+ public void drawEnergy(double amount) {
+ // TODO Auto-generated method stub
+ super.drawEnergy(amount);
+ }
+
+ @Override
+ public int injectEnergy(ForgeDirection aForgeDirection, int aAmount) {
+ // TODO Auto-generated method stub
+ return super.injectEnergy(aForgeDirection, aAmount);
+ }
+
+ @Override
+ public int addEnergy(int aEnergy) {
+ // TODO Auto-generated method stub
+ return super.addEnergy(aEnergy);
+ }
+
+ @Override
+ public boolean isAddedToEnergyNet() {
+ // TODO Auto-generated method stub
+ return super.isAddedToEnergyNet();
+ }
+
+ @Override
+ public int demandsEnergy() {
+ // TODO Auto-generated method stub
+ return super.demandsEnergy();
+ }
+
+ @Override
+ public int getMaxSafeInput() {
+ // TODO Auto-generated method stub
+ return super.getMaxSafeInput();
+ }
+
+ @Override
+ public int getMaxEnergyOutput() {
+ // TODO Auto-generated method stub
+ return super.getMaxEnergyOutput();
+ }
+
+ @Override
+ public int injectEnergy(Direction aDirection, int aAmount) {
+ // TODO Auto-generated method stub
+ return super.injectEnergy(aDirection, aAmount);
+ }
+
+ @Override
+ public boolean acceptsEnergyFrom(TileEntity aReceiver, Direction aDirection) {
+ // TODO Auto-generated method stub
+ return super.acceptsEnergyFrom(aReceiver, aDirection);
+ }
+
+ @Override
+ public boolean emitsEnergyTo(TileEntity aReceiver, Direction aDirection) {
+ // TODO Auto-generated method stub
+ return super.emitsEnergyTo(aReceiver, aDirection);
+ }
+
+ @Override
+ public boolean isUniversalEnergyStored(long aEnergyAmount) {
+ // TODO Auto-generated method stub
+ return super.isUniversalEnergyStored(aEnergyAmount);
+ }
+
+}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/GTPP_MTE_BasicMachine.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/GTPP_MTE_BasicMachine.java
new file mode 100644
index 0000000000..b0dc635aee
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/GTPP_MTE_BasicMachine.java
@@ -0,0 +1,872 @@
+package gtPlusPlus.xmod.gregtech.api.metatileentity.custom.power;
+
+import gregtech.GT_Mod;
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Textures;
+import gregtech.api.gui.GT_Container_BasicMachine;
+import gregtech.api.gui.GT_GUIContainer_BasicMachine;
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase;
+import gregtech.api.objects.GT_ItemStack;
+import gregtech.api.objects.GT_RenderedTexture;
+import gregtech.api.objects.XSTR;
+import gregtech.api.util.GT_OreDictUnificator;
+import gregtech.api.util.GT_Recipe;
+import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
+import gregtech.api.util.GT_Utility;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.InventoryPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraftforge.common.DimensionManager;
+import net.minecraftforge.common.util.ForgeDirection;
+import net.minecraftforge.fluids.FluidStack;
+import net.minecraftforge.fluids.IFluidHandler;
+
+import java.util.Arrays;
+
+import static gregtech.api.enums.GT_Values.V;
+
+/**
+ * NEVER INCLUDE THIS FILE IN YOUR MOD!!!
+ * <p/>
+ * This is the main construct for my Basic Machines such as the Automatic Extractor
+ * Extend this class to make a simple Machine
+ */
+public abstract class GTPP_MTE_BasicMachine extends GTPP_MTE_BasicTank {
+ /**
+ * return values for checkRecipe()
+ */
+ protected static final int
+ DID_NOT_FIND_RECIPE = 0,
+ FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS = 1,
+ FOUND_AND_SUCCESSFULLY_USED_RECIPE = 2;
+ public static final int OTHER_SLOT_COUNT = 4;
+ public final ItemStack[] mOutputItems;
+ public final int mInputSlotCount, mAmperage;
+ public boolean mAllowInputFromOutputSide = false, mFluidTransfer = false, mItemTransfer = false, mHasBeenUpdated = false, mStuttering = false, mCharge = false, mDecharge = false;
+ public int mMainFacing = -1, mProgresstime = 0, mMaxProgresstime = 0, mEUt = 0, mOutputBlocked = 0;
+ public FluidStack mOutputFluid;
+ public String mGUIName = "", mNEIName = "";
+ public GT_MetaTileEntity_MultiBlockBase mCleanroom;
+ /**
+ * Contains the Recipe which has been previously used, or null if there was no previous Recipe, which could have been buffered
+ */
+ protected GT_Recipe mLastRecipe = null;
+ private FluidStack mFluidOut;
+
+ /**
+ * @param aOverlays 0 = SideFacingActive
+ * 1 = SideFacingInactive
+ * 2 = FrontFacingActive
+ * 3 = FrontFacingInactive
+ * 4 = TopFacingActive
+ * 5 = TopFacingInactive
+ * 6 = BottomFacingActive
+ * 7 = BottomFacingInactive
+ * ----- Not all Array Elements have to be initialised, you can also just use 8 Parameters for the Default Pipe Texture Overlays -----
+ * 8 = BottomFacingPipeActive
+ * 9 = BottomFacingPipeInactive
+ * 10 = TopFacingPipeActive
+ * 11 = TopFacingPipeInactive
+ * 12 = SideFacingPipeActive
+ * 13 = SideFacingPipeInactive
+ */
+ public GTPP_MTE_BasicMachine(int aID, String aName, String aNameRegional, int aTier, int aAmperage, String aDescription, int aInputSlotCount, int aOutputSlotCount, String aGUIName, String aNEIName, ITexture... aOverlays) {
+ super(aID, aName, aNameRegional, aTier, OTHER_SLOT_COUNT + aInputSlotCount + aOutputSlotCount + 1, aDescription, aOverlays);
+ mInputSlotCount = Math.max(0, aInputSlotCount);
+ mOutputItems = new ItemStack[Math.max(0, aOutputSlotCount)];
+ mAmperage = aAmperage;
+ mGUIName = aGUIName;
+ mNEIName = aNEIName;
+ }
+
+ public GTPP_MTE_BasicMachine(int aID, String aName, String aNameRegional, int aTier, int aAmperage, String[] aDescription, int aInputSlotCount, int aOutputSlotCount, String aGUIName, String aNEIName, ITexture... aOverlays) {
+ super(aID, aName, aNameRegional, aTier, OTHER_SLOT_COUNT + aInputSlotCount + aOutputSlotCount + 1, aDescription, aOverlays);
+ mInputSlotCount = Math.max(0, aInputSlotCount);
+ mOutputItems = new ItemStack[Math.max(0, aOutputSlotCount)];
+ mAmperage = aAmperage;
+ mGUIName = aGUIName;
+ mNEIName = aNEIName;
+ }
+
+ public GTPP_MTE_BasicMachine(String aName, int aTier, int aAmperage, String aDescription, ITexture[][][] aTextures, int aInputSlotCount, int aOutputSlotCount, String aGUIName, String aNEIName) {
+ super(aName, aTier, OTHER_SLOT_COUNT + aInputSlotCount + aOutputSlotCount + 1, aDescription, aTextures);
+ mInputSlotCount = Math.max(0, aInputSlotCount);
+ mOutputItems = new ItemStack[Math.max(0, aOutputSlotCount)];
+ mAmperage = aAmperage;
+ mGUIName = aGUIName;
+ mNEIName = aNEIName;
+ }
+
+ public GTPP_MTE_BasicMachine(String aName, int aTier, int aAmperage, String[] aDescription, ITexture[][][] aTextures, int aInputSlotCount, int aOutputSlotCount, String aGUIName, String aNEIName) {
+ super(aName, aTier, OTHER_SLOT_COUNT + aInputSlotCount + aOutputSlotCount + 1, aDescription, aTextures);
+ mInputSlotCount = Math.max(0, aInputSlotCount);
+ mOutputItems = new ItemStack[Math.max(0, aOutputSlotCount)];
+ mAmperage = aAmperage;
+ mGUIName = aGUIName;
+ mNEIName = aNEIName;
+ }
+
+ protected boolean isValidMainFacing(byte aSide) {
+ return aSide > 1;
+ }
+
+ public boolean setMainFacing(byte aSide){
+ if (!isValidMainFacing(aSide)) return false;
+ mMainFacing = aSide;
+ if(getBaseMetaTileEntity().getFrontFacing() == mMainFacing){
+ getBaseMetaTileEntity().setFrontFacing(GT_Utility.getOppositeSide(aSide));
+ }
+ onFacingChange();
+ onMachineBlockUpdate();
+ return true;
+ }
+
+ @Override
+ public ITexture[][][] getTextureSet(ITexture[] aTextures) {
+ ITexture[][][] rTextures = new ITexture[14][17][];
+ aTextures = Arrays.copyOf(aTextures, 14);
+
+ for (int i = 0; i < aTextures.length; i++)
+ if (aTextures[i] != null) for (byte c = -1; c < 16; c++) {
+ if (rTextures[i][c + 1] == null)
+ rTextures[i][c + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][c + 1], aTextures[i]};
+ }
+
+ for (byte c = -1; c < 16; c++) {
+ if (rTextures[0][c + 1] == null) rTextures[0][c + 1] = getSideFacingActive(c);
+ if (rTextures[1][c + 1] == null) rTextures[1][c + 1] = getSideFacingInactive(c);
+ if (rTextures[2][c + 1] == null) rTextures[2][c + 1] = getFrontFacingActive(c);
+ if (rTextures[3][c + 1] == null) rTextures[3][c + 1] = getFrontFacingInactive(c);
+ if (rTextures[4][c + 1] == null) rTextures[4][c + 1] = getTopFacingActive(c);
+ if (rTextures[5][c + 1] == null) rTextures[5][c + 1] = getTopFacingInactive(c);
+ if (rTextures[6][c + 1] == null) rTextures[6][c + 1] = getBottomFacingActive(c);
+ if (rTextures[7][c + 1] == null) rTextures[7][c + 1] = getBottomFacingInactive(c);
+ if (rTextures[8][c + 1] == null) rTextures[8][c + 1] = getBottomFacingPipeActive(c);
+ if (rTextures[9][c + 1] == null) rTextures[9][c + 1] = getBottomFacingPipeInactive(c);
+ if (rTextures[10][c + 1] == null) rTextures[10][c + 1] = getTopFacingPipeActive(c);
+ if (rTextures[11][c + 1] == null) rTextures[11][c + 1] = getTopFacingPipeInactive(c);
+ if (rTextures[12][c + 1] == null) rTextures[12][c + 1] = getSideFacingPipeActive(c);
+ if (rTextures[13][c + 1] == null) rTextures[13][c + 1] = getSideFacingPipeInactive(c);
+ }
+ return rTextures;
+ }
+
+ @Override
+ public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {
+ return mTextures[mMainFacing < 2 ? aSide == aFacing ? aActive ? 2 : 3 : aSide == 0 ? aActive ? 6 : 7 : aSide == 1 ? aActive ? 4 : 5 : aActive ? 0 : 1 : aSide == mMainFacing ? aActive ? 2 : 3 : (showPipeFacing() && aSide == aFacing) ? aSide == 0 ? aActive ? 8 : 9 : aSide == 1 ? aActive ? 10 : 11 : aActive ? 12 : 13 : aSide == 0 ? aActive ? 6 : 7 : aSide == 1 ? aActive ? 4 : 5 : aActive ? 0 : 1][aColorIndex + 1];
+ }
+
+ @Override
+ public boolean isSimpleMachine() {
+ return false;
+ }
+
+ @Override
+ public boolean isOverclockerUpgradable() {
+ return false;
+ }
+
+ @Override
+ public boolean isTransformerUpgradable() {
+ return false;
+ }
+
+ @Override
+ public boolean isElectric() {
+ return true;
+ }
+
+ @Override
+ public boolean isValidSlot(int aIndex) {
+ return aIndex > 0 && super.isValidSlot(aIndex) && aIndex != OTHER_SLOT_COUNT + mInputSlotCount + mOutputItems.length;
+ }
+
+ @Override
+ public boolean isFacingValid(byte aFacing) {
+ return mMainFacing > 1 || aFacing > 1;
+ }
+
+ @Override
+ public boolean isEnetInput() {
+ return true;
+ }
+
+ @Override
+ public boolean isInputFacing(byte aSide) {
+ return aSide != mMainFacing;
+ }
+
+ @Override
+ public boolean isOutputFacing(byte aSide) {
+ return false;
+ }
+
+ @Override
+ public boolean isTeleporterCompatible() {
+ return false;
+ }
+
+ @Override
+ public boolean isLiquidInput(byte aSide) {
+ return aSide != mMainFacing && (mAllowInputFromOutputSide || aSide != getBaseMetaTileEntity().getFrontFacing());
+ }
+
+ @Override
+ public boolean isLiquidOutput(byte aSide) {
+ return aSide != mMainFacing;
+ }
+
+ @Override
+ public long getMinimumStoredEU() {
+ return V[mTier] * 16;
+ }
+
+ @Override
+ public long maxEUStore() {
+ return V[mTier] * 64;
+ }
+
+ @Override
+ public long maxEUInput() {
+ return V[mTier];
+ }
+
+ @Override
+ public long maxSteamStore() {
+ return maxEUStore();
+ }
+
+ @Override
+ public long maxAmperesIn() {
+ return (mEUt * 2) / V[mTier] + 1;
+ }
+
+ @Override
+ public int getInputSlot() {
+ return OTHER_SLOT_COUNT;
+ }
+
+ @Override
+ public int getOutputSlot() {
+ return OTHER_SLOT_COUNT + mInputSlotCount;
+ }
+
+ @Override
+ public int getStackDisplaySlot() {
+ return 2;
+ }
+
+ @Override
+ public int rechargerSlotStartIndex() {
+ return 1;
+ }
+
+ @Override
+ public int dechargerSlotStartIndex() {
+ return 1;
+ }
+
+ @Override
+ public int rechargerSlotCount() {
+ return mCharge ? 1 : 0;
+ }
+
+ @Override
+ public int dechargerSlotCount() {
+ return mDecharge ? 1 : 0;
+ }
+
+ @Override
+ public boolean isAccessAllowed(EntityPlayer aPlayer) {
+ return true;
+ }
+
+ @Override
+ public int getProgresstime() {
+ return mProgresstime;
+ }
+
+ @Override
+ public int maxProgresstime() {
+ return mMaxProgresstime;
+ }
+
+ @Override
+ public int increaseProgress(int aProgress) {
+ mProgresstime += aProgress;
+ return mMaxProgresstime - mProgresstime;
+ }
+
+ @Override
+ public boolean isFluidInputAllowed(FluidStack aFluid) {
+ return getFillableStack() != null || (getRecipeList() != null && getRecipeList().containsInput(aFluid));
+ }
+
+ @Override
+ public boolean isFluidChangingAllowed() {
+ return true;
+ }
+
+ @Override
+ public boolean doesFillContainers() {
+ return false;
+ }
+
+ @Override
+ public boolean doesEmptyContainers() {
+ return false;
+ }
+
+ @Override
+ public boolean canTankBeFilled() {
+ return true;
+ }
+
+ @Override
+ public boolean canTankBeEmptied() {
+ return true;
+ }
+
+ @Override
+ public boolean displaysItemStack() {
+ return true;
+ }
+
+ @Override
+ public boolean displaysStackSize() {
+ return true;
+ }
+
+ @Override
+ public FluidStack getDisplayedFluid() {
+ return displaysOutputFluid() ? getDrainableStack() : null;
+ }
+
+ @Override
+ public FluidStack getDrainableStack() {
+ return mFluidOut;
+ }
+
+ @Override
+ public FluidStack setDrainableStack(FluidStack aFluid) {
+ mFluidOut = aFluid;
+ return mFluidOut;
+ }
+
+ @Override
+ public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) {
+ if (aBaseMetaTileEntity.isClientSide()) return true;
+ if(!GT_Mod.gregtechproxy.mForceFreeFace) {
+ aBaseMetaTileEntity.openGUI(aPlayer);
+ return true;
+ }
+ for(byte i=0;i < 6; i++){
+ if(aBaseMetaTileEntity.getAirAtSide(i)){
+ aBaseMetaTileEntity.openGUI(aPlayer);
+ return true;
+ }
+ }
+ GT_Utility.sendChatToPlayer(aPlayer,"No free Side!");
+ return true;
+ }
+
+ @Override
+ public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return new GT_Container_BasicMachine(aPlayerInventory, aBaseMetaTileEntity);
+ }
+
+ @Override
+ public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return new GT_GUIContainer_BasicMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), mGUIName, GT_Utility.isStringValid(mNEIName) ? mNEIName : getRecipeList() != null ? getRecipeList().mUnlocalizedName : "");
+ }
+
+ @Override
+ public void initDefaultModes(NBTTagCompound aNBT) {
+ mMainFacing = -1;
+ }
+
+ @Override
+ public void saveNBTData(NBTTagCompound aNBT) {
+ super.saveNBTData(aNBT);
+ aNBT.setBoolean("mFluidTransfer", mFluidTransfer);
+ aNBT.setBoolean("mItemTransfer", mItemTransfer);
+ aNBT.setBoolean("mHasBeenUpdated", mHasBeenUpdated);
+ aNBT.setBoolean("mAllowInputFromOutputSide", mAllowInputFromOutputSide);
+ aNBT.setInteger("mEUt", mEUt);
+ aNBT.setInteger("mMainFacing", mMainFacing);
+ aNBT.setInteger("mProgresstime", mProgresstime);
+ aNBT.setInteger("mMaxProgresstime", mMaxProgresstime);
+ if (mOutputFluid != null) aNBT.setTag("mOutputFluid", mOutputFluid.writeToNBT(new NBTTagCompound()));
+ if (mFluidOut != null) aNBT.setTag("mFluidOut", mFluidOut.writeToNBT(new NBTTagCompound()));
+
+ for (int i = 0; i < mOutputItems.length; i++)
+ if (mOutputItems[i] != null)
+ aNBT.setTag("mOutputItem" + i, mOutputItems[i].writeToNBT(new NBTTagCompound()));
+ }
+
+ @Override
+ public void loadNBTData(NBTTagCompound aNBT) {
+ super.loadNBTData(aNBT);
+ mFluidTransfer = aNBT.getBoolean("mFluidTransfer");
+ mItemTransfer = aNBT.getBoolean("mItemTransfer");
+ mHasBeenUpdated = aNBT.getBoolean("mHasBeenUpdated");
+ mAllowInputFromOutputSide = aNBT.getBoolean("mAllowInputFromOutputSide");
+ mEUt = aNBT.getInteger("mEUt");
+ mMainFacing = aNBT.getInteger("mMainFacing");
+ mProgresstime = aNBT.getInteger("mProgresstime");
+ mMaxProgresstime = aNBT.getInteger("mMaxProgresstime");
+ mOutputFluid = FluidStack.loadFluidStackFromNBT(aNBT.getCompoundTag("mOutputFluid"));
+ mFluidOut = FluidStack.loadFluidStackFromNBT(aNBT.getCompoundTag("mFluidOut"));
+
+ for (int i = 0; i < mOutputItems.length; i++) mOutputItems[i] = GT_Utility.loadItem(aNBT, "mOutputItem" + i);
+ }
+
+ @Override
+ public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
+ super.onPostTick(aBaseMetaTileEntity, aTick);
+
+ if (aBaseMetaTileEntity.isServerSide()) {
+ mCharge = aBaseMetaTileEntity.getStoredEU() / 2 > aBaseMetaTileEntity.getEUCapacity() / 3;
+ mDecharge = aBaseMetaTileEntity.getStoredEU() < aBaseMetaTileEntity.getEUCapacity() / 3;
+
+ doDisplayThings();
+
+ boolean tSucceeded = false;
+
+ if (mMaxProgresstime > 0 && (mProgresstime >= 0 || aBaseMetaTileEntity.isAllowedToWork())) {
+ aBaseMetaTileEntity.setActive(true);
+ if (mProgresstime < 0 || drainEnergyForProcess(mEUt)) {
+ if (++mProgresstime >= mMaxProgresstime) {
+ for (int i = 0; i < mOutputItems.length; i++)
+ for (int j = 0; j < mOutputItems.length; j++)
+ if (aBaseMetaTileEntity.addStackToSlot(getOutputSlot() + ((j + i) % mOutputItems.length), mOutputItems[i]))
+ break;
+ if (mOutputFluid != null)
+ if (getDrainableStack() == null) setDrainableStack(mOutputFluid.copy());
+ else if (mOutputFluid.isFluidEqual(getDrainableStack()))
+ getDrainableStack().amount += mOutputFluid.amount;
+ for (int i = 0; i < mOutputItems.length; i++) mOutputItems[i] = null;
+ mOutputFluid = null;
+ mEUt = 0;
+ mProgresstime = 0;
+ mMaxProgresstime = 0;
+ mStuttering = false;
+ tSucceeded = true;
+ endProcess();
+ }
+ if (mProgresstime > 5) mStuttering = false;
+ XSTR aXSTR = new XSTR();
+ if(GT_Mod.gregtechproxy.mAprilFool && aXSTR.nextInt(5000)==0)GT_Utility.sendSoundToPlayers(aBaseMetaTileEntity.getWorld(), GregTech_API.sSoundList.get(5), 10.0F, -1.0F, aBaseMetaTileEntity.getXCoord(), aBaseMetaTileEntity.getYCoord(),aBaseMetaTileEntity.getZCoord());
+ } else {
+ if (!mStuttering) {
+ stutterProcess();
+ if (canHaveInsufficientEnergy()) mProgresstime = -100;
+ mStuttering = true;
+ }
+ }
+ } else {
+ aBaseMetaTileEntity.setActive(false);
+ }
+
+ boolean tRemovedOutputFluid = false;
+
+ if (doesAutoOutputFluids() && getDrainableStack() != null && aBaseMetaTileEntity.getFrontFacing() != mMainFacing && (tSucceeded || aTick % 20 == 0)) {
+ IFluidHandler tTank = aBaseMetaTileEntity.getITankContainerAtSide(aBaseMetaTileEntity.getFrontFacing());
+ if (tTank != null) {
+ FluidStack tDrained = drain(1000, false);
+ if (tDrained != null) {
+ int tFilledAmount = tTank.fill(ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()), tDrained, false);
+ if (tFilledAmount > 0)
+ tTank.fill(ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()), drain(tFilledAmount, true), true);
+ }
+ }
+ if (getDrainableStack() == null) tRemovedOutputFluid = true;
+ }
+
+ if (doesAutoOutput() && !isOutputEmpty() && aBaseMetaTileEntity.getFrontFacing() != mMainFacing && (tSucceeded || mOutputBlocked % 300 == 1 || aBaseMetaTileEntity.hasInventoryBeenModified() || aTick % 600 == 0)) {
+ TileEntity tTileEntity2 = aBaseMetaTileEntity.getTileEntityAtSide(aBaseMetaTileEntity.getFrontFacing());
+ for (int i = 0, tCosts = 1; i < mOutputItems.length && tCosts > 0 && aBaseMetaTileEntity.isUniversalEnergyStored(128); i++) {
+ tCosts = GT_Utility.moveOneItemStack(aBaseMetaTileEntity, tTileEntity2, aBaseMetaTileEntity.getFrontFacing(), aBaseMetaTileEntity.getBackFacing(), null, false, (byte) 64, (byte) 1, (byte) 64, (byte) 1);
+ if (tCosts > 0) aBaseMetaTileEntity.decreaseStoredEnergyUnits(tCosts, true);
+ }
+ }
+
+ if (mOutputBlocked != 0) if (isOutputEmpty()) mOutputBlocked = 0;
+ else mOutputBlocked++;
+
+ if (allowToCheckRecipe()) {
+ if (mMaxProgresstime <= 0 && aBaseMetaTileEntity.isAllowedToWork() && (tRemovedOutputFluid || tSucceeded || aBaseMetaTileEntity.hasInventoryBeenModified() || aTick % 600 == 0 || aBaseMetaTileEntity.hasWorkJustBeenEnabled()) && hasEnoughEnergyToCheckRecipe()) {
+ if (checkRecipe() == 2) {
+ if (mInventory[3] != null && mInventory[3].stackSize <= 0) mInventory[3] = null;
+ for (int i = getInputSlot(), j = i + mInputSlotCount; i < j; i++)
+ if (mInventory[i] != null && mInventory[i].stackSize <= 0) mInventory[i] = null;
+ for (int i = 0; i < mOutputItems.length; i++) {
+ mOutputItems[i] = GT_Utility.copy(mOutputItems[i]);
+ if (mOutputItems[i] != null && mOutputItems[i].stackSize > 64)
+ mOutputItems[i].stackSize = 64;
+ mOutputItems[i] = GT_OreDictUnificator.get(true, mOutputItems[i]);
+ }
+ if (mFluid != null && mFluid.amount <= 0) mFluid = null;
+ mMaxProgresstime = Math.max(1, mMaxProgresstime);
+ if (GT_Utility.isDebugItem(mInventory[dechargerSlotStartIndex()])) {
+ mEUt = mMaxProgresstime = 1;
+ }
+ startProcess();
+ } else {
+ mMaxProgresstime = 0;
+ for (int i = 0; i < mOutputItems.length; i++) mOutputItems[i] = null;
+ mOutputFluid = null;
+ }
+ }
+ } else {
+ if (!mStuttering) {
+ stutterProcess();
+ mStuttering = true;
+ }
+ }
+ }
+ }
+
+ protected void doDisplayThings() {
+ if (mMainFacing < 2 && getBaseMetaTileEntity().getFrontFacing() > 1) {
+ mMainFacing = getBaseMetaTileEntity().getFrontFacing();
+ }
+ if (mMainFacing >= 2 && !mHasBeenUpdated) {
+ mHasBeenUpdated = true;
+ getBaseMetaTileEntity().setFrontFacing(getBaseMetaTileEntity().getBackFacing());
+ }
+
+ if (displaysInputFluid()) {
+ int tDisplayStackSlot = OTHER_SLOT_COUNT + mInputSlotCount + mOutputItems.length;
+ if (getFillableStack() == null) {
+ if (ItemList.Display_Fluid.isStackEqual(mInventory[tDisplayStackSlot], true, true))
+ mInventory[tDisplayStackSlot] = null;
+ } else {
+ mInventory[tDisplayStackSlot] = GT_Utility.getFluidDisplayStack(getFillableStack(), displaysStackSize());
+ }
+ }
+ }
+
+ protected boolean hasEnoughEnergyToCheckRecipe() {
+ return getBaseMetaTileEntity().isUniversalEnergyStored(getMinimumStoredEU() / 2);
+ }
+
+ protected boolean drainEnergyForProcess(long aEUt) {
+ return getBaseMetaTileEntity().decreaseStoredEnergyUnits(aEUt, false);
+ }
+
+ protected void calculateOverclockedNess(GT_Recipe aRecipe) {
+ calculateOverclockedNess(aRecipe.mEUt, aRecipe.mDuration);
+ }
+
+ protected void calculateOverclockedNess(int aEUt, int aDuration) {
+ if (aEUt <= 16) {
+ mEUt = aEUt * (1 << (mTier - 1)) * (1 << (mTier - 1));
+ mMaxProgresstime = aDuration / (1 << (mTier - 1));
+ } else {
+ mEUt = aEUt;
+ mMaxProgresstime = aDuration;
+ while (mEUt <= V[mTier - 1] * mAmperage) {
+ mEUt *= 4;
+ mMaxProgresstime /= 2;
+ }
+ }
+ }
+
+ protected ItemStack getSpecialSlot() {
+ return mInventory[3];
+ }
+
+ protected ItemStack getOutputAt(int aIndex) {
+ return mInventory[getOutputSlot() + aIndex];
+ }
+
+ protected ItemStack[] getAllOutputs() {
+ ItemStack[] rOutputs = new ItemStack[mOutputItems.length];
+ for (int i = 0; i < mOutputItems.length; i++) rOutputs[i] = getOutputAt(i);
+ return rOutputs;
+ }
+
+ protected boolean canOutput(GT_Recipe aRecipe) {
+ return aRecipe != null && (aRecipe.mNeedsEmptyOutput ? isOutputEmpty() && getDrainableStack() == null : canOutput(aRecipe.getFluidOutput(0)) && canOutput(aRecipe.mOutputs));
+ }
+
+ protected boolean canOutput(ItemStack... aOutputs) {
+ if (aOutputs == null) return true;
+ ItemStack[] tOutputSlots = getAllOutputs();
+ for (int i = 0; i < tOutputSlots.length && i < aOutputs.length; i++)
+ if (tOutputSlots[i] != null && aOutputs[i] != null && (!GT_Utility.areStacksEqual(tOutputSlots[i], aOutputs[i], false) || tOutputSlots[i].stackSize + aOutputs[i].stackSize > tOutputSlots[i].getMaxStackSize())) {
+ mOutputBlocked++;
+ return false;
+ }
+ return true;
+ }
+
+ protected boolean canOutput(FluidStack aOutput) {
+ return getDrainableStack() == null || aOutput == null || (getDrainableStack().isFluidEqual(aOutput) && (getDrainableStack().amount <= 0 || getDrainableStack().amount + aOutput.amount <= getCapacity()));
+ }
+
+ protected ItemStack getInputAt(int aIndex) {
+ return mInventory[getInputSlot() + aIndex];
+ }
+
+ protected ItemStack[] getAllInputs() {
+ ItemStack[] rInputs = new ItemStack[mInputSlotCount];
+ for (int i = 0; i < mInputSlotCount; i++) rInputs[i] = getInputAt(i);
+ return rInputs;
+ }
+
+ protected boolean isOutputEmpty() {
+ boolean rIsEmpty = true;
+ for (ItemStack tOutputSlotContent : getAllOutputs()) if (tOutputSlotContent != null) rIsEmpty = false;
+ return rIsEmpty;
+ }
+
+ protected boolean displaysInputFluid() {
+ return true;
+ }
+
+ protected boolean displaysOutputFluid() {
+ return true;
+ }
+
+ @Override
+ public void onValueUpdate(byte aValue) {
+ mMainFacing = aValue;
+ }
+
+ @Override
+ public byte getUpdateData() {
+ return (byte) mMainFacing;
+ }
+
+ @Override
+ public void doSound(byte aIndex, double aX, double aY, double aZ) {
+ super.doSound(aIndex, aX, aY, aZ);
+ if (aIndex == 8) GT_Utility.doSoundAtClient(GregTech_API.sSoundList.get(210), 100, 1.0F, aX, aY, aZ);
+ }
+
+ public boolean doesAutoOutput() {
+ return mItemTransfer;
+ }
+
+ public boolean doesAutoOutputFluids() {
+ return mFluidTransfer;
+ }
+
+ public boolean allowToCheckRecipe() {
+ return true;
+ }
+
+ public boolean showPipeFacing() {
+ return true;
+ }
+
+ /**
+ * Called whenever the Machine successfully started a Process, useful for Sound Effects
+ */
+ public void startProcess() {
+ //
+ }
+
+ /**
+ * Called whenever the Machine successfully finished a Process, useful for Sound Effects
+ */
+ public void endProcess() {
+ //
+ }
+
+ /**
+ * Called whenever the Machine aborted a Process, useful for Sound Effects
+ */
+ public void abortProcess() {
+ //
+ }
+
+ /**
+ * Called whenever the Machine aborted a Process but still works on it, useful for Sound Effects
+ */
+ public void stutterProcess() {
+ if (useStandardStutterSound()) sendSound((byte) 8);
+ }
+
+ /**
+ * If this Machine can have the Insufficient Energy Line Problem
+ */
+ public boolean canHaveInsufficientEnergy() {
+ return true;
+ }
+
+ public boolean useStandardStutterSound() {
+ return true;
+ }
+
+ @Override
+ public String[] getInfoData() {
+ return new String[]{
+ mNEIName,
+ "Progress:", (mProgresstime / 20) + " secs",
+ (mMaxProgresstime / 20) + " secs",
+ "Stored Energy:",
+ getBaseMetaTileEntity().getStoredEU() + "EU",
+ getBaseMetaTileEntity().getEUCapacity() + "EU"};
+ }
+
+ @Override
+ public boolean isGivingInformation() {
+ return true;
+ }
+
+ @Override
+ public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
+ if (aSide == getBaseMetaTileEntity().getFrontFacing() || aSide == mMainFacing) {
+ mAllowInputFromOutputSide = !mAllowInputFromOutputSide;
+ GT_Utility.sendChatToPlayer(aPlayer, mAllowInputFromOutputSide ? trans("095","Input from Output Side allowed") : trans("096","Input from Output Side forbidden"));
+ }
+ }
+
+ @Override
+ public boolean allowCoverOnSide(byte aSide, GT_ItemStack aCoverID) {
+ return (aSide != mMainFacing || GregTech_API.getCoverBehavior(aCoverID.toStack()).isGUIClickable(aSide, GT_Utility.stackToInt(aCoverID.toStack()), 0, getBaseMetaTileEntity()));
+ }
+
+ @Override
+ public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
+ return aSide != mMainFacing && aIndex >= getOutputSlot() && aIndex < getOutputSlot() + mOutputItems.length;
+ }
+
+ @Override
+ public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
+ if (aSide == mMainFacing || aIndex < getInputSlot() || aIndex >= getInputSlot() + mInputSlotCount || (!mAllowInputFromOutputSide && aSide == aBaseMetaTileEntity.getFrontFacing()))
+ return false;
+ for (int i = getInputSlot(), j = i + mInputSlotCount; i < j; i++)
+ if (GT_Utility.areStacksEqual(GT_OreDictUnificator.get(aStack), mInventory[i])) return i == aIndex;
+ return true;
+ }
+
+ /**
+ * @return the Recipe List which is used for this Machine, this is a useful Default Handler
+ */
+ public GT_Recipe_Map getRecipeList() {
+ return null;
+ }
+
+ /**
+ * Override this to check the Recipes yourself, super calls to this could be useful if you just want to add a special case
+ * <p/>
+ * I thought about Enum too, but Enum doesn't add support for people adding other return Systems.
+ * <p/>
+ * Funny how Eclipse marks the word Enum as not correctly spelled.
+ *
+ * @return see constants above
+ */
+ public int checkRecipe() {
+ return checkRecipe(false);
+ }
+
+ public static boolean isValidForLowGravity(GT_Recipe tRecipe, int dimId){
+ return //TODO check or get a better solution
+ DimensionManager.getProvider(dimId).getClass().getName().contains("Orbit") ||
+ DimensionManager.getProvider(dimId).getClass().getName().endsWith("Space") ||
+ DimensionManager.getProvider(dimId).getClass().getName().endsWith("Asteroids") ||
+ DimensionManager.getProvider(dimId).getClass().getName().endsWith("SS") ||
+ DimensionManager.getProvider(dimId).getClass().getName().contains("SpaceStation");
+ }
+
+
+ /**
+ *
+ * @param skipOC disables OverclockedNess calculation and check - if you do you must implement your own method...
+ * @return
+ */
+ public int checkRecipe(boolean skipOC){
+ GT_Recipe_Map tMap = getRecipeList();
+ if (tMap == null) return DID_NOT_FIND_RECIPE;
+ GT_Recipe tRecipe = tMap.findRecipe(getBaseMetaTileEntity(), mLastRecipe, false, V[mTier], new FluidStack[]{getFillableStack()}, getSpecialSlot(), getAllInputs());
+ if (tRecipe == null) return DID_NOT_FIND_RECIPE;
+
+ if (GT_Mod.gregtechproxy.mLowGravProcessing && tRecipe.mSpecialValue == -100 &&
+ !isValidForLowGravity(tRecipe,getBaseMetaTileEntity().getWorld().provider.dimensionId))
+ return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS;
+ if (tRecipe.mCanBeBuffered) mLastRecipe = tRecipe;
+ if (!canOutput(tRecipe)) {
+ mOutputBlocked++;
+ return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS;
+ }
+ if (tRecipe.mSpecialValue == -200 && (mCleanroom == null || mCleanroom.mEfficiency == 0))
+ return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS;
+ if (!tRecipe.isRecipeInputEqual(true, new FluidStack[]{getFillableStack()}, getAllInputs()))
+ return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS;
+ for (int i = 0; i < mOutputItems.length; i++)
+ if (getBaseMetaTileEntity().getRandomNumber(10000) < tRecipe.getOutputChance(i))
+ mOutputItems[i] = tRecipe.getOutput(i);
+ if (tRecipe.mSpecialValue == -200)
+ for (int i = 0; i < mOutputItems.length; i++)
+ if (mOutputItems[i] != null && getBaseMetaTileEntity().getRandomNumber(10000) > mCleanroom.mEfficiency)
+ mOutputItems[i] = null;
+ mOutputFluid = tRecipe.getFluidOutput(0);
+ calculateOverclockedNess(tRecipe);
+ return FOUND_AND_SUCCESSFULLY_USED_RECIPE;
+ }
+
+ public ITexture[] getSideFacingActive(byte aColor) {
+ return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1]};
+ }
+
+ public ITexture[] getSideFacingInactive(byte aColor) {
+ return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1]};
+ }
+
+ public ITexture[] getFrontFacingActive(byte aColor) {
+ return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1]};
+ }
+
+ public ITexture[] getFrontFacingInactive(byte aColor) {
+ return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1]};
+ }
+
+ public ITexture[] getTopFacingActive(byte aColor) {
+ return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1]};
+ }
+
+ public ITexture[] getTopFacingInactive(byte aColor) {
+ return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1]};
+ }
+
+ public ITexture[] getBottomFacingActive(byte aColor) {
+ return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1]};
+ }
+
+ public ITexture[] getBottomFacingInactive(byte aColor) {
+ return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1]};
+ }
+
+ public ITexture[] getBottomFacingPipeActive(byte aColor) {
+ return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)};
+ }
+
+ public ITexture[] getBottomFacingPipeInactive(byte aColor) {
+ return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)};
+ }
+
+ public ITexture[] getTopFacingPipeActive(byte aColor) {
+ return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)};
+ }
+
+ public ITexture[] getTopFacingPipeInactive(byte aColor) {
+ return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)};
+ }
+
+ public ITexture[] getSideFacingPipeActive(byte aColor) {
+ return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)};
+ }
+
+ public ITexture[] getSideFacingPipeInactive(byte aColor) {
+ return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)};
+ }
+} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/GTPP_MTE_BasicTank.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/GTPP_MTE_BasicTank.java
new file mode 100644
index 0000000000..03c8fadad4
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/GTPP_MTE_BasicTank.java
@@ -0,0 +1,264 @@
+package gtPlusPlus.xmod.gregtech.api.metatileentity.custom.power;
+
+import gregtech.api.enums.ItemList;
+import gregtech.api.gui.GT_Container_BasicTank;
+import gregtech.api.gui.GT_GUIContainer_BasicTank;
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.util.GT_Utility;
+import net.minecraft.entity.player.InventoryPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraftforge.fluids.FluidStack;
+
+/**
+ * NEVER INCLUDE THIS FILE IN YOUR MOD!!!
+ * <p/>
+ * This is the main construct for my generic Tanks. Filling and emptying behavior have to be implemented manually
+ */
+public abstract class GTPP_MTE_BasicTank extends GTPP_MTE_TieredMachineBlock {
+
+ public FluidStack mFluid;
+
+ /**
+ * @param aInvSlotCount should be 3
+ */
+ public GTPP_MTE_BasicTank(int aID, String aName, String aNameRegional, int aTier, int aInvSlotCount, String aDescription, ITexture... aTextures) {
+ super(aID, aName, aNameRegional, aTier, aInvSlotCount, aDescription, aTextures);
+ }
+
+ public GTPP_MTE_BasicTank(int aID, String aName, String aNameRegional, int aTier, int aInvSlotCount, String[] aDescription, ITexture... aTextures) {
+ super(aID, aName, aNameRegional, aTier, aInvSlotCount, aDescription, aTextures);
+ }
+
+ public GTPP_MTE_BasicTank(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) {
+ super(aName, aTier, aInvSlotCount, aDescription, aTextures);
+ }
+
+ public GTPP_MTE_BasicTank(String aName, int aTier, int aInvSlotCount, String[] aDescription, ITexture[][][] aTextures) {
+ super(aName, aTier, aInvSlotCount, aDescription, aTextures);
+ }
+
+ @Override
+ public boolean isSimpleMachine() {
+ return false;
+ }
+
+ @Override
+ public boolean isValidSlot(int aIndex) {
+ return aIndex != getStackDisplaySlot();
+ }
+
+ @Override
+ public void saveNBTData(NBTTagCompound aNBT) {
+ if (mFluid != null) aNBT.setTag("mFluid", mFluid.writeToNBT(new NBTTagCompound()));
+ }
+
+ @Override
+ public void loadNBTData(NBTTagCompound aNBT) {
+ mFluid = FluidStack.loadFluidStackFromNBT(aNBT.getCompoundTag("mFluid"));
+ }
+
+ public abstract boolean doesFillContainers();
+
+ public abstract boolean doesEmptyContainers();
+
+ public abstract boolean canTankBeFilled();
+
+ public abstract boolean canTankBeEmptied();
+
+ public abstract boolean displaysItemStack();
+
+ public abstract boolean displaysStackSize();
+
+ public int getInputSlot() {
+ return 0;
+ }
+
+ public int getOutputSlot() {
+ return 1;
+ }
+
+ public int getStackDisplaySlot() {
+ return 2;
+ }
+
+ public boolean isFluidInputAllowed(FluidStack aFluid) {
+ return true;
+ }
+
+ public boolean isFluidChangingAllowed() {
+ return true;
+ }
+
+ public FluidStack getFillableStack() {
+ return mFluid;
+ }
+
+ public FluidStack setFillableStack(FluidStack aFluid) {
+ mFluid = aFluid;
+ return mFluid;
+ }
+
+ public FluidStack getDrainableStack() {
+ return mFluid;
+ }
+
+ public FluidStack setDrainableStack(FluidStack aFluid) {
+ mFluid = aFluid;
+ return mFluid;
+ }
+
+ public FluidStack getDisplayedFluid() {
+ return getDrainableStack();
+ }
+
+ @Override
+ public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return new GT_Container_BasicTank(aPlayerInventory, aBaseMetaTileEntity);
+ }
+
+ @Override
+ public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return new GT_GUIContainer_BasicTank(aPlayerInventory, aBaseMetaTileEntity, getLocalName());
+ }
+
+ @Override
+ public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
+ if (aBaseMetaTileEntity.isServerSide()) {
+ if (isFluidChangingAllowed() && getFillableStack() != null && getFillableStack().amount <= 0)
+ setFillableStack(null);
+
+ if (displaysItemStack() && getStackDisplaySlot() >= 0 && getStackDisplaySlot() < mInventory.length) {
+ if (getDisplayedFluid() == null) {
+ if (ItemList.Display_Fluid.isStackEqual(mInventory[getStackDisplaySlot()], true, true))
+ mInventory[getStackDisplaySlot()] = null;
+ } else {
+ mInventory[getStackDisplaySlot()] = GT_Utility.getFluidDisplayStack(getDisplayedFluid(), displaysStackSize());
+ }
+ }
+
+ if (doesEmptyContainers()) {
+ FluidStack tFluid = GT_Utility.getFluidForFilledItem(mInventory[getInputSlot()], true);
+ if (tFluid != null && isFluidInputAllowed(tFluid)) {
+ if (getFillableStack() == null) {
+ if (isFluidInputAllowed(tFluid) && tFluid.amount <= getCapacity()) {
+ if (aBaseMetaTileEntity.addStackToSlot(getOutputSlot(), GT_Utility.getContainerItem(mInventory[getInputSlot()], true), 1)) {
+ setFillableStack(tFluid.copy());
+ this.onEmptyingContainerWhenEmpty();
+ aBaseMetaTileEntity.decrStackSize(getInputSlot(), 1);
+ }
+ }
+ } else {
+ if (tFluid.isFluidEqual(getFillableStack()) && tFluid.amount + getFillableStack().amount <= getCapacity()) {
+ if (aBaseMetaTileEntity.addStackToSlot(getOutputSlot(), GT_Utility.getContainerItem(mInventory[getInputSlot()], true), 1)) {
+ getFillableStack().amount += tFluid.amount;
+ aBaseMetaTileEntity.decrStackSize(getInputSlot(), 1);
+ }
+ }
+ }
+ }
+ }
+
+ if (doesFillContainers()) {
+ ItemStack tOutput = GT_Utility.fillFluidContainer(getDrainableStack(), mInventory[getInputSlot()], false, true);
+ if (tOutput != null && aBaseMetaTileEntity.addStackToSlot(getOutputSlot(), tOutput, 1)) {
+ FluidStack tFluid = GT_Utility.getFluidForFilledItem(tOutput, true);
+ aBaseMetaTileEntity.decrStackSize(getInputSlot(), 1);
+ if (tFluid != null) getDrainableStack().amount -= tFluid.amount;
+ if (getDrainableStack().amount <= 0 && isFluidChangingAllowed()) setDrainableStack(null);
+ }
+ }
+ }
+ }
+
+ @Override
+ public FluidStack getFluid() {
+ return getDrainableStack();
+ }
+
+ @Override
+ public int getFluidAmount() {
+ return getDrainableStack() != null ? getDrainableStack().amount : 0;
+ }
+
+ @Override
+ public int fill(FluidStack aFluid, boolean doFill) {
+ if (aFluid == null || aFluid.getFluid().getID() <= 0 || aFluid.amount <= 0 || !canTankBeFilled() || !isFluidInputAllowed(aFluid))
+ return 0;
+
+ if (getFillableStack() == null || getFillableStack().getFluid().getID() <= 0) {
+ if (aFluid.amount <= getCapacity()) {
+ if (doFill) {
+ setFillableStack(aFluid.copy());
+ getBaseMetaTileEntity().markDirty();
+ }
+ return aFluid.amount;
+ }
+ if (doFill) {
+ setFillableStack(aFluid.copy());
+ getFillableStack().amount = getCapacity();
+ getBaseMetaTileEntity().markDirty();
+ }
+ return getCapacity();
+ }
+
+ if (!getFillableStack().isFluidEqual(aFluid))
+ return 0;
+
+ int space = getCapacity() - getFillableStack().amount;
+ if (aFluid.amount <= space) {
+ if (doFill) {
+ getFillableStack().amount += aFluid.amount;
+ getBaseMetaTileEntity().markDirty();
+ }
+ return aFluid.amount;
+ }
+ if (doFill)
+ getFillableStack().amount = getCapacity();
+ return space;
+ }
+
+ @Override
+ public FluidStack drain(int maxDrain, boolean doDrain) {
+ if (getDrainableStack() == null || !canTankBeEmptied()) return null;
+ if (getDrainableStack().amount <= 0 && isFluidChangingAllowed()) {
+ setDrainableStack(null);
+ getBaseMetaTileEntity().markDirty();
+ return null;
+ }
+
+ int used = maxDrain;
+ if (getDrainableStack().amount < used)
+ used = getDrainableStack().amount;
+
+ if (doDrain) {
+ getDrainableStack().amount -= used;
+ getBaseMetaTileEntity().markDirty();
+ }
+
+ FluidStack drained = getDrainableStack().copy();
+ drained.amount = used;
+
+ if (getDrainableStack().amount <= 0 && isFluidChangingAllowed()) {
+ setDrainableStack(null);
+ getBaseMetaTileEntity().markDirty();
+ }
+
+ return drained;
+ }
+
+ @Override
+ public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
+ return aIndex == getOutputSlot();
+ }
+
+ @Override
+ public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
+ return aIndex == getInputSlot();
+ }
+
+ protected void onEmptyingContainerWhenEmpty(){
+ //Do nothing
+ }
+} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/GTPP_MTE_TieredMachineBlock.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/GTPP_MTE_TieredMachineBlock.java
new file mode 100644
index 0000000000..785c4698db
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/GTPP_MTE_TieredMachineBlock.java
@@ -0,0 +1,100 @@
+package gtPlusPlus.xmod.gregtech.api.metatileentity.custom.power;
+
+import static gregtech.api.enums.GT_Values.GT;
+
+import gregtech.api.interfaces.ITexture;
+import gtPlusPlus.api.objects.data.AutoMap;
+import gtPlusPlus.core.lib.CORE;
+
+public abstract class GTPP_MTE_TieredMachineBlock extends MetaTileEntityCustomPower {
+ /**
+ * Value between [0 - 9] to describe the Tier of this Machine.
+ */
+ public final byte mTier;
+
+ @Deprecated
+ public final String mDescription;
+
+ /**
+ * A simple Description.
+ */
+ public final String[] mDescriptionArray;
+
+ /**
+ * Contains all Textures used by this Block.
+ */
+ public final ITexture[][][] mTextures;
+
+ public GTPP_MTE_TieredMachineBlock(int aID, String aName, String aNameRegional, int aTier, int aInvSlotCount, String aDescription, ITexture... aTextures) {
+ super(aID, aName, aNameRegional, aInvSlotCount);
+ mTier = (byte) Math.max(0, Math.min(aTier, 9));
+ mDescriptionArray = aDescription == null ? new String[0] : new String[]{aDescription};
+ mDescription = mDescriptionArray.length > 0 ? mDescriptionArray[0] : "";
+ // must always be the last call!
+ if (GT.isClientSide()) mTextures = getTextureSet(aTextures);
+ else mTextures = null;
+ }
+
+ public GTPP_MTE_TieredMachineBlock(int aID, String aName, String aNameRegional, int aTier, int aInvSlotCount, String[] aDescription, ITexture... aTextures) {
+ super(aID, aName, aNameRegional, aInvSlotCount);
+ mTier = (byte) Math.max(0, Math.min(aTier, 9));
+ mDescriptionArray = aDescription == null ? new String[0] : aDescription;
+ mDescription = mDescriptionArray.length > 0 ? mDescriptionArray[0] : "";
+
+ // must always be the last call!
+ if (GT.isClientSide()) mTextures = getTextureSet(aTextures);
+ else mTextures = null;
+ }
+
+ public GTPP_MTE_TieredMachineBlock(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) {
+ super(aName, aInvSlotCount);
+ mTier = (byte) aTier;
+ mDescriptionArray = aDescription == null ? new String[0] : new String[]{aDescription};
+ mDescription = mDescriptionArray.length > 0 ? mDescriptionArray[0] : "";
+ mTextures = aTextures;
+ }
+
+ public GTPP_MTE_TieredMachineBlock(String aName, int aTier, int aInvSlotCount, String[] aDescription, ITexture[][][] aTextures) {
+ super(aName, aInvSlotCount);
+ mTier = (byte) aTier;
+ mDescriptionArray = aDescription == null ? new String[0] : aDescription;
+ mDescription = mDescriptionArray.length > 0 ? mDescriptionArray[0] : "";
+ mTextures = aTextures;
+ }
+
+ @Override
+ public byte getTileEntityBaseType() {
+ return 12;
+ }
+
+ @Override
+ public long getInputTier() {
+ return mTier;
+ }
+
+ @Override
+ public long getOutputTier() {
+ return mTier;
+ }
+
+ @Override
+ public String[] getDescription() {
+
+ AutoMap<String> aTooltip = new AutoMap<String>();
+ String []s1 = null;
+ s1 = new String[aTooltip.size()];
+ int u = 0;
+ for (String s : aTooltip) {
+ s1[u] = s;
+ }
+ return s1;
+ }
+
+ /**
+ * Used Client Side to get a Texture Set for this Block.
+ * Called after setting the Tier and the Description so that those two are accessible.
+ *
+ * @param aTextures is the optional Array you can give to the Constructor.
+ */
+ public abstract ITexture[][][] getTextureSet(ITexture[] aTextures);
+} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/MetaTileEntityCustomPower.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/MetaTileEntityCustomPower.java
new file mode 100644
index 0000000000..ba98af25f7
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/MetaTileEntityCustomPower.java
@@ -0,0 +1,91 @@
+package gtPlusPlus.xmod.gregtech.api.metatileentity.custom.power;
+
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.GT_Values;
+import gregtech.api.util.GT_Utility;
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.core.util.math.MathUtils;
+import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.CustomMetaTileBase;
+import gtPlusPlus.xmod.gregtech.common.Meta_GT_Proxy;
+import net.minecraft.entity.Entity;
+import net.minecraft.init.Blocks;
+import net.minecraft.world.World;
+
+public abstract class MetaTileEntityCustomPower extends CustomMetaTileBase {
+
+ public MetaTileEntityCustomPower(int aID, String aBasicName, String aRegionalName, int aInvSlotCount) {
+ super(aID, aBasicName, aRegionalName, aInvSlotCount);
+ this.setBaseMetaTileEntity(Meta_GT_Proxy.constructBaseMetaTileEntityCustomPower());
+ }
+
+ public MetaTileEntityCustomPower(String aStack, int aInvSlotCount) {
+ super(aStack, aInvSlotCount);
+ }
+
+ public long getMinimumStoredEU() {
+ return 0L;
+ }
+
+ public void doExplosion(long aExplosionPower) {
+
+ if (MathUtils.randInt(1, 10) > 0) {
+ Logger.INFO("Machine tried to explode, let's stop that. xo");
+ return;
+ }
+
+ float tStrength = aExplosionPower < GT_Values.V[0]
+ ? 1.0F
+ : (aExplosionPower < GT_Values.V[1]
+ ? 2.0F
+ : (aExplosionPower < GT_Values.V[2]
+ ? 3.0F
+ : (aExplosionPower < GT_Values.V[3]
+ ? 4.0F
+ : (aExplosionPower < GT_Values.V[4]
+ ? 5.0F
+ : (aExplosionPower < GT_Values.V[4] * 2L
+ ? 6.0F
+ : (aExplosionPower < GT_Values.V[5]
+ ? 7.0F
+ : (aExplosionPower < GT_Values.V[6]
+ ? 8.0F
+ : (aExplosionPower < GT_Values.V[7]
+ ? 9.0F
+ : 10.0F))))))));
+ int tX = this.getBaseMetaTileEntity().getXCoord();
+ short tY = this.getBaseMetaTileEntity().getYCoord();
+ int tZ = this.getBaseMetaTileEntity().getZCoord();
+ World tWorld = this.getBaseMetaTileEntity().getWorld();
+ GT_Utility.sendSoundToPlayers(tWorld, (String) GregTech_API.sSoundList.get(Integer.valueOf(209)), 1.0F, -1.0F,
+ tX, tY, tZ);
+ tWorld.setBlock(tX, tY, tZ, Blocks.air);
+ if (GregTech_API.sMachineExplosions) {
+ tWorld.createExplosion((Entity) null, (double) tX + 0.5D, (double) tY + 0.5D, (double) tZ + 0.5D, tStrength,
+ true);
+ }
+
+ }
+
+ @Override
+ public void onExplosion() {
+
+ if (MathUtils.randInt(1, 10) > 0) {
+ Logger.INFO("Machine tried to explode, let's stop that. xo");
+ return;
+ }
+ // TODO Auto-generated method stub
+ super.onExplosion();
+ }
+
+ @Override
+ public boolean isElectric() {
+ return true;
+ }
+
+ @Override
+ public long getEUVar() {
+ // TODO Auto-generated method stub
+ return super.getEUVar();
+ }
+
+}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBreaker.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBreaker.java
new file mode 100644
index 0000000000..e6bf4b8486
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBreaker.java
@@ -0,0 +1,283 @@
+package gtPlusPlus.xmod.gregtech.api.metatileentity.implementations;
+
+import gregtech.api.enums.GT_Values;
+import gregtech.api.enums.Textures.BlockIcons;
+import gregtech.api.gui.GT_Container_4by4;
+import gregtech.api.gui.GT_GUIContainer_4by4;
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.items.GT_MetaBase_Item;
+import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_Utility;
+import gtPlusPlus.api.objects.data.AutoMap;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.xmod.gregtech.api.metatileentity.custom.power.GTPP_MTE_TieredMachineBlock;
+import ic2.api.item.ElectricItem;
+import ic2.api.item.IElectricItem;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.InventoryPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+
+public class GT_MetaTileEntity_BasicBreaker extends GTPP_MTE_TieredMachineBlock {
+
+ public boolean mCharge = false;
+ public boolean mDecharge = false;
+ public int mBatteryCount = 0;
+ public int mChargeableCount = 0;
+ private long count = 0L;
+ private long mStored = 0L;
+ private long mMax = 0L;
+
+ public GT_MetaTileEntity_BasicBreaker(int aID, String aName, String aNameRegional, int aTier,
+ String aDescription, int aSlotCount) {
+ super(aID, aName, aNameRegional, aTier, aSlotCount, aDescription, new ITexture[0]);
+ }
+
+ public GT_MetaTileEntity_BasicBreaker(String aName, int aTier, String aDescription, ITexture[][][] aTextures,
+ int aSlotCount) {
+ super(aName, aTier, aSlotCount, aDescription, aTextures);
+ }
+
+ public GT_MetaTileEntity_BasicBreaker(String aName, int aTier, String[] aDescription,
+ ITexture[][][] aTextures, int aSlotCount) {
+ super(aName, aTier, aSlotCount, aDescription, aTextures);
+ }
+
+ public String[] getDescription() {
+ String []s1 = super.getDescription();
+ s1 = new String[0];
+ return s1;
+ }
+
+ public ITexture[][][] getTextureSet(ITexture[] aTextures) {
+ ITexture[][][] rTextures = new ITexture[2][17][];
+
+ for (byte i = -1; i < 16; ++i) {
+ rTextures[0][i + 1] = new ITexture[]{BlockIcons.MACHINE_CASINGS[this.mTier][i + 1],
+ this.mInventory.length > 4
+ ? BlockIcons.OVERLAYS_ENERGY_IN_MULTI[Math.min(12, mTier)]
+ : BlockIcons.OVERLAYS_ENERGY_IN[Math.min(12, mTier)]};
+
+ rTextures[1][i + 1] = new ITexture[]{BlockIcons.MACHINE_CASINGS[this.mTier][i + 1],
+ this.mInventory.length > 4
+ ? BlockIcons.OVERLAYS_ENERGY_OUT_MULTI[this.mTier]
+ : BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier]};
+ }
+
+ return rTextures;
+ }
+
+ public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex,
+ boolean aActive, boolean aRedstone) {
+ return this.mTextures[aSide == aFacing ? 1 : 0][aColorIndex + 1];
+ }
+
+ public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
+ return new GT_MetaTileEntity_BasicBreaker(this.mName, this.mTier, this.mDescriptionArray, this.mTextures,
+ this.mInventory.length);
+ }
+
+ public boolean isSimpleMachine() {
+ return false;
+ }
+
+ public boolean isElectric() {
+ return true;
+ }
+
+ public boolean isValidSlot(int aIndex) {
+ return true;
+ }
+
+ public boolean isFacingValid(byte aFacing) {
+ return true;
+ }
+
+ public boolean isEnetInput() {
+ return true;
+ }
+
+ public boolean isEnetOutput() {
+ return true;
+ }
+
+ public boolean isInputFacing(byte aSide) {
+ return aSide != this.getBaseMetaTileEntity().getFrontFacing();
+ }
+
+ public boolean isOutputFacing(byte aSide) {
+ return aSide == this.getBaseMetaTileEntity().getFrontFacing();
+ }
+
+ public boolean isTeleporterCompatible() {
+ return false;
+ }
+
+ public long getMinimumStoredEU() {
+ return GT_Values.V[this.mTier] * 16L * 16;
+ }
+
+ public long maxEUStore() {
+ return GT_Values.V[this.mTier] * 64L * 16;
+ }
+
+ public long maxEUInput() {
+ return GT_Values.V[this.mTier] * 16;
+ }
+
+ public long maxEUOutput() {
+ return GT_Values.V[this.mTier];
+ }
+
+ public long maxAmperesIn() {
+ return (long) (1);
+ }
+
+ public long maxAmperesOut() {
+ return (long) 16;
+ }
+
+ public int rechargerSlotStartIndex() {
+ return 0;
+ }
+
+ public int dechargerSlotStartIndex() {
+ return 0;
+ }
+
+ public int rechargerSlotCount() {
+ return 0;
+ }
+
+ public int dechargerSlotCount() {
+ return 0;
+ }
+
+ public int getProgresstime() {
+ return (int) this.getBaseMetaTileEntity().getUniversalEnergyStored();
+ }
+
+ public int maxProgresstime() {
+ return (int) this.getBaseMetaTileEntity().getUniversalEnergyCapacity();
+ }
+
+ public boolean isAccessAllowed(EntityPlayer aPlayer) {
+ return true;
+ }
+
+ public void saveNBTData(NBTTagCompound aNBT) {
+ }
+
+ public void loadNBTData(NBTTagCompound aNBT) {
+ }
+
+ public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) {
+ if (aBaseMetaTileEntity.isClientSide()) {
+ return true;
+ } else {
+ aBaseMetaTileEntity.openGUI(aPlayer);
+ return true;
+ }
+ }
+
+ public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return new GT_Container_4by4(aPlayerInventory, aBaseMetaTileEntity);
+ }
+
+ public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return new GT_GUIContainer_4by4(aPlayerInventory, aBaseMetaTileEntity, this.getLocalName());
+ }
+
+ public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
+ super.onPostTick(aBaseMetaTileEntity, aTick);
+ if (aBaseMetaTileEntity.isServerSide()) {
+ /*this.mCharge = aBaseMetaTileEntity.getStoredEU() / 2L > aBaseMetaTileEntity.getEUCapacity() / 3L;
+ this.mDecharge = aBaseMetaTileEntity.getStoredEU() < aBaseMetaTileEntity.getEUCapacity() / 3L;
+ this.mBatteryCount = 0;
+ this.mChargeableCount = 0;
+ ItemStack[] arg3 = this.mInventory;
+ int arg4 = arg3.length;
+
+ for (int arg5 = 0; arg5 < arg4; ++arg5) {
+ ItemStack tStack = arg3[arg5];
+ if (GT_ModHandler.isElectricItem(tStack, this.mTier)) {
+ if (GT_ModHandler.isChargerItem(tStack)) {
+ ++this.mBatteryCount;
+ }
+
+ ++this.mChargeableCount;
+ }
+ }*/
+ }
+
+ }
+
+ public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
+ return false;
+ }
+
+ public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
+ return true;
+ }
+
+ public int getInventoryStackLimit() {
+ return 1;
+ }
+
+ public long[] getStoredEnergy() {
+ boolean scaleOverflow = false;
+ boolean storedOverflow = false;
+ long tScale = this.getBaseMetaTileEntity().getEUCapacity();
+ long tStored = this.getBaseMetaTileEntity().getStoredEU();
+ long tStep = 0L;
+ if (this.mInventory != null) {
+ ItemStack[] arg8 = this.mInventory;
+ int arg9 = arg8.length;
+
+ for (int arg10 = 0; arg10 < arg9; ++arg10) {
+ ItemStack aStack = arg8[arg10];
+ if (GT_ModHandler.isElectricItem(aStack)) {
+ if (aStack.getItem() instanceof GT_MetaBase_Item) {
+ Long[] stats = ((GT_MetaBase_Item) aStack.getItem()).getElectricStats(aStack);
+ if (stats != null) {
+ if (stats[0].longValue() > 4611686018427387903L) {
+ scaleOverflow = true;
+ }
+
+ tScale += stats[0].longValue();
+ tStep = ((GT_MetaBase_Item) aStack.getItem()).getRealCharge(aStack);
+ if (tStep > 4611686018427387903L) {
+ storedOverflow = true;
+ }
+
+ tStored += tStep;
+ }
+ } else if (aStack.getItem() instanceof IElectricItem) {
+ tStored += (long) ElectricItem.manager.getCharge(aStack);
+ tScale += (long) ((IElectricItem) aStack.getItem()).getMaxCharge(aStack);
+ }
+ }
+ }
+ }
+
+ if (scaleOverflow) {
+ tScale = Long.MAX_VALUE;
+ }
+
+ if (storedOverflow) {
+ tStored = Long.MAX_VALUE;
+ }
+
+ return new long[]{tStored, tScale};
+ }
+
+ public String[] getInfoData() {
+ return new String[]{};
+ }
+
+ public boolean isGivingInformation() {
+ return true;
+ }
+} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBattery.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBattery.java
index 57f8b722c3..01134817ae 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBattery.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBattery.java
@@ -51,8 +51,7 @@ GT_MetaTileEntity_Hatch {
}
return new String[]{
this.mDescription,
- "Capacity: " + mSlots + " slots",
- CORE.GT_Tooltip};
+ "Capacity: " + mSlots + " slots"};
}
@Override
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBattery.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBattery.java
index ba97cc38eb..8cb7c943c0 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBattery.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBattery.java
@@ -49,8 +49,7 @@ GT_MetaTileEntity_Hatch {
}
return new String[]{
this.mDescription,
- "Capacity: " + mSlots + " slots",
- CORE.GT_Tooltip};
+ "Capacity: " + mSlots + " slots"};
}
@Override
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Input.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Input.java
new file mode 100644
index 0000000000..833c1bfcc0
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Input.java
@@ -0,0 +1,216 @@
+package gtPlusPlus.xmod.gregtech.api.metatileentity.implementations;
+
+import gregtech.api.enums.Textures.BlockIcons;
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.metatileentity.MetaTileEntity;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus;
+import gregtech.api.objects.GT_RenderedTexture;
+import gregtech.api.util.GT_Utility;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
+import gtPlusPlus.core.util.minecraft.PlayerUtils;
+import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.InventoryPlayer;
+import net.minecraft.inventory.IInventory;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+
+public class GT_MetaTileEntity_SuperBus_Input extends GT_MetaTileEntity_Hatch_InputBus {
+ public GT_Recipe_Map mRecipeMap = null;
+
+ public GT_MetaTileEntity_SuperBus_Input(int aID, String aName, String aNameRegional, int aTier) {
+ super(aID, aName, aNameRegional, aTier);
+ }
+
+ public GT_MetaTileEntity_SuperBus_Input(String aName, int aTier, String aDescription, ITexture[][][] aTextures) {
+ super(aName, aTier, aDescription, aTextures);
+ }
+
+ public GT_MetaTileEntity_SuperBus_Input(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) {
+ super(aName, aTier, aDescription, aTextures);
+ }
+
+ /**
+ * Returns a factor of 16 based on tier.
+ * @param aTier The tier of this bus.
+ * @return (1+ aTier) * 16
+ */
+ public static int getSlots(int aTier) {
+ return (1+ aTier) * 16;
+ }
+
+ public ITexture[] getTexturesActive(ITexture aBaseTexture) {
+ return new ITexture[]{aBaseTexture, new GT_RenderedTexture(BlockIcons.OVERLAY_PIPE_IN)};
+ }
+
+ public ITexture[] getTexturesInactive(ITexture aBaseTexture) {
+ return new ITexture[]{aBaseTexture, new GT_RenderedTexture(BlockIcons.OVERLAY_PIPE_IN)};
+ }
+
+ public boolean isSimpleMachine() {
+ return true;
+ }
+
+ public boolean isFacingValid(byte aFacing) {
+ return true;
+ }
+
+ public boolean isAccessAllowed(EntityPlayer aPlayer) {
+ return true;
+ }
+
+ public boolean isValidSlot(int aIndex) {
+ return true;
+ }
+
+ public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
+ return new GT_MetaTileEntity_SuperBus_Input(this.mName, this.mTier, this.mDescriptionArray, this.mTextures);
+ }
+
+ public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return null;
+ }
+
+ public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return null;
+ }
+
+ public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) {
+ if (aBaseMetaTileEntity.isServerSide() && aBaseMetaTileEntity.hasInventoryBeenModified()) {
+ this.fillStacksIntoFirstSlots();
+ }
+
+ }
+
+ public void updateSlots() {
+ for (int i = 0; i < this.mInventory.length; ++i) {
+ if (this.mInventory[i] != null && this.mInventory[i].stackSize <= 0) {
+ this.mInventory[i] = null;
+ }
+ }
+
+ this.fillStacksIntoFirstSlots();
+ }
+
+ protected void fillStacksIntoFirstSlots() {
+ for (int i = 0; i < this.mInventory.length; ++i) {
+ for (int j = i + 1; j < this.mInventory.length; ++j) {
+ if (this.mInventory[j] != null && (this.mInventory[i] == null
+ || GT_Utility.areStacksEqual(this.mInventory[i], this.mInventory[j]))) {
+ GT_Utility.moveStackFromSlotAToSlotB((IInventory) this.getBaseMetaTileEntity(), (IInventory) this.getBaseMetaTileEntity(), j, i, (byte) 64, (byte) 1, (byte) 64, (byte) 1);
+ }
+ }
+ }
+
+ }
+
+ public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
+ return aSide == this.getBaseMetaTileEntity().getFrontFacing();
+ }
+
+ public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
+ return aSide == this.getBaseMetaTileEntity().getFrontFacing()
+ && (this.mRecipeMap == null || this.mRecipeMap.containsInput(aStack));
+ }
+
+ @Override
+ public void saveNBTData(NBTTagCompound aNBT) {
+ super.saveNBTData(aNBT);
+ }
+
+ @Override
+ public void loadNBTData(NBTTagCompound aNBT) {
+ super.loadNBTData(aNBT);
+ }
+
+ @Override
+ public String[] getDescription() {
+ String[] aDesc = new String[] {
+ "Item Input for Multiblocks",
+ "This bus has no GUI, but can have items extracted",
+ ""+this.getSlots(this.mTier)+" Slots",
+ };
+ return aDesc;
+ }
+
+ @Override
+ public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, byte aSide, float aX,
+ float aY, float aZ) {
+ return super.onRightclick(aBaseMetaTileEntity, aPlayer, aSide, aX, aY, aZ);
+ }
+
+ public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) {
+ if (aBaseMetaTileEntity.isClientSide()) {
+ return true;
+ } else {
+ //Logger.INFO("Trying to display Super Input Bus contents.");
+ displayBusContents(aPlayer);
+ return true;
+ }
+ }
+
+ public void displayBusContents(EntityPlayer aPlayer) {
+ String STRIP = "Item Array: ";
+ String aNameString = ItemUtils.getArrayStackNames(getRealInventory());
+ aNameString = aNameString.replace(STRIP, "");
+
+ String[] aNames;
+ if (aNameString.length() < 1) {
+ aNames = null;
+ }
+ else {
+ aNames = aNameString.split(",");
+ }
+
+ if (aNames == null || aNames.length <= 0) {
+ PlayerUtils.messagePlayer(aPlayer, "This Super Bus (I) is Empty. Total Slots: "+this.getSlots(this.mTier));
+ return;
+ }
+
+ PlayerUtils.messagePlayer(aPlayer, "This Super Bus (I) contains:");
+ for (String s : aNames) {
+ if (s.startsWith(" ")) {
+ s = s.substring(1);
+ }
+ //Logger.INFO("Trying to display Super Input Bus contents. "+s);
+ PlayerUtils.messagePlayer(aPlayer, s);
+ }
+ }
+
+ @Override
+ public int getMaxItemCount() {
+ // TODO Auto-generated method stub
+ return super.getMaxItemCount();
+ }
+
+ @Override
+ public int getSizeInventory() {
+ // TODO Auto-generated method stub
+ return super.getSizeInventory();
+ }
+
+ @Override
+ public ItemStack getStackInSlot(int aIndex) {
+ // TODO Auto-generated method stub
+ return super.getStackInSlot(aIndex);
+ }
+
+ @Override
+ public boolean canInsertItem(int aIndex, ItemStack aStack, int aSide) {
+ // TODO Auto-generated method stub
+ return super.canInsertItem(aIndex, aStack, aSide);
+ }
+
+ @Override
+ public boolean canExtractItem(int aIndex, ItemStack aStack, int aSide) {
+ // TODO Auto-generated method stub
+ return super.canExtractItem(aIndex, aStack, aSide);
+ }
+
+ @Override
+ public ItemStack[] getRealInventory() {
+ // TODO Auto-generated method stub
+ return super.getRealInventory();
+ }
+} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Output.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Output.java
new file mode 100644
index 0000000000..d09b71ee35
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Output.java
@@ -0,0 +1,182 @@
+package gtPlusPlus.xmod.gregtech.api.metatileentity.implementations;
+
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.metatileentity.MetaTileEntity;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_OutputBus;
+import gregtech.api.util.GT_Utility;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
+import gtPlusPlus.core.util.minecraft.PlayerUtils;
+import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.InventoryPlayer;
+import net.minecraft.inventory.IInventory;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+
+public class GT_MetaTileEntity_SuperBus_Output extends GT_MetaTileEntity_Hatch_OutputBus {
+ public GT_Recipe_Map mRecipeMap = null;
+
+ public GT_MetaTileEntity_SuperBus_Output(int aID, String aName, String aNameRegional, int aTier) {
+ super(aID, aName, aNameRegional, aTier);
+ }
+
+ public GT_MetaTileEntity_SuperBus_Output(String aName, int aTier, String aDescription, ITexture[][][] aTextures) {
+ super(aName, aTier, aDescription, aTextures);
+ }
+
+ public GT_MetaTileEntity_SuperBus_Output(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) {
+ super(aName, aTier, aDescription, aTextures);
+ }
+
+ /**
+ * Returns a factor of 16 based on tier.
+ * @param aTier The tier of this bus.
+ * @return (1+ aTier) * 16
+ */
+ public static int getSlots(int aTier) {
+ return (1+ aTier) * 16;
+ }
+
+ public boolean isValidSlot(int aIndex) {
+ return true;
+ }
+
+ public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
+ return new GT_MetaTileEntity_SuperBus_Output(this.mName, this.mTier, this.mDescriptionArray, this.mTextures);
+ }
+
+ public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return null;
+ }
+
+ public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return null;
+ }
+
+ public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) {
+ if (aBaseMetaTileEntity.isServerSide() && aBaseMetaTileEntity.hasInventoryBeenModified()) {
+ this.fillStacksIntoFirstSlots();
+ }
+
+ }
+
+ public void updateSlots() {
+ for (int i = 0; i < this.mInventory.length; ++i) {
+ if (this.mInventory[i] != null && this.mInventory[i].stackSize <= 0) {
+ this.mInventory[i] = null;
+ }
+ }
+ this.fillStacksIntoFirstSlots();
+ }
+
+ protected void fillStacksIntoFirstSlots() {
+ for (int i = 0; i < this.mInventory.length; ++i) {
+ for (int j = i + 1; j < this.mInventory.length; ++j) {
+ if (this.mInventory[j] != null && (this.mInventory[i] == null
+ || GT_Utility.areStacksEqual(this.mInventory[i], this.mInventory[j]))) {
+ GT_Utility.moveStackFromSlotAToSlotB((IInventory) this.getBaseMetaTileEntity(), (IInventory) this.getBaseMetaTileEntity(), j, i, (byte) 64, (byte) 1, (byte) 64, (byte) 1);
+ }
+ }
+ }
+ }
+
+ @Override
+ public void saveNBTData(NBTTagCompound aNBT) {
+ super.saveNBTData(aNBT);
+ }
+
+ @Override
+ public void loadNBTData(NBTTagCompound aNBT) {
+ super.loadNBTData(aNBT);
+ }
+
+ @Override
+ public String[] getDescription() {
+ String[] aDesc = new String[] {
+ "Item Output for Multiblocks",
+ "This bus has no GUI",
+ ""+this.getSlots(this.mTier)+" Slots",
+ };
+ return aDesc;
+ }
+
+ @Override
+ public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, byte aSide, float aX,
+ float aY, float aZ) {
+ return super.onRightclick(aBaseMetaTileEntity, aPlayer, aSide, aX, aY, aZ);
+ }
+
+ public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) {
+ if (aBaseMetaTileEntity.isClientSide()) {
+ return true;
+ } else {
+ displayBusContents(aPlayer);
+ return true;
+ }
+ }
+
+ public void displayBusContents(EntityPlayer aPlayer) {
+ String STRIP = "Item Array: ";
+ String aNameString = ItemUtils.getArrayStackNames(getRealInventory());
+ aNameString = aNameString.replace(STRIP, "");
+
+ String[] aNames;
+ if (aNameString.length() < 1) {
+ aNames = null;
+ }
+ else {
+ aNames = aNameString.split(",");
+ }
+
+ if (aNames == null || aNames.length <= 0) {
+ PlayerUtils.messagePlayer(aPlayer, "This Super Bus (O) is Empty. Total Slots: "+this.getSlots(this.mTier));
+ return;
+ }
+
+ PlayerUtils.messagePlayer(aPlayer, "This Super Bus (O) contains:");
+ for (String s : aNames) {
+ if (s.startsWith(" ")) {
+ s = s.substring(1);
+ }
+ //Logger.INFO("Trying to display Super Output Bus contents. "+s);
+ PlayerUtils.messagePlayer(aPlayer, s);
+ }
+ }
+
+ @Override
+ public int getMaxItemCount() {
+ // TODO Auto-generated method stub
+ return super.getMaxItemCount();
+ }
+
+ @Override
+ public int getSizeInventory() {
+ // TODO Auto-generated method stub
+ return super.getSizeInventory();
+ }
+
+ @Override
+ public ItemStack getStackInSlot(int aIndex) {
+ // TODO Auto-generated method stub
+ return super.getStackInSlot(aIndex);
+ }
+
+ @Override
+ public boolean canInsertItem(int aIndex, ItemStack aStack, int aSide) {
+ // TODO Auto-generated method stub
+ return super.canInsertItem(aIndex, aStack, aSide);
+ }
+
+ @Override
+ public boolean canExtractItem(int aIndex, ItemStack aStack, int aSide) {
+ // TODO Auto-generated method stub
+ return super.canExtractItem(aIndex, aStack, aSide);
+ }
+
+ @Override
+ public ItemStack[] getRealInventory() {
+ // TODO Auto-generated method stub
+ return super.getRealInventory();
+ }
+} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaPipeEntityFluid.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaPipeEntityFluid.java
index 9eea6b4a28..f6056af87a 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaPipeEntityFluid.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaPipeEntityFluid.java
@@ -101,7 +101,7 @@ public class GregtechMetaPipeEntityFluid extends GT_MetaPipeEntity_Fluid {
EnumChatFormatting.BLUE + "Fluid Capacity: %%%" + (mCapacity * 20) + "%%% L/sec" + EnumChatFormatting.GRAY,
EnumChatFormatting.RED + "Heat Limit: %%%" + mHeatResistance + "%%% K" + EnumChatFormatting.GRAY,
EnumChatFormatting.DARK_GREEN + "Gas Proof: " + (this.mGasProof) + EnumChatFormatting.GRAY,
- CORE.GT_Tooltip
+ //CORE.GT_Tooltip
};
}
} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaPipeEntity_Cable.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaPipeEntity_Cable.java
index c69ecec114..98722a2b96 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaPipeEntity_Cable.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaPipeEntity_Cable.java
@@ -59,7 +59,7 @@ public class GregtechMetaPipeEntity_Cable extends GT_MetaPipeEntity_Cable implem
"Max Voltage: %%%" + EnumChatFormatting.GREEN + mVoltage + " (" + VN[GT_Utility.getTier(mVoltage)] + ")" + EnumChatFormatting.GRAY,
"Max Amperage: %%%" + EnumChatFormatting.YELLOW + mAmperage + EnumChatFormatting.GRAY,
"Loss/Meter/Ampere: %%%" + EnumChatFormatting.RED + mCableLossPerMeter + EnumChatFormatting.GRAY + "%%% EU-Volt",
- CORE.GT_Tooltip
+ //CORE.GT_Tooltip
};
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaTreeFarmerStructural.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaTreeFarmerStructural.java
index 4a496c5002..d05a254bf7 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaTreeFarmerStructural.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaTreeFarmerStructural.java
@@ -16,7 +16,7 @@ extends GregtechMetaTreeFarmerBase {
@Override
public String[] getDescription() {
- return new String[] {this.mDescription, CORE.GT_Tooltip};
+ return new String[] {this.mDescription};
}
public GregtechMetaTreeFarmerStructural(final int aID, final String aName, final String aNameRegional, final int aTier) {
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/CustomMetaTileBase.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/CustomMetaTileBase.java
new file mode 100644
index 0000000000..422837fa46
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/CustomMetaTileBase.java
@@ -0,0 +1,60 @@
+package gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base;
+
+import java.util.Locale;
+
+import gregtech.api.metatileentity.MetaTileEntity;
+import gregtech.api.util.GT_LanguageManager;
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.xmod.gregtech.common.Meta_GT_Proxy;
+import net.minecraft.item.ItemStack;
+
+public abstract class CustomMetaTileBase extends MetaTileEntity {
+
+ public CustomMetaTileBase(int aID, String aBasicName, String aRegionalName, int aInvSlotCount) {
+ super(aID, aBasicName, aRegionalName, aInvSlotCount);
+ GT_LanguageManager.addStringLocalization("gtpp.blockmachines." + aBasicName.replaceAll(" ", "_").toLowerCase(Locale.ENGLISH) + ".name", aRegionalName);
+ this.setBaseMetaTileEntity(Meta_GT_Proxy.constructBaseMetaTileEntity());
+ this.getBaseMetaTileEntity().setMetaTileID((short) aID);
+ }
+
+ public CustomMetaTileBase(String aName, int aInvSlotCount) {
+ super(aName, aInvSlotCount);
+ }
+
+ public ItemStack getStackForm(long aAmount) {
+ return new ItemStack(Meta_GT_Proxy.sBlockMachines, (int) aAmount, this.getBaseMetaTileEntity().getMetaTileID());
+ }
+
+ public String getLocalName() {
+ return GT_LanguageManager.getTranslation("gtpp.blockmachines." + this.mName + ".name");
+ }
+
+ /**
+ * This determines the BaseMetaTileEntity belonging to this MetaTileEntity by using the Meta ID of the Block itself.
+ * <p/>
+ * 0 = BaseMetaTileEntity, Wrench lvl 0 to dismantlee
+ * 1 = BaseMetaTileEntity, Wrench lvl 1 to dismantle
+ * 2 = BaseMetaTileEntity, Wrench lvl 2 to dismantle
+ * 3 = BaseMetaTileEntity, Wrench lvl 3 to dismantle
+ * 4 = BaseMetaPipeEntity, Wrench lvl 0 to dismantle
+ * 5 = BaseMetaPipeEntity, Wrench lvl 1 to dismantle
+ * 6 = BaseMetaPipeEntity, Wrench lvl 2 to dismantle
+ * 7 = BaseMetaPipeEntity, Wrench lvl 3 to dismantle
+ * 8 = BaseMetaPipeEntity, Cutter lvl 0 to dismantle
+ * 9 = BaseMetaPipeEntity, Cutter lvl 1 to dismantle
+ * 10 = BaseMetaPipeEntity, Cutter lvl 2 to dismantle
+ * 11 = BaseMetaPipeEntity, Cutter lvl 3 to dismantle
+ *
+ * == Reserved for Alk now
+ *
+ * 12 = BaseMetaPipeEntity, Wrench lvl 0 to dismantle
+ * 13 = BaseMetaPipeEntity, Wrench lvl 1 to dismantle
+ * 14 = BaseMetaPipeEntity, Wrench lvl 2 to dismantle
+ * 15 = BaseMetaPipeEntity, Wrench lvl 3 to dismantle
+ */
+ @Override
+ public byte getTileEntityBaseType() {
+ return 12;
+ }
+
+} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaTileEntity.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaTileEntity.java
index 4140617fcf..c9201471a4 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaTileEntity.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaTileEntity.java
@@ -63,7 +63,7 @@ public abstract class GregtechMetaTileEntity extends MetaTileEntity {
@Override
public String[] getDescription() {
- return new String[] { this.mDescription, CORE.GT_Tooltip };
+ return new String[] { this.mDescription };
}
/**
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaTransformerHiAmp.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaTransformerHiAmp.java
index df7e8cf373..ccf31673e7 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaTransformerHiAmp.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaTransformerHiAmp.java
@@ -85,7 +85,7 @@ public class GregtechMetaTransformerHiAmp extends GT_MetaTileEntity_Transformer
@Override
public String[] getDescription() {
- return new String[] { this.mDescription, "Accepts 4A and outputs 16A", CORE.GT_Tooltip };
+ return new String[] { this.mDescription, "Accepts 4A and outputs 16A"};
}
@Override
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java
index bb822ec816..41ba313b0e 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java
@@ -295,15 +295,13 @@ GT_MetaTileEntity_MultiBlockBase {
aRequiresCoreModule,
aRequiresMuffler,
getPollutionTooltip(),
- getMachineTooltip(),
- CORE.GT_Tooltip};
+ getMachineTooltip()};
}
else {
z = new String[] {
aRequiresMaint,
aRequiresCoreModule,
- getMachineTooltip(),
- CORE.GT_Tooltip};
+ getMachineTooltip(),};
}
int a2, a3;
@@ -1508,28 +1506,37 @@ GT_MetaTileEntity_MultiBlockBase {
public abstract boolean checkMultiblock(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack);
- public boolean isValidBlockForStructure(IGregTechTileEntity aBaseMetaTileEntity, int aCasingID, boolean canBeHatch, Block aFoundBlock, int aFoundMeta, Block aExpectedBlock, int aExpectedMeta) {
- boolean isHatch = false;
+ public boolean isValidBlockForStructure(IGregTechTileEntity aBaseMetaTileEntity, int aCasingID, boolean canBeHatch,
+ Block aFoundBlock, int aFoundMeta, Block aExpectedBlock, int aExpectedMeta) {
+ boolean isHatch = false;
if (aBaseMetaTileEntity != null) {
isHatch = this.addToMachineList(aBaseMetaTileEntity, aCasingID);
if (isHatch) {
return true;
}
+ else {
+ //Found a controller
+ if (aFoundMeta > 0 && aFoundMeta < 1000 && aFoundBlock == GregTech_API.sBlockMachines) {
+ return true;
+ }
+ }
}
if (!isHatch) {
- if (aFoundBlock != aExpectedBlock || aFoundMeta != aExpectedMeta) {
+ if (aFoundBlock == aExpectedBlock && aFoundMeta == aExpectedMeta) {
+ return true;
+ }
+ else if (aFoundBlock != aExpectedBlock) {
+ Logger.INFO("A1 - Found: "+aFoundBlock.getLocalizedName()+", Expected: "+aExpectedBlock.getLocalizedName());
return false;
}
- else {
- return true;
+ else if (aFoundMeta != aExpectedMeta) {
+ Logger.INFO("A2");
+ return false;
}
+
}
- else {
- return true;
- }
-
-
-
+ Logger.INFO("A3");
+ return false;
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechDoubleFuelGeneratorBase.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechDoubleFuelGeneratorBase.java
index f6dc8547cc..287d2105ac 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechDoubleFuelGeneratorBase.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechDoubleFuelGeneratorBase.java
@@ -58,7 +58,7 @@ public abstract class GregtechDoubleFuelGeneratorBase extends GT_MetaTileEntity_
@Override
public String[] getDescription() {
- return new String[]{this.mDescription, "Fuel Efficiency: " + this.getEfficiency() + "%", CORE.GT_Tooltip};
+ return new String[]{this.mDescription, "Fuel Efficiency: " + this.getEfficiency() + "%"};
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechRocketFuelGeneratorBase.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechRocketFuelGeneratorBase.java
index c1915fb14a..a88d6a4832 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechRocketFuelGeneratorBase.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechRocketFuelGeneratorBase.java
@@ -65,13 +65,11 @@ public abstract class GregtechRocketFuelGeneratorBase extends GT_MetaTileEntity_
return new String[]{
this.mDescription,
"Fuel Efficiency: " + this.getEfficiency()*2 + "%",
- aPollution,
- CORE.GT_Tooltip};
+ aPollution};
}
return new String[]{
this.mDescription,
- "Fuel Efficiency: " + this.getEfficiency()*2 + "%",
- CORE.GT_Tooltip};
+ "Fuel Efficiency: " + this.getEfficiency()*2 + "%"};
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/Meta_GT_Proxy.java b/src/Java/gtPlusPlus/xmod/gregtech/common/Meta_GT_Proxy.java
index 25997e5d35..0556a7f4fe 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/Meta_GT_Proxy.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/Meta_GT_Proxy.java
@@ -2,6 +2,8 @@ package gtPlusPlus.xmod.gregtech.common;
import static gtPlusPlus.xmod.gregtech.common.covers.GTPP_Cover_Overflow.mOverflowCache;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
@@ -10,23 +12,29 @@ import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
+import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
-
+import net.minecraft.block.Block;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumChatFormatting;
import net.minecraftforge.fluids.FluidStack;
import gregtech.GT_Mod;
import gregtech.api.GregTech_API;
import gregtech.api.enums.GT_Values;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.metatileentity.BaseMetaTileEntity;
import gregtech.api.util.GT_LanguageManager;
import gregtech.api.util.GT_Log;
import gregtech.api.util.GT_Utility;
import gregtech.common.GT_Proxy;
+import gregtech.common.blocks.GT_Block_Machines;
+import gregtech.common.render.GT_Renderer_Block;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.AutoMap;
import gtPlusPlus.api.objects.data.ObjMap;
@@ -34,25 +42,153 @@ import gtPlusPlus.api.objects.minecraft.FormattedTooltipString;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.reflect.ProxyFinder;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
+import gtPlusPlus.xmod.gregtech.api.metatileentity.BaseCustomTileEntity;
+import gtPlusPlus.xmod.gregtech.api.metatileentity.custom.power.BaseCustomPower_MTE;
+import gtPlusPlus.xmod.gregtech.common.blocks.GTPP_Block_Machines;
+import gtPlusPlus.xmod.gregtech.common.render.GTPP_Render_MachineBlock;
public class Meta_GT_Proxy {
+ static {
+ instance = new Meta_GT_Proxy();
+ Logger.INFO("GT_PROXY - initialized.");
+ }
+
+ public static final Meta_GT_Proxy instance;
+
public static List<Runnable> GT_BlockIconload = new ArrayList<>();
public static List<Runnable> GT_ItemIconload = new ArrayList<>();
public static AutoMap<Integer> GT_ValidHeatingCoilMetas = new AutoMap<Integer>();
+
+ private static Class sBaseMetaTileEntityClass;
+ private static Class sBaseMetaTileEntityClass2;
public static final Map<String, FormattedTooltipString> mCustomGregtechMetaTooltips = new LinkedHashMap<String, FormattedTooltipString>();
+
@SideOnly(Side.CLIENT)
public static IIconRegister sBlockIcons, sItemIcons;
public Meta_GT_Proxy() {
- Logger.INFO("GT_PROXY - initialized.");
+
+ }
+
+ public static Block sBlockMachines;
+
+ public void preInit() {
+
+ //New GT++ Block, yay! (Progress)
+ //sBlockMachines = new GTPP_Block_Machines();
+
+ GT_Log.out.println("GT++ Mod: Register TileEntities.");
+ BaseMetaTileEntity tBaseMetaTileEntity = constructBaseMetaTileEntity();
+ BaseMetaTileEntity tBaseMetaTileEntity2 = constructBaseMetaTileEntityCustomPower();
+
+ GT_Log.out.println("GT++ Mod: Testing BaseMetaTileEntity.");
+ if (tBaseMetaTileEntity == null || tBaseMetaTileEntity2 == null) {
+ GT_Log.out.println("GT++ Mod: Fatal Error ocurred while initializing TileEntities, crashing Minecraft.");
+ throw new RuntimeException("");
+ }
+
+ GT_Log.out.println("GT++ Mod: Registering the BaseMetaTileEntity.");
+ GameRegistry.registerTileEntity(tBaseMetaTileEntity.getClass(), "BaseMetaTileEntity_GTPP");
+ GameRegistry.registerTileEntity(tBaseMetaTileEntity2.getClass(), "BaseMetaTileEntity_GTPP2");
+ }
+
+ public void init() {
scheduleCoverMapCleaner();
- setValidHeatingCoilMetas();
+ setValidHeatingCoilMetas();
}
+ public void postInit() {
+
+ }
+
+ public static TileEntity constructCustomGregtechMetaTileEntityByMeta(int aMeta) {
+ if (aMeta == 12) {
+ return Meta_GT_Proxy.constructBaseMetaTileEntityCustomPower();
+ }
+ else {
+ return Meta_GT_Proxy.constructBaseMetaTileEntity();
+ }
+ }
+
+ public static BaseCustomTileEntity constructBaseMetaTileEntity() {
+ if (sBaseMetaTileEntityClass == null) {
+ try {
+ sBaseMetaTileEntityClass = BaseCustomTileEntity.class;
+ return (BaseCustomTileEntity) BaseCustomTileEntity.class.newInstance();
+ } catch (Throwable arg1) {
+ try {
+ Constructor<?> g = BaseCustomTileEntity.class.getConstructors()[0];
+ g.setAccessible(true);
+ return (BaseCustomTileEntity) g.newInstance();
+ } catch (InstantiationException | IllegalAccessException | IllegalArgumentException
+ | InvocationTargetException | SecurityException e) {
+ }
+ }
+ }
+ try {
+ return (BaseCustomTileEntity) ((BaseCustomTileEntity) sBaseMetaTileEntityClass.newInstance());
+ } catch (Throwable arg0) {
+ arg0.printStackTrace(GT_Log.err);
+ try {
+ Constructor<?> g = BaseCustomTileEntity.class.getConstructors()[0];
+ g.setAccessible(true);
+ return (BaseCustomTileEntity) g.newInstance();
+ } catch (InstantiationException | IllegalAccessException | IllegalArgumentException
+ | InvocationTargetException | SecurityException e) {
+ GT_Log.err
+ .println("GT++ Mod: Fatal Error ocurred while initializing TileEntities, crashing Minecraft.");
+ e.printStackTrace(GT_Log.err);
+ throw new RuntimeException(e);
+ }
+ }
+ }
+
+ public static BaseCustomPower_MTE constructBaseMetaTileEntityCustomPower() {
+ if (sBaseMetaTileEntityClass2 == null) {
+ try {
+ sBaseMetaTileEntityClass2 = BaseCustomPower_MTE.class;
+ return (BaseCustomPower_MTE) BaseCustomPower_MTE.class.newInstance();
+ } catch (Throwable arg1) {
+ try {
+ Constructor<?> g = BaseCustomPower_MTE.class.getConstructors()[0];
+ g.setAccessible(true);
+ return (BaseCustomPower_MTE) g.newInstance();
+ } catch (InstantiationException | IllegalAccessException | IllegalArgumentException
+ | InvocationTargetException | SecurityException e) {
+ // e.printStackTrace();
+ }
+ }
+ }
+
+ try {
+ return (BaseCustomPower_MTE) ((BaseCustomPower_MTE) sBaseMetaTileEntityClass2.newInstance());
+ } catch (Throwable arg0) {
+ arg0.printStackTrace(GT_Log.err);
+ try {
+ Constructor<?> g = BaseCustomPower_MTE.class.getConstructors()[0];
+ g.setAccessible(true);
+ return (BaseCustomPower_MTE) g.newInstance();
+ } catch (InstantiationException | IllegalAccessException | IllegalArgumentException
+ | InvocationTargetException | SecurityException e) {
+ GT_Log.err
+ .println("GT++ Mod: Fatal Error ocurred while initializing TileEntities, crashing Minecraft.");
+ e.printStackTrace(GT_Log.err);
+ throw new RuntimeException(e);
+ }
+ }
+ }
+
+
+
+
+
+
+
+
public void setValidHeatingCoilMetas() {
for (int i = 0; i <= 6; i++ ) {
GT_ValidHeatingCoilMetas.put(i);
@@ -182,7 +318,74 @@ public class Meta_GT_Proxy {
}else i++;
}
}
- if (tTileEntity.getEUCapacity() > 0L) {
+
+
+
+ if (tTileEntity.getEUCapacity() > 0L) {
+
+ final long tVoltage = tTileEntity.getInputVoltage();
+ byte tTier = (byte) ((byte) Math.max(1, GT_Utility.getTier(tVoltage)));
+
+ //Custom handling
+ if (tDamage < 30500 && tDamage >= 30400) {
+ int aOffset = tDamage - 30400;
+ if ((aOffset) <= 10) {
+ tTier -= 2;
+ aList.add(EnumChatFormatting.BOLD+"16"+" Fuse Slots"+EnumChatFormatting.GRAY);
+ aList.add("Per each fuse, you may insert "+EnumChatFormatting.YELLOW+(GT_Values.V[tTier])+EnumChatFormatting.GRAY+" EU/t");
+ aList.add("However this "+EnumChatFormatting.ITALIC+EnumChatFormatting.RED+"MUST"+EnumChatFormatting.GRAY+" be in a single Amp");
+ aList.add("This machine can accept upto a single amp of "+GT_Values.VN[Math.min(tTier+2, 12)]+" as a result");
+ aList.add(GT_LanguageManager.addStringLocalization("TileEntity_Breaker_Loss", "Breaker Loss: "+EnumChatFormatting.RED+""+(GT_Values.V[Math.max(tTier-1, 0)]/10)+EnumChatFormatting.GRAY+" EU/t", !GregTech_API.sPostloadFinished) + EnumChatFormatting.GRAY);
+ }
+
+
+ aList.add(GT_LanguageManager.addStringLocalization("TileEntity_Special_Power_1", EnumChatFormatting.RED+"Special Power Handling, please read manual", !GregTech_API.sPostloadFinished) + EnumChatFormatting.GRAY);
+ //aList.add(GT_LanguageManager.addStringLocalization("TileEntity_BreakerBox_2", EnumChatFormatting.RED+"Special Power Handling, please read manual", !GregTech_API.sPostloadFinished) + EnumChatFormatting.GRAY);
+ //aList.add(GT_LanguageManager.addStringLocalization("TileEntity_BreakerBox_3", EnumChatFormatting.RED+"Special Power Handling, please read manual", !GregTech_API.sPostloadFinished) + EnumChatFormatting.GRAY);
+ }
+
+
+ if (tTileEntity.getInputVoltage() > 0L) {
+ String inA = "0";
+ if (tTileEntity.getInputAmperage() >= 1L) {
+ inA = " at " + EnumChatFormatting.YELLOW + tTileEntity.getInputAmperage() + EnumChatFormatting.GRAY +" Amps";
+ }
+ else {
+ inA = " at " + EnumChatFormatting.WHITE + tTileEntity.getInputAmperage() + EnumChatFormatting.GRAY +" Amps";
+ }
+ String a1 = "Voltage IN: "+EnumChatFormatting.GREEN + tTileEntity.getInputVoltage()
+ + " (" + GT_Values.VN[GT_Utility.getTier(tTileEntity.getInputVoltage())] + ")"
+ + EnumChatFormatting.GRAY + inA;
+ aList.add(a1);
+ }
+
+ if (tTileEntity.getOutputVoltage() > 0L) {
+ String outA = "0";
+ if (tTileEntity.getOutputAmperage() >= 1L) {
+ outA = " at " + EnumChatFormatting.YELLOW + tTileEntity.getOutputAmperage() + EnumChatFormatting.GRAY +" Amps";
+ }
+ else {
+ outA = " at " + EnumChatFormatting.WHITE + tTileEntity.getOutputAmperage() + EnumChatFormatting.GRAY +" Amps";
+ }
+ String a1 = "Voltage OUT: "+EnumChatFormatting.GREEN + tTileEntity.getOutputVoltage()
+ + " (" + GT_Values.VN[GT_Utility.getTier(tTileEntity.getOutputVoltage())] + ")"
+ + EnumChatFormatting.GRAY + outA;
+ aList.add(a1);
+ }
+
+
+ if (tTileEntity.getOutputVoltage() > 0L) {
+ aList.add(GT_LanguageManager.addStringLocalization("TileEntity_Lossess_EU", "Transmission Loss: "+EnumChatFormatting.DARK_BLUE+""+(tDamage < 30500 && tDamage >= 30400 ? 0 : 1), !GregTech_API.sPostloadFinished) + EnumChatFormatting.GRAY);
+ }
+
+ if (tTileEntity.getEUCapacity() > 0) {
+ aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_STORE2",
+ "Internal Capacity: ", !GregTech_API.sPostloadFinished) + EnumChatFormatting.BLUE
+ + tTileEntity.getEUCapacity() + EnumChatFormatting.GRAY + " EU");
+ }
+ }
+
+ /*if (tTileEntity.getEUCapacity() > 0L) {
if (tTileEntity.getInputVoltage() > 0L) {
aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_IN", "Voltage IN: ", !GregTech_API.sPostloadFinished ) + EnumChatFormatting.GREEN + tTileEntity.getInputVoltage() + " (" + GT_Values.VN[GT_Utility.getTier(tTileEntity.getInputVoltage())] + ")" + EnumChatFormatting.GRAY);
}
@@ -193,7 +396,8 @@ public class Meta_GT_Proxy {
aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_AMOUNT", "Amperage: ", !GregTech_API.sPostloadFinished ) + EnumChatFormatting.YELLOW + tTileEntity.getOutputAmperage() + EnumChatFormatting.GRAY);
}
aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_STORE", "Capacity: ", !GregTech_API.sPostloadFinished ) + EnumChatFormatting.BLUE + tTileEntity.getEUCapacity() + EnumChatFormatting.GRAY);
- }
+ }*/
+
}
NBTTagCompound aNBT = aStack.getTagCompound();
if (aNBT != null) {
@@ -216,15 +420,28 @@ public class Meta_GT_Proxy {
}
}
- //Add Custom Tooltips
- for (String s : mCustomGregtechMetaTooltips.keySet()) {
- if (aNBT.hasKey(s)) {
- String aTip = mCustomGregtechMetaTooltips.get(s).getTooltip(aNBT.getString(s));
- aList.add(aTip);
- }
- }
-
}
+
+ //Add Custom Here
+
+ //Add Custom Tooltips
+ for (String s : mCustomGregtechMetaTooltips.keySet()) {
+ if (aNBT.hasKey(s)) {
+ String aTip = mCustomGregtechMetaTooltips.get(s).getTooltip(aNBT.getString(s));
+ aList.add(aTip);
+ }
+ }
+
+ //Add GT++ Stuff
+
+ if (tDamage >= 30400 && tDamage < 30500) {
+ aList.add(EnumChatFormatting.UNDERLINE+"Special GT++ Machine");
+ }
+ if ((tDamage >= 750 && tDamage < 1000) || (tDamage >= 30000 && tDamage < 31000)) {
+ aList.add(CORE.GT_Tooltip);
+ }
+
+
} catch (Throwable e) {
e.printStackTrace(GT_Log.err);
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/StaticFields59.java b/src/Java/gtPlusPlus/xmod/gregtech/common/StaticFields59.java
index 4313ca53f6..c1db39b132 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/StaticFields59.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/StaticFields59.java
@@ -17,9 +17,13 @@ import gregtech.api.enums.Textures.BlockIcons;
import gregtech.api.interfaces.ITexture;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Muffler;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_TieredMachineBlock;
+import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
import net.minecraft.block.Block;
+import net.minecraft.item.ItemStack;
public class StaticFields59 {
@@ -31,6 +35,7 @@ public class StaticFields59 {
public static final Field mCasingTexturePages;
public static final Method mCalculatePollutionReduction;
+ public static final Method mAddFurnaceRecipe;
private static final Map<String, Materials> mMaterialCache = new LinkedHashMap<String, Materials>();
@@ -46,6 +51,20 @@ public class StaticFields59 {
mCasingTexturePages = getField(BlockIcons.class, "casingTexturePages");
mCalculatePollutionReduction = getMethod(GT_MetaTileEntity_Hatch_Muffler.class, "calculatePollutionReduction", int.class);
+
+ Logger.INFO("Initializing a recipe handler for different versions of Gregtech 5.");
+ //Yep...
+ if (!CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK) {
+ Logger.INFO("Selecting GT 5.7/5.8 Recipe Set");
+ mAddFurnaceRecipe = getMethod(GT_ModHandler.class, "addSmeltingAndAlloySmeltingRecipe", ItemStack.class, ItemStack.class);
+ }
+ else {
+ Logger.INFO("Selecting GT 5.9 Recipe Set");
+ mAddFurnaceRecipe = getMethod(GT_ModHandler.class, "addSmeltingAndAlloySmeltingRecipe", ItemStack.class, ItemStack.class, boolean.class);
+ }
+
+
+
}
public static synchronized final Block getBlockCasings5() {
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/GTPP_Block_Machines.java b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/GTPP_Block_Machines.java
new file mode 100644
index 0000000000..c62d47e904
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/GTPP_Block_Machines.java
@@ -0,0 +1,534 @@
+package gtPlusPlus.xmod.gregtech.common.blocks;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.Textures.BlockIcons;
+import gregtech.api.interfaces.IDebugableBlock;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
+import gregtech.api.interfaces.tileentity.ICoverable;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.items.GT_Generic_Block;
+import gregtech.api.metatileentity.BaseMetaPipeEntity;
+import gregtech.api.metatileentity.BaseMetaTileEntity;
+import gregtech.api.metatileentity.BaseTileEntity;
+import gregtech.api.objects.XSTR;
+import gregtech.api.util.GT_Log;
+import gregtech.api.util.GT_Utility;
+import gregtech.common.blocks.GT_Item_Machines;
+import gregtech.common.blocks.GT_Material_Machines;
+import gregtech.common.render.GT_Renderer_Block;
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.xmod.gregtech.common.Meta_GT_Proxy;
+import gtPlusPlus.xmod.gregtech.common.render.GTPP_Render_MachineBlock;
+import net.minecraft.block.Block;
+import net.minecraft.block.ITileEntityProvider;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.EnumCreatureType;
+import net.minecraft.entity.item.EntityItem;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.AxisAlignedBB;
+import net.minecraft.util.IIcon;
+import net.minecraft.util.MathHelper;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.Explosion;
+import net.minecraft.world.IBlockAccess;
+import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+
+public class GTPP_Block_Machines extends GT_Generic_Block implements IDebugableBlock, ITileEntityProvider {
+ public static ThreadLocal<IGregTechTileEntity> mTemporaryTileEntity = new ThreadLocal<IGregTechTileEntity>();
+
+ public GTPP_Block_Machines() {
+ super(GTPP_Item_Machines.class, "gtpp.blockmachines", new GT_Material_Machines());
+ GregTech_API.registerMachineBlock(this, -1);
+ this.setHardness(1.0F);
+ this.setResistance(10.0F);
+ this.setStepSound(soundTypeMetal);
+ this.setCreativeTab(GregTech_API.TAB_GREGTECH);
+ this.isBlockContainer = true;
+ }
+
+ public String getHarvestTool(int aMeta) {
+ switch (aMeta / 4) {
+ case 0 :
+ return "wrench";
+ case 1 :
+ return "wrench";
+ case 2 :
+ return "cutter";
+ case 3 :
+ return "axe";
+ default :
+ return "wrench";
+ }
+ }
+
+ public int getHarvestLevel(int aMeta) {
+ return aMeta % 4;
+ }
+
+ protected boolean canSilkHarvest() {
+ return false;
+ }
+
+ public void onNeighborChange(IBlockAccess aWorld, int aX, int aY, int aZ, int aTileX, int aTileY, int aTileZ) {
+ TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ if (tTileEntity instanceof BaseTileEntity) {
+ ((BaseTileEntity) tTileEntity).onAdjacentBlockChange(aTileX, aTileY, aTileZ);
+ }
+
+ }
+
+ public void onBlockAdded(World aWorld, int aX, int aY, int aZ) {
+ super.onBlockAdded(aWorld, aX, aY, aZ);
+ if (GregTech_API.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) {
+ GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ);
+ }
+
+ }
+
+ public String getUnlocalizedName() {
+ int tDamage = 0;
+ String aUnlocalName = (tDamage >= 0 && tDamage < GregTech_API.METATILEENTITIES.length)
+ ? (GregTech_API.METATILEENTITIES[tDamage] != null
+ ? ("gtpp.blockmachines.name" + "." + GregTech_API.METATILEENTITIES[tDamage].getMetaName())
+ : ("gtpp.blockmachines.name")) : "";
+
+ Logger.INFO("Unlocal Name: "+aUnlocalName);
+ return aUnlocalName;
+ }
+
+ public String getLocalizedName() {
+ String aName = StatCollector.translateToLocal(this.getUnlocalizedName() + ".name");;
+ if (aName.toLowerCase().contains(".name")) {
+ aName = StatCollector.translateToLocal(getUnlocalizedName() + ".name");
+ }
+ if (aName.toLowerCase().contains(".name")) {
+ aName = StatCollector.translateToLocal("gt.blockmachines" + ".name");
+ }
+ if (aName.toLowerCase().contains(".name")) {
+ aName = "BAD";
+ }
+ Logger.INFO("Name: "+aName);
+ return aName;
+ }
+
+ public int getFlammability(IBlockAccess aWorld, int aX, int aY, int aZ, ForgeDirection face) {
+ return 0;
+ }
+
+ public int getFireSpreadSpeed(IBlockAccess aWorld, int aX, int aY, int aZ, ForgeDirection face) {
+ return GregTech_API.sMachineFlammable && aWorld.getBlockMetadata(aX, aY, aZ) == 0 ? 100 : 0;
+ }
+
+ public int getRenderType() {
+ return GTPP_Render_MachineBlock.INSTANCE == null ? super.getRenderType() : GTPP_Render_MachineBlock.INSTANCE.mRenderID;
+ }
+
+ public boolean isFireSource(World aWorld, int aX, int aY, int aZ, ForgeDirection side) {
+ return GregTech_API.sMachineFlammable && aWorld.getBlockMetadata(aX, aY, aZ) == 0;
+ }
+
+ public boolean isFlammable(IBlockAccess aWorld, int aX, int aY, int aZ, ForgeDirection face) {
+ return GregTech_API.sMachineFlammable && aWorld.getBlockMetadata(aX, aY, aZ) == 0;
+ }
+
+ public boolean canCreatureSpawn(EnumCreatureType type, IBlockAccess aWorld, int aX, int aY, int aZ) {
+ return false;
+ }
+
+ public boolean canConnectRedstone(IBlockAccess var1, int var2, int var3, int var4, int var5) {
+ return true;
+ }
+
+ public boolean canBeReplacedByLeaves(IBlockAccess aWorld, int aX, int aY, int aZ) {
+ return false;
+ }
+
+ public boolean isNormalCube(IBlockAccess aWorld, int aX, int aY, int aZ) {
+ return false;
+ }
+
+ public boolean hasTileEntity(int aMeta) {
+ return true;
+ }
+
+ public boolean hasComparatorInputOverride() {
+ return true;
+ }
+
+ public boolean renderAsNormalBlock() {
+ return false;
+ }
+
+ public boolean canProvidePower() {
+ return true;
+ }
+
+ public boolean isOpaqueCube() {
+ return false;
+ }
+
+ public TileEntity createNewTileEntity(World aWorld, int aMeta) {
+ return this.createTileEntity(aWorld, aMeta);
+ }
+
+ public IIcon getIcon(IBlockAccess aIBlockAccess, int aX, int aY, int aZ, int aSide) {
+ return BlockIcons.MACHINE_LV_SIDE.getIcon();
+ }
+
+ public IIcon getIcon(int aSide, int aMeta) {
+ return BlockIcons.MACHINE_LV_SIDE.getIcon();
+ }
+
+ public boolean onBlockEventReceived(World aWorld, int aX, int aY, int aZ, int aData1, int aData2) {
+ super.onBlockEventReceived(aWorld, aX, aY, aZ, aData1, aData2);
+ TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ return tTileEntity != null ? tTileEntity.receiveClientEvent(aData1, aData2) : false;
+ }
+
+ public void addCollisionBoxesToList(World aWorld, int aX, int aY, int aZ, AxisAlignedBB inputAABB, List outputAABB,
+ Entity collider) {
+ TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ if (tTileEntity instanceof IGregTechTileEntity
+ && ((IGregTechTileEntity) tTileEntity).getMetaTileEntity() != null) {
+ ((IGregTechTileEntity) tTileEntity).addCollisionBoxesToList(aWorld, aX, aY, aZ, inputAABB, outputAABB,
+ collider);
+ } else {
+ super.addCollisionBoxesToList(aWorld, aX, aY, aZ, inputAABB, outputAABB, collider);
+ }
+ }
+
+ public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) {
+ TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ return tTileEntity instanceof IGregTechTileEntity
+ && ((IGregTechTileEntity) tTileEntity).getMetaTileEntity() != null
+ ? ((IGregTechTileEntity) tTileEntity).getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ)
+ : super.getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ);
+ }
+
+ @SideOnly(Side.CLIENT)
+ public AxisAlignedBB getSelectedBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) {
+ TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ return tTileEntity instanceof IGregTechTileEntity
+ && ((IGregTechTileEntity) tTileEntity).getMetaTileEntity() != null
+ ? ((IGregTechTileEntity) tTileEntity).getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ)
+ : super.getSelectedBoundingBoxFromPool(aWorld, aX, aY, aZ);
+ }
+
+ public void setBlockBoundsBasedOnState(IBlockAccess blockAccess, int aX, int aY, int aZ) {
+ TileEntity tTileEntity = blockAccess.getTileEntity(aX, aY, aZ);
+ if (tTileEntity instanceof IGregTechTileEntity
+ && ((IGregTechTileEntity) tTileEntity).getMetaTileEntity() != null) {
+ AxisAlignedBB bbb = ((IGregTechTileEntity) tTileEntity)
+ .getCollisionBoundingBoxFromPool(((IGregTechTileEntity) tTileEntity).getWorld(), 0, 0, 0);
+ this.minX = bbb.minX;
+ this.minY = bbb.minY;
+ this.minZ = bbb.minZ;
+ this.maxX = bbb.maxX;
+ this.maxY = bbb.maxY;
+ this.maxZ = bbb.maxZ;
+ } else {
+ super.setBlockBoundsBasedOnState(blockAccess, aX, aY, aZ);
+ }
+ }
+
+ public void setBlockBoundsForItemRender() {
+ super.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
+ }
+
+ public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity collider) {
+ TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ if (tTileEntity instanceof IGregTechTileEntity
+ && ((IGregTechTileEntity) tTileEntity).getMetaTileEntity() != null) {
+ ((IGregTechTileEntity) tTileEntity).onEntityCollidedWithBlock(aWorld, aX, aY, aZ, collider);
+ } else {
+ super.onEntityCollidedWithBlock(aWorld, aX, aY, aZ, collider);
+ }
+ }
+
+ @SideOnly(Side.CLIENT)
+ public void registerBlockIcons(IIconRegister aIconRegister) {
+
+ }
+
+ public float getBlockHardness(World aWorld, int aX, int aY, int aZ) {
+ return super.getBlockHardness(aWorld, aX, aY, aZ);
+ }
+
+ public float getPlayerRelativeBlockHardness(EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ) {
+ TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ return tTileEntity instanceof BaseMetaTileEntity && ((BaseMetaTileEntity) tTileEntity).privateAccess()
+ && !((BaseMetaTileEntity) tTileEntity).playerOwnsThis(aPlayer, true)
+ ? -1.0F
+ : super.getPlayerRelativeBlockHardness(aPlayer, aWorld, aX, aY, aZ);
+ }
+
+ public boolean onBlockActivated(World aWorld, int aX, int aY, int aZ, EntityPlayer aPlayer, int aSide, float par1,
+ float par2, float par3) {
+ TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ if (tTileEntity == null) {
+ return false;
+ } else {
+ if (aPlayer.isSneaking()) {
+ ItemStack tCurrentItem = aPlayer.inventory.getCurrentItem();
+ if (tCurrentItem == null) {
+ return false;
+ }
+
+ if (!GT_Utility.isStackInList(tCurrentItem, GregTech_API.sScrewdriverList)
+ && !GT_Utility.isStackInList(tCurrentItem, GregTech_API.sWrenchList)) {
+ return false;
+ }
+ }
+
+ return tTileEntity instanceof IGregTechTileEntity
+ ? (((IGregTechTileEntity) tTileEntity).getTimer() < 50L
+ ? false
+ : (!aWorld.isRemote && !((IGregTechTileEntity) tTileEntity).isUseableByPlayer(aPlayer)
+ ? true
+ : ((IGregTechTileEntity) tTileEntity).onRightclick(aPlayer, (byte) aSide, par1,
+ par2, par3)))
+ : false;
+ }
+ }
+
+ public void onBlockClicked(World aWorld, int aX, int aY, int aZ, EntityPlayer aPlayer) {
+ TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ if (tTileEntity instanceof IGregTechTileEntity) {
+ ((IGregTechTileEntity) tTileEntity).onLeftclick(aPlayer);
+ }
+
+ }
+
+ public int getDamageValue(World aWorld, int aX, int aY, int aZ) {
+ TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ return tTileEntity instanceof IGregTechTileEntity ? ((IGregTechTileEntity) tTileEntity).getMetaTileID() : 0;
+ }
+
+ public void onBlockExploded(World aWorld, int aX, int aY, int aZ, Explosion aExplosion) {
+ TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ if (tTileEntity instanceof BaseMetaTileEntity) {
+ ((BaseMetaTileEntity) tTileEntity).doEnergyExplosion();
+ }
+
+ super.onBlockExploded(aWorld, aX, aY, aZ, aExplosion);
+ }
+
+ public void breakBlock(World aWorld, int aX, int aY, int aZ, Block par5, int par6) {
+ GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ);
+ TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ if (tTileEntity instanceof IGregTechTileEntity) {
+ IGregTechTileEntity tGregTechTileEntity = (IGregTechTileEntity) tTileEntity;
+ XSTR tRandom = new XSTR();
+ mTemporaryTileEntity.set(tGregTechTileEntity);
+
+ for (int i = 0; i < tGregTechTileEntity.getSizeInventory(); ++i) {
+ ItemStack tItem = tGregTechTileEntity.getStackInSlot(i);
+ if (tItem != null && tItem.stackSize > 0 && tGregTechTileEntity.isValidSlot(i)) {
+ EntityItem tItemEntity = new EntityItem(aWorld,
+ (double) ((float) aX + tRandom.nextFloat() * 0.8F + 0.1F),
+ (double) ((float) aY + tRandom.nextFloat() * 0.8F + 0.1F),
+ (double) ((float) aZ + tRandom.nextFloat() * 0.8F + 0.1F),
+ new ItemStack(tItem.getItem(), tItem.stackSize, tItem.getItemDamage()));
+ if (tItem.hasTagCompound()) {
+ tItemEntity.getEntityItem().setTagCompound((NBTTagCompound) tItem.getTagCompound().copy());
+ }
+
+ tItemEntity.motionX = tRandom.nextGaussian() * 0.0500000007450581D;
+ tItemEntity.motionY = tRandom.nextGaussian() * 0.0500000007450581D + 0.2000000029802322D;
+ tItemEntity.motionZ = tRandom.nextGaussian() * 0.0500000007450581D;
+ aWorld.spawnEntityInWorld(tItemEntity);
+ tItem.stackSize = 0;
+ tGregTechTileEntity.setInventorySlotContents(i, (ItemStack) null);
+ }
+ }
+ }
+
+ super.breakBlock(aWorld, aX, aY, aZ, par5, par6);
+ aWorld.removeTileEntity(aX, aY, aZ);
+ }
+
+ public ArrayList<ItemStack> getDrops(World aWorld, int aX, int aY, int aZ, int aMeta, int aFortune) {
+ TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ return tTileEntity instanceof IGregTechTileEntity
+ ? ((IGregTechTileEntity) tTileEntity).getDrops()
+ : (mTemporaryTileEntity.get() == null
+ ? new ArrayList()
+ : ((IGregTechTileEntity) mTemporaryTileEntity.get()).getDrops());
+ }
+
+ public int getComparatorInputOverride(World aWorld, int aX, int aY, int aZ, int aSide) {
+ TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ return tTileEntity instanceof IGregTechTileEntity
+ ? ((IGregTechTileEntity) tTileEntity).getComparatorValue((byte) aSide)
+ : 0;
+ }
+
+ public int isProvidingWeakPower(IBlockAccess aWorld, int aX, int aY, int aZ, int aSide) {
+ if (aSide >= 0 && aSide <= 5) {
+ TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ return tTileEntity instanceof IGregTechTileEntity
+ ? ((IGregTechTileEntity) tTileEntity).getOutputRedstoneSignal(GT_Utility.getOppositeSide(aSide))
+ : 0;
+ } else {
+ return 0;
+ }
+ }
+
+ public int isProvidingStrongPower(IBlockAccess aWorld, int aX, int aY, int aZ, int aSide) {
+ if (aSide >= 0 && aSide <= 5) {
+ TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ return tTileEntity instanceof IGregTechTileEntity
+ ? ((IGregTechTileEntity) tTileEntity)
+ .getStrongOutputRedstoneSignal(GT_Utility.getOppositeSide(aSide))
+ : 0;
+ } else {
+ return 0;
+ }
+ }
+
+ public void dropBlockAsItemWithChance(World aWorld, int aX, int aY, int aZ, int par5, float chance, int par7) {
+ if (!aWorld.isRemote) {
+ TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ if (tTileEntity != null && chance < 1.0F) {
+ if (tTileEntity instanceof BaseMetaTileEntity && GregTech_API.sMachineNonWrenchExplosions) {
+ ((BaseMetaTileEntity) tTileEntity).doEnergyExplosion();
+ }
+ } else {
+ super.dropBlockAsItemWithChance(aWorld, aX, aY, aZ, par5, chance, par7);
+ }
+ }
+
+ }
+
+ public boolean isSideSolid(IBlockAccess aWorld, int aX, int aY, int aZ, ForgeDirection aSide) {
+ if (aWorld.getBlockMetadata(aX, aY, aZ) == 0) {
+ return true;
+ } else {
+ TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ if (tTileEntity != null) {
+ if (tTileEntity instanceof BaseMetaTileEntity) {
+ return true;
+ }
+
+ if (tTileEntity instanceof BaseMetaPipeEntity
+ && (((BaseMetaPipeEntity) tTileEntity).mConnections & -64) != 0) {
+ return true;
+ }
+
+ if (tTileEntity instanceof ICoverable
+ && ((ICoverable) tTileEntity).getCoverIDAtSide((byte) aSide.ordinal()) != 0) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+ }
+
+ public int getLightOpacity(IBlockAccess aWorld, int aX, int aY, int aZ) {
+ TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ return tTileEntity == null
+ ? 0
+ : (tTileEntity instanceof IGregTechTileEntity
+ ? ((IGregTechTileEntity) tTileEntity).getLightOpacity()
+ : (aWorld.getBlockMetadata(aX, aY, aZ) == 0 ? 255 : 0));
+ }
+
+ public int getLightValue(IBlockAccess aWorld, int aX, int aY, int aZ) {
+ TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ return tTileEntity instanceof BaseMetaTileEntity ? ((BaseMetaTileEntity) tTileEntity).getLightValue() : 0;
+ }
+
+ public TileEntity createTileEntity(World aWorld, int aMeta) {
+ return (TileEntity) (aMeta >= 4 ? Meta_GT_Proxy.constructBaseMetaTileEntity() : Meta_GT_Proxy.constructBaseMetaTileEntityCustomPower());
+ }
+
+ public float getExplosionResistance(Entity par1Entity, World aWorld, int aX, int aY, int aZ, double explosionX,
+ double explosionY, double explosionZ) {
+ TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ return tTileEntity instanceof IGregTechTileEntity
+ ? ((IGregTechTileEntity) tTileEntity).getBlastResistance((byte) 6)
+ : 10.0F;
+ }
+
+ @SideOnly(Side.CLIENT)
+ public void getSubBlocks(Item par1, CreativeTabs par2CreativeTabs, List par3List) {
+ for (int i = 0; i < 100; ++i) {
+ if (GregTech_API.METATILEENTITIES[(30400 + i)] != null) {
+ par3List.add(new ItemStack(par1, 1, i));
+ }
+ }
+
+ }
+
+ public void onBlockPlacedBy(World aWorld, int aX, int aY, int aZ, EntityLivingBase aPlayer, ItemStack aStack) {
+ TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ if (tTileEntity != null) {
+ if (tTileEntity instanceof IGregTechTileEntity) {
+ IGregTechTileEntity var6 = (IGregTechTileEntity) tTileEntity;
+ if (aPlayer == null) {
+ var6.setFrontFacing((byte) 1);
+ } else {
+ int var7 = MathHelper.floor_double((double) (aPlayer.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
+ int var8 = Math.round(aPlayer.rotationPitch);
+ if (var8 >= 65 && var6.isValidFacing((byte) 1)) {
+ var6.setFrontFacing((byte) 1);
+ } else if (var8 <= -65 && var6.isValidFacing((byte) 0)) {
+ var6.setFrontFacing((byte) 0);
+ } else {
+ switch (var7) {
+ case 0 :
+ var6.setFrontFacing((byte) 2);
+ break;
+ case 1 :
+ var6.setFrontFacing((byte) 5);
+ break;
+ case 2 :
+ var6.setFrontFacing((byte) 3);
+ break;
+ case 3 :
+ var6.setFrontFacing((byte) 4);
+ }
+ }
+ }
+ }
+
+ }
+ }
+
+ public ArrayList<String> getDebugInfo(EntityPlayer aPlayer, int aX, int aY, int aZ, int aLogLevel) {
+ TileEntity tTileEntity = aPlayer.worldObj.getTileEntity(aX, aY, aZ);
+ return tTileEntity instanceof BaseMetaTileEntity
+ ? ((BaseMetaTileEntity) tTileEntity).getDebugInfo(aPlayer, aLogLevel)
+ : (tTileEntity instanceof BaseMetaPipeEntity
+ ? ((BaseMetaPipeEntity) tTileEntity).getDebugInfo(aPlayer, aLogLevel)
+ : null);
+ }
+
+ public boolean recolourBlock(World aWorld, int aX, int aY, int aZ, ForgeDirection aSide, int aColor) {
+ TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ if (tTileEntity instanceof IGregTechTileEntity) {
+ if (((IGregTechTileEntity) tTileEntity).getColorization() == (byte) (~aColor & 15)) {
+ return false;
+ } else {
+ ((IGregTechTileEntity) tTileEntity).setColorization((byte) (~aColor & 15));
+ return true;
+ }
+ } else {
+ return false;
+ }
+ }
+} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/GTPP_Item_Machines.java b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/GTPP_Item_Machines.java
new file mode 100644
index 0000000000..ba3b05ff8e
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/GTPP_Item_Machines.java
@@ -0,0 +1,229 @@
+package gtPlusPlus.xmod.gregtech.common.blocks;
+
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.GT_Values;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.util.GT_ItsNotMyFaultException;
+import gregtech.api.util.GT_LanguageManager;
+import gregtech.api.util.GT_Log;
+import gregtech.api.util.GT_Utility;
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.core.lib.CORE;
+
+import java.util.List;
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemBlock;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.world.World;
+
+public class GTPP_Item_Machines extends ItemBlock {
+ public GTPP_Item_Machines(Block par1) {
+ super(par1);
+ this.setMaxDamage(0);
+ this.setHasSubtypes(true);
+ this.setCreativeTab(GregTech_API.TAB_GREGTECH);
+ }
+
+ @SuppressWarnings("unchecked")
+ public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean par4) {
+ try {
+ int e = this.getDamage(aStack) + 30400; //Add Offset
+ if (e <= 0 || e >= GregTech_API.METATILEENTITIES.length) {
+ return;
+ }
+
+ if (GregTech_API.METATILEENTITIES[e] != null) {
+
+ IGregTechTileEntity aNBT = GregTech_API.METATILEENTITIES[e].getBaseMetaTileEntity();
+
+ final long tVoltage = aNBT.getInputVoltage();
+ byte tTier = (byte) ((byte) Math.max(1, GT_Utility.getTier(tVoltage)));
+
+ /*if (aNBT.getDescription() != null) {
+ int tAmount = 0;
+ String[] arg7 = aNBT.getDescription();
+ int arg8 = arg7.length-1;
+
+ if (arg7 != null && arg7.length > 0) {
+ for (String t : arg7) {
+ aList.add(t);
+ }
+
+ }
+ else {
+ aList.add("ERROR");
+ }
+
+ for (int y = 0; y < arg8; y++) {
+ String tDescription = arg7[y];
+
+ if (tDescription != null) {
+ aList.add(tDescription+"|"+arg8);
+ continue;
+ }
+ else {
+ continue;
+ }
+ }
+ }*/
+
+ if (aNBT.getEUCapacity() > 0L) {
+
+ //Custom handling
+ if ((e - 30400) <= 100) {
+
+
+ if ((e - 30400) <= 10) {
+ tTier -= 2;
+ aList.add(EnumChatFormatting.BOLD+"16"+" Fuse Slots"+EnumChatFormatting.GRAY);
+ aList.add("Per each fuse, you may insert "+EnumChatFormatting.YELLOW+(GT_Values.V[tTier])+EnumChatFormatting.GRAY+" EU/t");
+ aList.add("However this "+EnumChatFormatting.ITALIC+EnumChatFormatting.RED+"MUST"+EnumChatFormatting.GRAY+" be in a single Amp");
+ aList.add("This machine can accept upto a single amp of "+GT_Values.VN[Math.min(tTier+2, 12)]+" as a result");
+ aList.add(GT_LanguageManager.addStringLocalization("TileEntity_Breaker_Loss", "Breaker Loss: "+EnumChatFormatting.RED+""+(GT_Values.V[Math.max(tTier-1, 0)]/10)+EnumChatFormatting.GRAY+" EU/t", !GregTech_API.sPostloadFinished) + EnumChatFormatting.GRAY);
+ }
+
+
+ aList.add(GT_LanguageManager.addStringLocalization("TileEntity_Special_Power_1", EnumChatFormatting.RED+"Special Power Handling, please read manual", !GregTech_API.sPostloadFinished) + EnumChatFormatting.GRAY);
+ //aList.add(GT_LanguageManager.addStringLocalization("TileEntity_BreakerBox_2", EnumChatFormatting.RED+"Special Power Handling, please read manual", !GregTech_API.sPostloadFinished) + EnumChatFormatting.GRAY);
+ //aList.add(GT_LanguageManager.addStringLocalization("TileEntity_BreakerBox_3", EnumChatFormatting.RED+"Special Power Handling, please read manual", !GregTech_API.sPostloadFinished) + EnumChatFormatting.GRAY);
+ }
+
+
+ if (aNBT.getInputVoltage() > 0L) {
+ String inA = "0";
+ if (aNBT.getInputAmperage() >= 1L) {
+ inA = " at " + EnumChatFormatting.YELLOW + aNBT.getInputAmperage() + EnumChatFormatting.GRAY +" Amps";
+ }
+ else {
+ inA = " at " + EnumChatFormatting.WHITE + aNBT.getInputAmperage() + EnumChatFormatting.GRAY +" Amps";
+ }
+ String a1 = "Voltage IN: "+EnumChatFormatting.GREEN + aNBT.getInputVoltage()
+ + " (" + GT_Values.VN[GT_Utility.getTier(aNBT.getInputVoltage())] + ")"
+ + EnumChatFormatting.GRAY + inA;
+ aList.add(a1);
+ }
+
+ if (aNBT.getOutputVoltage() > 0L) {
+ String outA = "0";
+ if (aNBT.getOutputAmperage() >= 1L) {
+ outA = " at " + EnumChatFormatting.YELLOW + aNBT.getOutputAmperage() + EnumChatFormatting.GRAY +" Amps";
+ }
+ else {
+ outA = " at " + EnumChatFormatting.WHITE + aNBT.getOutputAmperage() + EnumChatFormatting.GRAY +" Amps";
+ }
+ String a1 = "Voltage OUT: "+EnumChatFormatting.GREEN + aNBT.getOutputVoltage()
+ + " (" + GT_Values.VN[GT_Utility.getTier(aNBT.getOutputVoltage())] + ")"
+ + EnumChatFormatting.GRAY + outA;
+ aList.add(a1);
+ }
+
+ aList.add(GT_LanguageManager.addStringLocalization("TileEntity_Lossess_EU", "Transmission Loss: "+EnumChatFormatting.DARK_BLUE+"0", !GregTech_API.sPostloadFinished) + EnumChatFormatting.GRAY);
+
+ aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_STORE2", "Internal Capacity: ",
+ !GregTech_API.sPostloadFinished) + EnumChatFormatting.BLUE + aNBT.getEUCapacity()
+ + EnumChatFormatting.GRAY + " EU");
+ }
+ }
+
+ NBTTagCompound arg16 = aStack.getTagCompound();
+ if (arg16 != null) {
+ if (arg16.getBoolean("mMuffler")) {
+ aList.add(GT_LanguageManager.addStringLocalization("GT_TileEntity_MUFFLER", "has Muffler Upgrade",
+ !GregTech_API.sPostloadFinished));
+ }
+
+ if (arg16.getBoolean("mSteamConverter")) {
+ aList.add(GT_LanguageManager.addStringLocalization("GT_TileEntity_STEAMCONVERTER",
+ "has Steam Upgrade", !GregTech_API.sPostloadFinished));
+ }
+
+ boolean arg17 = false;
+ byte arg18;
+ if ((arg18 = arg16.getByte("mSteamTanks")) > 0) {
+ aList.add(arg18 + " " + GT_LanguageManager.addStringLocalization("GT_TileEntity_STEAMTANKS",
+ "Steam Tank Upgrades", !GregTech_API.sPostloadFinished));
+ }
+ }
+
+
+ aList.add(EnumChatFormatting.UNDERLINE+"Special GT++ Machine");
+
+ } catch (Throwable arg15) {
+ arg15.printStackTrace(GT_Log.err);
+ }
+
+ }
+
+ public boolean onItemUseFirst(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side,
+ float hitX, float hitY, float hitZ) {
+ return false;
+ }
+
+ public String getUnlocalizedName(ItemStack aStack) {
+ short tDamage = (short) (this.getDamage(aStack) + 30400); //Add Offset;
+ return tDamage >= 0 && tDamage < GregTech_API.METATILEENTITIES.length
+ ? (GregTech_API.METATILEENTITIES[tDamage] != null
+ ? "gtpp.blockmachines" + "." + GregTech_API.METATILEENTITIES[tDamage].getMetaName()
+ : "")
+ : "";
+ }
+
+ public void onCreated(ItemStack aStack, World aWorld, EntityPlayer aPlayer) {
+ super.onCreated(aStack, aWorld, aPlayer);
+ short tDamage = (short) ((short) this.getDamage(aStack) + 30400); //Add Offset;
+ if (tDamage < 0
+ || tDamage >= GregTech_API.METATILEENTITIES.length && GregTech_API.METATILEENTITIES[tDamage] != null) {
+ GregTech_API.METATILEENTITIES[tDamage].onCreated(aStack, aWorld, aPlayer);
+ }
+
+ }
+
+ public boolean placeBlockAt(ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int side,
+ float hitX, float hitY, float hitZ, int aMeta) {
+ short tDamage = (short) ((short) this.getDamage(aStack) + 30400); //Add Offset;
+ if (tDamage > 0) {
+ if (GregTech_API.METATILEENTITIES[tDamage] == null) {
+ return false;
+ }
+
+ byte tMetaData = 32;
+ //byte tMetaData = GregTech_API.METATILEENTITIES[tDamage].getTileEntityBaseType();
+ Logger.INFO("Using Meta: "+tMetaData+" for ID "+tDamage+" | "+GregTech_API.METATILEENTITIES[tDamage].getInventoryName());
+ if (!aWorld.setBlock(aX, aY, aZ, this.field_150939_a, tMetaData, 3)) {
+ return false;
+ }
+
+ if (aWorld.getBlock(aX, aY, aZ) != this.field_150939_a) {
+ throw new GT_ItsNotMyFaultException(
+ "Failed to place Block even though World.setBlock returned true. It COULD be MCPC/Bukkit causing that. In case you really have that installed, don\'t report this Bug to me, I don\'t know how to fix it.");
+ }
+
+ if (aWorld.getBlockMetadata(aX, aY, aZ) != tMetaData) {
+ throw new GT_ItsNotMyFaultException(
+ "Failed to set the MetaValue of the Block even though World.setBlock returned true. It COULD be MCPC/Bukkit causing that. In case you really have that installed, don\'t report this Bug to me, I don\'t know how to fix it.");
+ }
+
+ IGregTechTileEntity tTileEntity = (IGregTechTileEntity) aWorld.getTileEntity(aX, aY, aZ);
+ if (tTileEntity != null) {
+ tTileEntity.setInitialValuesAsNBT(tTileEntity.isServerSide() ? aStack.getTagCompound() : null, tDamage);
+ if (aPlayer != null) {
+ tTileEntity.setOwnerName(aPlayer.getDisplayName());
+ }
+
+ tTileEntity.getMetaTileEntity().initDefaultModes(aStack.getTagCompound());
+ }
+ } else if (!aWorld.setBlock(aX, aY, aZ, this.field_150939_a, tDamage, 3)) {
+ return false;
+ }
+
+ if (aWorld.getBlock(aX, aY, aZ) == this.field_150939_a) {
+ this.field_150939_a.onBlockPlacedBy(aWorld, aX, aY, aZ, aPlayer, aStack);
+ this.field_150939_a.onPostBlockPlaced(aWorld, aX, aY, aZ, tDamage);
+ }
+
+ return true;
+ }
+} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/items/MetaGeneratedGregtechItems.java b/src/Java/gtPlusPlus/xmod/gregtech/common/items/MetaGeneratedGregtechItems.java
index b54eb770ec..7f426f8abb 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/items/MetaGeneratedGregtechItems.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/items/MetaGeneratedGregtechItems.java
@@ -292,6 +292,7 @@ public class MetaGeneratedGregtechItems extends Gregtech_MetaItem_X32 {
GregtechItemList.NanoTube_Finished.set(this.addItem(102, "Carbon Nanotubes", "Multi-walled Zigzag nanotubes, possibly Carbon's final form", new Object[0]));
GregtechItemList.Carbyne_Tube_Finished.set(this.addItem(103, "Linear Acetylenic Carbon (LAC/Carbyne)", "LAC chains grown inside Multi-walled Carbon Nanotubes, highly stable", new Object[0]));
GregtechItemList.Carbyne_Sheet_Finished.set(this.addItem(104, "Carbyne Composite Panel", "Nanotubes which contain LAC, arranged side by side and compressed further", new Object[0]));
+ GregtechItemList.Laser_Lens_Special.set(this.addItem(105, "Quantum Anomaly", "Probably should shoot it with lasers", new Object[0]));
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/render/GTPP_CapeRenderer.java b/src/Java/gtPlusPlus/xmod/gregtech/common/render/GTPP_CapeRenderer.java
index 612defcb89..22ce41282f 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/render/GTPP_CapeRenderer.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/render/GTPP_CapeRenderer.java
@@ -1,14 +1,45 @@
package gtPlusPlus.xmod.gregtech.common.render;
-import static gtPlusPlus.GTplusplus.*;
-
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.math.BigInteger;
+import java.net.URL;
+import java.security.InvalidAlgorithmParameterException;
+import java.security.InvalidKeyException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.util.ArrayList;
+import java.util.Base64;
+import java.util.Date;
import java.util.HashMap;
+import java.util.Map;
import java.util.UUID;
+import javax.crypto.Cipher;
+import javax.crypto.NoSuchPaddingException;
+import javax.crypto.spec.IvParameterSpec;
+import javax.crypto.spec.SecretKeySpec;
+import javax.xml.bind.DatatypeConverter;
+
+import org.apache.commons.io.IOUtils;
import org.lwjgl.opengl.GL11;
import com.mojang.authlib.GameProfile;
+import gregtech.api.enums.GT_Values;
+import gregtech.api.util.GT_Log;
+import gregtech.api.util.GT_Utility;
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.lib.CORE.ConfigSwitches;
+import gtPlusPlus.core.proxy.ClientProxy;
+import gtPlusPlus.core.util.Utils;
+import gtPlusPlus.core.util.data.FileUtils;
+import gtPlusPlus.core.util.sys.NetworkUtils;
import net.minecraft.client.entity.AbstractClientPlayer;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.renderer.entity.RenderManager;
@@ -17,110 +48,122 @@ import net.minecraft.potion.Potion;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.MathHelper;
import net.minecraft.util.ResourceLocation;
+import net.minecraftforge.client.event.RenderPlayerEvent;
-import gregtech.api.enums.GT_Values;
-import gregtech.api.util.GT_Log;
-import gregtech.api.util.GT_Utility;
+public class GTPP_CapeRenderer extends RenderPlayer {
-import gtPlusPlus.api.objects.Logger;
-import gtPlusPlus.api.objects.data.AutoMap;
-import gtPlusPlus.api.objects.data.Pair;
-import gtPlusPlus.core.lib.CORE;
-import gtPlusPlus.core.lib.CORE.ConfigSwitches;
-import net.minecraftforge.client.event.RenderPlayerEvent;
+ private final ResourceLocation[] mCapes = {
+ new ResourceLocation("miscutils:textures/OrangeHD.png"),
+ new ResourceLocation("miscutils:textures/FancyCapeHD.png"),
+ new ResourceLocation("miscutils:textures/TesterCapeHD.png"),
+ new ResourceLocation("miscutils:textures/DevCapeHD.png"),
+ new ResourceLocation("miscutils:textures/PatreonCapeHD.png") };
-public class GTPP_CapeRenderer
-extends RenderPlayer {
- private final ResourceLocation[] mCapes = {new ResourceLocation("miscutils:textures/OrangeHD.png"), new ResourceLocation("miscutils:textures/FancyCapeHD.png"), new ResourceLocation("miscutils:textures/TesterCapeHD.png"), new ResourceLocation("miscutils:textures/DevCapeHD.png"), new ResourceLocation("miscutils:textures/PatreonCapeHD.png")};
-
- private static final HashMap<String, ResourceLocation> mLocalClientPlayerCache;
+ private final ArrayList<String> mData;
- static {
- mLocalClientPlayerCache = new HashMap<String, ResourceLocation>();
- }
-
public GTPP_CapeRenderer() {
setRenderManager(RenderManager.instance);
- BuildCapeList();
+ downloadCapeList();
+ ArrayList<String> aTemp = new ArrayList<String>();
+ try {
+ aTemp = returnDatData();
+ }
+ catch (Throwable t) {
+ aTemp = new ArrayList<String>();
+ }
+ mData = aTemp;
}
private static boolean hasResourceChecked = false;
+ private boolean hasCape = false;
+ private ResourceLocation tResource = null;
public synchronized void receiveRenderSpecialsEvent(RenderPlayerEvent.Specials.Pre aEvent) {
AbstractClientPlayer aPlayer = (AbstractClientPlayer) aEvent.entityPlayer;
- ResourceLocation tResource = null;
- if (!ConfigSwitches.enableCustomCapes){
+ if (!ConfigSwitches.enableCustomCapes) {
aEvent.setCanceled(true);
- return ;
+ Logger.INFO("A1");
+ return;
+ }
+
+ if (hasResourceChecked) {
+ if (!hasCape && !CORE.DEVENV) {
+ aEvent.setCanceled(true);
+ Logger.INFO("A2");
+ return;
+ }
}
+ // Make sure we don't keep checking on clients who dont have capes.
+ if (!hasResourceChecked) {
- //Make sure we don't keep checking on clients who dont have capes.
- if (!hasResourceChecked) {
- AutoMap<Pair<String, ResourceLocation>> localGatherMap = new AutoMap<Pair<String, ResourceLocation>>();
- String mTemp = "";
- //If list's have not been built yet for some reason, we best do it now.
- if (mDevCapes.size() <= 1) {
- BuildCapeList();
- }
- //Iterates all players in all lists, caches result.
- for (Pair<String, String> mName : mOrangeCapes){
- mTemp = getPlayerName(mName.getKey(), mName.getValue());
- localGatherMap.put(new Pair<String, ResourceLocation>(mTemp, this.mCapes[0]));
- }
- for (Pair<String, String> mName : mMiscCapes){
- mTemp = getPlayerName(mName.getKey(), mName.getValue());
- localGatherMap.put(new Pair<String, ResourceLocation>(mTemp, this.mCapes[1]));
- }
- for (Pair<String, String> mName : mBetaTestCapes){
- mTemp = getPlayerName(mName.getKey(), mName.getValue());
- localGatherMap.put(new Pair<String, ResourceLocation>(mTemp, this.mCapes[2]));
+ // Time to Spliterate some data
+ Map<String, ResourceLocation> aPlayerData = new HashMap<String, ResourceLocation>();
+ Map<String, String> aNameMap = new HashMap<String, String>();
+ int i = 0;
+ for (String s : mData) {
+ String[] aSplit = s.split("@");
+ int a[] = new int[] { 0, mCapes.length - 1 };
+ int aID = Integer.parseInt(aSplit[1]);
+ String aPlayerName = this.getPlayerName("iteration-" + (i++), aSplit[0]);
+ aNameMap.put(aSplit[0], aPlayerName);
+ aPlayerData.put(aPlayerName, this.mCapes[Math.max(a[0], Math.min(aID, a[1]))]);
+ }
+
+ // Set flag to only render this event if player has a cape.
+ for (String s : aNameMap.values()) {
+ if (s.toLowerCase().equals(ClientProxy.playerName)) {
+ hasCape = true;
+ tResource = aPlayerData.get(ClientProxy.playerName);
+ break;
}
- for (Pair<String, String> mName : mDevCapes){
- mTemp = getPlayerName(mName.getKey(), mName.getValue());
- localGatherMap.put(new Pair<String, ResourceLocation>(mTemp, this.mCapes[3]));
+ }
+
+ // Dev capes for dev mode.
+ if (CORE.DEVENV) {
+ hasCape = true;
+ tResource = mCapes[3];
+ }
+
+ // Safety Check
+ if (tResource == null) {
+ if (aPlayerData.get(aPlayer.getDisplayName()) != null) {
+ tResource = aPlayerData.get(aPlayer.getDisplayName());
+ } else {
+ hasCape = false;
}
- for (Pair<String, String> mName : mPatreonCapes){
- mTemp = getPlayerName(mName.getKey(), mName.getValue());
- localGatherMap.put(new Pair<String, ResourceLocation>(mTemp, this.mCapes[4]));
- }
- if (localGatherMap.size() > 0) {
- for (Pair<String, ResourceLocation> p : localGatherMap) {
- if (p != null) {
- mLocalClientPlayerCache.put(p.getKey().toLowerCase(), p.getValue());
- }
- }
- }
- //Only run once.
+ }
+
+ // Only run once.
hasResourceChecked = true;
- }
-
- if (mLocalClientPlayerCache.size() > 0) {
- String name = aPlayer.getDisplayName().toLowerCase();
- if (mLocalClientPlayerCache.containsKey(name)) {
- tResource = mLocalClientPlayerCache.get(name);
- }
- }
-
- if (GT_Utility.getFullInvisibility(aPlayer) || aPlayer.isInvisible() || GT_Utility.getPotion(aPlayer, Integer.valueOf(Potion.invisibility.id).intValue())) {
+ }
+
+ if (GT_Utility.getFullInvisibility(aPlayer) || aPlayer.isInvisible()
+ || GT_Utility.getPotion(aPlayer, Integer.valueOf(Potion.invisibility.id).intValue())) {
aEvent.setCanceled(true);
+ Logger.INFO("A3");
return;
}
+
float aPartialTicks = aEvent.partialRenderTick;
- try {
+ try {
if (tResource == null && CORE.DEVENV) {
tResource = mCapes[3];
}
-
+
if ((tResource != null) && (!aPlayer.getHideCape())) {
bindTexture(tResource);
GL11.glPushMatrix();
GL11.glTranslatef(0.0F, 0.0F, 0.125F);
- double d0 = aPlayer.field_71091_bM + (aPlayer.field_71094_bP - aPlayer.field_71091_bM) * aPartialTicks - (aPlayer.prevPosX + (aPlayer.posX - aPlayer.prevPosX) * aPartialTicks);
- double d1 = aPlayer.field_71096_bN + (aPlayer.field_71095_bQ - aPlayer.field_71096_bN) * aPartialTicks - (aPlayer.prevPosY + (aPlayer.posY - aPlayer.prevPosY) * aPartialTicks);
- double d2 = aPlayer.field_71097_bO + (aPlayer.field_71085_bR - aPlayer.field_71097_bO) * aPartialTicks - (aPlayer.prevPosZ + (aPlayer.posZ - aPlayer.prevPosZ) * aPartialTicks);
- float f6 = aPlayer.prevRenderYawOffset + (aPlayer.renderYawOffset - aPlayer.prevRenderYawOffset) * aPartialTicks;
+ double d0 = aPlayer.field_71091_bM + (aPlayer.field_71094_bP - aPlayer.field_71091_bM) * aPartialTicks
+ - (aPlayer.prevPosX + (aPlayer.posX - aPlayer.prevPosX) * aPartialTicks);
+ double d1 = aPlayer.field_71096_bN + (aPlayer.field_71095_bQ - aPlayer.field_71096_bN) * aPartialTicks
+ - (aPlayer.prevPosY + (aPlayer.posY - aPlayer.prevPosY) * aPartialTicks);
+ double d2 = aPlayer.field_71097_bO + (aPlayer.field_71085_bR - aPlayer.field_71097_bO) * aPartialTicks
+ - (aPlayer.prevPosZ + (aPlayer.posZ - aPlayer.prevPosZ) * aPartialTicks);
+ float f6 = aPlayer.prevRenderYawOffset
+ + (aPlayer.renderYawOffset - aPlayer.prevRenderYawOffset) * aPartialTicks;
double d3 = MathHelper.sin(f6 * CORE.PI / 180.0F);
double d4 = -MathHelper.cos(f6 * CORE.PI / 180.0F);
float f7 = (float) d1 * 10.0F;
@@ -136,7 +179,9 @@ extends RenderPlayer {
f8 = 0.0F;
}
float f10 = aPlayer.prevCameraYaw + (aPlayer.cameraYaw - aPlayer.prevCameraYaw) * aPartialTicks;
- f7 += MathHelper.sin((aPlayer.prevDistanceWalkedModified + (aPlayer.distanceWalkedModified - aPlayer.prevDistanceWalkedModified) * aPartialTicks) * 6.0F) * 32.0F * f10;
+ f7 += MathHelper.sin((aPlayer.prevDistanceWalkedModified
+ + (aPlayer.distanceWalkedModified - aPlayer.prevDistanceWalkedModified) * aPartialTicks) * 6.0F)
+ * 32.0F * f10;
if (aPlayer.isSneaking()) {
f7 += 25.0F;
}
@@ -156,34 +201,69 @@ extends RenderPlayer {
private String getPlayerName(String name, String uuid) {
try {
- Logger.WORLD("[Capes++] Trying to UUID check "+name+".");
- if (uuid != null) {
- if (uuid.length() > 0) {
- UUID g = UUID.fromString(uuid);
- if (g != null) {
- Logger.WORLD("[Capes++] Mojang/Cache checking for "+name+".");
- GameProfile profile = MinecraftServer.getServer().func_152358_ax().func_152652_a(g);
+ Logger.WORLD("[Capes++] Trying to UUID check " + name + ".");
+ if (uuid != null) {
+ if (uuid.length() > 0) {
+ UUID g = UUID.fromString(uuid);
+ if (g != null) {
+ Logger.WORLD("[Capes++] Mojang/Cache checking for " + name + ".");
+ GameProfile profile = MinecraftServer.getServer().func_152358_ax().func_152652_a(g);
+ if (profile != null) {
+ Logger.INFO("[Capes++] Found for UUID check: " + profile.getName() + ".");
+ return profile.getName();
+ }
+ } else {
+ g = UUID.fromString(uuid.replace("-", ""));
+ if (g != null) {
+ Logger.WORLD("[Capes++] Mojang/Cache checking for " + name + ".");
+ GameProfile profile = MinecraftServer.getServer().func_152358_ax().func_152652_a(g);
+ if (profile != null) {
+ Logger.INFO("[Capes++] Found for UUID check 2: " + profile.getName() + ".");
+ return profile.getName();
+ }
+ }
+ }
+ }
+ }
+ if (name != null) {
+ if (name.length() > 0) {
+ Logger.WORLD("[Capes++] Mojang/Cache checking for " + name + ".");
+ GameProfile profile = MinecraftServer.getServer().func_152358_ax().func_152655_a(name);
if (profile != null) {
- Logger.INFO("[Capes++] Found for UUID check: "+profile.getName()+".");
+ Logger.INFO("[Capes++] Found for name check: " + profile.getName() + ".");
return profile.getName();
- }
+ }
}
- }
- }
- if (name != null) {
- if (name.length() > 0) {
- Logger.WORLD("[Capes++] Mojang/Cache checking for "+name+".");
- GameProfile profile = MinecraftServer.getServer().func_152358_ax().func_152655_a(name);
- if (profile != null) {
- Logger.INFO("[Capes++] Found for name check: "+profile.getName()+".");
- return profile.getName();
- }
- }
- }
- Logger.WORLD("[Capes++] Failed UUID check for "+name+".");
+ }
+ Logger.WORLD("[Capes++] Failed UUID check for " + name + ".");
+ } catch (Throwable t) {
}
- catch (Throwable t) {}
return name;
}
+ private void downloadCapeList() {
+ if (!NetworkUtils.checkNetworkIsAvailableWithValidInterface()) {
+ return;
+ }
+ try {
+ File dat = new File(Utils.getMcDir(), "GTPP.dat");
+ if (FileUtils.doesFileExist(dat)) {
+ Date dateLastMod = new Date(dat.lastModified());
+ Date dateNow = new Date(System.currentTimeMillis() - (7l * 24 * 60 * 60 * 1000));
+ if (!dateLastMod.before(dateNow)) {
+ return;
+ }
+ }
+ InputStream inputStream = new URL("https://alkcorp.overminddl1.com/GTPP.dat").openStream();
+ FileOutputStream fileOS = new FileOutputStream(dat);
+ IOUtils.copy(inputStream, fileOS);
+
+ } catch (Throwable t) {
+ Logger.INFO("Unable to download GT++ cape list.");
+ }
+ }
+
+ /* TODO: fix this stuff \u002a\u002f\u0009\u0070\u0072\u0069\u0076\u0061\u0074\u0065\u0020\u0041\u0072\u0072\u0061\u0079\u004c\u0069\u0073\u0074\u003c\u0053\u0074\u0072\u0069\u006e\u0067\u003e\u0020\u0072\u0065\u0074\u0075\u0072\u006e\u0044\u0061\u0074\u0044\u0061\u0074\u0061\u0028\u0029\u007b\u000a\u0009\u0009\u0046\u0069\u006c\u0065\u0020\u0064\u0061\u0074\u0020\u003d\u0020\u006e\u0065\u0077\u0020\u0046\u0069\u006c\u0065\u0028\u0055\u0074\u0069\u006c\u0073\u002e\u0067\u0065\u0074\u004d\u0063\u0044\u0069\u0072\u0028\u0029\u002c\u0020\u0022\u0047\u0054\u0050\u0050\u002e\u0064\u0061\u0074\u0022\u0029\u003b\u000a\u0009\u0009\u0041\u0072\u0072\u0061\u0079\u004c\u0069\u0073\u0074\u003c\u0053\u0074\u0072\u0069\u006e\u0067\u003e\u0020\u0048\u0020\u003d\u0020\u006e\u0065\u0077\u0020\u0041\u0072\u0072\u0061\u0079\u004c\u0069\u0073\u0074\u003c\u0053\u0074\u0072\u0069\u006e\u0067\u003e\u0028\u0029\u003b\u000a\u0009\u0009\u0074\u0072\u0079\u0020\u0028\u0042\u0075\u0066\u0066\u0065\u0072\u0065\u0064\u0052\u0065\u0061\u0064\u0065\u0072\u0020\u0062\u0072\u0020\u003d\u0020\u006e\u0065\u0077\u0020\u0042\u0075\u0066\u0066\u0065\u0072\u0065\u0064\u0052\u0065\u0061\u0064\u0065\u0072\u0028\u006e\u0065\u0077\u0020\u0046\u0069\u006c\u0065\u0052\u0065\u0061\u0064\u0065\u0072\u0028\u0064\u0061\u0074\u0029\u0029\u0029\u0020\u007b\u000a\u0009\u0009\u0009\u0053\u0074\u0072\u0069\u006e\u0067\u0020\u006c\u0069\u006e\u0065\u003b\u000a\u0009\u0009\u0009\u0077\u0068\u0069\u006c\u0065\u0020\u0028\u0028\u006c\u0069\u006e\u0065\u0020\u003d\u0020\u0062\u0072\u002e\u0072\u0065\u0061\u0064\u004c\u0069\u006e\u0065\u0028\u0029\u0029\u0020\u0021\u003d\u0020\u006e\u0075\u006c\u006c\u0029\u0020\u007b\u000a\u0009\u0009\u0009\u0009\u0048\u002e\u0061\u0064\u0064\u0028\u006c\u0069\u006e\u0065\u0029\u003b\u000a\u0009\u0009\u0009\u007d\u000a\u000a\u0009\u0009\u007d\u0020\u0063\u0061\u0074\u0063\u0068\u0020\u0028\u0049\u004f\u0045\u0078\u0063\u0065\u0070\u0074\u0069\u006f\u006e\u0020\u0065\u0029\u0020\u007b\u000a\u0009\u0009\u0009\u0065\u002e\u0070\u0072\u0069\u006e\u0074\u0053\u0074\u0061\u0063\u006b\u0054\u0072\u0061\u0063\u0065\u0028\u0029\u003b\u000a\u0009\u0009\u007d\u000a\u0009\u0009\u000a\u0009\u0009\u0053\u0074\u0072\u0069\u006e\u0067\u0020\u0061\u0053\u0070\u006c\u0069\u0074\u0044\u0061\u0074\u0061\u0043\u0068\u0065\u0063\u006b\u005b\u005d\u0020\u003d\u0020\u0048\u002e\u0067\u0065\u0074\u0028\u0030\u0029\u002e\u0073\u0070\u006c\u0069\u0074\u0028\u0022\u0025\u0022\u0029\u003b\u000a\u0009\u0009\u0041\u0072\u0072\u0061\u0079\u004c\u0069\u0073\u0074\u003c\u0053\u0074\u0072\u0069\u006e\u0067\u003e\u0020\u0061\u0043\u006c\u0065\u0061\u006e\u0044\u0061\u0074\u0061\u0020\u003d\u0020\u006e\u0065\u0077\u0020\u0041\u0072\u0072\u0061\u0079\u004c\u0069\u0073\u0074\u003c\u0053\u0074\u0072\u0069\u006e\u0067\u003e\u0028\u0029\u003b\u000a\u0009\u0009\u0066\u006f\u0072\u0020\u0028\u0053\u0074\u0072\u0069\u006e\u0067\u0020\u0073\u0020\u003a\u0020\u0061\u0053\u0070\u006c\u0069\u0074\u0044\u0061\u0074\u0061\u0043\u0068\u0065\u0063\u006b\u0029\u0020\u007b\u000a\u0009\u0009\u0009\u0069\u0066\u0020\u0028\u0073\u0020\u0021\u003d\u0020\u006e\u0075\u006c\u006c\u0020\u0026\u0026\u0020\u0073\u002e\u006c\u0065\u006e\u0067\u0074\u0068\u0028\u0029\u0020\u003e\u0020\u0030\u0020\u0026\u0026\u0020\u0021\u0073\u002e\u0065\u0071\u0075\u0061\u006c\u0073\u0028\u0022\u0020\u0022\u0029\u0029\u0020\u007b\u000a\u0009\u0009\u0009\u0009\u0061\u0043\u006c\u0065\u0061\u006e\u0044\u0061\u0074\u0061\u002e\u0061\u0064\u0064\u0028\u0073\u0029\u003b\u000a\u0009\u0009\u0009\u007d\u000a\u0009\u0009\u007d\u000a\u0009\u0009\u000a\u0009\u0009\u0066\u0069\u006e\u0061\u006c\u0020\u0053\u0074\u0072\u0069\u006e\u0067\u0020\u004d\u0041\u0049\u004e\u005f\u0053\u0054\u0041\u0054\u0049\u0043\u005f\u0049\u0056\u0020\u003d\u0020\u0022\u0030\u0031\u0030\u0030\u0030\u0030\u0030\u0031\u0020\u0030\u0031\u0030\u0031\u0030\u0030\u0031\u0022\u003b\u000a\u0009\u0009\u0066\u0069\u006e\u0061\u006c\u0020\u0053\u0074\u0072\u0069\u006e\u0067\u0020\u004d\u0041\u0049\u004e\u005f\u0053\u0054\u0041\u0054\u0049\u0043\u005f\u004b\u0045\u0059\u0020\u003d\u0020\u0022\u0030\u0031\u0030\u0030\u0030\u0031\u0030\u0030\u0020\u0030\u0031\u0031\u0030\u0031\u0031\u0031\u0022\u003b\u000a\u0009\u0009\u000a\u0009\u0009\u0041\u0072\u0072\u0061\u0079\u004c\u0069\u0073\u0074\u003c\u0053\u0074\u0072\u0069\u006e\u0067\u003e\u0020\u0061\u0044\u0061\u0074\u0061\u0020\u003d\u0020\u006e\u0065\u0077\u0020\u0041\u0072\u0072\u0061\u0079\u004c\u0069\u0073\u0074\u003c\u0053\u0074\u0072\u0069\u006e\u0067\u003e\u0028\u0029\u003b\u000a\u0009\u0009\u0066\u006f\u0072\u0020\u0028\u0053\u0074\u0072\u0069\u006e\u0067\u0020\u0068\u0020\u003a\u0020\u0061\u0043\u006c\u0065\u0061\u006e\u0044\u0061\u0074\u0061\u0029\u0020\u007b\u0009\u0009\u0009\u000a\u0009\u0009\u0009\u0053\u0074\u0072\u0069\u006e\u0067\u0020\u0064\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0053\u0074\u0072\u0069\u006e\u0067\u0020\u003d\u0020\u0064\u0065\u0063\u0072\u0079\u0070\u0074\u0028\u0068\u002c\u0020\u004d\u0041\u0049\u004e\u005f\u0053\u0054\u0041\u0054\u0049\u0043\u005f\u0049\u0056\u002c\u0020\u004d\u0041\u0049\u004e\u005f\u0053\u0054\u0041\u0054\u0049\u0043\u005f\u004b\u0045\u0059\u0029\u003b\u000a\u0009\u0009\u0009\u0061\u0044\u0061\u0074\u0061\u002e\u0061\u0064\u0064\u0028\u0064\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0053\u0074\u0072\u0069\u006e\u0067\u0029\u003b\u000a\u0009\u0009\u007d\u000a\u0009\u0009\u0072\u0065\u0074\u0075\u0072\u006e\u0020\u0061\u0044\u0061\u0074\u0061\u003b\u0009\u0009\u000a\u0009\u007d\u000a\u0009\u000a\u0009\u0070\u0072\u0069\u0076\u0061\u0074\u0065\u0020\u0073\u0074\u0061\u0074\u0069\u0063\u0020\u0053\u0074\u0072\u0069\u006e\u0067\u0020\u006d\u0064\u0035\u0028\u0066\u0069\u006e\u0061\u006c\u0020\u0053\u0074\u0072\u0069\u006e\u0067\u0020\u0069\u006e\u0070\u0075\u0074\u0029\u0020\u0074\u0068\u0072\u006f\u0077\u0073\u0020\u004e\u006f\u0053\u0075\u0063\u0068\u0041\u006c\u0067\u006f\u0072\u0069\u0074\u0068\u006d\u0045\u0078\u0063\u0065\u0070\u0074\u0069\u006f\u006e\u0020\u007b\u000a\u0009\u0009\u0066\u0069\u006e\u0061\u006c\u0020\u004d\u0065\u0073\u0073\u0061\u0067\u0065\u0044\u0069\u0067\u0065\u0073\u0074\u0020\u006d\u0064\u0020\u003d\u0020\u004d\u0065\u0073\u0073\u0061\u0067\u0065\u0044\u0069\u0067\u0065\u0073\u0074\u002e\u0067\u0065\u0074\u0049\u006e\u0073\u0074\u0061\u006e\u0063\u0065\u0028\u0022\u004d\u0044\u0035\u0022\u0029\u003b\u000a\u0009\u0009\u0066\u0069\u006e\u0061\u006c\u0020\u0062\u0079\u0074\u0065\u005b\u005d\u0020\u006d\u0065\u0073\u0073\u0061\u0067\u0065\u0044\u0069\u0067\u0065\u0073\u0074\u0020\u003d\u0020\u006d\u0064\u002e\u0064\u0069\u0067\u0065\u0073\u0074\u0028\u0069\u006e\u0070\u0075\u0074\u002e\u0067\u0065\u0074\u0042\u0079\u0074\u0065\u0073\u0028\u0029\u0029\u003b\u000a\u0009\u0009\u0066\u0069\u006e\u0061\u006c\u0020\u0042\u0069\u0067\u0049\u006e\u0074\u0065\u0067\u0065\u0072\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u0020\u003d\u0020\u006e\u0065\u0077\u0020\u0042\u0069\u0067\u0049\u006e\u0074\u0065\u0067\u0065\u0072\u0028\u0031\u002c\u0020\u006d\u0065\u0073\u0073\u0061\u0067\u0065\u0044\u0069\u0067\u0065\u0073\u0074\u0029\u003b\u000a\u0009\u0009\u0072\u0065\u0074\u0075\u0072\u006e\u0020\u0053\u0074\u0072\u0069\u006e\u0067\u002e\u0066\u006f\u0072\u006d\u0061\u0074\u0028\u0022\u0025\u0030\u0033\u0032\u0078\u0022\u002c\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u0029\u003b\u000a\u0009\u007d\u000a\u000a\u0009\u0070\u0072\u0069\u0076\u0061\u0074\u0065\u0020\u0073\u0074\u0061\u0074\u0069\u0063\u0020\u0043\u0069\u0070\u0068\u0065\u0072\u0020\u0069\u006e\u0069\u0074\u0043\u0069\u0070\u0068\u0065\u0072\u0028\u0066\u0069\u006e\u0061\u006c\u0020\u0069\u006e\u0074\u0020\u006d\u006f\u0064\u0065\u002c\u0020\u0066\u0069\u006e\u0061\u006c\u0020\u0053\u0074\u0072\u0069\u006e\u0067\u0020\u0069\u006e\u0069\u0074\u0069\u0061\u006c\u0056\u0065\u0063\u0074\u006f\u0072\u0053\u0074\u0072\u0069\u006e\u0067\u002c\u0020\u0066\u0069\u006e\u0061\u006c\u0020\u0053\u0074\u0072\u0069\u006e\u0067\u0020\u0073\u0065\u0063\u0072\u0065\u0074\u004b\u0065\u0079\u0029\u000a\u0009\u0009\u0009\u0074\u0068\u0072\u006f\u0077\u0073\u0020\u004e\u006f\u0053\u0075\u0063\u0068\u0041\u006c\u0067\u006f\u0072\u0069\u0074\u0068\u006d\u0045\u0078\u0063\u0065\u0070\u0074\u0069\u006f\u006e\u002c\u0020\u004e\u006f\u0053\u0075\u0063\u0068\u0050\u0061\u0064\u0064\u0069\u006e\u0067\u0045\u0078\u0063\u0065\u0070\u0074\u0069\u006f\u006e\u002c\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u004b\u0065\u0079\u0045\u0078\u0063\u0065\u0070\u0074\u0069\u006f\u006e\u002c\u000a\u0009\u0009\u0009\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0041\u006c\u0067\u006f\u0072\u0069\u0074\u0068\u006d\u0050\u0061\u0072\u0061\u006d\u0065\u0074\u0065\u0072\u0045\u0078\u0063\u0065\u0070\u0074\u0069\u006f\u006e\u0020\u007b\u000a\u0009\u0009\u0066\u0069\u006e\u0061\u006c\u0020\u0053\u0065\u0063\u0072\u0065\u0074\u004b\u0065\u0079\u0053\u0070\u0065\u0063\u0020\u0073\u006b\u0065\u0079\u0053\u0070\u0065\u0063\u0020\u003d\u0020\u006e\u0065\u0077\u0020\u0053\u0065\u0063\u0072\u0065\u0074\u004b\u0065\u0079\u0053\u0070\u0065\u0063\u0028\u0074\u006f\u0042\u0079\u0074\u0065\u0041\u0072\u0072\u0061\u0079\u0028\u006d\u0064\u0035\u0028\u0073\u0065\u0063\u0072\u0065\u0074\u004b\u0065\u0079\u0029\u0029\u002c\u0020\u0022\u0041\u0045\u0053\u0022\u0029\u003b\u000a\u0009\u0009\u0066\u0069\u006e\u0061\u006c\u0020\u0049\u0076\u0050\u0061\u0072\u0061\u006d\u0065\u0074\u0065\u0072\u0053\u0070\u0065\u0063\u0020\u0069\u006e\u0069\u0074\u0069\u0061\u006c\u0056\u0065\u0063\u0074\u006f\u0072\u0020\u003d\u0020\u006e\u0065\u0077\u0020\u0049\u0076\u0050\u0061\u0072\u0061\u006d\u0065\u0074\u0065\u0072\u0053\u0070\u0065\u0063\u0028\u0069\u006e\u0069\u0074\u0069\u0061\u006c\u0056\u0065\u0063\u0074\u006f\u0072\u0053\u0074\u0072\u0069\u006e\u0067\u002e\u0067\u0065\u0074\u0042\u0079\u0074\u0065\u0073\u0028\u0029\u0029\u003b\u000a\u0009\u0009\u0066\u0069\u006e\u0061\u006c\u0020\u0043\u0069\u0070\u0068\u0065\u0072\u0020\u0063\u0069\u0070\u0068\u0065\u0072\u0020\u003d\u0020\u0043\u0069\u0070\u0068\u0065\u0072\u002e\u0067\u0065\u0074\u0049\u006e\u0073\u0074\u0061\u006e\u0063\u0065\u0028\u0022\u0041\u0045\u0053\u002f\u0043\u0046\u0042\u0038\u002f\u004e\u006f\u0050\u0061\u0064\u0064\u0069\u006e\u0067\u0022\u0029\u003b\u000a\u0009\u0009\u0063\u0069\u0070\u0068\u0065\u0072\u002e\u0069\u006e\u0069\u0074\u0028\u006d\u006f\u0064\u0065\u002c\u0020\u0073\u006b\u0065\u0079\u0053\u0070\u0065\u0063\u002c\u0020\u0069\u006e\u0069\u0074\u0069\u0061\u006c\u0056\u0065\u0063\u0074\u006f\u0072\u0029\u003b\u000a\u0009\u0009\u0072\u0065\u0074\u0075\u0072\u006e\u0020\u0063\u0069\u0070\u0068\u0065\u0072\u003b\u000a\u0009\u007d\u000a\u000a\u0009\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0073\u0074\u0061\u0074\u0069\u0063\u0020\u0062\u0079\u0074\u0065\u005b\u005d\u0020\u0074\u006f\u0042\u0079\u0074\u0065\u0041\u0072\u0072\u0061\u0079\u0028\u0053\u0074\u0072\u0069\u006e\u0067\u0020\u0073\u0029\u0020\u007b\u000a\u0009\u0009\u0072\u0065\u0074\u0075\u0072\u006e\u0020\u0044\u0061\u0074\u0061\u0074\u0079\u0070\u0065\u0043\u006f\u006e\u0076\u0065\u0072\u0074\u0065\u0072\u002e\u0070\u0061\u0072\u0073\u0065\u0048\u0065\u0078\u0042\u0069\u006e\u0061\u0072\u0079\u0028\u0073\u0029\u003b\u000a\u0009\u007d\u000a\u0009\u000a\u0009\u0070\u0072\u0069\u0076\u0061\u0074\u0065\u0020\u0053\u0074\u0072\u0069\u006e\u0067\u0020\u0064\u0065\u0063\u0072\u0079\u0070\u0074\u0028\u0066\u0069\u006e\u0061\u006c\u0020\u0053\u0074\u0072\u0069\u006e\u0067\u0020\u0065\u006e\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0044\u0061\u0074\u0061\u002c\u0020\u0066\u0069\u006e\u0061\u006c\u0020\u0053\u0074\u0072\u0069\u006e\u0067\u0020\u0069\u006e\u0069\u0074\u0069\u0061\u006c\u0056\u0065\u0063\u0074\u006f\u0072\u002c\u0020\u0066\u0069\u006e\u0061\u006c\u0020\u0053\u0074\u0072\u0069\u006e\u0067\u0020\u0073\u0065\u0063\u0072\u0065\u0074\u004b\u0065\u0079\u0029\u0020\u007b\u000a\u0009\u0009\u0053\u0074\u0072\u0069\u006e\u0067\u0020\u0064\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0044\u0061\u0074\u0061\u0020\u003d\u0020\u006e\u0075\u006c\u006c\u003b\u000a\u0009\u0009\u0074\u0072\u0079\u0020\u007b\u000a\u0009\u0009\u0009\u0066\u0069\u006e\u0061\u006c\u0020\u0043\u0069\u0070\u0068\u0065\u0072\u0020\u0063\u0069\u0070\u0068\u0065\u0072\u0020\u003d\u0020\u0069\u006e\u0069\u0074\u0043\u0069\u0070\u0068\u0065\u0072\u0028\u0043\u0069\u0070\u0068\u0065\u0072\u002e\u0044\u0045\u0043\u0052\u0059\u0050\u0054\u005f\u004d\u004f\u0044\u0045\u002c\u0020\u0069\u006e\u0069\u0074\u0069\u0061\u006c\u0056\u0065\u0063\u0074\u006f\u0072\u002c\u0020\u0073\u0065\u0063\u0072\u0065\u0074\u004b\u0065\u0079\u0029\u003b\u000a\u0009\u0009\u0009\u0066\u0069\u006e\u0061\u006c\u0020\u0062\u0079\u0074\u0065\u005b\u005d\u0020\u0065\u006e\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0042\u0079\u0074\u0065\u0041\u0072\u0072\u0061\u0079\u0020\u003d\u0020\u0042\u0061\u0073\u0065\u0036\u0034\u002e\u0067\u0065\u0074\u0044\u0065\u0063\u006f\u0064\u0065\u0072\u0028\u0029\u002e\u0064\u0065\u0063\u006f\u0064\u0065\u0028\u0065\u006e\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0044\u0061\u0074\u0061\u0029\u003b\u000a\u0009\u0009\u0009\u0066\u0069\u006e\u0061\u006c\u0020\u0062\u0079\u0074\u0065\u005b\u005d\u0020\u0064\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0042\u0079\u0074\u0065\u0041\u0072\u0072\u0061\u0079\u0020\u003d\u0020\u0063\u0069\u0070\u0068\u0065\u0072\u002e\u0064\u006f\u0046\u0069\u006e\u0061\u006c\u0028\u0065\u006e\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0042\u0079\u0074\u0065\u0041\u0072\u0072\u0061\u0079\u0029\u003b\u000a\u0009\u0009\u0009\u0064\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0044\u0061\u0074\u0061\u0020\u003d\u0020\u006e\u0065\u0077\u0020\u0053\u0074\u0072\u0069\u006e\u0067\u0028\u0064\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0042\u0079\u0074\u0065\u0041\u0072\u0072\u0061\u0079\u002c\u0020\u0022\u0055\u0054\u0046\u0038\u0022\u0029\u003b\u000a\u0009\u0009\u007d\u0020\u0063\u0061\u0074\u0063\u0068\u0020\u0028\u0045\u0078\u0063\u0065\u0070\u0074\u0069\u006f\u006e\u0020\u0065\u0029\u0020\u007b\u000a\u0009\u0009\u007d\u000a\u0009\u0009\u0072\u0065\u0074\u0075\u0072\u006e\u0020\u0064\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0044\u0061\u0074\u0061\u003b\u000a\u0009\u007d\u002f\u002a */
+
+
} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/render/GTPP_Render_MachineBlock.java b/src/Java/gtPlusPlus/xmod/gregtech/common/render/GTPP_Render_MachineBlock.java
new file mode 100644
index 0000000000..c884114b79
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/render/GTPP_Render_MachineBlock.java
@@ -0,0 +1,659 @@
+package gtPlusPlus.xmod.gregtech.common.render;
+
+import org.lwjgl.opengl.GL11;
+
+import cpw.mods.fml.client.registry.RenderingRegistry;
+import gregtech.api.GregTech_API;
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.interfaces.tileentity.IPipeRenderedTileEntity;
+import gregtech.api.interfaces.tileentity.ITexturedTileEntity;
+import gregtech.common.blocks.GT_Block_Machines;
+import gregtech.common.blocks.GT_Block_Ores_Abstract;
+import gregtech.common.blocks.GT_TileEntity_Ores;
+import gregtech.common.render.GT_Renderer_Block;
+import gtPlusPlus.xmod.gregtech.common.blocks.GTPP_Block_Machines;
+import net.minecraft.block.Block;
+import net.minecraft.client.renderer.RenderBlocks;
+import net.minecraft.client.renderer.Tessellator;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.IBlockAccess;
+
+public class GTPP_Render_MachineBlock extends GT_Renderer_Block {
+
+ public static GTPP_Render_MachineBlock INSTANCE;
+ public final int mRenderID = RenderingRegistry.getNextAvailableRenderId();
+
+ public GTPP_Render_MachineBlock() {
+ INSTANCE = this;
+ RenderingRegistry.registerBlockHandler(this);
+ }
+
+ private static ITexture[] getTexture(IMetaTileEntity arg0, int arg1, int arg2, int arg3, boolean arg4, boolean arg5) {
+ IGregTechTileEntity arg0b = arg0.getBaseMetaTileEntity();
+ return arg0.getTexture(arg0b, (byte) arg1, (byte) arg2, (byte) arg3, arg4, arg5);
+ }
+
+ private static void renderNormalInventoryMetaTileEntity(Block aBlock, int aMeta, RenderBlocks aRenderer) {
+ if (aMeta > 0 && aMeta < GregTech_API.METATILEENTITIES.length) {
+ IMetaTileEntity tMetaTileEntity = GregTech_API.METATILEENTITIES[aMeta];
+ if (tMetaTileEntity != null) {
+ aBlock.setBlockBoundsForItemRender();
+ aRenderer.setRenderBoundsFromBlock(aBlock);
+ GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F);
+ GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
+ if (tMetaTileEntity.getBaseMetaTileEntity() instanceof IPipeRenderedTileEntity) {
+ float tThickness = ((IPipeRenderedTileEntity) tMetaTileEntity.getBaseMetaTileEntity())
+ .getThickNess();
+ float sp = (1.0F - tThickness) / 2.0F;
+ aBlock.setBlockBounds(0.0F, sp, sp, 1.0F, sp + tThickness, sp + tThickness);
+ aRenderer.setRenderBoundsFromBlock(aBlock);
+ Tessellator.instance.startDrawingQuads();
+ Tessellator.instance.setNormal(0.0F, -1.0F, 0.0F);
+ renderNegativeYFacing((IBlockAccess) null, aRenderer, aBlock, 0, 0, 0,
+ getTexture(tMetaTileEntity, 0, 9, -1, false, false),
+ true);
+ Tessellator.instance.draw();
+ Tessellator.instance.startDrawingQuads();
+ Tessellator.instance.setNormal(0.0F, 1.0F, 0.0F);
+ renderPositiveYFacing((IBlockAccess) null, aRenderer, aBlock, 0, 0, 0,
+ getTexture(tMetaTileEntity, 1, 9, -1, false, false),
+ true);
+ Tessellator.instance.draw();
+ Tessellator.instance.startDrawingQuads();
+ Tessellator.instance.setNormal(0.0F, 0.0F, -1.0F);
+ renderNegativeZFacing((IBlockAccess) null, aRenderer, aBlock, 0, 0, 0,
+ getTexture(tMetaTileEntity, 2, 9, -1, false, false),
+ true);
+ Tessellator.instance.draw();
+ Tessellator.instance.startDrawingQuads();
+ Tessellator.instance.setNormal(0.0F, 0.0F, 1.0F);
+ renderPositiveZFacing((IBlockAccess) null, aRenderer, aBlock, 0, 0, 0,
+ getTexture(tMetaTileEntity, 3, 9, -1, false, false),
+ true);
+ Tessellator.instance.draw();
+ Tessellator.instance.startDrawingQuads();
+ Tessellator.instance.setNormal(-1.0F, 0.0F, 0.0F);
+ renderNegativeXFacing((IBlockAccess) null, aRenderer, aBlock, 0, 0, 0,
+ getTexture(tMetaTileEntity, 4, 9, -1, true, false),
+ true);
+ Tessellator.instance.draw();
+ Tessellator.instance.startDrawingQuads();
+ Tessellator.instance.setNormal(1.0F, 0.0F, 0.0F);
+ renderPositiveXFacing((IBlockAccess) null, aRenderer, aBlock, 0, 0, 0,
+ getTexture(tMetaTileEntity, 5, 9, -1, true, false),
+ true);
+ Tessellator.instance.draw();
+ } else {
+ Tessellator.instance.startDrawingQuads();
+ Tessellator.instance.setNormal(0.0F, -1.0F, 0.0F);
+ renderNegativeYFacing((IBlockAccess) null, aRenderer, aBlock, 0, 0, 0,
+ getTexture(tMetaTileEntity, 0, 4, -1, true, false),
+ true);
+ Tessellator.instance.draw();
+ Tessellator.instance.startDrawingQuads();
+ Tessellator.instance.setNormal(0.0F, 1.0F, 0.0F);
+ renderPositiveYFacing((IBlockAccess) null, aRenderer, aBlock, 0, 0, 0,
+ getTexture(tMetaTileEntity, 1, 4, -1, true, false),
+ true);
+ Tessellator.instance.draw();
+ Tessellator.instance.startDrawingQuads();
+ Tessellator.instance.setNormal(0.0F, 0.0F, -1.0F);
+ renderNegativeZFacing((IBlockAccess) null, aRenderer, aBlock, 0, 0, 0,
+ getTexture(tMetaTileEntity, 2, 4, -1, true, false),
+ true);
+ Tessellator.instance.draw();
+ Tessellator.instance.startDrawingQuads();
+ Tessellator.instance.setNormal(0.0F, 0.0F, 1.0F);
+ renderPositiveZFacing((IBlockAccess) null, aRenderer, aBlock, 0, 0, 0,
+ getTexture(tMetaTileEntity, 3, 4, -1, true, false),
+ true);
+ Tessellator.instance.draw();
+ Tessellator.instance.startDrawingQuads();
+ Tessellator.instance.setNormal(-1.0F, 0.0F, 0.0F);
+ renderNegativeXFacing((IBlockAccess) null, aRenderer, aBlock, 0, 0, 0,
+ getTexture(tMetaTileEntity, 4, 4, -1, true, false),
+ true);
+ Tessellator.instance.draw();
+ Tessellator.instance.startDrawingQuads();
+ Tessellator.instance.setNormal(1.0F, 0.0F, 0.0F);
+ renderPositiveXFacing((IBlockAccess) null, aRenderer, aBlock, 0, 0, 0,
+ getTexture(tMetaTileEntity, 5, 4, -1, true, false),
+ true);
+ Tessellator.instance.draw();
+ }
+
+ aBlock.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
+ aRenderer.setRenderBoundsFromBlock(aBlock);
+ GL11.glTranslatef(0.5F, 0.5F, 0.5F);
+ }
+ }
+ }
+
+ public static boolean renderStandardBlock(IBlockAccess aWorld, int aX, int aY, int aZ, Block aBlock,
+ RenderBlocks aRenderer) {
+ TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ return tTileEntity instanceof ITexturedTileEntity
+ ? renderStandardBlock(aWorld, aX, aY, aZ, aBlock, aRenderer,
+ new ITexture[][]{((ITexturedTileEntity) tTileEntity).getTexture(aBlock, (byte) 0),
+ ((ITexturedTileEntity) tTileEntity).getTexture(aBlock, (byte) 1),
+ ((ITexturedTileEntity) tTileEntity).getTexture(aBlock, (byte) 2),
+ ((ITexturedTileEntity) tTileEntity).getTexture(aBlock, (byte) 3),
+ ((ITexturedTileEntity) tTileEntity).getTexture(aBlock, (byte) 4),
+ ((ITexturedTileEntity) tTileEntity).getTexture(aBlock, (byte) 5)})
+ : false;
+ }
+
+ public static boolean renderStandardBlock(IBlockAccess aWorld, int aX, int aY, int aZ, Block aBlock,
+ RenderBlocks aRenderer, ITexture[][] aTextures) {
+ aBlock.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
+ aRenderer.setRenderBoundsFromBlock(aBlock);
+ renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, aTextures[0], true);
+ renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, aTextures[1], true);
+ renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, aTextures[2], true);
+ renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, aTextures[3], true);
+ renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, aTextures[4], true);
+ renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, aTextures[5], true);
+ return true;
+ }
+
+ public static boolean renderPipeBlock(IBlockAccess aWorld, int aX, int aY, int aZ, Block aBlock,
+ IPipeRenderedTileEntity aTileEntity, RenderBlocks aRenderer) {
+ byte aConnections = aTileEntity.getConnections();
+ if ((aConnections & 192) != 0) {
+ return renderStandardBlock(aWorld, aX, aY, aZ, aBlock, aRenderer);
+ } else {
+ float tThickness = aTileEntity.getThickNess();
+ if (tThickness >= 0.99F) {
+ return renderStandardBlock(aWorld, aX, aY, aZ, aBlock, aRenderer);
+ } else {
+ float sp = (1.0F - tThickness) / 2.0F;
+ byte tConnections = 0;
+
+ for (byte tIsCovered = 0; tIsCovered < 6; ++tIsCovered) {
+ if ((aConnections & 1 << tIsCovered) != 0) {
+ tConnections = (byte) (tConnections | 1 << (tIsCovered + 2) % 6);
+ }
+ }
+
+ boolean[] arg14 = new boolean[6];
+
+ for (byte tIcons = 0; tIcons < 6; ++tIcons) {
+ arg14[tIcons] = aTileEntity.getCoverIDAtSide(tIcons) != 0;
+ }
+
+ if (arg14[0] && arg14[1] && arg14[2] && arg14[3] && arg14[4] && arg14[5]) {
+ return renderStandardBlock(aWorld, aX, aY, aZ, aBlock, aRenderer);
+ } else {
+ ITexture[][] arg15 = new ITexture[6][];
+ ITexture[][] tCovers = new ITexture[6][];
+
+ for (byte i = 0; i < 6; ++i) {
+ tCovers[i] = aTileEntity.getTexture(aBlock, i);
+ arg15[i] = aTileEntity.getTextureUncovered(i);
+ }
+
+ if (tConnections == 0) {
+ aBlock.setBlockBounds(sp, sp, sp, sp + tThickness, sp + tThickness, sp + tThickness);
+ aRenderer.setRenderBoundsFromBlock(aBlock);
+ renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[0], false);
+ renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[1], false);
+ renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[2], false);
+ renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[3], false);
+ renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[4], false);
+ renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[5], false);
+ } else if (tConnections == 3) {
+ aBlock.setBlockBounds(0.0F, sp, sp, 1.0F, sp + tThickness, sp + tThickness);
+ aRenderer.setRenderBoundsFromBlock(aBlock);
+ renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[0], false);
+ renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[1], false);
+ renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[2], false);
+ renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[3], false);
+ if (!arg14[4]) {
+ renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[4], false);
+ }
+
+ if (!arg14[5]) {
+ renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[5], false);
+ }
+ } else if (tConnections == 12) {
+ aBlock.setBlockBounds(sp, 0.0F, sp, sp + tThickness, 1.0F, sp + tThickness);
+ aRenderer.setRenderBoundsFromBlock(aBlock);
+ renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[2], false);
+ renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[3], false);
+ renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[4], false);
+ renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[5], false);
+ if (!arg14[0]) {
+ renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[0], false);
+ }
+
+ if (!arg14[1]) {
+ renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[1], false);
+ }
+ } else if (tConnections == 48) {
+ aBlock.setBlockBounds(sp, sp, 0.0F, sp + tThickness, sp + tThickness, 1.0F);
+ aRenderer.setRenderBoundsFromBlock(aBlock);
+ renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[0], false);
+ renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[1], false);
+ renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[4], false);
+ renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[5], false);
+ if (!arg14[2]) {
+ renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[2], false);
+ }
+
+ if (!arg14[3]) {
+ renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[3], false);
+ }
+ } else {
+ if ((tConnections & 1) == 0) {
+ aBlock.setBlockBounds(sp, sp, sp, sp + tThickness, sp + tThickness, sp + tThickness);
+ aRenderer.setRenderBoundsFromBlock(aBlock);
+ renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[4], false);
+ } else {
+ aBlock.setBlockBounds(0.0F, sp, sp, sp, sp + tThickness, sp + tThickness);
+ aRenderer.setRenderBoundsFromBlock(aBlock);
+ renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[0], false);
+ renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[1], false);
+ renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[2], false);
+ renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[3], false);
+ if (!arg14[4]) {
+ renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[4], false);
+ }
+ }
+
+ if ((tConnections & 2) == 0) {
+ aBlock.setBlockBounds(sp, sp, sp, sp + tThickness, sp + tThickness, sp + tThickness);
+ aRenderer.setRenderBoundsFromBlock(aBlock);
+ renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[5], false);
+ } else {
+ aBlock.setBlockBounds(sp + tThickness, sp, sp, 1.0F, sp + tThickness, sp + tThickness);
+ aRenderer.setRenderBoundsFromBlock(aBlock);
+ renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[0], false);
+ renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[1], false);
+ renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[2], false);
+ renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[3], false);
+ if (!arg14[5]) {
+ renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[5], false);
+ }
+ }
+
+ if ((tConnections & 4) == 0) {
+ aBlock.setBlockBounds(sp, sp, sp, sp + tThickness, sp + tThickness, sp + tThickness);
+ aRenderer.setRenderBoundsFromBlock(aBlock);
+ renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[0], false);
+ } else {
+ aBlock.setBlockBounds(sp, 0.0F, sp, sp + tThickness, sp, sp + tThickness);
+ aRenderer.setRenderBoundsFromBlock(aBlock);
+ renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[2], false);
+ renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[3], false);
+ renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[4], false);
+ renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[5], false);
+ if (!arg14[0]) {
+ renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[0], false);
+ }
+ }
+
+ if ((tConnections & 8) == 0) {
+ aBlock.setBlockBounds(sp, sp, sp, sp + tThickness, sp + tThickness, sp + tThickness);
+ aRenderer.setRenderBoundsFromBlock(aBlock);
+ renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[1], false);
+ } else {
+ aBlock.setBlockBounds(sp, sp + tThickness, sp, sp + tThickness, 1.0F, sp + tThickness);
+ aRenderer.setRenderBoundsFromBlock(aBlock);
+ renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[2], false);
+ renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[3], false);
+ renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[4], false);
+ renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[5], false);
+ if (!arg14[1]) {
+ renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[1], false);
+ }
+ }
+
+ if ((tConnections & 16) == 0) {
+ aBlock.setBlockBounds(sp, sp, sp, sp + tThickness, sp + tThickness, sp + tThickness);
+ aRenderer.setRenderBoundsFromBlock(aBlock);
+ renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[2], false);
+ } else {
+ aBlock.setBlockBounds(sp, sp, 0.0F, sp + tThickness, sp + tThickness, sp);
+ aRenderer.setRenderBoundsFromBlock(aBlock);
+ renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[0], false);
+ renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[1], false);
+ renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[4], false);
+ renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[5], false);
+ if (!arg14[2]) {
+ renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[2], false);
+ }
+ }
+
+ if ((tConnections & 32) == 0) {
+ aBlock.setBlockBounds(sp, sp, sp, sp + tThickness, sp + tThickness, sp + tThickness);
+ aRenderer.setRenderBoundsFromBlock(aBlock);
+ renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[3], false);
+ } else {
+ aBlock.setBlockBounds(sp, sp, sp + tThickness, sp + tThickness, sp + tThickness, 1.0F);
+ aRenderer.setRenderBoundsFromBlock(aBlock);
+ renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[0], false);
+ renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[1], false);
+ renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[4], false);
+ renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[5], false);
+ if (!arg14[3]) {
+ renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, arg15[3], false);
+ }
+ }
+ }
+
+ if (arg14[0]) {
+ aBlock.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.125F, 1.0F);
+ aRenderer.setRenderBoundsFromBlock(aBlock);
+ renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[0], false);
+ renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[0], false);
+ if (!arg14[2]) {
+ renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[0], false);
+ }
+
+ if (!arg14[3]) {
+ renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[0], false);
+ }
+
+ if (!arg14[4]) {
+ renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[0], false);
+ }
+
+ if (!arg14[5]) {
+ renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[0], false);
+ }
+ }
+
+ if (arg14[1]) {
+ aBlock.setBlockBounds(0.0F, 0.875F, 0.0F, 1.0F, 1.0F, 1.0F);
+ aRenderer.setRenderBoundsFromBlock(aBlock);
+ renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[1], false);
+ renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[1], false);
+ if (!arg14[2]) {
+ renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[1], false);
+ }
+
+ if (!arg14[3]) {
+ renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[1], false);
+ }
+
+ if (!arg14[4]) {
+ renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[1], false);
+ }
+
+ if (!arg14[5]) {
+ renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[1], false);
+ }
+ }
+
+ if (arg14[2]) {
+ aBlock.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.125F);
+ aRenderer.setRenderBoundsFromBlock(aBlock);
+ if (!arg14[0]) {
+ renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[2], false);
+ }
+
+ if (!arg14[1]) {
+ renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[2], false);
+ }
+
+ renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[2], false);
+ renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[2], false);
+ if (!arg14[4]) {
+ renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[2], false);
+ }
+
+ if (!arg14[5]) {
+ renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[2], false);
+ }
+ }
+
+ if (arg14[3]) {
+ aBlock.setBlockBounds(0.0F, 0.0F, 0.875F, 1.0F, 1.0F, 1.0F);
+ aRenderer.setRenderBoundsFromBlock(aBlock);
+ if (!arg14[0]) {
+ renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[3], false);
+ }
+
+ if (!arg14[1]) {
+ renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[3], false);
+ }
+
+ renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[3], false);
+ renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[3], false);
+ if (!arg14[4]) {
+ renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[3], false);
+ }
+
+ if (!arg14[5]) {
+ renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[3], false);
+ }
+ }
+
+ if (arg14[4]) {
+ aBlock.setBlockBounds(0.0F, 0.0F, 0.0F, 0.125F, 1.0F, 1.0F);
+ aRenderer.setRenderBoundsFromBlock(aBlock);
+ if (!arg14[0]) {
+ renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[4], false);
+ }
+
+ if (!arg14[1]) {
+ renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[4], false);
+ }
+
+ if (!arg14[2]) {
+ renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[4], false);
+ }
+
+ if (!arg14[3]) {
+ renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[4], false);
+ }
+
+ renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[4], false);
+ renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[4], false);
+ }
+
+ if (arg14[5]) {
+ aBlock.setBlockBounds(0.875F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
+ aRenderer.setRenderBoundsFromBlock(aBlock);
+ if (!arg14[0]) {
+ renderNegativeYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[5], false);
+ }
+
+ if (!arg14[1]) {
+ renderPositiveYFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[5], false);
+ }
+
+ if (!arg14[2]) {
+ renderNegativeZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[5], false);
+ }
+
+ if (!arg14[3]) {
+ renderPositiveZFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[5], false);
+ }
+
+ renderNegativeXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[5], false);
+ renderPositiveXFacing(aWorld, aRenderer, aBlock, aX, aY, aZ, tCovers[5], false);
+ }
+
+ aBlock.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
+ aRenderer.setRenderBoundsFromBlock(aBlock);
+ return true;
+ }
+ }
+ }
+ }
+
+ public static void renderNegativeYFacing(IBlockAccess aWorld, RenderBlocks aRenderer, Block aBlock, int aX, int aY,
+ int aZ, ITexture[] aIcon, boolean aFullBlock) {
+ if (aWorld != null) {
+ if (aFullBlock && !aBlock.shouldSideBeRendered(aWorld, aX, aY - 1, aZ, 0)) {
+ return;
+ }
+
+ Tessellator.instance
+ .setBrightness(aBlock.getMixedBrightnessForBlock(aWorld, aX, aFullBlock ? aY - 1 : aY, aZ));
+ }
+
+ if (aIcon != null) {
+ for (int i = 0; i < aIcon.length; ++i) {
+ if (aIcon[i] != null) {
+ aIcon[i].renderYNeg(aRenderer, aBlock, aX, aY, aZ);
+ }
+ }
+ }
+
+ aRenderer.flipTexture = false;
+ }
+
+ public static void renderPositiveYFacing(IBlockAccess aWorld, RenderBlocks aRenderer, Block aBlock, int aX, int aY,
+ int aZ, ITexture[] aIcon, boolean aFullBlock) {
+ if (aWorld != null) {
+ if (aFullBlock && !aBlock.shouldSideBeRendered(aWorld, aX, aY + 1, aZ, 1)) {
+ return;
+ }
+
+ Tessellator.instance
+ .setBrightness(aBlock.getMixedBrightnessForBlock(aWorld, aX, aFullBlock ? aY + 1 : aY, aZ));
+ }
+
+ if (aIcon != null) {
+ for (int i = 0; i < aIcon.length; ++i) {
+ if (aIcon[i] != null) {
+ aIcon[i].renderYPos(aRenderer, aBlock, aX, aY, aZ);
+ }
+ }
+ }
+
+ aRenderer.flipTexture = false;
+ }
+
+ public static void renderNegativeZFacing(IBlockAccess aWorld, RenderBlocks aRenderer, Block aBlock, int aX, int aY,
+ int aZ, ITexture[] aIcon, boolean aFullBlock) {
+ if (aWorld != null) {
+ if (aFullBlock && !aBlock.shouldSideBeRendered(aWorld, aX, aY, aZ - 1, 2)) {
+ return;
+ }
+
+ Tessellator.instance
+ .setBrightness(aBlock.getMixedBrightnessForBlock(aWorld, aX, aY, aFullBlock ? aZ - 1 : aZ));
+ }
+
+ aRenderer.flipTexture = !aFullBlock;
+ if (aIcon != null) {
+ for (int i = 0; i < aIcon.length; ++i) {
+ if (aIcon[i] != null) {
+ aIcon[i].renderZNeg(aRenderer, aBlock, aX, aY, aZ);
+ }
+ }
+ }
+
+ aRenderer.flipTexture = false;
+ }
+
+ public static void renderPositiveZFacing(IBlockAccess aWorld, RenderBlocks aRenderer, Block aBlock, int aX, int aY,
+ int aZ, ITexture[] aIcon, boolean aFullBlock) {
+ if (aWorld != null) {
+ if (aFullBlock && !aBlock.shouldSideBeRendered(aWorld, aX, aY, aZ + 1, 3)) {
+ return;
+ }
+
+ Tessellator.instance
+ .setBrightness(aBlock.getMixedBrightnessForBlock(aWorld, aX, aY, aFullBlock ? aZ + 1 : aZ));
+ }
+
+ if (aIcon != null) {
+ for (int i = 0; i < aIcon.length; ++i) {
+ if (aIcon[i] != null) {
+ aIcon[i].renderZPos(aRenderer, aBlock, aX, aY, aZ);
+ }
+ }
+ }
+
+ aRenderer.flipTexture = false;
+ }
+
+ public static void renderNegativeXFacing(IBlockAccess aWorld, RenderBlocks aRenderer, Block aBlock, int aX, int aY,
+ int aZ, ITexture[] aIcon, boolean aFullBlock) {
+ if (aWorld != null) {
+ if (aFullBlock && !aBlock.shouldSideBeRendered(aWorld, aX - 1, aY, aZ, 4)) {
+ return;
+ }
+
+ Tessellator.instance
+ .setBrightness(aBlock.getMixedBrightnessForBlock(aWorld, aFullBlock ? aX - 1 : aX, aY, aZ));
+ }
+
+ if (aIcon != null) {
+ for (int i = 0; i < aIcon.length; ++i) {
+ if (aIcon[i] != null) {
+ aIcon[i].renderXNeg(aRenderer, aBlock, aX, aY, aZ);
+ }
+ }
+ }
+
+ aRenderer.flipTexture = false;
+ }
+
+ public static void renderPositiveXFacing(IBlockAccess aWorld, RenderBlocks aRenderer, Block aBlock, int aX, int aY,
+ int aZ, ITexture[] aIcon, boolean aFullBlock) {
+ if (aWorld != null) {
+ if (aFullBlock && !aBlock.shouldSideBeRendered(aWorld, aX + 1, aY, aZ, 5)) {
+ return;
+ }
+
+ Tessellator.instance
+ .setBrightness(aBlock.getMixedBrightnessForBlock(aWorld, aFullBlock ? aX + 1 : aX, aY, aZ));
+ }
+
+ aRenderer.flipTexture = !aFullBlock;
+ if (aIcon != null) {
+ for (int i = 0; i < aIcon.length; ++i) {
+ if (aIcon[i] != null) {
+ aIcon[i].renderXPos(aRenderer, aBlock, aX, aY, aZ);
+ }
+ }
+ }
+
+ aRenderer.flipTexture = false;
+ }
+
+ public void renderInventoryBlock(Block aBlock, int aMeta, int aModelID, RenderBlocks aRenderer) {
+ aMeta += 30400;
+ if (aBlock instanceof GT_Block_Machines || aBlock instanceof GTPP_Block_Machines) {
+ if (aMeta > 0 && aMeta < GregTech_API.METATILEENTITIES.length
+ && GregTech_API.METATILEENTITIES[aMeta] != null
+ && !GregTech_API.METATILEENTITIES[aMeta].renderInInventory(aBlock, aMeta, aRenderer)) {
+ renderNormalInventoryMetaTileEntity(aBlock, aMeta, aRenderer);
+ }
+ }
+ aBlock.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
+ aRenderer.setRenderBoundsFromBlock(aBlock);
+ GL11.glTranslatef(0.5F, 0.5F, 0.5F);
+ }
+
+ public boolean renderWorldBlock(IBlockAccess aWorld, int aX, int aY, int aZ, Block aBlock, int aModelID,
+ RenderBlocks aRenderer) {
+ TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+ return aTileEntity == null
+ ? false
+ : (aTileEntity instanceof IGregTechTileEntity
+ && ((IGregTechTileEntity) aTileEntity).getMetaTileEntity() != null
+ && ((IGregTechTileEntity) aTileEntity).getMetaTileEntity().renderInWorld(aWorld, aX, aY, aZ,
+ aBlock, aRenderer)
+ ? true
+ : (aTileEntity instanceof IPipeRenderedTileEntity
+ ? renderPipeBlock(aWorld, aX, aY, aZ, aBlock,
+ (IPipeRenderedTileEntity) aTileEntity, aRenderer)
+ : renderStandardBlock(aWorld, aX, aY, aZ, aBlock, aRenderer)));
+ }
+
+ public boolean shouldRender3DInInventory(int aModel) {
+ return true;
+ }
+
+ public int getRenderId() {
+ return this.mRenderID;
+ }
+} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_TesseractGenerator.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_TesseractGenerator.java
index 8f7539f268..c97723b042 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_TesseractGenerator.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_TesseractGenerator.java
@@ -629,8 +629,7 @@ public class GT_MetaTileEntity_TesseractGenerator extends GT_MetaTileEntity_Basi
"Generates a Tesseract for the attached Inventory",
"Connect with pipes to insert items",
"Consumes "+TESSERACT_ENERGY_COST+"EU/t for same dimension transfers",
- "Consumes "+TESSERACT_ENERGY_COST_DIMENSIONAL+"EU/t for cross dimensional transfers",
- CORE.GT_Tooltip };
+ "Consumes "+TESSERACT_ENERGY_COST_DIMENSIONAL+"EU/t for cross dimensional transfers", };
}
@Override
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_TesseractTerminal.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_TesseractTerminal.java
index f5cc4a0cd5..ed8b2db41f 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_TesseractTerminal.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_TesseractTerminal.java
@@ -498,8 +498,7 @@ public class GT_MetaTileEntity_TesseractTerminal extends GT_MetaTileEntity_Basic
"Connect with pipes to extract items or fluids",
"Outputs from the back face",
"Consumes "+TESSERACT_ENERGY_COST+"EU/t for same dimension transfers",
- "Consumes "+TESSERACT_ENERGY_COST_DIMENSIONAL+"EU/t for cross dimensional transfers",
- CORE.GT_Tooltip };
+ "Consumes "+TESSERACT_ENERGY_COST_DIMENSIONAL+"EU/t for cross dimensional transfers", };
}
@Override
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_ThreadedSuperBuffer.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_ThreadedSuperBuffer.java
index faefea6bba..282268fb3d 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_ThreadedSuperBuffer.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_ThreadedSuperBuffer.java
@@ -1,6 +1,5 @@
package gtPlusPlus.xmod.gregtech.common.tileentities.automation;
-import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.xmod.gregtech.api.gui.CONTAINER_ThreadedSuperBuffer;
import gtPlusPlus.xmod.gregtech.api.gui.GUI_ThreadedSuperBuffer;
import gtPlusPlus.xmod.gregtech.common.StaticFields59;
@@ -22,7 +21,7 @@ public class GT_MetaTileEntity_ThreadedSuperBuffer extends GT_MetaTileEntity_Thr
"Buffers up to 256 Item Stacks",
"Use Screwdriver to regulate output stack size",
"Consumes 1EU per moved Item",
- CORE.GT_Tooltip});
+ });
}
public GT_MetaTileEntity_ThreadedSuperBuffer(final String aName, final int aTier, final int aInvSlotCount,
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_Boiler_Base.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_Boiler_Base.java
index 542c90d977..a0ca249aec 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_Boiler_Base.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_Boiler_Base.java
@@ -53,7 +53,7 @@ public class GT_MetaTileEntity_Boiler_Base extends GT_MetaTileEntity_Boiler {
return new String[]{
this.mDescription,
"Consumes "+(mSteamPerSecond/160)+"L of water per second",
- "Produces "+this.mPollutionPerSecond+" pollution/sec", CORE.GT_Tooltip};
+ "Produces "+this.mPollutionPerSecond+" pollution/sec",};
}
public ITexture getOverlayIcon() {
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_SemiFluidGenerator.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_SemiFluidGenerator.java
index 29c2eb963a..45a73f9e35 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_SemiFluidGenerator.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_SemiFluidGenerator.java
@@ -68,7 +68,7 @@ public class GT_MetaTileEntity_SemiFluidGenerator extends GT_MetaTileEntity_Basi
@Override
public String[] getDescription() {
- return new String[]{this.mDescription, "Produces "+(this.getPollution()*20)+" pollution/sec", "Fuel Efficiency: "+this.getEfficiency() + "%", CORE.GT_Tooltip};
+ return new String[]{this.mDescription, "Produces "+(this.getPollution()*20)+" pollution/sec", "Fuel Efficiency: "+this.getEfficiency() + "%"};
}
@Override
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntityGeothermalGenerator.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntityGeothermalGenerator.java
index 27a576da8a..5ebdbf0ef8 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntityGeothermalGenerator.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntityGeothermalGenerator.java
@@ -38,7 +38,7 @@ extends GT_MetaTileEntity_BasicGenerator
@Override
public String[] getDescription() {
- return new String[]{this.mDescription, "Generates power at " + this.getEfficiency() + "% Efficiency per tick", CORE.GT_Tooltip};
+ return new String[]{this.mDescription, "Generates power at " + this.getEfficiency() + "% Efficiency per tick"};
}
@Override
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntity_RTG.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntity_RTG.java
index 006d4b612c..f3fd95f0c1 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntity_RTG.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntity_RTG.java
@@ -173,7 +173,7 @@ public class GregtechMetaTileEntity_RTG extends GT_MetaTileEntity_BasicGenerator
"RTG changes output voltage depending on fuel",
"Generates power at " + this.getEfficiency() + "% Efficiency per tick",
"Output Voltage: "+this.getOutputTier()+" EU/t",
- CORE.GT_Tooltip};
+ };
}
public GregtechMetaTileEntity_RTG(int aID, String aName, String aNameRegional, int aTier) {
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/creative/GregtechMetaCreativeEnergyBuffer.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/creative/GregtechMetaCreativeEnergyBuffer.java
index d557cbaa7d..1ee27afbf0 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/creative/GregtechMetaCreativeEnergyBuffer.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/creative/GregtechMetaCreativeEnergyBuffer.java
@@ -9,7 +9,7 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
-
+import net.minecraft.util.EnumChatFormatting;
import gregtech.api.enums.GT_Values;
import gregtech.api.enums.Textures;
import gregtech.api.interfaces.ITexture;
@@ -48,7 +48,7 @@ public class GregtechMetaCreativeEnergyBuffer extends GregtechMetaEnergyBuffer {
@Override
public String[] getDescription() {
- return new String[] {this.mDescription, "Use Screwdriver to change voltage", CORE.GT_Tooltip};
+ return new String[] {this.mDescription, "Use Screwdriver to change voltage", EnumChatFormatting.GREEN+"CREATIVE MACHINE"};
}
/*
@@ -56,8 +56,8 @@ public class GregtechMetaCreativeEnergyBuffer extends GregtechMetaEnergyBuffer {
*/
@Override
public ITexture[][][] getTextureSet(final ITexture[] aTextures) {
- CustomIcon g = TexturesGtBlock.Casing_Material_RedSteel;
- CustomIcon h = TexturesGtBlock.Casing_Material_Grisium;
+ CustomIcon h = TexturesGtBlock.Casing_Material_RedSteel;
+ CustomIcon g = TexturesGtBlock.Casing_Material_Grisium;
CustomIcon k;
boolean j = MathUtils.isNumberEven(this.mTier);
final ITexture[][][] rTextures = new ITexture[2][17][];
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_WorldAccelerator.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_WorldAccelerator.java
index e75106382a..129446c40d 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_WorldAccelerator.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_WorldAccelerator.java
@@ -72,7 +72,7 @@ public class GT_MetaTileEntity_WorldAccelerator extends GT_MetaTileEntity_Tiered
String.format("Accelerating things (Radius: %d EU/t: %d Speed Bonus: x%d)", mTier,
getEnergyDemand(mTier, false), mAccelerateStatic[mTier]),
"Use a screwdriver to change mode", "To accelerate TileEntities, this machine has to be adjacent to it",
- "This machine accepts up to 8 Amps", "Accelerating TileEntities doubles Energy-Demand", CORE.GT_Tooltip};
+ "This machine accepts up to 8 Amps", "Accelerating TileEntities doubles Energy-Demand"};
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaAtmosphericReconditioner.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaAtmosphericReconditioner.java
index a55876ac35..022dcaaef2 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaAtmosphericReconditioner.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaAtmosphericReconditioner.java
@@ -2,19 +2,22 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.machines.basic;
import static gregtech.api.enums.GT_Values.V;
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.Materials;
import gregtech.api.enums.Textures;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.items.GT_MetaGenerated_Tool;
import gregtech.api.metatileentity.MetaTileEntity;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine;
+import gregtech.api.objects.GT_ItemStack;
import gregtech.api.objects.GT_RenderedTexture;
import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_Utility;
import gregtech.common.items.GT_MetaGenerated_Tool_01;
import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.api.objects.data.AutoMap;
import gtPlusPlus.core.item.general.ItemAirFilter;
-import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.math.MathUtils;
import gtPlusPlus.core.util.minecraft.PlayerUtils;
@@ -26,10 +29,12 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.world.World;
+import net.minecraft.world.chunk.Chunk;
public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_BasicMachine {
- protected int mPollutionReduction = 0;
+ public int mPollutionReduction = 0;
protected int mBaseEff = 2500;
protected int mOptimalAirFlow = 0;
protected boolean mHasPollution = false;
@@ -38,9 +43,6 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi
protected boolean mSaveRotor = false;
- private int mDamageFactorLow = 5;
- private float mDamageFactorHigh = (float) 0.6000000238418579;
-
public GregtechMetaAtmosphericReconditioner(int aID, String aName, String aNameRegional, int aTier) {
super(aID, aName, aNameRegional, aTier, 2, "Making sure you don't live in Gwalior - Uses 2A", 2, 0, "Recycler.png", "",
new ITexture[]{
@@ -63,22 +65,31 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi
super(aName, aTier, 2, aDescription, aTextures, 2, 0, aGUIName, aNEIName);
}*/
+ @SuppressWarnings("deprecation")
@Override
public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
return new GregtechMetaAtmosphericReconditioner(this.mName, this.mTier, this.mDescription, this.mTextures, this.mGUIName, this.mNEIName);
}
+ @SuppressWarnings("deprecation")
@Override
public String[] getDescription() {
+
+ boolean highTier = this.mTier >= 7;
+
+
return new String[]{
this.mDescription,
+ highTier ? "Will attempt to remove 1/4 pollution from 8 surrounding chunks" : "",
+ highTier ? "If these chunks are not loaded, they will be ignored" : "",
"Requires a turbine rotor and an Air Filter [T1/T2] to run.",
"The turbine rotor must be manually inserted/replaced",
- "Can be configured with a screwdriver to change modes",
+ "Can be configured with a soldering iron to change modes",
"Low Efficiency: Removes half pollution, Turbine takes 50% dmg",
"High Efficiency: Removes full pollution, Turbine takes 100% dmg",
"Turbine Rotor will not break in LE mode",
- CORE.GT_Tooltip};
+
+ };
}
@Override
@@ -97,7 +108,7 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi
@Override
public long maxAmperesIn() {
- return 4;
+ return 2;
}
@Override
@@ -129,42 +140,56 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi
//Get Current Pollution Amount.
int mCurrentPollution = getCurrentChunkPollution();
+ boolean isIdle = true;
//Get Inventory Item
ItemStack stackRotor = this.mInventory[SLOT_ROTOR];
- ItemStack stackFilter = this.mInventory[SLOT_FILTER];
-
- //Enable machine animation/graphic
- if (this.mHasPollution && mCurrentPollution > 0 && hasRotor(stackRotor) && hasAirFilter(stackFilter)){
- aBaseMetaTileEntity.setActive(true);
- }
- else if (!this.mHasPollution || mCurrentPollution <= 0 || stackRotor == null || stackFilter == null || hasRotor(stackRotor) || !hasAirFilter(stackFilter)){
- aBaseMetaTileEntity.setActive(false);
- }
+ ItemStack stackFilter = this.mInventory[SLOT_FILTER];
//Power Drain
- long drainEU = V[mTier];
+ long drainEU = maxEUInput() * maxAmperesIn();
if (aBaseMetaTileEntity.isActive() && aBaseMetaTileEntity.getStoredEU() >= drainEU){
if(aBaseMetaTileEntity.decreaseStoredEnergyUnits(drainEU, false)){
- //Utils.LOG_WARNING("Draining "+drainEU+" EU");
+ isIdle = false;
+ }
+ else {
+ aBaseMetaTileEntity.setActive(false);
+ this.sendSound((byte) -122);
}
}
else if (!aBaseMetaTileEntity.isActive() && aBaseMetaTileEntity.getStoredEU() >= drainEU/4){
if(aBaseMetaTileEntity.decreaseStoredEnergyUnits((drainEU/4), false)){
- //Utils.LOG_WARNING("Draining "+(drainEU/4)+" EU");
+ isIdle = false;
+ }
+ else {
+ aBaseMetaTileEntity.setActive(false);
+ this.sendSound((byte) -122);
}
}
else {
aBaseMetaTileEntity.setActive(false);
- }
-
-
+ this.sendSound((byte) -122);
+ }
+
//Only try once/sec.
- if (aTick % 20L == 0L){
-
+ if (!isIdle && aTick % 20L == 0L){
+
//Check if machine can work.
if ((aBaseMetaTileEntity.isAllowedToWork())){
+ //Enable machine animation/graphic
+ if (hasRotor(stackRotor) && hasAirFilter(stackFilter) && this.mHasPollution){
+ if (!this.getBaseMetaTileEntity().isActive()) {
+ aBaseMetaTileEntity.setActive(true);
+ }
+ }
+ else if (!this.mHasPollution || mCurrentPollution <= 0 || stackRotor == null || stackFilter == null || !hasRotor(stackRotor) || !hasAirFilter(stackFilter)){
+ if (!this.getBaseMetaTileEntity().isActive()) {
+ aBaseMetaTileEntity.setActive(false);
+ this.sendSound((byte) -122);
+ }
+ }
+
//If Active.
if (aBaseMetaTileEntity.isActive()){
@@ -187,31 +212,35 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi
Logger.WARNING("mOptimalAirFlow[1]:"+mOptimalAirFlow);
//Calculate The Voltage we are running
- long tVoltage = maxEUInput();
+ long tVoltage = drainEU;
byte tTier = (byte) Math.max(1, GT_Utility.getTier(tVoltage));
//Check Sides for Air,
//More air means more pollution processing.
int mAirSides = getFreeSpaces();
+ int reduction = 0;
+
//If no sides are free, how will you process the atmosphere?
if (mAirSides > 0){
- mPollutionReduction += (((mTier*2)*100)*mAirSides); //Was originally *100
- Logger.WARNING("mPollutionReduction[1]:"+mPollutionReduction);
+ reduction += (((Math.max((tTier-2), 1)*2)*50)*mAirSides); //Was originally *100
+ Logger.WARNING("mPollutionReduction[1]:"+reduction);
//I stole this code
- mPollutionReduction = (MathUtils.safeInt((long)mPollutionReduction*this.mBaseEff)/100000)*mAirSides*tTier;
- //Utils.LOG_WARNING("mPollutionReduction[2]:"+mPollutionReduction);
- //mPollutionReduction = GT_Utility.safeInt((long)mPollutionReduction*this.mOptimalAirFlow/10000);
- //Utils.LOG_WARNING("mPollutionReduction[3]:"+mPollutionReduction);
+ reduction = (MathUtils.safeInt((long)reduction*this.mBaseEff)/100000)*mAirSides*Math.max((tTier-2), 1);
+ Logger.WARNING("reduction[2]:"+reduction);
+ reduction = GT_Utility.safeInt(((long)reduction/100)*this.mOptimalAirFlow);
+ Logger.WARNING("reduction[3]:"+reduction);
+ mPollutionReduction = reduction;
+
//Set a temp to remove variable to aleviate duplicate code.
int toRemove = 0;
Logger.WARNING("mCurrentPollution[4]:"+mCurrentPollution);
- if (mPollutionReduction <= mCurrentPollution){
+ if (reduction <= mCurrentPollution){
//Clean some Air.
- toRemove = mPollutionReduction;
+ toRemove = reduction;
}
else {
//Makes sure we don't get negative pollution.
@@ -236,22 +265,78 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi
//Utils.LOG_WARNING("Wrong Tool metaitem Found.");
}
}
- }
+ }
+ else if (!aBaseMetaTileEntity.isActive()) {
+ return;
+ }
} //End of can work block.
else { //Disable Machine.
//aBaseMetaTileEntity.setActive(false);
}
} //End of 1/sec action block.
+ else {
+
+ if (hasRotor(stackRotor) && hasAirFilter(stackFilter) && this.mHasPollution && !isIdle && aBaseMetaTileEntity.isAllowedToWork()){
+ aBaseMetaTileEntity.setActive(true);
+ }
+ else if (isIdle || !this.mHasPollution || mCurrentPollution <= 0 || stackRotor == null || stackFilter == null || !hasRotor(stackRotor) || !hasAirFilter(stackFilter)){
+ aBaseMetaTileEntity.setActive(false);
+ }
+
+ }
+ if (this.getBaseMetaTileEntity().isActive()) {
+ if (MathUtils.randInt(0, 5) <= 2) {
+ this.sendSound((byte) -120);
+ }
+ }
+
} //End of is serverside block.
}
public int getCurrentChunkPollution(){
- return getCurrentChunkPollution(this.getBaseMetaTileEntity());
+ int mCurrentChunkPollution = 0;
+ if (this.mTier < 7) {
+ mCurrentChunkPollution = PollutionUtils.getPollution(getBaseMetaTileEntity());
+ }
+ else {
+ AutoMap<Chunk> aSurrounding = new AutoMap<Chunk>();
+ World aWorld = this.getBaseMetaTileEntity().getWorld();
+ int xPos = this.getBaseMetaTileEntity().getXCoord();
+ int zPos = this.getBaseMetaTileEntity().getZCoord();
+ Chunk a1 = aWorld.getChunkFromBlockCoords(xPos-32, zPos-32);
+ Chunk a2 = aWorld.getChunkFromBlockCoords(xPos-32, zPos);
+ Chunk a3 = aWorld.getChunkFromBlockCoords(xPos-32, zPos+32);
+ Chunk b1 = aWorld.getChunkFromBlockCoords(xPos, zPos-32);
+ Chunk b2 = aWorld.getChunkFromBlockCoords(xPos, zPos);
+ Chunk b3 = aWorld.getChunkFromBlockCoords(xPos, zPos+32);
+ Chunk c1 = aWorld.getChunkFromBlockCoords(xPos+32, zPos-32);
+ Chunk c2 = aWorld.getChunkFromBlockCoords(xPos+32, zPos);
+ Chunk c3 = aWorld.getChunkFromBlockCoords(xPos+32, zPos+32);
+ aSurrounding.put(a1);
+ aSurrounding.put(a2);
+ aSurrounding.put(a3);
+ aSurrounding.put(b1);
+ aSurrounding.put(b2);
+ aSurrounding.put(b3);
+ aSurrounding.put(c1);
+ aSurrounding.put(c2);
+ aSurrounding.put(c3);
+ for (Chunk r : aSurrounding) {
+ mCurrentChunkPollution += getPollutionInChunk(r);
+ }
+ }
+ if (mCurrentChunkPollution > 0){
+ mHasPollution = true;
+ }
+ else {
+ mHasPollution = false;
+ }
+ return mCurrentChunkPollution;
}
- public int getCurrentChunkPollution(IGregTechTileEntity aBaseMetaTileEntity){
- int mCurrentChunkPollution = PollutionUtils.getPollution(aBaseMetaTileEntity);
+ public int getPollutionInChunk(Chunk aChunk){
+ int mCurrentChunkPollution = PollutionUtils.getPollution(aChunk);
if (mCurrentChunkPollution > 0){
mHasPollution = true;
}
@@ -260,7 +345,7 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi
}
return mCurrentChunkPollution;
}
-
+
public boolean hasRotor(ItemStack rotorStack){
if(rotorStack != null){
if (rotorStack.getItem() instanceof GT_MetaGenerated_Tool && rotorStack.getItemDamage() >= 170 && rotorStack.getItemDamage() <= 179){
@@ -272,6 +357,22 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi
public boolean damageTurbineRotor(){
try{
+
+ boolean creativeRotor = false;
+ ItemStack rotorStack = this.mInventory[SLOT_ROTOR];
+ if (rotorStack == null) {
+ return false;
+ }
+ else {
+ if(rotorStack.getItem() instanceof GT_MetaGenerated_Tool_01) {
+ Materials t1 = GT_MetaGenerated_Tool.getPrimaryMaterial(rotorStack);
+ Materials t2 = GT_MetaGenerated_Tool.getSecondaryMaterial(rotorStack);
+ if (t1 == Materials._NULL && t2 == Materials._NULL){
+ creativeRotor = true;
+ }
+ }
+ }
+
if(mInventory[SLOT_ROTOR].getItem() instanceof GT_MetaGenerated_Tool_01 &&
((GT_MetaGenerated_Tool) mInventory[SLOT_ROTOR].getItem()).getToolStats(mInventory[SLOT_ROTOR]).getSpeedMultiplier()>0 &&
GT_MetaGenerated_Tool.getPrimaryMaterial(mInventory[SLOT_ROTOR]).mToolSpeed>0 ) {
@@ -280,16 +381,16 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi
double fDam = Math.floor(Math.abs(MathUtils.randFloat(1f, 2f) - MathUtils.randFloat(1f, 2f)) * (1f + 2f - 1f) + 1f);
damageValue -= fDam;
- //Logger.INFO("Trying to do "+damageValue+" damage to the rotor. ["+fDam+"]");
+ //Logger.WARNING("Trying to do "+damageValue+" damage to the rotor. ["+fDam+"]");
/*Materials M1 = GT_MetaGenerated_Tool.getPrimaryMaterial(this.mInventory[this.SLOT_ROTOR]);
Materials M2 = GT_MetaGenerated_Tool.getSecondaryMaterial(this.mInventory[this.SLOT_ROTOR]);
- Logger.INFO("Trying to do "+damageValue+" damage to the rotor. [2]");*/
+ Logger.WARNING("Trying to do "+damageValue+" damage to the rotor. [2]");*/
//Damage Rotor
//int rotorDurability = this.mInventory[this.SLOT_ROTOR].getItemDamage();
- long rotorDamage = GT_MetaGenerated_Tool.getToolDamage(this.mInventory[this.SLOT_ROTOR]);
- long rotorDurabilityMax = GT_MetaGenerated_Tool.getToolMaxDamage(this.mInventory[this.SLOT_ROTOR]);
+ long rotorDamage = creativeRotor ? 0 : GT_MetaGenerated_Tool.getToolDamage(this.mInventory[this.SLOT_ROTOR]);
+ long rotorDurabilityMax = creativeRotor ? Integer.MAX_VALUE : GT_MetaGenerated_Tool.getToolMaxDamage(this.mInventory[this.SLOT_ROTOR]);
long rotorDurability = (rotorDurabilityMax - rotorDamage);
Logger.WARNING("Rotor Damage: "+rotorDamage + " | Max Durability: "+rotorDurabilityMax+" | "+" Remaining Durability: "+rotorDurability);
if (rotorDurability >= damageValue){
@@ -297,6 +398,8 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi
if (!mSaveRotor){
Logger.WARNING("Damaging Rotor.");
+
+ if (!creativeRotor)
GT_ModHandler.damageOrDechargeItem(this.mInventory[this.SLOT_ROTOR], (int) damageValue, 0, null);
long tempDur = GT_MetaGenerated_Tool.getToolDamage(this.mInventory[this.SLOT_ROTOR]);
@@ -310,6 +413,7 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi
else {
Logger.WARNING("Damaging Rotor.");
if (rotorDurability > 1000){
+ if (!creativeRotor)
GT_ModHandler.damageOrDechargeItem(this.mInventory[this.SLOT_ROTOR], (int) damageValue/2, 0, null);
long tempDur = GT_MetaGenerated_Tool.getToolDamage(this.mInventory[this.SLOT_ROTOR]);
if (tempDur < rotorDurabilityMax){
@@ -324,7 +428,7 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi
}
- if (rotorDurability <= 0 && !mSaveRotor) {
+ if (rotorDurability <= 0 && !mSaveRotor && !creativeRotor) {
Logger.WARNING("Destroying Rotor.");
this.mInventory[this.SLOT_ROTOR] = null;
return false;
@@ -372,14 +476,92 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi
}
public boolean removePollution(int toRemove){
+
+ if (this == null || this.getBaseMetaTileEntity() == null || this.getBaseMetaTileEntity().getWorld() == null) {
+ return false;
+ }
+
+ if (this.mTier < 7) {
+ int startPollution = getCurrentChunkPollution();
+ PollutionUtils.removePollution(this.getBaseMetaTileEntity(), toRemove);
+ int after = getCurrentChunkPollution();
+ return (after<startPollution);
+ }
+ else {
+ int chunksWithRemoval = 0;
+ int totalRemoved = 0;
+ AutoMap<Chunk> aSurrounding = new AutoMap<Chunk>();
+ Chunk aThisChunk = this.getBaseMetaTileEntity().getWorld().getChunkFromBlockCoords(this.getBaseMetaTileEntity().getXCoord(), this.getBaseMetaTileEntity().getZCoord());
+ int mainChunkX = aThisChunk.xPosition;
+ int mainChunkZ = aThisChunk.zPosition;
+
+ World aWorld = this.getBaseMetaTileEntity().getWorld();
+ int xPos = this.getBaseMetaTileEntity().getXCoord();
+ int zPos = this.getBaseMetaTileEntity().getZCoord();
+
+ Chunk a1 = aWorld.getChunkFromBlockCoords(xPos-32, zPos-32);
+ Chunk a2 = aWorld.getChunkFromBlockCoords(xPos-32, zPos);
+ Chunk a3 = aWorld.getChunkFromBlockCoords(xPos-32, zPos+32);
+ Chunk b1 = aWorld.getChunkFromBlockCoords(xPos, zPos-32);
+ Chunk b2 = aWorld.getChunkFromBlockCoords(xPos, zPos);
+ Chunk b3 = aWorld.getChunkFromBlockCoords(xPos, zPos+32);
+ Chunk c1 = aWorld.getChunkFromBlockCoords(xPos+32, zPos-32);
+ Chunk c2 = aWorld.getChunkFromBlockCoords(xPos+32, zPos);
+ Chunk c3 = aWorld.getChunkFromBlockCoords(xPos+32, zPos+32);
+
+ aSurrounding.put(a1);
+ aSurrounding.put(a2);
+ aSurrounding.put(a3);
+ aSurrounding.put(b1);
+ aSurrounding.put(b2);
+ aSurrounding.put(b3);
+ aSurrounding.put(c1);
+ aSurrounding.put(c2);
+ aSurrounding.put(c3);
+
+ for (Chunk r : aSurrounding) {
+ if (!r.isChunkLoaded) {
+ continue;
+ }
+
+ int startPollution = getPollutionInChunk(r);
+ if (startPollution == 0) {
+ continue;
+ }
+
+ Logger.WARNING("Trying to remove pollution from chunk "+r.xPosition+", "+r.zPosition+" | "+startPollution);
+ int after = 0;
+ boolean isMainChunk = r.isAtLocation(mainChunkX, mainChunkZ);
+
+ int removal = Math.max(0, !isMainChunk ? (toRemove/4) : toRemove);
+ if (removePollution(r, removal)) {
+ chunksWithRemoval++;
+ after = getPollutionInChunk(r);
+ }
+ else {
+ after = 0;
+ }
+ if (startPollution - after > 0) {
+ totalRemoved += (startPollution - after);
+ }
+ Logger.WARNING("Removed "+(startPollution - after)+" pollution from chunk "+r.xPosition+", "+r.zPosition+" | "+after);
+ }
+ return totalRemoved > 0 && chunksWithRemoval > 0;
+ }
+ }
+
+ public boolean removePollution(Chunk aChunk, int toRemove){
int before = getCurrentChunkPollution();
- PollutionUtils.addPollution(this.getBaseMetaTileEntity(), -toRemove);
+ PollutionUtils.removePollution(aChunk, toRemove);
int after = getCurrentChunkPollution();
return (after<before);
}
public boolean hasAirFilter(ItemStack filter){
+ if (filter == null) {
+ return false;
+ }
if (filter.getItem() instanceof ItemAirFilter){
return true;
}
@@ -388,6 +570,26 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi
public boolean damageAirFilter(){
ItemStack filter = this.mInventory[this.SLOT_FILTER];
+ if (filter == null) {
+ return false;
+ }
+
+ boolean creativeRotor = false;
+ ItemStack rotorStack = this.mInventory[SLOT_ROTOR];
+ if (rotorStack != null) {
+ if(rotorStack.getItem() instanceof GT_MetaGenerated_Tool_01) {
+ Materials t1 = GT_MetaGenerated_Tool.getPrimaryMaterial(rotorStack);
+ Materials t2 = GT_MetaGenerated_Tool.getSecondaryMaterial(rotorStack);
+ if (t1 == Materials._NULL && t2 == Materials._NULL){
+ creativeRotor = true;
+ }
+ }
+ }
+
+ if (creativeRotor) {
+ return true;
+ }
+
if (filter.getItem() instanceof ItemAirFilter){
@@ -398,7 +600,7 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi
this.mInventory[this.SLOT_FILTER] = null;
return false;
}
- else if (filter.getItemDamage() == 1 && currentUse >= 150-1){
+ else if (filter.getItemDamage() == 1 && currentUse >= 2500-1){
this.mInventory[this.SLOT_FILTER] = null;
return false;
}
@@ -432,7 +634,13 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi
}
@Override
- public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
+ public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
+ super.onScrewdriverRightClick(aSide, aPlayer, aX, aY, aZ);
+ }
+
+ @Override
+ public boolean onSolderingToolRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY,
+ float aZ) {
this.mSaveRotor = Utils.invertBoolean(mSaveRotor);
if (mSaveRotor){
PlayerUtils.messagePlayer(aPlayer, "Running in low efficiency mode, rotors will not break.");
@@ -440,8 +648,76 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi
else {
PlayerUtils.messagePlayer(aPlayer, "Running in high efficiency mode, rotors will break.");
}
+ return true;
+ }
+
+ @Override
+ public void doSound(byte aIndex, double aX, double aY, double aZ) {
+ if (aIndex == -120) {
+ GT_Utility.doSoundAtClient((String) GregTech_API.sSoundList.get(Integer.valueOf(103)), MathUtils.randInt(5, 50), 0.05F, aX, aY, aZ);
+ } else if (aIndex == -121 || aIndex == -122) {
+ //GT_Utility.doSoundAtClient((String) GregTech_API.sSoundList.get(Integer.valueOf(108)), 0, 0.5F, aX, aY, aZ);
+ } /*else if (aIndex == -122) {
+ GT_Utility.doSoundAtClient((String) GregTech_API.sSoundList.get(Integer.valueOf(6)), 100, 1.0F, aX, aY, aZ);
+ }*/ else {
+ super.doSound((byte) 0, aX, aY, aZ);
+ }
+ }
+
+ @Override
+ public boolean canHaveInsufficientEnergy() {
+ // TODO Auto-generated method stub
+ return super.canHaveInsufficientEnergy();
+ }
+
+ @Override
+ public String[] getInfoData() {
+ AutoMap<String> aTooltipSuper = new AutoMap<String>();
+ for (String s : super.getInfoData()) {
+ aTooltipSuper.put(s);
+ }
+ int mAirSides = getFreeSpaces();
+ int reduction = 0;
- super.onScrewdriverRightClick(aSide, aPlayer, aX, aY, aZ);
+ try {
+ long tVoltage = maxEUInput();
+ byte tTier = (byte) Math.max(1, GT_Utility.getTier(tVoltage));
+ reduction += (((Math.max((tTier-2), 1)*2)*50)*mAirSides);
+ reduction = (MathUtils.safeInt((long)reduction*this.mBaseEff)/100000)*mAirSides*Math.max((tTier-2), 1);
+ reduction = GT_Utility.safeInt(((long)reduction/100)*this.mOptimalAirFlow);
+
+ aTooltipSuper.put("Maximum pollution removed per second: "+reduction);
+ }
+ catch (Throwable t) {
+ aTooltipSuper.put("Maximum pollution removed per second: "+mPollutionReduction);
+ }
+ aTooltipSuper.put("Air Sides: "+mAirSides);
+ return aTooltipSuper.toArray();
+ }
+
+ @Override
+ public boolean isGivingInformation() {
+ return true;
+ }
+
+ @Override
+ public boolean allowCoverOnSide(byte aSide, GT_ItemStack aCoverID) {
+ if (aSide <= 1) {
+ return false;
+ }
+ return super.allowCoverOnSide(aSide, aCoverID);
+ }
+
+ @Override
+ public ITexture[] getTopFacingInactive(byte aColor) {
+ return super.getTopFacingInactive(aColor);
+ }
+
+ @Override
+ public void setItemNBT(NBTTagCompound aNBT) {
+ aNBT.setInteger("mOptimalAirFlow", this.mOptimalAirFlow);
+ aNBT.setBoolean("mSaveRotor", mSaveRotor);
+ super.setItemNBT(aNBT);
}
} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaCondensor.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaCondensor.java
index 3e94cef7bb..9c246ba913 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaCondensor.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaCondensor.java
@@ -34,7 +34,7 @@ public class GregtechMetaCondensor extends GregtechMetaBoilerBase{
@Override
public String[] getDescription() {
- return new String[]{this.mDescription, "IC2 Steam + Water = Normal Steam.", "Requires no power to run, although it's not very fast.", CORE.GT_Tooltip};
+ return new String[]{this.mDescription, "IC2 Steam + Water = Normal Steam.", "Requires no power to run, although it's not very fast.", };
}
@Override
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaPollutionCreator.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaPollutionCreator.java
index 82565bb1d9..c7f63e3bc2 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaPollutionCreator.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaPollutionCreator.java
@@ -39,7 +39,7 @@ public class GregtechMetaPollutionCreator extends GregtechMetaTileEntity {
@Override
public String[] getDescription() {
- return new String[] {this.mDescription, "A useful debug machine to create pollution.", CORE.GT_Tooltip};
+ return new String[] {this.mDescription, "A useful debug machine to create pollution."};
}
@Override
@@ -117,7 +117,7 @@ public class GregtechMetaPollutionCreator extends GregtechMetaTileEntity {
@Override
public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
- if (pollutionMultiplier >= 9){
+ if (pollutionMultiplier > 99){
pollutionMultiplier = 1;
}
else {
@@ -354,27 +354,9 @@ public class GregtechMetaPollutionCreator extends GregtechMetaTileEntity {
super.onPostTick(aBaseMetaTileEntity, aTick);
if (this.getBaseMetaTileEntity().isServerSide()) {
//TickTimer - 20 times a second
- if (this.mTickTimer >= 0 || this.mTickTimer <= 19){
- this.mTickTimer++;
- }
- else {
- this.mTickTimer = 0;
- //Perform pollution update once a second
+ this.mTickTimer++;
+ if (mTickTimer % 20 == 0){
this.mCurrentPollution = getCurrentChunkPollution();
- this.mSecondTimer++;
- }
- //Update Pollution array once a minute
- if (this.mSecondTimer >= 60){
- Utils.sendServerMessage("Udating Average of pollution array. Using Array slot"+this.mArrayPos);
- this.mSecondTimer = 0;
- if (this.mArrayPos<this.mAveragePollutionArray.length){
- this.mAveragePollutionArray[this.mArrayPos] = this.mCurrentPollution;
- this.mArrayPos++;
- }
- else if (this.mArrayPos==this.mAveragePollutionArray.length){
- this.mAveragePollutionArray[this.mArrayPos] = this.mCurrentPollution;
- this.mArrayPos = 0;
- }
}
}
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaPollutionDetector.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaPollutionDetector.java
index ee2ea1da55..2f9bbcc9fb 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaPollutionDetector.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaPollutionDetector.java
@@ -43,7 +43,7 @@ public class GregtechMetaPollutionDetector extends GregtechMetaTileEntity {
public String[] getDescription() {
return new String[] {this.mDescription, "Right click to check pollution levels.",
"Configure with screwdriver to set redstone output amount.",
- "Does not use power.", CORE.GT_Tooltip};
+ "Does not use power."};
}
@Override
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntityThaumcraftResearcher.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntityThaumcraftResearcher.java
index b7c31e8514..8456f40797 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntityThaumcraftResearcher.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntityThaumcraftResearcher.java
@@ -25,7 +25,7 @@ public class GregtechMetaTileEntityThaumcraftResearcher extends GregtechMetaTile
@Override
public String[] getDescription() {
- return new String[] {this.mDescription, "Generates Thaumcraft research notes, because it's magic.", CORE.GT_Tooltip};
+ return new String[] {this.mDescription, "Generates Thaumcraft research notes, because it's magic."};
}
@Override
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_BasicWasher.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_BasicWasher.java
index 0786d46fc4..81f594bc7e 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_BasicWasher.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_BasicWasher.java
@@ -42,7 +42,7 @@ public class GregtechMetaTileEntity_BasicWasher extends GT_MetaTileEntity_BasicM
@Override
public String[] getDescription() {
- return new String[]{this.mDescription, "Grants no byproducts, but it is fast.", CORE.GT_Tooltip};
+ return new String[]{this.mDescription, "Grants no byproducts, but it is fast.", };
}
@Override
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_CompactFusionReactor.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_CompactFusionReactor.java
index faeaf1d605..b4e819a459 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_CompactFusionReactor.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_CompactFusionReactor.java
@@ -55,7 +55,7 @@ public class GregtechMetaTileEntity_CompactFusionReactor extends GT_MetaTileEnti
public String[] getDescription() {
return new String[] { this.mDescription, "Not Very Fast, but not very big either.",
"Each side pair in/out puts to different slots.", "Top & Bottom Sides are Outputs.",
- "Front & Back are Input Plasma 1.", "Sides are Input Plasma 2.", CORE.GT_Tooltip };
+ "Front & Back are Input Plasma 1.", "Sides are Input Plasma 2." };
}
@Override
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_PocketFusion.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_PocketFusion.java
index 7ccee3f4b4..5a0f888ddb 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_PocketFusion.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_PocketFusion.java
@@ -55,7 +55,7 @@ public class GregtechMetaTileEntity_PocketFusion extends GT_MetaTileEntity_Delux
public String[] getDescription() {
return new String[] { this.mDescription, "Not Very Fast, but not very big either.",
"Each side pair in/out puts to different slots.", "Top & Bottom Sides are Outputs.",
- "Front & Back are Input Plasma 1.", "Sides are Input Plasma 2.", CORE.GT_Tooltip };
+ "Front & Back are Input Plasma 1.", "Sides are Input Plasma 2." };
}
@Override
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaWirelessCharger.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaWirelessCharger.java
index 96192c5128..25c14a68e7 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaWirelessCharger.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaWirelessCharger.java
@@ -49,7 +49,7 @@ public class GregtechMetaWirelessCharger extends GregtechMetaTileEntity {
"Mixed: Provides both 2A of long range and 1A per player locally.",
"Mixed mode is more conservative of power and as a result only",
"Gets half the distances each singular mode gets.",
- CORE.GT_Tooltip};
+ };
}
public int getTier(){
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IronBlastFurnace.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IronBlastFurnace.java
index 98057836ec..5d6904bd46 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IronBlastFurnace.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IronBlastFurnace.java
@@ -54,7 +54,7 @@ extends MetaTileEntity {
"Multiblock: 3x3x5 hollow with opening on top",
"Same shape as Bronze/Bricked blast furnace, except one ring of 8 taller.",
"40 Iron Plated Bricks required",
- CORE.GT_Tooltip};
+ };
}
else {
return new String[]{"Sloooowly, Skip the Bronze age, Get some Steel!",
@@ -67,7 +67,7 @@ extends MetaTileEntity {
"as Iron is. This machine takes 5x longer than the bronze",
"blast furnace as a result.",
"----",
- CORE.GT_Tooltip};
+ };
}
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_EBF.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_EBF.java
index 3bfac81837..7fdabceebb 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_EBF.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_EBF.java
@@ -174,10 +174,10 @@ public class GregtechMetaTileEntity_Adv_EBF extends GregtechMeta_MultiBlockBase
if (!aBaseMetaTileEntity.getAirOffset(xDir, 2, zDir)) {
return false;
}
- if (!addMufflerToMachineList(aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir, 3, zDir),
+ /*if (!addMufflerToMachineList(aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir, 3, zDir),
CASING_TEXTURE_ID)) {
return false;
- }
+ }*/
byte tUsedMeta = aBaseMetaTileEntity.getMetaIDOffset(xDir + 1, 2, zDir);
if (!CORE.GTNH) {
@@ -203,7 +203,7 @@ public class GregtechMetaTileEntity_Adv_EBF extends GregtechMeta_MultiBlockBase
case 6:
this.mHeatingCapacity = 9001;
break;
- default:
+ default:Logger.INFO("Heating Coils are bad.");
return false;
}
} else {
@@ -236,31 +236,33 @@ public class GregtechMetaTileEntity_Adv_EBF extends GregtechMeta_MultiBlockBase
this.mHeatingCapacity = 15001;
break;
default:
+ Logger.INFO("Heating Coils are bad.");
return false;
}
}
for (int i = -1; i < 2; i++) {
for (int j = -1; j < 2; j++) {
- if ((i != 0) || (j != 0)) {
- if (aBaseMetaTileEntity.getBlockOffset(xDir + i, 2, zDir + j) != StaticFields59
- .getBlockCasings5()) {
+ if ((i != 0) || (j != 0)) {
+ //Coils 1
+ if (!isValidBlockForStructure(null, CASING_TEXTURE_ID, false, aBaseMetaTileEntity.getBlockOffset(xDir + i, 1, zDir + j), (int) aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 1, zDir + j), StaticFields59.getBlockCasings5(), tUsedMeta)) {
+ Logger.INFO("Heating Coils missing.");
return false;
}
- if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 2, zDir + j) != tUsedMeta) {
+
+ //Coils 2
+ if (!isValidBlockForStructure(null, CASING_TEXTURE_ID, false, aBaseMetaTileEntity.getBlockOffset(xDir + i, 2, zDir + j), (int) aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 2, zDir + j), StaticFields59.getBlockCasings5(), tUsedMeta)) {
+ Logger.INFO("Heating Coils missing.");
return false;
- }
- if (aBaseMetaTileEntity.getBlockOffset(xDir + i, 1, zDir + j) != StaticFields59
- .getBlockCasings5()) {
+ }
+
+ //Top Layer
+ final IGregTechTileEntity tTileEntity2 = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, 3, zDir + j);
+ if (!isValidBlockForStructure(tTileEntity2, CASING_TEXTURE_ID, true, aBaseMetaTileEntity.getBlockOffset(xDir + i, 3, zDir + j), (int) aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 3, zDir + j), ModBlocks.blockCasings3Misc, 11)) {
+ Logger.INFO("Top Layer missing.");
return false;
}
- if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 1, zDir + j) != tUsedMeta) {
- return false;
- }
- if (!isValidBlockForStructure(aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, 3, zDir + j), CASING_TEXTURE_ID, true, aBaseMetaTileEntity.getBlockOffset(xDir + i, 0, zDir + j), (int) aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 0, zDir + j), ModBlocks.blockCasings3Misc, 11)) {
- Logger.INFO("Matter Fabricator Casings Missing from one of the top layers inner 3x3.");
- return false;
- }
+
}
}
}
@@ -269,9 +271,9 @@ public class GregtechMetaTileEntity_Adv_EBF extends GregtechMeta_MultiBlockBase
if ((xDir + i != 0) || (zDir + j != 0)) {
IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, 0,zDir + j);
if (!isValidBlockForStructure(tTileEntity, CASING_TEXTURE_ID, true, aBaseMetaTileEntity.getBlockOffset(xDir + i, 0, zDir + j), (int) aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 0, zDir + j), ModBlocks.blockCasings3Misc, 11)) {
- Logger.INFO("Matter Fabricator Casings Missing from one of the top layers inner 3x3.");
+ Logger.INFO("Bottom Layer missing.");
return false;
- }
+ }
}
}
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_Fusion_MK4.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_Fusion_MK4.java
index c7b4f166b4..aad16d3a56 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_Fusion_MK4.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_Fusion_MK4.java
@@ -86,7 +86,7 @@ public class GregtechMetaTileEntity_Adv_Fusion_MK4 extends GT_MetaTileEntity_Fus
"1-16 Output Hatches",
"1-16 Energy Hatches",
"All Hatches must be "+aTierName+" or better",
- CORE.GT_Tooltip};
+ };
//"32768 EU/t and 80mio EU Cap per Energy Hatch"
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_AlloyBlastSmelter.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_AlloyBlastSmelter.java
index e351d6e988..c424172241 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_AlloyBlastSmelter.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_AlloyBlastSmelter.java
@@ -248,9 +248,9 @@ extends GregtechMeta_MultiBlockBase {
}
//Top Layer
- final IGregTechTileEntity tTileEntity2 = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, 2, zDir + j);
- if (!isValidBlockForStructure(tTileEntity2, TAE.GTPP_INDEX(15), false, aBaseMetaTileEntity.getBlockOffset(xDir + i, 3, zDir + j), (int) aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 3, zDir + j), ModBlocks.blockCasingsMisc, 15)) {
- Logger.INFO("Heating Coils missing.");
+ final IGregTechTileEntity tTileEntity2 = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, 3, zDir + j);
+ if (!isValidBlockForStructure(tTileEntity2, TAE.GTPP_INDEX(15), true, aBaseMetaTileEntity.getBlockOffset(xDir + i, 3, zDir + j), (int) aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 3, zDir + j), ModBlocks.blockCasingsMisc, 15)) {
+ Logger.INFO("Top Layer missing.");
return false;
}
}
@@ -260,9 +260,9 @@ extends GregtechMeta_MultiBlockBase {
for (int j = -1; j < 2; j++) {
if (((xDir + i) != 0) || ((zDir + j) != 0)) {
//Bottom Layer
- final IGregTechTileEntity tTileEntity2 = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, 2, zDir + j);
- if (!isValidBlockForStructure(tTileEntity2, TAE.GTPP_INDEX(15), false, aBaseMetaTileEntity.getBlockOffset(xDir + i, 0, zDir + j), (int) aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 0, zDir + j), ModBlocks.blockCasingsMisc, 15)) {
- Logger.INFO("Heating Coils missing.");
+ final IGregTechTileEntity tTileEntity2 = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, 0, zDir + j);
+ if (!isValidBlockForStructure(tTileEntity2, TAE.GTPP_INDEX(15), true, aBaseMetaTileEntity.getBlockOffset(xDir + i, 0, zDir + j), (int) aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 0, zDir + j), ModBlocks.blockCasingsMisc, 15)) {
+ Logger.INFO("Bottom Layer missing.");
return false;
}
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Cyclotron.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Cyclotron.java
index 25e838e57a..1623e7cb54 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Cyclotron.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Cyclotron.java
@@ -16,6 +16,7 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Maintenance;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Muffler;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_OutputBus;
import gregtech.api.objects.GT_ItemStack;
import gregtech.api.objects.GT_RenderedTexture;
import gregtech.api.util.GT_Recipe;
@@ -24,6 +25,10 @@ import gregtech.api.util.Recipe_GT;
import gregtech.common.gui.GT_GUIContainer_FusionReactor;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.block.ModBlocks;
+import gtPlusPlus.core.item.chemistry.IonParticles;
+import gtPlusPlus.core.util.math.MathUtils;
+import gtPlusPlus.core.util.minecraft.gregtech.PollutionUtils;
+import gtPlusPlus.xmod.gregtech.api.gui.CONTAINER_Cyclotron;
import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase;
import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock;
import net.minecraft.block.Block;
@@ -35,7 +40,7 @@ import net.minecraftforge.fluids.FluidStack;
public class GregtechMetaTileEntity_Cyclotron extends GregtechMeta_MultiBlockBase {
- public int mEUStore;
+ public long mEUStore;
public GregtechMetaTileEntity_Cyclotron(int aID, String aName, String aNameRegional, int tier) {
super(aID, aName, aNameRegional);
@@ -71,7 +76,7 @@ public class GregtechMetaTileEntity_Cyclotron extends GregtechMeta_MultiBlockBas
@Override
public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
- return new GT_Container_MultiMachine(aPlayerInventory, aBaseMetaTileEntity);
+ return new CONTAINER_Cyclotron(aPlayerInventory, aBaseMetaTileEntity);
}
@Override
@@ -92,17 +97,19 @@ public class GregtechMetaTileEntity_Cyclotron extends GregtechMeta_MultiBlockBas
@Override
public void saveNBTData(NBTTagCompound aNBT) {
+ aNBT.setLong("mEUStore", mEUStore);
super.saveNBTData(aNBT);
}
@Override
public void loadNBTData(NBTTagCompound aNBT) {
+ mEUStore = aNBT.getLong("mEUStore");
super.loadNBTData(aNBT);
}
@Override
public boolean checkMultiblock(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) {
- Logger.INFO("Checking form of Cyclotron.");
+ log("Checking form of Cyclotron.");
int xCenter = getBaseMetaTileEntity().getXCoord() + ForgeDirection.getOrientation(getBaseMetaTileEntity().getFrontFacing()).offsetX * 5;
int yCenter = getBaseMetaTileEntity().getYCoord();
int zCenter = getBaseMetaTileEntity().getZCoord() + ForgeDirection.getOrientation(getBaseMetaTileEntity().getFrontFacing()).offsetZ * 5;
@@ -111,56 +118,56 @@ public class GregtechMetaTileEntity_Cyclotron extends GregtechMeta_MultiBlockBas
&& ((isAdvancedMachineCasing(xCenter, yCenter, zCenter + 5)) || (zCenter + 5 == getBaseMetaTileEntity().getZCoord()))
&& ((isAdvancedMachineCasing(xCenter, yCenter, zCenter - 5)) || (zCenter - 5 == getBaseMetaTileEntity().getZCoord())) && (checkCoils(xCenter, yCenter, zCenter))
&& (checkHulls(xCenter, yCenter, zCenter)) && (checkUpperOrLowerHulls(xCenter, yCenter + 1, zCenter)) && (checkUpperOrLowerHulls(xCenter, yCenter - 1, zCenter))
- && (addIfEnergyInjector(xCenter + 4, yCenter, zCenter + 3, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter + 4, yCenter, zCenter - 3, aBaseMetaTileEntity))
- && (addIfEnergyInjector(xCenter + 4, yCenter, zCenter + 5, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter + 4, yCenter, zCenter - 5, aBaseMetaTileEntity))
- && (addIfEnergyInjector(xCenter - 4, yCenter, zCenter + 3, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter - 4, yCenter, zCenter - 3, aBaseMetaTileEntity))
- && (addIfEnergyInjector(xCenter - 4, yCenter, zCenter + 5, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter - 4, yCenter, zCenter - 5, aBaseMetaTileEntity))
- && (addIfEnergyInjector(xCenter + 3, yCenter, zCenter + 4, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter - 3, yCenter, zCenter + 4, aBaseMetaTileEntity))
- && (addIfEnergyInjector(xCenter + 5, yCenter, zCenter + 4, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter - 5, yCenter, zCenter + 4, aBaseMetaTileEntity))
- && (addIfEnergyInjector(xCenter + 3, yCenter, zCenter - 4, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter - 3, yCenter, zCenter - 4, aBaseMetaTileEntity))
- && (addIfEnergyInjector(xCenter + 5, yCenter, zCenter - 4, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter - 5, yCenter, zCenter - 4, aBaseMetaTileEntity))
- && (addIfExtractor(xCenter + 1, yCenter, zCenter - 5, aBaseMetaTileEntity)) && (addIfExtractor(xCenter + 1, yCenter, zCenter + 5, aBaseMetaTileEntity))
- && (addIfExtractor(xCenter - 1, yCenter, zCenter - 5, aBaseMetaTileEntity)) && (addIfExtractor(xCenter - 1, yCenter, zCenter + 5, aBaseMetaTileEntity))
- && (addIfExtractor(xCenter + 1, yCenter, zCenter - 7, aBaseMetaTileEntity)) && (addIfExtractor(xCenter + 1, yCenter, zCenter + 7, aBaseMetaTileEntity))
- && (addIfExtractor(xCenter - 1, yCenter, zCenter - 7, aBaseMetaTileEntity)) && (addIfExtractor(xCenter - 1, yCenter, zCenter + 7, aBaseMetaTileEntity))
- && (addIfExtractor(xCenter + 5, yCenter, zCenter - 1, aBaseMetaTileEntity)) && (addIfExtractor(xCenter + 5, yCenter, zCenter + 1, aBaseMetaTileEntity))
- && (addIfExtractor(xCenter - 5, yCenter, zCenter - 1, aBaseMetaTileEntity)) && (addIfExtractor(xCenter - 5, yCenter, zCenter + 1, aBaseMetaTileEntity))
- && (addIfExtractor(xCenter + 7, yCenter, zCenter - 1, aBaseMetaTileEntity)) && (addIfExtractor(xCenter + 7, yCenter, zCenter + 1, aBaseMetaTileEntity))
- && (addIfExtractor(xCenter - 7, yCenter, zCenter - 1, aBaseMetaTileEntity)) && (addIfExtractor(xCenter - 7, yCenter, zCenter + 1, aBaseMetaTileEntity))
- && (addIfInjector(xCenter + 1, yCenter + 1, zCenter - 6, aBaseMetaTileEntity)) && (addIfInjector(xCenter + 1, yCenter + 1, zCenter + 6, aBaseMetaTileEntity))
- && (addIfInjector(xCenter - 1, yCenter + 1, zCenter - 6, aBaseMetaTileEntity)) && (addIfInjector(xCenter - 1, yCenter + 1, zCenter + 6, aBaseMetaTileEntity))
- && (addIfInjector(xCenter - 6, yCenter + 1, zCenter + 1, aBaseMetaTileEntity)) && (addIfInjector(xCenter + 6, yCenter + 1, zCenter + 1, aBaseMetaTileEntity))
- && (addIfInjector(xCenter - 6, yCenter + 1, zCenter - 1, aBaseMetaTileEntity)) && (addIfInjector(xCenter + 6, yCenter + 1, zCenter - 1, aBaseMetaTileEntity))
- && (addIfInjector(xCenter + 1, yCenter - 1, zCenter - 6, aBaseMetaTileEntity)) && (addIfInjector(xCenter + 1, yCenter - 1, zCenter + 6, aBaseMetaTileEntity))
- && (addIfInjector(xCenter - 1, yCenter - 1, zCenter - 6, aBaseMetaTileEntity)) && (addIfInjector(xCenter - 1, yCenter - 1, zCenter + 6, aBaseMetaTileEntity))
- && (addIfInjector(xCenter - 6, yCenter - 1, zCenter + 1, aBaseMetaTileEntity)) && (addIfInjector(xCenter + 6, yCenter - 1, zCenter + 1, aBaseMetaTileEntity))
- && (addIfInjector(xCenter - 6, yCenter - 1, zCenter - 1, aBaseMetaTileEntity)) && (addIfInjector(xCenter + 6, yCenter - 1, zCenter - 1, aBaseMetaTileEntity))
+ && (isAdvancedMachineCasing(xCenter + 4, yCenter, zCenter + 3)) && (isAdvancedMachineCasing(xCenter + 4, yCenter, zCenter - 3))
+ && (isAdvancedMachineCasing(xCenter + 4, yCenter, zCenter + 5)) && (isAdvancedMachineCasing(xCenter + 4, yCenter, zCenter - 5))
+ && (isAdvancedMachineCasing(xCenter - 4, yCenter, zCenter + 3)) && (isAdvancedMachineCasing(xCenter - 4, yCenter, zCenter - 3))
+ && (isAdvancedMachineCasing(xCenter - 4, yCenter, zCenter + 5)) && (isAdvancedMachineCasing(xCenter - 4, yCenter, zCenter - 5))
+ && (isAdvancedMachineCasing(xCenter + 3, yCenter, zCenter + 4)) && (isAdvancedMachineCasing(xCenter - 3, yCenter, zCenter + 4))
+ && (isAdvancedMachineCasing(xCenter + 5, yCenter, zCenter + 4)) && (isAdvancedMachineCasing(xCenter - 5, yCenter, zCenter + 4))
+ && (isAdvancedMachineCasing(xCenter + 3, yCenter, zCenter - 4)) && (isAdvancedMachineCasing(xCenter - 3, yCenter, zCenter - 4))
+ && (isAdvancedMachineCasing(xCenter + 5, yCenter, zCenter - 4)) && (isAdvancedMachineCasing(xCenter - 5, yCenter, zCenter - 4))
+ && (isAdvancedMachineCasing(xCenter + 1, yCenter, zCenter - 5)) && (isAdvancedMachineCasing(xCenter + 1, yCenter, zCenter + 5))
+ && (isAdvancedMachineCasing(xCenter - 1, yCenter, zCenter - 5)) && (isAdvancedMachineCasing(xCenter - 1, yCenter, zCenter + 5))
+ && (isAdvancedMachineCasing(xCenter + 1, yCenter, zCenter - 7)) && (isAdvancedMachineCasing(xCenter + 1, yCenter, zCenter + 7))
+ && (isAdvancedMachineCasing(xCenter - 1, yCenter, zCenter - 7)) && (isAdvancedMachineCasing(xCenter - 1, yCenter, zCenter + 7))
+ && (isAdvancedMachineCasing(xCenter + 5, yCenter, zCenter - 1)) && (isAdvancedMachineCasing(xCenter + 5, yCenter, zCenter + 1))
+ && (isAdvancedMachineCasing(xCenter - 5, yCenter, zCenter - 1)) && (isAdvancedMachineCasing(xCenter - 5, yCenter, zCenter + 1))
+ && (isAdvancedMachineCasing(xCenter + 7, yCenter, zCenter - 1)) && (isAdvancedMachineCasing(xCenter + 7, yCenter, zCenter + 1))
+ && (isAdvancedMachineCasing(xCenter - 7, yCenter, zCenter - 1)) && (isAdvancedMachineCasing(xCenter - 7, yCenter, zCenter + 1))
+ && (isAdvancedMachineCasing(xCenter + 1, yCenter + 1, zCenter - 6)) && (isAdvancedMachineCasing(xCenter + 1, yCenter + 1, zCenter + 6))
+ && (isAdvancedMachineCasing(xCenter - 1, yCenter + 1, zCenter - 6)) && (isAdvancedMachineCasing(xCenter - 1, yCenter + 1, zCenter + 6))
+ && (isAdvancedMachineCasing(xCenter - 6, yCenter + 1, zCenter + 1)) && (isAdvancedMachineCasing(xCenter + 6, yCenter + 1, zCenter + 1))
+ && (isAdvancedMachineCasing(xCenter - 6, yCenter + 1, zCenter - 1)) && (isAdvancedMachineCasing(xCenter + 6, yCenter + 1, zCenter - 1))
+ && (isAdvancedMachineCasing(xCenter + 1, yCenter - 1, zCenter - 6)) && (isAdvancedMachineCasing(xCenter + 1, yCenter - 1, zCenter + 6))
+ && (isAdvancedMachineCasing(xCenter - 1, yCenter - 1, zCenter - 6)) && (isAdvancedMachineCasing(xCenter - 1, yCenter - 1, zCenter + 6))
+ && (isAdvancedMachineCasing(xCenter - 6, yCenter - 1, zCenter + 1)) && (isAdvancedMachineCasing(xCenter + 6, yCenter - 1, zCenter + 1))
+ && (isAdvancedMachineCasing(xCenter - 6, yCenter - 1, zCenter - 1)) && (isAdvancedMachineCasing(xCenter + 6, yCenter - 1, zCenter - 1))
&& (this.mEnergyHatches.size() >= 1) && (this.mOutputBusses.size() >= 1) && (this.mInputHatches.size() >= 1) && (this.mInputBusses.size() >= 1)) {
int mEnergyHatches_sS = this.mEnergyHatches.size();
for (int i = 0; i < mEnergyHatches_sS; i++) {
if (this.mEnergyHatches.get(i).mTier < tier()){
- Logger.INFO("bad energy hatch");
+ log("bad energy hatch");
return false;
}
}
int mOutputHatches_sS = this.mOutputBusses.size();
for (int i = 0; i < mOutputHatches_sS; i++) {
if (this.mOutputBusses.get(i).mTier < tier()){
- Logger.INFO("bad output hatch");
+ log("bad output hatch");
return false;
}
}
int mInputHatches_sS = this.mInputHatches.size();
for (int i = 0; i < mInputHatches_sS; i++) {
if (this.mInputHatches.get(i).mTier < tier()){
- Logger.INFO("bad input hatch");
+ log("bad input hatch");
return false;
}
}
int mInputBusses_sS = this.mInputBusses.size();
for (int i = 0; i < mInputBusses_sS; i++) {
if (this.mInputBusses.get(i).mTier < tier()){
- Logger.INFO("bad input hatch");
+ log("bad input hatch");
return false;
}
}
@@ -170,11 +177,11 @@ public class GregtechMetaTileEntity_Cyclotron extends GregtechMeta_MultiBlockBas
mHardHammer = true;
mSolderingTool = true;
mCrowbar = true;
- Logger.INFO("Built Cyclotron.");
+ log("Built Cyclotron.");
turnCasingActive(true);
return true;
}
- Logger.INFO("Failed building Cyclotron.");
+ log("Failed building Cyclotron.");
return false;
}
@@ -212,36 +219,34 @@ public class GregtechMetaTileEntity_Cyclotron extends GregtechMeta_MultiBlockBas
&& (isAdvancedMachineCasing(aX - 2, aY, aZ + 4)) && (isAdvancedMachineCasing(aX + 2, aY, aZ - 4)) && (isAdvancedMachineCasing(aX + 2, aY, aZ + 4));
}
- private boolean addIfEnergyInjector(int aX, int aY, int aZ, IGregTechTileEntity aBaseMetaTileEntity) {
- if (addEnergyInputToMachineList(aBaseMetaTileEntity.getIGregTechTileEntity(aX, aY, aZ), TAE.GTPP_INDEX(26))) {
- return true;
- }
- return isAdvancedMachineCasing(aX, aY, aZ);
- }
-
- private boolean addIfInjector(int aX, int aY, int aZ, IGregTechTileEntity aTileEntity) {
- if (addInputToMachineList(aTileEntity.getIGregTechTileEntity(aX, aY, aZ), TAE.GTPP_INDEX(26))) {
- return true;
- }
- return isAdvancedMachineCasing(aX, aY, aZ);
- }
-
- private boolean addIfExtractor(int aX, int aY, int aZ, IGregTechTileEntity aTileEntity) {
- if (addOutputToMachineList(aTileEntity.getIGregTechTileEntity(aX, aY, aZ), TAE.GTPP_INDEX(26))) {
- return true;
- }
- return isAdvancedMachineCasing(aX, aY, aZ);
- }
-
private boolean isAdvancedMachineCasing(int aX, int aY, int aZ) {
final Block aBlock = getBaseMetaTileEntity().getBlock(aX, aY, aZ);
final int aMeta = getBaseMetaTileEntity().getMetaID(aX, aY, aZ);
- final IGregTechTileEntity tTileEntity2 = getBaseMetaTileEntity().getIGregTechTileEntity(aX, aY, aZ);
- return isValidBlockForStructure(tTileEntity2, TAE.GTPP_INDEX(26), true, aBlock, aMeta, getCasing(), getCasingMeta());
+ final IGregTechTileEntity tTileEntity2 = getBaseMetaTileEntity().getIGregTechTileEntity(aX, aY, aZ);
+
+ boolean debug = isValidBlockForStructure(tTileEntity2, TAE.GTPP_INDEX(26), true, aBlock, aMeta, getCasing(), getCasingMeta());
+
+ /*if (!debug) {
+ this.getBaseMetaTileEntity().getWorld().setBlock(aX, aY, aZ, ModBlocks.blockCompressedObsidian);
+ log(""+aX+"/"+aY+"/"+aZ);
+ }*/
+
+ return debug;
}
private boolean isCyclotronCoil(int aX, int aY, int aZ) {
- return (getBaseMetaTileEntity().getBlock(aX, aY, aZ) == getCyclotronCoil() && (getBaseMetaTileEntity().getMetaID(aX, aY, aZ) == getCyclotronCoilMeta()));
+
+ final Block aBlock = getBaseMetaTileEntity().getBlock(aX, aY, aZ);
+ final int aMeta = getBaseMetaTileEntity().getMetaID(aX, aY, aZ);
+
+ boolean debug = isValidBlockForStructure(null, 0, false, aBlock, aMeta, getCyclotronCoil(), getCyclotronCoilMeta());
+
+ /*if (!debug) {
+ this.getBaseMetaTileEntity().getWorld().setBlock(aX, aY, aZ, ModBlocks.blockCompressedObsidian);
+ log(""+aX+"/"+aY+"/"+aZ);
+ }*/
+
+ return debug;
}
public Block getCasing() {
@@ -270,6 +275,7 @@ public class GregtechMetaTileEntity_Cyclotron extends GregtechMeta_MultiBlockBas
"Which will be extracted from the Isochronous Cyclotron",
"------------------------------------------------------------",
"Consists of the same layout as a Fusion Reactor",
+ "Any external casing can be a hatch/bus, unlike Fusion",
"Cyclotron Machine Casings around Cyclotron Coil Blocks",
"All Hatches must be IV or better",
"1-16 Input Hatches",
@@ -296,12 +302,9 @@ public class GregtechMetaTileEntity_Cyclotron extends GregtechMeta_MultiBlockBas
public IIconContainer getIconOverlay() {
if (this.getBaseMetaTileEntity().isActive()){
- return TexturesGtBlock.Overlay_Machine_Dimensional_Orange;
+ return TexturesGtBlock.Overlay_MatterFab_Active_Animated;
}
- return TexturesGtBlock.Overlay_Machine_Dimensional_Blue;
- //mobessence
-
-
+ return TexturesGtBlock.Overlay_MatterFab_Animated;
}
@Override
@@ -311,7 +314,13 @@ public class GregtechMetaTileEntity_Cyclotron extends GregtechMeta_MultiBlockBas
@Override
public boolean checkRecipe(ItemStack aStack) {
- //Logger.INFO("Recipe Check.");
+
+ /*if (CORE.DEVENV) {
+ return this.checkRecipeGeneric();
+ }*/
+
+
+ //log("Recipe Check.");
ArrayList<ItemStack> tItemList = getStoredInputs();
ItemStack[] tItemInputs = tItemList.toArray(new ItemStack[tItemList.size()]);
ArrayList<FluidStack> tInputList = getStoredFluids();
@@ -352,6 +361,28 @@ public class GregtechMetaTileEntity_Cyclotron extends GregtechMeta_MultiBlockBas
}
}
+ for (ItemStack s : outputs) {
+ if (s != null) {
+ if (s.getItem() instanceof IonParticles) {
+ long aCharge = IonParticles.getChargeState(s);
+ if (aCharge == 0) {
+ IonParticles.setChargeState(s, MathUtils.getRandomFromArray(new int[] {
+ -5, -5,
+ -4, -4, -4,
+ -3, -3, -3, -3, -3,
+ -2, -2, -2, -2, -2, -2, -2,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 3, 3, 3, 3, 3, 3, 3,
+ 4, 4, 4, 4,
+ 5, 5, 5,
+ 6, 6}));
+ }
+ }
+ }
+ }
+
this.mOutputItems = outputs;
this.mOutputFluids = new FluidStack[] {tRecipe.getFluidOutput(0)};
return true;
@@ -374,7 +405,13 @@ public class GregtechMetaTileEntity_Cyclotron extends GregtechMeta_MultiBlockBas
public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
if (aBaseMetaTileEntity.isServerSide()) {
if (mEfficiency < 0)
- mEfficiency = 0;
+ mEfficiency = 0;
+
+ //Time Counter
+ this.mTotalRunTime++;
+
+ onRunningTick(null);
+
if (mRunningOnLoad && checkMultiblock(aBaseMetaTileEntity, mInventory[1])) {
this.mEUStore = (int) aBaseMetaTileEntity.getStoredEU();
checkRecipe(mInventory[1]);
@@ -388,6 +425,10 @@ public class GregtechMetaTileEntity_Cyclotron extends GregtechMeta_MultiBlockBas
mEnergyHatches.clear();
mMufflerHatches.clear();
mMaintenanceHatches.clear();
+ mChargeHatches.clear();
+ mDischargeHatches.clear();
+ mControlCoreBus.clear();
+ mMultiDynamoHatches.clear();
mMachine = checkMultiblock(aBaseMetaTileEntity, mInventory[1]);
}
if (mStartUpCheck < 0) {
@@ -395,9 +436,9 @@ public class GregtechMetaTileEntity_Cyclotron extends GregtechMeta_MultiBlockBas
if (this.mEnergyHatches != null) {
for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches)
if (isValidMetaTileEntity(tHatch)) {
- if (aBaseMetaTileEntity.getStoredEU() + (2048) < maxEUStore()
- && tHatch.getBaseMetaTileEntity().decreaseStoredEnergyUnits(2048, false)) {
- aBaseMetaTileEntity.increaseStoredEnergyUnits(2048, true);
+ if (aBaseMetaTileEntity.getStoredEU() + (2048*4) < maxEUStore()
+ && tHatch.getBaseMetaTileEntity().decreaseStoredEnergyUnits((2048*4), false)) {
+ aBaseMetaTileEntity.increaseStoredEnergyUnits((2048*4), true);
}
}
}
@@ -405,7 +446,7 @@ public class GregtechMetaTileEntity_Cyclotron extends GregtechMeta_MultiBlockBas
stopMachine();
}
if (getRepairStatus() > 0) {
- if (mMaxProgresstime > 0 && doRandomMaintenanceDamage()) {
+ if (mMaxProgresstime > 0) {
this.getBaseMetaTileEntity().decreaseStoredEnergyUnits(mEUt, true);
if (mMaxProgresstime > 0 && ++mProgresstime >= mMaxProgresstime) {
if (mOutputItems != null)
@@ -454,6 +495,7 @@ public class GregtechMetaTileEntity_Cyclotron extends GregtechMeta_MultiBlockBas
stopMachine();
}
}
+ doRandomMaintenanceDamage();
aBaseMetaTileEntity.setErrorDisplayID((aBaseMetaTileEntity.getErrorDisplayID() & ~127) | (mWrench ? 0 : 1) | (mScrewdriver ? 0 : 2) | (mSoftHammer ? 0 : 4) | (mHardHammer ? 0 : 8)
| (mSolderingTool ? 0 : 16) | (mCrowbar ? 0 : 32) | (mMachine ? 0 : 64));
aBaseMetaTileEntity.setActive(mMaxProgresstime > 0);
@@ -461,7 +503,36 @@ public class GregtechMetaTileEntity_Cyclotron extends GregtechMeta_MultiBlockBas
}
@Override
- public boolean onRunningTick(ItemStack aStack) {
+ public boolean onRunningTick(ItemStack aStack) {
+ if (this.mOutputBusses.size() > 0) {
+ for (GT_MetaTileEntity_Hatch_OutputBus g : this.mOutputBusses) {
+ if (g != null) {
+ for (ItemStack s : g.mInventory) {
+ if (s != null) {
+ if (s.getItem() instanceof IonParticles) {
+ long aCharge = IonParticles.getChargeState(s);
+ if (aCharge == 0) {
+ IonParticles.setChargeState(s, MathUtils.getRandomFromArray(new int[] {
+ -5, -5,
+ -4, -4, -4,
+ -3, -3, -3, -3, -3,
+ -2, -2, -2, -2, -2, -2, -2,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 3, 3, 3, 3, 3, 3, 3,
+ 4, 4, 4, 4,
+ 5, 5, 5,
+ 6, 6}));
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ PollutionUtils.addPollution(getBaseMetaTileEntity(), this.getPollutionPerTick(aStack));
+
return true;
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/bedrock/GregtechMetaTileEntity_BedrockMiningPlatformBase.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/bedrock/GregtechMetaTileEntity_BedrockMiningPlatformBase.java
index ec28967bb7..9ac67cf874 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/bedrock/GregtechMetaTileEntity_BedrockMiningPlatformBase.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/bedrock/GregtechMetaTileEntity_BedrockMiningPlatformBase.java
@@ -582,7 +582,7 @@ public abstract class GregtechMetaTileEntity_BedrockMiningPlatformBase extends G
"Radius is " + (this.getRadiusInChunks() << 4) + " blocks",
"Every tick, this machine altenates betweem consumption of Pyrotheum & Cryotheum",
"Pyrotheum is used to bore through the Mantle of the world",
- "Cryotheum is used to keep the internal components cool", CORE.GT_Tooltip };
+ "Cryotheum is used to keep the internal components cool",};
}
static {
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_TieredTank.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_TieredTank.java
index 81559db1a5..8294773be3 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_TieredTank.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_TieredTank.java
@@ -32,10 +32,10 @@ public class GT_MetaTileEntity_TieredTank extends GT_MetaTileEntity_BasicTank {
String aTankPortableness = CORE.GTNH ? "non-portable" : "portable";
if (this.mFluid == null) {
- aTip = new String[] {this.mDescription, "A "+aTankPortableness+" tank.", CORE.GT_Tooltip};
+ aTip = new String[] {this.mDescription, "A "+aTankPortableness+" tank."};
}
else {
- aTip = new String[] {this.mDescription, "A "+aTankPortableness+" tank.", "Fluid: "+mFluid.getLocalizedName()+" "+mFluid.amount+"L", CORE.GT_Tooltip};
+ aTip = new String[] {this.mDescription, "A "+aTankPortableness+" tank.", "Fluid: "+mFluid.getLocalizedName()+" "+mFluid.amount+"L"};
}
return aTip;
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GregtechMetaEnergyBuffer.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GregtechMetaEnergyBuffer.java
index 52c1c8818a..1d2fad941b 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GregtechMetaEnergyBuffer.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GregtechMetaEnergyBuffer.java
@@ -41,7 +41,7 @@ public class GregtechMetaEnergyBuffer extends GregtechMetaTileEntity {
@Override
public String[] getDescription() {
- return new String[] {this.mDescription, "Accepts/Outputs 4Amp", CORE.GT_Tooltip};
+ return new String[] {this.mDescription, "Accepts/Outputs 4Amp",};
}
@Override
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GregtechMetaSafeBlock.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GregtechMetaSafeBlock.java
index 80448727cc..b52ed040f4 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GregtechMetaSafeBlock.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GregtechMetaSafeBlock.java
@@ -18,7 +18,7 @@ extends GregtechMetaSafeBlockBase {
@Override
public String[] getDescription() {
- return new String[] {this.mDescription, CORE.GT_Tooltip};
+ return new String[] {this.mDescription};
}
public GregtechMetaSafeBlock(final int aID, final String aName, final String aNameRegional, final int aTier) {
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/shelving/GT4Entity_Shelf.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/shelving/GT4Entity_Shelf.java
index 2c24809f9a..43d5cffe82 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/shelving/GT4Entity_Shelf.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/shelving/GT4Entity_Shelf.java
@@ -207,7 +207,7 @@ public class GT4Entity_Shelf extends GT_MetaTileEntity_BasicHull_NonElectric {
"Right click to store/remove something",
"Ctrl + Rmb to check contents",
"Ctrl + Rmb with a screwdriver to lock",
- CORE.GT_Tooltip };
+ };
}
@Override
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelter.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelter.java
index d6be5def19..9e00ada163 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelter.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelter.java
@@ -4,22 +4,22 @@ import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
-import net.minecraft.item.ItemStack;
-
import gregtech.api.enums.GT_Values;
import gregtech.api.enums.ItemList;
-
import gtPlusPlus.api.interfaces.RunnableWithInfo;
import gtPlusPlus.api.objects.Logger;
-import gtPlusPlus.core.item.ModItems;
import gtPlusPlus.core.lib.CORE;
-import gtPlusPlus.core.material.*;
+import gtPlusPlus.core.material.ALLOY;
+import gtPlusPlus.core.material.Material;
+import gtPlusPlus.core.material.MaterialGenerator;
+import gtPlusPlus.core.material.MaterialStack;
import gtPlusPlus.core.material.nuclear.FLUORIDES;
import gtPlusPlus.core.material.nuclear.NUCLIDE;
import gtPlusPlus.core.material.state.MaterialState;
import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.core.util.minecraft.MaterialUtils;
+import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
public class RecipeGen_BlastSmelter extends RecipeGen_Base {
@@ -208,7 +208,7 @@ public class RecipeGen_BlastSmelter extends RecipeGen_Base {
if (M.getComposites().get(irc) != null){
final int r = (int) M.vSmallestRatio[irc];
inputStackCount = inputStackCount+r;
- if ((M.getComposites().get(irc).getStackMaterial().getState() != MaterialState.SOLID) || ((M.getComposites().get(irc).getDustStack(r) == null) || (M.getComposites().get(irc).getDustStack(r) == ItemUtils.getSimpleStack(ModItems.AAA_Broken)))){
+ if ((M.getComposites().get(irc).getStackMaterial().getState() != MaterialState.SOLID) || !ItemUtils.checkForInvalidItems(M.getComposites().get(irc).getDustStack(r))){
final int xr = r;
if ((xr > 0) && (xr <= 100)){
final int mathmatics = (r*1000);
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java
index ebf5aecd99..1932f30969 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java
@@ -394,7 +394,7 @@ public class RecipeGen_DustGeneration extends RecipeGen_Base {
else {
aOutput = aMatInfo.getIngot(1);
if (ItemUtils.checkForInvalidItems(aOutput)) {
- if (CORE.GT_Recipe.addSmeltingAndAlloySmeltingRecipe(aDust, aOutput)){
+ if (CORE.RA.addSmeltingAndAlloySmeltingRecipe(aDust, aOutput)){
Logger.MATERIALS("Successfully added a furnace recipe for "+aMatInfo.getLocalizedName());
}
else {
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java b/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java
index 1d99b1c2d7..50e9f8c3d6 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java
@@ -6,8 +6,6 @@ import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.List;
-import net.minecraft.item.ItemStack;
-
import gregtech.api.GregTech_API;
import gregtech.api.enums.GT_Values;
import gregtech.api.enums.Materials;
@@ -16,7 +14,6 @@ import gregtech.api.util.CustomRecipeMap;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Utility;
import gregtech.api.util.Recipe_GT;
-
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.lib.LoadedMods;
@@ -25,7 +22,9 @@ import gtPlusPlus.core.util.data.ArrayUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
import gtPlusPlus.xmod.gregtech.api.interfaces.internal.IGregtech_RecipeAdder;
+import gtPlusPlus.xmod.gregtech.common.StaticFields59;
import gtPlusPlus.xmod.gregtech.recipes.machines.RECIPEHANDLER_MatterFabricator;
+import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.oredict.OreDictionary;
@@ -442,19 +441,16 @@ public class GregtechRecipeAdder implements IGregtech_RecipeAdder {
@Override
public boolean addCyclotronRecipe(ItemStack aInputs, FluidStack aFluidInput, ItemStack[] aOutputs,
FluidStack aFluidOutput, int[] aChances, int aDuration, int aEUt, int aSpecialValue) {
- return addCyclotronRecipe(new ItemStack[] {aInputs}, aFluidInput, aOutputs[0], aFluidOutput, aChances, aDuration, aEUt, aSpecialValue);
+ return addCyclotronRecipe(new ItemStack[] {aInputs}, aFluidInput, aOutputs, aFluidOutput, aChances, aDuration, aEUt, aSpecialValue);
}
@Override
- public boolean addCyclotronRecipe(ItemStack[] aInputs, FluidStack aFluidInput, ItemStack aOutput,
+ public boolean addCyclotronRecipe(ItemStack[] aInputs, FluidStack aFluidInput, ItemStack[] aOutput,
FluidStack aFluidOutput, int[] aChances, int aDuration, int aEUt, int aSpecialValue) {
- if (aOutput == null) {
- return false;
- }
- if ((aDuration = GregTech_API.sRecipeFile.get("cyclotron", aOutput, aDuration)) <= 0) {
+ if (aOutput == null || aOutput.length < 1 || !ItemUtils.checkForInvalidItems(aOutput)) {
return false;
}
- if (Recipe_GT.Gregtech_Recipe_Map.sCyclotronRecipes.addRecipe(true, aInputs, new ItemStack[] { aOutput },
+ if (Recipe_GT.Gregtech_Recipe_Map.sCyclotronRecipes.addRecipe(true, aInputs, aOutput,
null, aChances, new FluidStack[] { aFluidInput }, new FluidStack[] { aFluidOutput },
Math.max(1, aDuration), Math.max(1, aEUt), aSpecialValue) != null) {
return true;
@@ -913,6 +909,29 @@ public class GregtechRecipeAdder implements IGregtech_RecipeAdder {
}
+ /**
+ * Lets me add recipes for GT 5.08 & 5.09, since someone broke the method headers.
+ */
+ @Override
+ public boolean addSmeltingAndAlloySmeltingRecipe(ItemStack aDust, ItemStack aOutput) {
+ Method m = StaticFields59.mAddFurnaceRecipe;
+ if (!CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK) {
+ try {
+ return (boolean) m.invoke(null, aDust, aOutput);
+ } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
+ return false;
+ }
+ }
+ else {
+ try {
+ return (boolean) m.invoke(null, aDust, aOutput, true);
+ } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
+ return false;
+ }
+ }
+ }
+
+
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechCustomHatches.java b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechCustomHatches.java
index d0b9d9287f..9a12acaaf1 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechCustomHatches.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechCustomHatches.java
@@ -1,5 +1,8 @@
package gtPlusPlus.xmod.gregtech.registration.gregtech;
+import gregtech.api.enums.ItemList;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_OutputBus;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.minecraft.FluidUtils;
@@ -7,6 +10,8 @@ import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList;
import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_ControlCore;
import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Muffler_Adv;
import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Naquadah;
+import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_SuperBus_Input;
+import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_SuperBus_Output;
import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GT_MetaTileEntity_Hatch_CustomFluidBase;
public class GregtechCustomHatches {
@@ -15,79 +20,158 @@ public class GregtechCustomHatches {
if (gtPlusPlus.core.lib.LoadedMods.Gregtech) {
Logger.INFO("Gregtech5u Content | Registering Custom Fluid Hatches.");
run1();
-
+
//No pollution in 5.08
- if (CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK)
- run2();
+ if (CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK) {
+ run2();
+ }
+
+ run3();
}
}
private static void run1() {
GregtechItemList.Hatch_Input_Cryotheum
- .set(new GT_MetaTileEntity_Hatch_CustomFluidBase(FluidUtils.getFluidStack("cryotheum", 1).getFluid(), // Fluid
- // to
- // resitrct
- // hatch
- // to
- 128000, // Capacity
- 967, // ID
- "hatch.cryotheum.input.tier.00", // unlocal name
- "Cryotheum Cooling Hatch" // Local name
- ).getStackForm(1L));
+ .set(new GT_MetaTileEntity_Hatch_CustomFluidBase(FluidUtils.getFluidStack("cryotheum", 1).getFluid(), // Fluid
+ // to
+ // resitrct
+ // hatch
+ // to
+ 128000, // Capacity
+ 967, // ID
+ "hatch.cryotheum.input.tier.00", // unlocal name
+ "Cryotheum Cooling Hatch" // Local name
+ ).getStackForm(1L));
GregtechItemList.Hatch_Input_Pyrotheum
- .set(new GT_MetaTileEntity_Hatch_CustomFluidBase(FluidUtils.getFluidStack("pyrotheum", 1).getFluid(), // Fluid
- // to
- // resitrct
- // hatch
- // to
- 128000, // Capacity
- 968, // ID
- "hatch.pyrotheum.input.tier.00", // unlocal name
- "Pyrotheum Heating Vent" // Local name
- ).getStackForm(1L));
+ .set(new GT_MetaTileEntity_Hatch_CustomFluidBase(FluidUtils.getFluidStack("pyrotheum", 1).getFluid(), // Fluid
+ // to
+ // resitrct
+ // hatch
+ // to
+ 128000, // Capacity
+ 968, // ID
+ "hatch.pyrotheum.input.tier.00", // unlocal name
+ "Pyrotheum Heating Vent" // Local name
+ ).getStackForm(1L));
GregtechItemList.Hatch_Input_Naquadah.set(new GT_MetaTileEntity_Hatch_Naquadah(969, // ID
"hatch.naquadah.input.tier.00", // unlocal name
"Naquadah Reactor Input hatch" // Local name
- ).getStackForm(1L));
+ ).getStackForm(1L));
}
private static void run2() {
GregtechItemList.Hatch_Muffler_Adv_LV
- .set((new GT_MetaTileEntity_Hatch_Muffler_Adv(30001, "hatch.muffler.adv.tier.01", "Advanced Muffler Hatch (LV)", 1))
- .getStackForm(1L));
+ .set((new GT_MetaTileEntity_Hatch_Muffler_Adv(30001, "hatch.muffler.adv.tier.01", "Advanced Muffler Hatch (LV)", 1))
+ .getStackForm(1L));
GregtechItemList.Hatch_Muffler_Adv_MV
- .set((new GT_MetaTileEntity_Hatch_Muffler_Adv(30002, "hatch.muffler.adv.tier.02", "Advanced Muffler Hatch (MV)", 2))
- .getStackForm(1L));
+ .set((new GT_MetaTileEntity_Hatch_Muffler_Adv(30002, "hatch.muffler.adv.tier.02", "Advanced Muffler Hatch (MV)", 2))
+ .getStackForm(1L));
GregtechItemList.Hatch_Muffler_Adv_HV
- .set((new GT_MetaTileEntity_Hatch_Muffler_Adv(30003, "hatch.muffler.adv.tier.03", "Advanced Muffler Hatch (HV)", 3))
- .getStackForm(1L));
+ .set((new GT_MetaTileEntity_Hatch_Muffler_Adv(30003, "hatch.muffler.adv.tier.03", "Advanced Muffler Hatch (HV)", 3))
+ .getStackForm(1L));
GregtechItemList.Hatch_Muffler_Adv_EV
- .set((new GT_MetaTileEntity_Hatch_Muffler_Adv(30004, "hatch.muffler.adv.tier.04", "Advanced Muffler Hatch (EV)", 4))
- .getStackForm(1L));
+ .set((new GT_MetaTileEntity_Hatch_Muffler_Adv(30004, "hatch.muffler.adv.tier.04", "Advanced Muffler Hatch (EV)", 4))
+ .getStackForm(1L));
GregtechItemList.Hatch_Muffler_Adv_IV
- .set((new GT_MetaTileEntity_Hatch_Muffler_Adv(30005, "hatch.muffler.adv.tier.05", "Advanced Muffler Hatch (IV)", 5))
- .getStackForm(1L));
+ .set((new GT_MetaTileEntity_Hatch_Muffler_Adv(30005, "hatch.muffler.adv.tier.05", "Advanced Muffler Hatch (IV)", 5))
+ .getStackForm(1L));
GregtechItemList.Hatch_Muffler_Adv_LuV
- .set((new GT_MetaTileEntity_Hatch_Muffler_Adv(30006, "hatch.muffler.adv.tier.06", "Advanced Muffler Hatch (LuV)", 6))
- .getStackForm(1L));
+ .set((new GT_MetaTileEntity_Hatch_Muffler_Adv(30006, "hatch.muffler.adv.tier.06", "Advanced Muffler Hatch (LuV)", 6))
+ .getStackForm(1L));
GregtechItemList.Hatch_Muffler_Adv_ZPM
- .set((new GT_MetaTileEntity_Hatch_Muffler_Adv(30007, "hatch.muffler.adv.tier.07", "Advanced Muffler Hatch (ZPM)", 7))
- .getStackForm(1L));
+ .set((new GT_MetaTileEntity_Hatch_Muffler_Adv(30007, "hatch.muffler.adv.tier.07", "Advanced Muffler Hatch (ZPM)", 7))
+ .getStackForm(1L));
GregtechItemList.Hatch_Muffler_Adv_UV
- .set((new GT_MetaTileEntity_Hatch_Muffler_Adv(30008, "hatch.muffler.adv.tier.08", "Advanced Muffler Hatch (UV)", 8))
- .getStackForm(1L));
+ .set((new GT_MetaTileEntity_Hatch_Muffler_Adv(30008, "hatch.muffler.adv.tier.08", "Advanced Muffler Hatch (UV)", 8))
+ .getStackForm(1L));
GregtechItemList.Hatch_Muffler_Adv_MAX
- .set((new GT_MetaTileEntity_Hatch_Muffler_Adv(30009, "hatch.muffler.adv.tier.09", "Advanced Muffler Hatch (MAX)", 9))
- .getStackForm(1L));
-
+ .set((new GT_MetaTileEntity_Hatch_Muffler_Adv(30009, "hatch.muffler.adv.tier.09", "Advanced Muffler Hatch (MAX)", 9))
+ .getStackForm(1L));
+
//GT++ multiblock Control Core Bus
GregtechItemList.Hatch_Control_Core
.set((new GT_MetaTileEntity_Hatch_ControlCore(30020, "hatch.control.adv", "Control Core Module", 1))
.getStackForm(1L));
}
+ private static void run3() {
+
+ /*
+ * Super Input Busses
+ */
+
+ int aStartID = 30021;
+
+ GregtechItemList.Hatch_SuperBus_Input_ULV
+ .set((new GT_MetaTileEntity_SuperBus_Input(aStartID++, "hatch.superbus.input.tier.00", "Super Bus (I) (ULV)", 0))
+ .getStackForm(1L));
+ GregtechItemList.Hatch_SuperBus_Input_LV
+ .set((new GT_MetaTileEntity_SuperBus_Input(aStartID++, "hatch.superbus.input.tier.01", "Super Bus (I) (LV)", 1))
+ .getStackForm(1L));
+ GregtechItemList.Hatch_SuperBus_Input_MV
+ .set((new GT_MetaTileEntity_SuperBus_Input(aStartID++, "hatch.superbus.input.tier.02", "Super Bus (I) (MV)", 2))
+ .getStackForm(1L));
+ GregtechItemList.Hatch_SuperBus_Input_HV
+ .set((new GT_MetaTileEntity_SuperBus_Input(aStartID++, "hatch.superbus.input.tier.03", "Super Bus (I) (HV)", 3))
+ .getStackForm(1L));
+ GregtechItemList.Hatch_SuperBus_Input_EV
+ .set((new GT_MetaTileEntity_SuperBus_Input(aStartID++, "hatch.superbus.input.tier.04", "Super Bus (I) (EV)", 4))
+ .getStackForm(1L));
+ GregtechItemList.Hatch_SuperBus_Input_IV
+ .set((new GT_MetaTileEntity_SuperBus_Input(aStartID++, "hatch.superbus.input.tier.05", "Super Bus (I) (IV)", 5))
+ .getStackForm(1L));
+ GregtechItemList.Hatch_SuperBus_Input_LuV
+ .set((new GT_MetaTileEntity_SuperBus_Input(aStartID++, "hatch.superbus.input.tier.06", "Super Bus (I) (LuV)", 6))
+ .getStackForm(1L));
+ GregtechItemList.Hatch_SuperBus_Input_ZPM
+ .set((new GT_MetaTileEntity_SuperBus_Input(aStartID++, "hatch.superbus.input.tier.07", "Super Bus (I) (ZPM)", 7))
+ .getStackForm(1L));
+ GregtechItemList.Hatch_SuperBus_Input_UV
+ .set((new GT_MetaTileEntity_SuperBus_Input(aStartID++, "hatch.superbus.input.tier.08", "Super Bus (I) (UV)", 8))
+ .getStackForm(1L));
+ GregtechItemList.Hatch_SuperBus_Input_MAX
+ .set((new GT_MetaTileEntity_SuperBus_Input(aStartID++, "hatch.superbus.input.tier.09", "Super Bus (I) (MAX)", 9))
+ .getStackForm(1L));
+
+ /*
+ * Super Output Busses
+ */
+
+ GregtechItemList.Hatch_SuperBus_Output_ULV
+ .set((new GT_MetaTileEntity_SuperBus_Output(aStartID++, "hatch.superbus.output.tier.00", "Super Bus (O) (ULV)", 0))
+ .getStackForm(1L));
+ GregtechItemList.Hatch_SuperBus_Output_LV
+ .set((new GT_MetaTileEntity_SuperBus_Output(aStartID++, "hatch.superbus.output.tier.01", "Super Bus (O) (LV)", 1))
+ .getStackForm(1L));
+ GregtechItemList.Hatch_SuperBus_Output_MV
+ .set((new GT_MetaTileEntity_SuperBus_Output(aStartID++, "hatch.superbus.output.tier.02", "Super Bus (O) (MV)", 2))
+ .getStackForm(1L));
+ GregtechItemList.Hatch_SuperBus_Output_HV
+ .set((new GT_MetaTileEntity_SuperBus_Output(aStartID++, "hatch.superbus.output.tier.03", "Super Bus (O) (HV)", 3))
+ .getStackForm(1L));
+ GregtechItemList.Hatch_SuperBus_Output_EV
+ .set((new GT_MetaTileEntity_SuperBus_Output(aStartID++, "hatch.superbus.output.tier.04", "Super Bus (O) (EV)", 4))
+ .getStackForm(1L));
+ GregtechItemList.Hatch_SuperBus_Output_IV
+ .set((new GT_MetaTileEntity_SuperBus_Output(aStartID++, "hatch.superbus.output.tier.05", "Super Bus (O) (IV)", 5))
+ .getStackForm(1L));
+ GregtechItemList.Hatch_SuperBus_Output_LuV
+ .set((new GT_MetaTileEntity_SuperBus_Output(aStartID++, "hatch.superbus.output.tier.06", "Super Bus (O) (LuV)", 6))
+ .getStackForm(1L));
+ GregtechItemList.Hatch_SuperBus_Output_ZPM
+ .set((new GT_MetaTileEntity_SuperBus_Output(aStartID++, "hatch.superbus.output.tier.07", "Super Bus (O) (ZPM)", 7))
+ .getStackForm(1L));
+ GregtechItemList.Hatch_SuperBus_Output_UV
+ .set((new GT_MetaTileEntity_SuperBus_Output(aStartID++, "hatch.superbus.output.tier.08", "Super Bus (O) (UV)", 8))
+ .getStackForm(1L));
+ GregtechItemList.Hatch_SuperBus_Output_MAX
+ .set((new GT_MetaTileEntity_SuperBus_Output(aStartID++, "hatch.superbus.output.tier.09", "Super Bus (O) (MAX)", 9))
+ .getStackForm(1L));
+
+ }
+
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechDehydrator.java b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechDehydrator.java
index 2c8a63312f..a3a04a44da 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechDehydrator.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechDehydrator.java
@@ -43,34 +43,34 @@ public class GregtechDehydrator {
//Basic
GregtechItemList.GT_Dehydrator_MV
.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(911, "machine.dehydrator.tier.00",
- "Basic Dehydrator I", 2, "This dehydrates your Grapes into Raisins. " + CORE.GT_Tooltip,
+ "Basic Dehydrator I", 2, "This dehydrates your Grapes into Raisins. ",
Recipe_GT.Gregtech_Recipe_Map.sChemicalDehydratorRecipes, 2, 9, 10000, 2, 5, "Dehydrator.png",
"", false, false, 0, "UNBOXINATOR", null).getStackForm(1L));
GregtechItemList.GT_Dehydrator_HV
.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(912, "machine.dehydrator.tier.01",
- "Basic Dehydrator II", 3, "This dehydrates your Grapes into Raisins. " + CORE.GT_Tooltip,
+ "Basic Dehydrator II", 3, "This dehydrates your Grapes into Raisins. ",
Recipe_GT.Gregtech_Recipe_Map.sChemicalDehydratorRecipes, 2, 9, 10000, 2, 5, "Dehydrator.png",
"", false, false, 0, "UNBOXINATOR", null).getStackForm(1L));
//Chemical
GregtechItemList.GT_Dehydrator_EV
.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(813, "advancedmachine.dehydrator.tier.01",
- "Chemical Dehydrator I", 4, "This dehydrates your Grapes into Raisins. " + CORE.GT_Tooltip,
+ "Chemical Dehydrator I", 4, "This dehydrates your Grapes into Raisins. ",
Recipe_GT.Gregtech_Recipe_Map.sChemicalDehydratorRecipes, 2, 9, 10000, 2, 5, "Dehydrator.png",
"", false, false, 0, "UNBOXINATOR", null).getStackForm(1L));
GregtechItemList.GT_Dehydrator_IV.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(814,
"advancedmachine.dehydrator.tier.02", "Chemical Dehydrator II", 5,
- "A hangover is the way your body reacts to dehydration. " + CORE.GT_Tooltip,
+ "A hangover is the way your body reacts to dehydration. ",
Recipe_GT.Gregtech_Recipe_Map.sChemicalDehydratorRecipes, 2, 9, 10000, 2, 5, "Dehydrator.png", "",
false, false, 0, "UNBOXINATOR", null).getStackForm(1L));
GregtechItemList.GT_Dehydrator_LuV.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(815,
"advancedmachine.dehydrator.tier.03", "Chemical Dehydrator III", 6,
- "You could probably make space icecream with this.. " + CORE.GT_Tooltip,
+ "You could probably make space icecream with this.. ",
Recipe_GT.Gregtech_Recipe_Map.sChemicalDehydratorRecipes, 2, 9, 10000, 2, 5, "Dehydrator.png", "",
false, false, 0, "UNBOXINATOR", null).getStackForm(1L));
GregtechItemList.GT_Dehydrator_ZPM.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(816,
"advancedmachine.dehydrator.tier.04", "Chemical Dehydrator IV", 7,
- "You can definitely make space icecream with this.. " + CORE.GT_Tooltip,
+ "You can definitely make space icecream with this.. ",
Recipe_GT.Gregtech_Recipe_Map.sChemicalDehydratorRecipes, 2, 9, 10000, 2, 5, "Dehydrator.png", "",
false, false, 0, "UNBOXINATOR", null).getStackForm(1L));
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechPowerBreakers.java b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechPowerBreakers.java
new file mode 100644
index 0000000000..3e9582b80a
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechPowerBreakers.java
@@ -0,0 +1,42 @@
+package gtPlusPlus.xmod.gregtech.registration.gregtech;
+
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList;
+import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicBreaker;
+
+public class GregtechPowerBreakers {
+
+ public static void run() {
+ if (gtPlusPlus.core.lib.LoadedMods.Gregtech) {
+ Logger.INFO("Gregtech5u Content | Registering Power Breakers.");
+ run1();
+ }
+
+ }
+
+ private static void run1() {
+ //30200
+ int aStartID = 30400;
+ GregtechItemList.BreakerBox_ULV.set((new GT_MetaTileEntity_BasicBreaker(aStartID++, "breaker.tier.00",
+ "Ultra Low Voltage Breaker Box", 0, "", 16)).getStackForm(1L));
+ GregtechItemList.BreakerBox_LV.set((new GT_MetaTileEntity_BasicBreaker(aStartID++, "breaker.tier.01",
+ "Low Voltage Breaker Box", 1, "", 16)).getStackForm(1L));
+ GregtechItemList.BreakerBox_MV.set((new GT_MetaTileEntity_BasicBreaker(aStartID++, "breaker.tier.02",
+ "Medium Voltage Breaker Box", 2, "", 16)).getStackForm(1L));
+ GregtechItemList.BreakerBox_HV.set((new GT_MetaTileEntity_BasicBreaker(aStartID++, "breaker.tier.03",
+ "High Voltage Breaker Box", 3, "", 16)).getStackForm(1L));
+ GregtechItemList.BreakerBox_EV.set((new GT_MetaTileEntity_BasicBreaker(aStartID++, "breaker.tier.04",
+ "Extreme Voltage Breaker Box", 16, "", 16)).getStackForm(1L));
+ GregtechItemList.BreakerBox_IV.set((new GT_MetaTileEntity_BasicBreaker(aStartID++, "breaker.tier.05",
+ "Insane Voltage Breaker Box", 5, "", 16)).getStackForm(1L));
+ GregtechItemList.BreakerBox_LuV.set((new GT_MetaTileEntity_BasicBreaker(aStartID++, "breaker.tier.06",
+ "Ludicrous Voltage Breaker Box", 6, "", 16)).getStackForm(1L));
+ GregtechItemList.BreakerBox_ZPM.set((new GT_MetaTileEntity_BasicBreaker(aStartID++, "breaker.tier.07",
+ "ZPM Voltage Breaker Box", 7, "", 16)).getStackForm(1L));
+ GregtechItemList.BreakerBox_UV.set((new GT_MetaTileEntity_BasicBreaker(aStartID++, "breaker.tier.08",
+ "Ultimate Voltage Breaker Box", 8, "", 16)).getStackForm(1L));
+ GregtechItemList.BreakerBox_MAX.set((new GT_MetaTileEntity_BasicBreaker(aStartID++, "breaker.tier.09",
+ "MAX Voltage Breaker Box", 9, "", 16)).getStackForm(1L));
+
+ }
+} \ No newline at end of file
diff --git a/src/resources/assets/forestry/AlvearyFrame.png b/src/resources/assets/forestry/AlvearyFrame.png
index 366c049728..c69ead8dd0 100644
--- a/src/resources/assets/forestry/AlvearyFrame.png
+++ b/src/resources/assets/forestry/AlvearyFrame.png
Binary files differ
diff --git a/src/resources/assets/forestry/AlvearyMutator.png b/src/resources/assets/forestry/AlvearyMutator.png
index b670d9d238..2225f2748f 100644
--- a/src/resources/assets/forestry/AlvearyMutator.png
+++ b/src/resources/assets/forestry/AlvearyMutator.png
Binary files differ
diff --git a/src/resources/assets/forestry/textures/blocks/apiculture/alveary.framehousing.off.png b/src/resources/assets/forestry/textures/blocks/apiculture/alveary.framehousing.off.png
index 1feed9a89a..f21e59ec96 100644
--- a/src/resources/assets/forestry/textures/blocks/apiculture/alveary.framehousing.off.png
+++ b/src/resources/assets/forestry/textures/blocks/apiculture/alveary.framehousing.off.png
Binary files differ
diff --git a/src/resources/assets/forestry/textures/blocks/apiculture/alveary.framehousing.on.png b/src/resources/assets/forestry/textures/blocks/apiculture/alveary.framehousing.on.png
index 1feed9a89a..f21e59ec96 100644
--- a/src/resources/assets/forestry/textures/blocks/apiculture/alveary.framehousing.on.png
+++ b/src/resources/assets/forestry/textures/blocks/apiculture/alveary.framehousing.on.png
Binary files differ
diff --git a/src/resources/assets/forestry/textures/blocks/apiculture/alveary.mutator.off.png b/src/resources/assets/forestry/textures/blocks/apiculture/alveary.mutator.off.png
index 5c8f3ab457..51336c00b9 100644
--- a/src/resources/assets/forestry/textures/blocks/apiculture/alveary.mutator.off.png
+++ b/src/resources/assets/forestry/textures/blocks/apiculture/alveary.mutator.off.png
Binary files differ
diff --git a/src/resources/assets/forestry/textures/blocks/apiculture/alveary.mutator.on.png b/src/resources/assets/forestry/textures/blocks/apiculture/alveary.mutator.on.png
index 5c8f3ab457..51336c00b9 100644
--- a/src/resources/assets/forestry/textures/blocks/apiculture/alveary.mutator.on.png
+++ b/src/resources/assets/forestry/textures/blocks/apiculture/alveary.mutator.on.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrofuel_old.png b/src/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrofuel_old.png
index c563ca0021..4569cb8af3 100644
--- a/src/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrofuel_old.png
+++ b/src/resources/assets/gregtech/textures/blocks/fluids/fluid.nitrofuel_old.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_SIDE_ACTIVE.png b/src/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_SIDE_ACTIVE.png
index 79d89094a5..e1d4a0f009 100644
--- a/src/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_SIDE_ACTIVE.png
+++ b/src/resources/assets/gregtech/textures/blocks/iconsets/GAS_TURBINE_SIDE_ACTIVE.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_SIDE_ACTIVE.png b/src/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_SIDE_ACTIVE.png
index 79d89094a5..e1d4a0f009 100644
--- a/src/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_SIDE_ACTIVE.png
+++ b/src/resources/assets/gregtech/textures/blocks/iconsets/STEAM_TURBINE_SIDE_ACTIVE.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/block1.png b/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/block1.png
index b58ded215f..ad51b6f35f 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/block1.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/block1.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/block2.png b/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/block2.png
index a56a62ad1b..9544681ea6 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/block2.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/block2.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/block3.png b/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/block3.png
index 6de77b309b..161d37faf8 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/block3.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/block3.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/block4.png b/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/block4.png
index e5f7b5e76f..7d3a6d1e29 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/block4.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/block4.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/block5.png b/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/block5.png
index 4bb49067ed..a8a4b0e1f2 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/block5.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/block5.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/block6.png b/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/block6.png
index b58ded215f..ad51b6f35f 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/block6.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/block6.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/frameGt.png b/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/frameGt.png
index d93c52c24c..2041e4d562 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/frameGt.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/frameGt.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/ore_animated.png b/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/ore_animated.png
index 41cc316f7b..0032fdd6e5 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/ore_animated.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/ore_animated.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/pipeLarge.png b/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/pipeLarge.png
index 65529e2772..f1daedc2c9 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/pipeLarge.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/pipeLarge.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/pipeMedium.png b/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/pipeMedium.png
index 06b3e0d189..9927fa293e 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/pipeMedium.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/pipeMedium.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/pipeSmall.png b/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/pipeSmall.png
index b5e620f045..6c29b067f3 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/pipeSmall.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/ENRICHED/pipeSmall.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/block1.png b/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/block1.png
index 6de77b309b..161d37faf8 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/block1.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/block1.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/block2.png b/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/block2.png
index a56a62ad1b..9544681ea6 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/block2.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/block2.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/block3.png b/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/block3.png
index 6de77b309b..161d37faf8 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/block3.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/block3.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/block4.png b/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/block4.png
index e5f7b5e76f..7d3a6d1e29 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/block4.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/block4.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/block5.png b/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/block5.png
index 4bb49067ed..a8a4b0e1f2 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/block5.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/block5.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/block6.png b/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/block6.png
index b58ded215f..ad51b6f35f 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/block6.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/block6.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/frameGt.png b/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/frameGt.png
index d93c52c24c..2041e4d562 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/frameGt.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/frameGt.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/pipeLarge.png b/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/pipeLarge.png
index 65529e2772..f1daedc2c9 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/pipeLarge.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/pipeLarge.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/pipeMedium.png b/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/pipeMedium.png
index 06b3e0d189..9927fa293e 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/pipeMedium.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/pipeMedium.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/pipeSmall.png b/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/pipeSmall.png
index b5e620f045..6c29b067f3 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/pipeSmall.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/GEM_A/pipeSmall.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/block1.png b/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/block1.png
index b58ded215f..ad51b6f35f 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/block1.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/block1.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/block2.png b/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/block2.png
index a56a62ad1b..9544681ea6 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/block2.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/block2.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/block3.png b/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/block3.png
index 6de77b309b..161d37faf8 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/block3.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/block3.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/block4.png b/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/block4.png
index e5f7b5e76f..7d3a6d1e29 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/block4.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/block4.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/block5.png b/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/block5.png
index 4bb49067ed..a8a4b0e1f2 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/block5.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/block5.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/block6.png b/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/block6.png
index b58ded215f..ad51b6f35f 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/block6.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/block6.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/frameGt.png b/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/frameGt.png
index d93c52c24c..2041e4d562 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/frameGt.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/frameGt.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/ore.png b/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/ore.png
index 92a1c3be3a..919d9bb70a 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/ore.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/ore.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/pipeLarge.png b/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/pipeLarge.png
index 65529e2772..f1daedc2c9 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/pipeLarge.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/pipeLarge.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/pipeMedium.png b/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/pipeMedium.png
index 06b3e0d189..9927fa293e 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/pipeMedium.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/pipeMedium.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/pipeSmall.png b/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/pipeSmall.png
index b5e620f045..6c29b067f3 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/pipeSmall.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/NUCLEAR/pipeSmall.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/block1.png b/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/block1.png
index 78695fb493..3e33d0feec 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/block1.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/block1.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/block2.png b/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/block2.png
index a56a62ad1b..9544681ea6 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/block2.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/block2.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/block3.png b/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/block3.png
index 6de77b309b..161d37faf8 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/block3.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/block3.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/block4.png b/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/block4.png
index e5f7b5e76f..7d3a6d1e29 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/block4.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/block4.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/block5.png b/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/block5.png
index 4bb49067ed..a8a4b0e1f2 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/block5.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/block5.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/block6.png b/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/block6.png
index b58ded215f..ad51b6f35f 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/block6.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/block6.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/frameGt.png b/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/frameGt.png
index d93c52c24c..2041e4d562 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/frameGt.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/frameGt.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/ore.png b/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/ore.png
index e6374cbec2..9cb38f3f8e 100644
--- a/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/ore.png
+++ b/src/resources/assets/gregtech/textures/blocks/materialicons/REFINED/ore.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/gui/PowerSubStation.png b/src/resources/assets/gregtech/textures/gui/PowerSubStation.png
index ba8479807d..0463dbedca 100644
--- a/src/resources/assets/gregtech/textures/gui/PowerSubStation.png
+++ b/src/resources/assets/gregtech/textures/gui/PowerSubStation.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/gui/basicmachines/BlastSmelter.png b/src/resources/assets/gregtech/textures/gui/basicmachines/BlastSmelter.png
index e55c4f2b10..f21ebc1026 100644
--- a/src/resources/assets/gregtech/textures/gui/basicmachines/BlastSmelter.png
+++ b/src/resources/assets/gregtech/textures/gui/basicmachines/BlastSmelter.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/gui/basicmachines/Dehydrator.png b/src/resources/assets/gregtech/textures/gui/basicmachines/Dehydrator.png
index 6ff738e8da..6b086039ba 100644
--- a/src/resources/assets/gregtech/textures/gui/basicmachines/Dehydrator.png
+++ b/src/resources/assets/gregtech/textures/gui/basicmachines/Dehydrator.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/gui/basicmachines/FissionFuel.png b/src/resources/assets/gregtech/textures/gui/basicmachines/FissionFuel.png
index cb0a502f35..163dd0d4a0 100644
--- a/src/resources/assets/gregtech/textures/gui/basicmachines/FissionFuel.png
+++ b/src/resources/assets/gregtech/textures/gui/basicmachines/FissionFuel.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/gui/basicmachines/LFTR.png b/src/resources/assets/gregtech/textures/gui/basicmachines/LFTR.png
index 625b8c891b..fd3f751671 100644
--- a/src/resources/assets/gregtech/textures/gui/basicmachines/LFTR.png
+++ b/src/resources/assets/gregtech/textures/gui/basicmachines/LFTR.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/gui/basicmachines/MixerAdvanced.png b/src/resources/assets/gregtech/textures/gui/basicmachines/MixerAdvanced.png
index a6a3c4a31a..21eedab2f5 100644
--- a/src/resources/assets/gregtech/textures/gui/basicmachines/MixerAdvanced.png
+++ b/src/resources/assets/gregtech/textures/gui/basicmachines/MixerAdvanced.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/gui/multimachines/LFTR.png b/src/resources/assets/gregtech/textures/gui/multimachines/LFTR.png
index 625b8c891b..fd3f751671 100644
--- a/src/resources/assets/gregtech/textures/gui/multimachines/LFTR.png
+++ b/src/resources/assets/gregtech/textures/gui/multimachines/LFTR.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/TURBINE_BLADE.png b/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/TURBINE_BLADE.png
index a4a6bd742d..59611725f8 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/TURBINE_BLADE.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/TURBINE_BLADE.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/crushed.png b/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/crushed.png
index a763f6b0df..8a240a574d 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/crushed.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/crushed.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/crushedPurified.png b/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/crushedPurified.png
index b2d4e2a476..17859801da 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/crushedPurified.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/crushedPurified.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/gem.png b/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/gem.png
index dd20d74f2c..b63f9c3b35 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/gem.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/gem.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/handleMallet.png b/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/handleMallet.png
index c7bb0e6631..85f543676f 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/handleMallet.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/handleMallet.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/rotor.png b/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/rotor.png
index 6c6a16bfe5..4eefbcd6e3 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/rotor.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/rotor.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/toolHeadMallet.png b/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/toolHeadMallet.png
index 58a7522b4b..28d51f02af 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/toolHeadMallet.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/toolHeadMallet.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/toolHeadSoldering.png b/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/toolHeadSoldering.png
index 41545c8b38..5665e03aee 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/toolHeadSoldering.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/toolHeadSoldering.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/turbineBlade.png b/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/turbineBlade.png
index a4a6bd742d..59611725f8 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/turbineBlade.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/ENRICHED/turbineBlade.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/TURBINE_BLADE.png b/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/TURBINE_BLADE.png
index a4a6bd742d..c78a1d5570 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/TURBINE_BLADE.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/TURBINE_BLADE.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/crushed.png b/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/crushed.png
index a763f6b0df..8a240a574d 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/crushed.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/crushed.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/crushedPurified.png b/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/crushedPurified.png
index b2d4e2a476..17859801da 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/crushedPurified.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/crushedPurified.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/crushed_OVERLAY.png b/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/crushed_OVERLAY.png
index a1600cad7c..b546c4eeec 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/crushed_OVERLAY.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/crushed_OVERLAY.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/handleMallet.png b/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/handleMallet.png
index c7bb0e6631..9021949091 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/handleMallet.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/handleMallet.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/lens_OVERLAY.png b/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/lens_OVERLAY.png
index 51cb4b73a0..20436f976e 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/lens_OVERLAY.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/lens_OVERLAY.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/rotor.png b/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/rotor.png
index 6c6a16bfe5..14b62252ae 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/rotor.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/rotor.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/toolHeadMallet.png b/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/toolHeadMallet.png
index 58a7522b4b..5ca5a9b6ed 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/toolHeadMallet.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/toolHeadMallet.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/toolHeadSoldering.png b/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/toolHeadSoldering.png
index 41545c8b38..fa9e379c16 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/toolHeadSoldering.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/toolHeadSoldering.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/turbineBlade.png b/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/turbineBlade.png
index a4a6bd742d..c78a1d5570 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/turbineBlade.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/GEM_A/turbineBlade.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/TURBINE_BLADE.png b/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/TURBINE_BLADE.png
index a4a6bd742d..4523be43b9 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/TURBINE_BLADE.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/TURBINE_BLADE.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/crushedPurified.png b/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/crushedPurified.png
index b2d4e2a476..e2edcad772 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/crushedPurified.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/crushedPurified.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/gem.png b/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/gem.png
index dd20d74f2c..13a798cdc3 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/gem.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/gem.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/handleMallet.png b/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/handleMallet.png
index c7bb0e6631..9021949091 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/handleMallet.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/handleMallet.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/lens_OVERLAY.png b/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/lens_OVERLAY.png
index 51cb4b73a0..20436f976e 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/lens_OVERLAY.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/lens_OVERLAY.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/rotor.png b/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/rotor.png
index 6c6a16bfe5..14b62252ae 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/rotor.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/rotor.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/toolHeadMallet.png b/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/toolHeadMallet.png
index 58a7522b4b..5ca5a9b6ed 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/toolHeadMallet.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/toolHeadMallet.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/toolHeadSoldering.png b/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/toolHeadSoldering.png
index 41545c8b38..fa9e379c16 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/toolHeadSoldering.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/toolHeadSoldering.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/turbineBlade.png b/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/turbineBlade.png
index a4a6bd742d..4523be43b9 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/turbineBlade.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/NUCLEAR/turbineBlade.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/REFINED/TURBINE_BLADE.png b/src/resources/assets/gregtech/textures/items/materialicons/REFINED/TURBINE_BLADE.png
index a4a6bd742d..4523be43b9 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/REFINED/TURBINE_BLADE.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/REFINED/TURBINE_BLADE.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/REFINED/crushed.png b/src/resources/assets/gregtech/textures/items/materialicons/REFINED/crushed.png
index a763f6b0df..6f893e05b7 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/REFINED/crushed.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/REFINED/crushed.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/REFINED/crushedPurified.png b/src/resources/assets/gregtech/textures/items/materialicons/REFINED/crushedPurified.png
index b2d4e2a476..12a99bfde1 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/REFINED/crushedPurified.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/REFINED/crushedPurified.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/REFINED/crushed_OVERLAY.png b/src/resources/assets/gregtech/textures/items/materialicons/REFINED/crushed_OVERLAY.png
index a1600cad7c..2a7b9e6d6c 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/REFINED/crushed_OVERLAY.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/REFINED/crushed_OVERLAY.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/REFINED/gem.png b/src/resources/assets/gregtech/textures/items/materialicons/REFINED/gem.png
index dd20d74f2c..721d19529e 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/REFINED/gem.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/REFINED/gem.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/REFINED/handleMallet.png b/src/resources/assets/gregtech/textures/items/materialicons/REFINED/handleMallet.png
index c7bb0e6631..38a7fc65c9 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/REFINED/handleMallet.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/REFINED/handleMallet.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/REFINED/lens_OVERLAY.png b/src/resources/assets/gregtech/textures/items/materialicons/REFINED/lens_OVERLAY.png
index 51cb4b73a0..23b3ac8f76 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/REFINED/lens_OVERLAY.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/REFINED/lens_OVERLAY.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/REFINED/rotor.png b/src/resources/assets/gregtech/textures/items/materialicons/REFINED/rotor.png
index 6c6a16bfe5..751111417a 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/REFINED/rotor.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/REFINED/rotor.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/REFINED/toolHeadMallet.png b/src/resources/assets/gregtech/textures/items/materialicons/REFINED/toolHeadMallet.png
index 58a7522b4b..29bd613285 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/REFINED/toolHeadMallet.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/REFINED/toolHeadMallet.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/REFINED/toolHeadSoldering.png b/src/resources/assets/gregtech/textures/items/materialicons/REFINED/toolHeadSoldering.png
index 41545c8b38..242dbd14fc 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/REFINED/toolHeadSoldering.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/REFINED/toolHeadSoldering.png
Binary files differ
diff --git a/src/resources/assets/gregtech/textures/items/materialicons/REFINED/turbineBlade.png b/src/resources/assets/gregtech/textures/items/materialicons/REFINED/turbineBlade.png
index a4a6bd742d..4523be43b9 100644
--- a/src/resources/assets/gregtech/textures/items/materialicons/REFINED/turbineBlade.png
+++ b/src/resources/assets/gregtech/textures/items/materialicons/REFINED/turbineBlade.png
Binary files differ
diff --git a/src/resources/assets/ic2/textures/items/cell/HydrofluoricAcid.png b/src/resources/assets/ic2/textures/items/cell/HydrofluoricAcid.png
index 96d6d35052..ed907728d4 100644
--- a/src/resources/assets/ic2/textures/items/cell/HydrofluoricAcid.png
+++ b/src/resources/assets/ic2/textures/items/cell/HydrofluoricAcid.png
Binary files differ
diff --git a/src/resources/assets/ic2/textures/items/cell/HydrogenChloride.png b/src/resources/assets/ic2/textures/items/cell/HydrogenChloride.png
index e626196e68..135d293637 100644
--- a/src/resources/assets/ic2/textures/items/cell/HydrogenChloride.png
+++ b/src/resources/assets/ic2/textures/items/cell/HydrogenChloride.png
Binary files differ
diff --git a/src/resources/assets/ic2/textures/items/cell/SulfurDioxide.png b/src/resources/assets/ic2/textures/items/cell/SulfurDioxide.png
index 1cec5369b9..f8bf8329b5 100644
--- a/src/resources/assets/ic2/textures/items/cell/SulfurDioxide.png
+++ b/src/resources/assets/ic2/textures/items/cell/SulfurDioxide.png
Binary files differ
diff --git a/src/resources/assets/ic2/textures/items/cell/SulfuricApatite.png b/src/resources/assets/ic2/textures/items/cell/SulfuricApatite.png
index 54d54ebe95..5c62c379ab 100644
--- a/src/resources/assets/ic2/textures/items/cell/SulfuricApatite.png
+++ b/src/resources/assets/ic2/textures/items/cell/SulfuricApatite.png
Binary files differ
diff --git a/src/resources/assets/ic2/textures/items/cell/SulfuricLithium.png b/src/resources/assets/ic2/textures/items/cell/SulfuricLithium.png
index 49b5236a14..b8d02729ba 100644
--- a/src/resources/assets/ic2/textures/items/cell/SulfuricLithium.png
+++ b/src/resources/assets/ic2/textures/items/cell/SulfuricLithium.png
Binary files differ
diff --git a/src/resources/assets/ic2/textures/items/cell/SulfurousAcid.png b/src/resources/assets/ic2/textures/items/cell/SulfurousAcid.png
index 476b20f301..53f8604e13 100644
--- a/src/resources/assets/ic2/textures/items/cell/SulfurousAcid.png
+++ b/src/resources/assets/ic2/textures/items/cell/SulfurousAcid.png
Binary files differ
diff --git a/src/resources/assets/ic2/textures/items/cell/ThoriumTetraFluoride.png b/src/resources/assets/ic2/textures/items/cell/ThoriumTetraFluoride.png
index b1d4685246..413179e396 100644
--- a/src/resources/assets/ic2/textures/items/cell/ThoriumTetraFluoride.png
+++ b/src/resources/assets/ic2/textures/items/cell/ThoriumTetraFluoride.png
Binary files differ
diff --git a/src/resources/assets/ic2/textures/items/cell/UraniumHexaFluoride.png b/src/resources/assets/ic2/textures/items/cell/UraniumHexaFluoride.png
index 084a54ce64..2fe0c893fe 100644
--- a/src/resources/assets/ic2/textures/items/cell/UraniumHexaFluoride.png
+++ b/src/resources/assets/ic2/textures/items/cell/UraniumHexaFluoride.png
Binary files differ
diff --git a/src/resources/assets/ic2/textures/items/cell/UraniumTetraFluoride.png b/src/resources/assets/ic2/textures/items/cell/UraniumTetraFluoride.png
index 123783fc37..ba2d239308 100644
--- a/src/resources/assets/ic2/textures/items/cell/UraniumTetraFluoride.png
+++ b/src/resources/assets/ic2/textures/items/cell/UraniumTetraFluoride.png
Binary files differ
diff --git a/src/resources/assets/ic2/textures/items/rotors/rotorEnergeticModel.png b/src/resources/assets/ic2/textures/items/rotors/rotorEnergeticModel.png
index fb5f3783ee..045470a2b1 100644
--- a/src/resources/assets/ic2/textures/items/rotors/rotorEnergeticModel.png
+++ b/src/resources/assets/ic2/textures/items/rotors/rotorEnergeticModel.png
Binary files differ
diff --git a/src/resources/assets/ic2/textures/items/rotors/rotorIridiumModel.png b/src/resources/assets/ic2/textures/items/rotors/rotorIridiumModel.png
index c0c4c83baa..b967b4f1dd 100644
--- a/src/resources/assets/ic2/textures/items/rotors/rotorIridiumModel.png
+++ b/src/resources/assets/ic2/textures/items/rotors/rotorIridiumModel.png
Binary files differ
diff --git a/src/resources/assets/ic2/textures/items/rotors/rotorMagnaliumModel.png b/src/resources/assets/ic2/textures/items/rotors/rotorMagnaliumModel.png
index 93d7585647..a638c0389f 100644
--- a/src/resources/assets/ic2/textures/items/rotors/rotorMagnaliumModel.png
+++ b/src/resources/assets/ic2/textures/items/rotors/rotorMagnaliumModel.png
Binary files differ
diff --git a/src/resources/assets/ic2/textures/items/rotors/rotorTungstenSteelModel.png b/src/resources/assets/ic2/textures/items/rotors/rotorTungstenSteelModel.png
index 829dd0575b..7dd2e69f7e 100644
--- a/src/resources/assets/ic2/textures/items/rotors/rotorTungstenSteelModel.png
+++ b/src/resources/assets/ic2/textures/items/rotors/rotorTungstenSteelModel.png
Binary files differ
diff --git a/src/resources/assets/ic2/textures/items/rotors/rotorUltimetModel.png b/src/resources/assets/ic2/textures/items/rotors/rotorUltimetModel.png
index 82f0b29a98..b6c3f36716 100644
--- a/src/resources/assets/ic2/textures/items/rotors/rotorUltimetModel.png
+++ b/src/resources/assets/ic2/textures/items/rotors/rotorUltimetModel.png
Binary files differ
diff --git a/src/resources/assets/ic2/textures/items/rotors/rotorVibrantModel.png b/src/resources/assets/ic2/textures/items/rotors/rotorVibrantModel.png
index 67797b1f79..321de66ff9 100644
--- a/src/resources/assets/ic2/textures/items/rotors/rotorVibrantModel.png
+++ b/src/resources/assets/ic2/textures/items/rotors/rotorVibrantModel.png
Binary files differ
diff --git a/src/resources/assets/miscutils/lang/en_US.lang b/src/resources/assets/miscutils/lang/en_US.lang
index 2dc5fd574e..3276185a7b 100644
--- a/src/resources/assets/miscutils/lang/en_US.lang
+++ b/src/resources/assets/miscutils/lang/en_US.lang
@@ -40,7 +40,7 @@ entity.sickBlaze.name=Infected Zealot
tile.blockToolBuilder.name=GregTech Tool Constructor
//Tools
-item.itemBufferCore.name=Buffer Core
+item.itemBufferCore.name=Energy Core
item.itemStaballoyPickaxe.name=Tunnel Digger
item.itemStaballoyAxe.name=Tree Feller
item.itemSandstoneHammer.name=Cobblestone Breaker
@@ -1732,16 +1732,16 @@ item.SlowBuildingRing.name=§eSlow Building Ring§7
item.itemStaballoyPickaxe.name=Tunnel Digger
item.itemStaballoyAxe.name=Tree Feller
item.itemSandstoneHammer.name=Cobblestone Breaker
-item.itemBufferCore1.name=Buffer Core [ULV].
-item.itemBufferCore2.name=Buffer Core [LV].
-item.itemBufferCore3.name=Buffer Core [MV].
-item.itemBufferCore4.name=Buffer Core [HV].
-item.itemBufferCore5.name=Buffer Core [EV].
-item.itemBufferCore6.name=Buffer Core [IV].
-item.itemBufferCore7.name=Buffer Core [LuV].
-item.itemBufferCore8.name=Buffer Core [ZPM].
-item.itemBufferCore9.name=Buffer Core [UV].
-item.itemBufferCore10.name=Buffer Core [MAX].
+item.itemBufferCore1.name=Energy Core [ULV].
+item.itemBufferCore2.name=Energy Core [LV].
+item.itemBufferCore3.name=Energy Core [MV].
+item.itemBufferCore4.name=Energy Core [HV].
+item.itemBufferCore5.name=Energy Core [EV].
+item.itemBufferCore6.name=Energy Core [IV].
+item.itemBufferCore7.name=Energy Core [LuV].
+item.itemBufferCore8.name=Energy Core [ZPM].
+item.itemBufferCore9.name=Energy Core [UV].
+item.itemBufferCore10.name=Energy Core [MAX].
item.itemPLACEHOLDER_Circuit.name=Quark Manipulator (UV)
item.itembookgt.name=§oThermal Boiler Manual
@@ -2699,6 +2699,7 @@ item.particle.base.Lambda.name=Lambda
item.particle.base.Omega.name=Omega
item.particle.base.Pion.name=Pion
item.particle.base.ETA Meson.name=ETA Meson
+item.particle.base.Unknown.name=Unknown Particle
//Added 12/1/19
diff --git a/src/resources/assets/miscutils/textures/DevCapeHD.png b/src/resources/assets/miscutils/textures/DevCapeHD.png
index d2cee71581..f74bd8c9e3 100644
--- a/src/resources/assets/miscutils/textures/DevCapeHD.png
+++ b/src/resources/assets/miscutils/textures/DevCapeHD.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/Orange.png b/src/resources/assets/miscutils/textures/Orange.png
index 21fc187dd3..9de164d437 100644
--- a/src/resources/assets/miscutils/textures/Orange.png
+++ b/src/resources/assets/miscutils/textures/Orange.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/OrangeHD.png b/src/resources/assets/miscutils/textures/OrangeHD.png
index b7dfa6d79a..ea5e8af8cf 100644
--- a/src/resources/assets/miscutils/textures/OrangeHD.png
+++ b/src/resources/assets/miscutils/textures/OrangeHD.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/PatreonCapeHD.png b/src/resources/assets/miscutils/textures/PatreonCapeHD.png
index 537b672d70..c4ebef82b2 100644
--- a/src/resources/assets/miscutils/textures/PatreonCapeHD.png
+++ b/src/resources/assets/miscutils/textures/PatreonCapeHD.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/TileEntities/DecayablesChest_full.png b/src/resources/assets/miscutils/textures/blocks/TileEntities/DecayablesChest_full.png
index 8fa5ca3ca0..b0c62a7b3d 100644
--- a/src/resources/assets/miscutils/textures/blocks/TileEntities/DecayablesChest_full.png
+++ b/src/resources/assets/miscutils/textures/blocks/TileEntities/DecayablesChest_full.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_FIREBOX_STABALLOY.png b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_FIREBOX_STABALLOY.png
index c4ea9ed594..22c7cd7978 100644
--- a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_FIREBOX_STABALLOY.png
+++ b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_FIREBOX_STABALLOY.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_FLUID_INCOLOY_DS.png b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_FLUID_INCOLOY_DS.png
index 1e9a4514b0..eb8020f1c9 100644
--- a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_FLUID_INCOLOY_DS.png
+++ b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_FLUID_INCOLOY_DS.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_GRISIUM.png b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_GRISIUM.png
index 7724e07436..4a8cbd634c 100644
--- a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_GRISIUM.png
+++ b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_GRISIUM.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_HASTELLOY_N.png b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_HASTELLOY_N.png
index ddb2ea638b..fc2b8c5c89 100644
--- a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_HASTELLOY_N.png
+++ b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_HASTELLOY_N.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_HASTELLOY_X.png b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_HASTELLOY_X.png
index a45e084e54..7753c1920a 100644
--- a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_HASTELLOY_X.png
+++ b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_HASTELLOY_X.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_INCOLOY_020.png b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_INCOLOY_020.png
index 337c1337b0..373cccb65d 100644
--- a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_INCOLOY_020.png
+++ b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_INCOLOY_020.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_INCOLOY_DS.png b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_INCOLOY_DS.png
index 5c633c843a..52e1a73063 100644
--- a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_INCOLOY_DS.png
+++ b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_INCOLOY_DS.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_INCOLOY_MA956.png b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_INCOLOY_MA956.png
index 9ff63c86b9..ab3a76d006 100644
--- a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_INCOLOY_MA956.png
+++ b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_INCOLOY_MA956.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_MARAGINGSTEEL.png b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_MARAGINGSTEEL.png
index d642f0401f..75f21218d9 100644
--- a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_MARAGINGSTEEL.png
+++ b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_MARAGINGSTEEL.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_POTIN.png b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_POTIN.png
index 3402226b64..05f1cc1d42 100644
--- a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_POTIN.png
+++ b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_POTIN.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_STELLITE.png b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_STELLITE.png
index 615fa9885e..9ba5c0e255 100644
--- a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_STELLITE.png
+++ b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_STELLITE.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_TALONITE.png b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_TALONITE.png
index dbd0d6242e..4b707d2ca2 100644
--- a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_TALONITE.png
+++ b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_TALONITE.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_TANTALLOY61.png b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_TANTALLOY61.png
index 04e8ad5898..64b28d0233 100644
--- a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_TANTALLOY61.png
+++ b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_TANTALLOY61.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_TUMBAGA.png b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_TUMBAGA.png
index f2f82b6838..1d71c95ea4 100644
--- a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_TUMBAGA.png
+++ b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_TUMBAGA.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_ZERON100.png b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_ZERON100.png
index 87226e7554..d6cb89d67d 100644
--- a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_ZERON100.png
+++ b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_ZERON100.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_ZIRCONIUM_CARBIDE.png b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_ZIRCONIUM_CARBIDE.png
index f091397be6..6c45ff313f 100644
--- a/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_ZIRCONIUM_CARBIDE.png
+++ b/src/resources/assets/miscutils/textures/blocks/TileEntities/MACHINE_CASING_STABLE_ZIRCONIUM_CARBIDE.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/TileEntities/STEAM_TURBINE_SIDE_ACTIVE.png b/src/resources/assets/miscutils/textures/blocks/TileEntities/STEAM_TURBINE_SIDE_ACTIVE.png
index 79d89094a5..8ae37e61d4 100644
--- a/src/resources/assets/miscutils/textures/blocks/TileEntities/STEAM_TURBINE_SIDE_ACTIVE.png
+++ b/src/resources/assets/miscutils/textures/blocks/TileEntities/STEAM_TURBINE_SIDE_ACTIVE.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/TileEntities/_PlaceHolder.png b/src/resources/assets/miscutils/textures/blocks/TileEntities/_PlaceHolder.png
index 5af4f99923..9dc63e146e 100644
--- a/src/resources/assets/miscutils/textures/blocks/TileEntities/_PlaceHolder.png
+++ b/src/resources/assets/miscutils/textures/blocks/TileEntities/_PlaceHolder.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/TileEntities/adv_machine_dimensional_cover_blue.png b/src/resources/assets/miscutils/textures/blocks/TileEntities/adv_machine_dimensional_cover_blue.png
index 6582a6306a..ce051d468c 100644
--- a/src/resources/assets/miscutils/textures/blocks/TileEntities/adv_machine_dimensional_cover_blue.png
+++ b/src/resources/assets/miscutils/textures/blocks/TileEntities/adv_machine_dimensional_cover_blue.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/TileEntities/adv_machine_dimensional_cover_orange.png b/src/resources/assets/miscutils/textures/blocks/TileEntities/adv_machine_dimensional_cover_orange.png
index 6609ca0044..9d454b17d4 100644
--- a/src/resources/assets/miscutils/textures/blocks/TileEntities/adv_machine_dimensional_cover_orange.png
+++ b/src/resources/assets/miscutils/textures/blocks/TileEntities/adv_machine_dimensional_cover_orange.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/TileEntities/adv_machine_matterfab_active_animated.png b/src/resources/assets/miscutils/textures/blocks/TileEntities/adv_machine_matterfab_active_animated.png
index 801481e0be..69330145ba 100644
--- a/src/resources/assets/miscutils/textures/blocks/TileEntities/adv_machine_matterfab_active_animated.png
+++ b/src/resources/assets/miscutils/textures/blocks/TileEntities/adv_machine_matterfab_active_animated.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/TileEntities/adv_machine_matterfab_animated.png b/src/resources/assets/miscutils/textures/blocks/TileEntities/adv_machine_matterfab_animated.png
index 96716ec7e9..2af5057b3d 100644
--- a/src/resources/assets/miscutils/textures/blocks/TileEntities/adv_machine_matterfab_animated.png
+++ b/src/resources/assets/miscutils/textures/blocks/TileEntities/adv_machine_matterfab_animated.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/TileEntities/audio_out_active.png b/src/resources/assets/miscutils/textures/blocks/TileEntities/audio_out_active.png
index 4f5708d368..600def1e1b 100644
--- a/src/resources/assets/miscutils/textures/blocks/TileEntities/audio_out_active.png
+++ b/src/resources/assets/miscutils/textures/blocks/TileEntities/audio_out_active.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/TileEntities/log_acacia_top.png b/src/resources/assets/miscutils/textures/blocks/TileEntities/log_acacia_top.png
index 3d44878087..68b4e3e9c2 100644
--- a/src/resources/assets/miscutils/textures/blocks/TileEntities/log_acacia_top.png
+++ b/src/resources/assets/miscutils/textures/blocks/TileEntities/log_acacia_top.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/TileEntities/machine_top_dieselmotor_active.png b/src/resources/assets/miscutils/textures/blocks/TileEntities/machine_top_dieselmotor_active.png
index e3b47e5ca7..bf1cb0e6a5 100644
--- a/src/resources/assets/miscutils/textures/blocks/TileEntities/machine_top_dieselmotor_active.png
+++ b/src/resources/assets/miscutils/textures/blocks/TileEntities/machine_top_dieselmotor_active.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/TileEntities/machine_top_vent_rotating.png b/src/resources/assets/miscutils/textures/blocks/TileEntities/machine_top_vent_rotating.png
index 469dff5aa0..3256b41734 100644
--- a/src/resources/assets/miscutils/textures/blocks/TileEntities/machine_top_vent_rotating.png
+++ b/src/resources/assets/miscutils/textures/blocks/TileEntities/machine_top_vent_rotating.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/TileEntities/machine_top_vent_rotating_fast.png b/src/resources/assets/miscutils/textures/blocks/TileEntities/machine_top_vent_rotating_fast.png
index 469dff5aa0..3256b41734 100644
--- a/src/resources/assets/miscutils/textures/blocks/TileEntities/machine_top_vent_rotating_fast.png
+++ b/src/resources/assets/miscutils/textures/blocks/TileEntities/machine_top_vent_rotating_fast.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/blockAntiGrief.png b/src/resources/assets/miscutils/textures/blocks/blockAntiGrief.png
index f54b073116..4168d9d934 100644
--- a/src/resources/assets/miscutils/textures/blocks/blockAntiGrief.png
+++ b/src/resources/assets/miscutils/textures/blocks/blockAntiGrief.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/blockBlock.png b/src/resources/assets/miscutils/textures/blocks/blockBlock.png
index 03ebe05688..1276f5fa24 100644
--- a/src/resources/assets/miscutils/textures/blocks/blockBlock.png
+++ b/src/resources/assets/miscutils/textures/blocks/blockBlock.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/blockBloodSteel.png b/src/resources/assets/miscutils/textures/blocks/blockBloodSteel.png
index 6ce0c8615f..d23f8721e4 100644
--- a/src/resources/assets/miscutils/textures/blocks/blockBloodSteel.png
+++ b/src/resources/assets/miscutils/textures/blocks/blockBloodSteel.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/blockDefault.png b/src/resources/assets/miscutils/textures/blocks/blockDefault.png
index f90f75723e..84a6b68e0e 100644
--- a/src/resources/assets/miscutils/textures/blocks/blockDefault.png
+++ b/src/resources/assets/miscutils/textures/blocks/blockDefault.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/blockFrameGt.png b/src/resources/assets/miscutils/textures/blocks/blockFrameGt.png
index d93c52c24c..56a56cf752 100644
--- a/src/resources/assets/miscutils/textures/blocks/blockFrameGt.png
+++ b/src/resources/assets/miscutils/textures/blocks/blockFrameGt.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/blockNuclearFueledHeliumGenerator.png b/src/resources/assets/miscutils/textures/blocks/blockNuclearFueledHeliumGenerator.png
index 8ec28aeb6c..f5f51c7175 100644
--- a/src/resources/assets/miscutils/textures/blocks/blockNuclearFueledHeliumGenerator.png
+++ b/src/resources/assets/miscutils/textures/blocks/blockNuclearFueledHeliumGenerator.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/blockStaballoy.png b/src/resources/assets/miscutils/textures/blocks/blockStaballoy.png
index f90f75723e..84a6b68e0e 100644
--- a/src/resources/assets/miscutils/textures/blocks/blockStaballoy.png
+++ b/src/resources/assets/miscutils/textures/blocks/blockStaballoy.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/clear_flow.png b/src/resources/assets/miscutils/textures/blocks/clear_flow.png
index f90f75723e..84a6b68e0e 100644
--- a/src/resources/assets/miscutils/textures/blocks/clear_flow.png
+++ b/src/resources/assets/miscutils/textures/blocks/clear_flow.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/clear_still.png b/src/resources/assets/miscutils/textures/blocks/clear_still.png
index f90f75723e..84a6b68e0e 100644
--- a/src/resources/assets/miscutils/textures/blocks/clear_still.png
+++ b/src/resources/assets/miscutils/textures/blocks/clear_still.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/compressed/obsidian3.png b/src/resources/assets/miscutils/textures/blocks/compressed/obsidian3.png
index 1241b24fad..0cf85541e4 100644
--- a/src/resources/assets/miscutils/textures/blocks/compressed/obsidian3.png
+++ b/src/resources/assets/miscutils/textures/blocks/compressed/obsidian3.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/compressed/obsidian4.png b/src/resources/assets/miscutils/textures/blocks/compressed/obsidian4.png
index 3d07d55d0c..4d9c3d2f67 100644
--- a/src/resources/assets/miscutils/textures/blocks/compressed/obsidian4.png
+++ b/src/resources/assets/miscutils/textures/blocks/compressed/obsidian4.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/compressed/obsidian5.png b/src/resources/assets/miscutils/textures/blocks/compressed/obsidian5.png
index 5f83804605..149ae598d0 100644
--- a/src/resources/assets/miscutils/textures/blocks/compressed/obsidian5.png
+++ b/src/resources/assets/miscutils/textures/blocks/compressed/obsidian5.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Cryotheum_Flow.png b/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Cryotheum_Flow.png
index 75fdf154e6..6ea5b4c515 100644
--- a/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Cryotheum_Flow.png
+++ b/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Cryotheum_Flow.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Cryotheum_Still.png b/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Cryotheum_Still.png
index 113b14ba51..7f1f2aa712 100644
--- a/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Cryotheum_Still.png
+++ b/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Cryotheum_Still.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Ender_Flow.png b/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Ender_Flow.png
index 620646075d..b24939367a 100644
--- a/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Ender_Flow.png
+++ b/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Ender_Flow.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Ender_Still.png b/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Ender_Still.png
index b0c6449d4e..3fb18d9c00 100644
--- a/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Ender_Still.png
+++ b/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Ender_Still.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Pyrotheum_Flow.png b/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Pyrotheum_Flow.png
index 4ec6c5636c..fa4fa813bf 100644
--- a/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Pyrotheum_Flow.png
+++ b/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Pyrotheum_Flow.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Pyrotheum_Still.png b/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Pyrotheum_Still.png
index c72b26c547..00355135df 100644
--- a/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Pyrotheum_Still.png
+++ b/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Pyrotheum_Still.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Sludge_Flow.png b/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Sludge_Flow.png
index 51f03723c6..50414d57db 100644
--- a/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Sludge_Flow.png
+++ b/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Sludge_Flow.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Sludge_Still.png b/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Sludge_Still.png
index 9ab2323515..edf0166265 100644
--- a/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Sludge_Still.png
+++ b/src/resources/assets/miscutils/textures/blocks/fluid/Fluid_Sludge_Still.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.cryotheum.png b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.cryotheum.png
index 113b14ba51..b51346219b 100644
--- a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.cryotheum.png
+++ b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.cryotheum.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.ender.png b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.ender.png
index b0c6449d4e..3fb18d9c00 100644
--- a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.ender.png
+++ b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.ender.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.fluid.autogenerated.png b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.fluid.autogenerated.png
index 9a4148f6b6..512df7ce04 100644
--- a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.fluid.autogenerated.png
+++ b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.fluid.autogenerated.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.hydrofluoricacid.png b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.hydrofluoricacid.png
index c2907e3c36..61d77a51d3 100644
--- a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.hydrofluoricacid.png
+++ b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.hydrofluoricacid.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.hydrogenchloride.png b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.hydrogenchloride.png
index 3ce72d3242..f79564ea36 100644
--- a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.hydrogenchloride.png
+++ b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.hydrogenchloride.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.jackdaniels.png b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.jackdaniels.png
index ef8b07e15a..a752755254 100644
--- a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.jackdaniels.png
+++ b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.jackdaniels.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.lithiumhydroxide.png b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.lithiumhydroxide.png
index 7e3566d122..251206d195 100644
--- a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.lithiumhydroxide.png
+++ b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.lithiumhydroxide.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.molten.autogenerated.new.1.png b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.molten.autogenerated.new.1.png
index 96f8dff23e..6e44e97212 100644
--- a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.molten.autogenerated.new.1.png
+++ b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.molten.autogenerated.new.1.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.molten.autogenerated.old.png b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.molten.autogenerated.old.png
index 9a4148f6b6..512df7ce04 100644
--- a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.molten.autogenerated.old.png
+++ b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.molten.autogenerated.old.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.molten.autogenerated.png b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.molten.autogenerated.png
index 30d83831ec..7c5ffd0c77 100644
--- a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.molten.autogenerated.png
+++ b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.molten.autogenerated.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.plasma.autogenerated.png b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.plasma.autogenerated.png
index 4acabc510c..f0265d8ad2 100644
--- a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.plasma.autogenerated.png
+++ b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.plasma.autogenerated.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.pyrotheum.png b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.pyrotheum.png
index c72b26c547..00355135df 100644
--- a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.pyrotheum.png
+++ b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.pyrotheum.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.sulfurdioxide.png b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.sulfurdioxide.png
index 8f7e2fa494..2ff3fb6e7b 100644
--- a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.sulfurdioxide.png
+++ b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.sulfurdioxide.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.sulfuricapatite.png b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.sulfuricapatite.png
index d562db4aa4..902015b8e1 100644
--- a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.sulfuricapatite.png
+++ b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.sulfuricapatite.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.sulfuriclithium.png b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.sulfuriclithium.png
index 56de01ef97..fee5f03cd5 100644
--- a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.sulfuriclithium.png
+++ b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.sulfuriclithium.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.sulfurousacid.png b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.sulfurousacid.png
index c8bdbc3f1e..73fa814eb5 100644
--- a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.sulfurousacid.png
+++ b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.sulfurousacid.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.thoriumhexafluoride.png b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.thoriumhexafluoride.png
index 415c751386..63e9189c45 100644
--- a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.thoriumhexafluoride.png
+++ b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.thoriumhexafluoride.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.thoriumtetrafluoride.png b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.thoriumtetrafluoride.png
index b12175a93f..05d4c69e1a 100644
--- a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.thoriumtetrafluoride.png
+++ b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.thoriumtetrafluoride.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.uraniumhexafluoride.png b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.uraniumhexafluoride.png
index 02befdf375..90cbef3417 100644
--- a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.uraniumhexafluoride.png
+++ b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.uraniumhexafluoride.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.uraniumtetrafluoride.png b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.uraniumtetrafluoride.png
index 02befdf375..90cbef3417 100644
--- a/src/resources/assets/miscutils/textures/blocks/fluids/fluid.uraniumtetrafluoride.png
+++ b/src/resources/assets/miscutils/textures/blocks/fluids/fluid.uraniumtetrafluoride.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/hellfire/blockHellFire_layer_0.png b/src/resources/assets/miscutils/textures/blocks/hellfire/blockHellFire_layer_0.png
index 8b3bb44ce0..d4e45d6adf 100644
--- a/src/resources/assets/miscutils/textures/blocks/hellfire/blockHellFire_layer_0.png
+++ b/src/resources/assets/miscutils/textures/blocks/hellfire/blockHellFire_layer_0.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/hellfire/blockHellFire_layer_1.png b/src/resources/assets/miscutils/textures/blocks/hellfire/blockHellFire_layer_1.png
index 6377ff8eb4..739abd1090 100644
--- a/src/resources/assets/miscutils/textures/blocks/hellfire/blockHellFire_layer_1.png
+++ b/src/resources/assets/miscutils/textures/blocks/hellfire/blockHellFire_layer_1.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_HP_ACTIVE_2.png b/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_HP_ACTIVE_2.png
index 0f2f90201b..d8880393ce 100644
--- a/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_HP_ACTIVE_2.png
+++ b/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_HP_ACTIVE_2.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_HP_ACTIVE_4.png b/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_HP_ACTIVE_4.png
index 5690b9b72a..b79fa87cf6 100644
--- a/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_HP_ACTIVE_4.png
+++ b/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_HP_ACTIVE_4.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_HP_ACTIVE_6.png b/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_HP_ACTIVE_6.png
index 403bd112c7..150c1312c9 100644
--- a/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_HP_ACTIVE_6.png
+++ b/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_HP_ACTIVE_6.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_HP_ACTIVE_8.png b/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_HP_ACTIVE_8.png
index d45103eade..c62b04a499 100644
--- a/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_HP_ACTIVE_8.png
+++ b/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_HP_ACTIVE_8.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_1.png b/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_1.png
index 1554102eda..b0f38da9c9 100644
--- a/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_1.png
+++ b/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_1.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_2.png b/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_2.png
index b47579c346..f614e41d52 100644
--- a/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_2.png
+++ b/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_2.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_3.png b/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_3.png
index 2d703ee0dd..c011a999de 100644
--- a/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_3.png
+++ b/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_3.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_4.png b/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_4.png
index c4911816f8..21a2847a7c 100644
--- a/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_4.png
+++ b/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_4.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_6.png b/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_6.png
index 8f5aeb87c0..98bf3224ce 100644
--- a/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_6.png
+++ b/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_6.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_7.png b/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_7.png
index 3feeb71c81..cad7674ce5 100644
--- a/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_7.png
+++ b/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_7.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_8.png b/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_8.png
index fef556c0ff..a5501d12d2 100644
--- a/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_8.png
+++ b/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_8.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_9.png b/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_9.png
index b413175061..b294af5b63 100644
--- a/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_9.png
+++ b/src/resources/assets/miscutils/textures/blocks/iconsets/BigTurbine/LARGE_TURBINE_LP_ACTIVE_9.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/iconsets/OVERLAY_FRONT_ADVANCED_MULTIBLOCK_ANIMATED.png b/src/resources/assets/miscutils/textures/blocks/iconsets/OVERLAY_FRONT_ADVANCED_MULTIBLOCK_ANIMATED.png
index 946f4152db..1fd61ede58 100644
--- a/src/resources/assets/miscutils/textures/blocks/iconsets/OVERLAY_FRONT_ADVANCED_MULTIBLOCK_ANIMATED.png
+++ b/src/resources/assets/miscutils/textures/blocks/iconsets/OVERLAY_FRONT_ADVANCED_MULTIBLOCK_ANIMATED.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/iconsets/OVERLAY_FRONT_ADVANCED_MULTIBLOCK_ANIMATED_ACTIVE.png b/src/resources/assets/miscutils/textures/blocks/iconsets/OVERLAY_FRONT_ADVANCED_MULTIBLOCK_ANIMATED_ACTIVE.png
index 7d480dc151..5433ee1ff2 100644
--- a/src/resources/assets/miscutils/textures/blocks/iconsets/OVERLAY_FRONT_ADVANCED_MULTIBLOCK_ANIMATED_ACTIVE.png
+++ b/src/resources/assets/miscutils/textures/blocks/iconsets/OVERLAY_FRONT_ADVANCED_MULTIBLOCK_ANIMATED_ACTIVE.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/iconsets/OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ANIMATED.png b/src/resources/assets/miscutils/textures/blocks/iconsets/OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ANIMATED.png
index c3ae39d737..b7b2bed6de 100644
--- a/src/resources/assets/miscutils/textures/blocks/iconsets/OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ANIMATED.png
+++ b/src/resources/assets/miscutils/textures/blocks/iconsets/OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ANIMATED.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/iconsets/OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ANIMATED_ACTIVE.png b/src/resources/assets/miscutils/textures/blocks/iconsets/OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ANIMATED_ACTIVE.png
index ed4adf5e6c..8c93e83d2d 100644
--- a/src/resources/assets/miscutils/textures/blocks/iconsets/OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ANIMATED_ACTIVE.png
+++ b/src/resources/assets/miscutils/textures/blocks/iconsets/OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ANIMATED_ACTIVE.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/iconsets/OVERLAY_OVERFLOW_VALVE.png b/src/resources/assets/miscutils/textures/blocks/iconsets/OVERLAY_OVERFLOW_VALVE.png
index 0f829aa8d9..edd4efbba9 100644
--- a/src/resources/assets/miscutils/textures/blocks/iconsets/OVERLAY_OVERFLOW_VALVE.png
+++ b/src/resources/assets/miscutils/textures/blocks/iconsets/OVERLAY_OVERFLOW_VALVE.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/mash_flow.png b/src/resources/assets/miscutils/textures/blocks/mash_flow.png
index f90f75723e..f155520eae 100644
--- a/src/resources/assets/miscutils/textures/blocks/mash_flow.png
+++ b/src/resources/assets/miscutils/textures/blocks/mash_flow.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/mash_still.png b/src/resources/assets/miscutils/textures/blocks/mash_still.png
index f90f75723e..f155520eae 100644
--- a/src/resources/assets/miscutils/textures/blocks/mash_still.png
+++ b/src/resources/assets/miscutils/textures/blocks/mash_still.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_MAGIC_A.png b/src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_MAGIC_A.png
index 7bd5602292..1f53895490 100644
--- a/src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_MAGIC_A.png
+++ b/src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_MAGIC_A.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_METAL_PANEL_F.png b/src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_METAL_PANEL_F.png
index f7c77011cc..548c0ec283 100644
--- a/src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_METAL_PANEL_F.png
+++ b/src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_METAL_PANEL_F.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_ORGANIC_PANEL_A.png b/src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_ORGANIC_PANEL_A.png
index c3de578f6f..44bc5362ac 100644
--- a/src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_ORGANIC_PANEL_A.png
+++ b/src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_ORGANIC_PANEL_A.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_ORGANIC_PANEL_A_GLOWING.png b/src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_ORGANIC_PANEL_A_GLOWING.png
index f74f752743..ed8ad55ba2 100644
--- a/src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_ORGANIC_PANEL_A_GLOWING.png
+++ b/src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_ORGANIC_PANEL_A_GLOWING.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_STONE_BIRD_A_LEFT.png b/src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_STONE_BIRD_A_LEFT.png
index f060f2ebd1..e3a652f3f9 100644
--- a/src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_STONE_BIRD_A_LEFT.png
+++ b/src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_STONE_BIRD_A_LEFT.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_STONE_BIRD_A_RIGHT.png b/src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_STONE_BIRD_A_RIGHT.png
index dca52865e6..d759a163a4 100644
--- a/src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_STONE_BIRD_A_RIGHT.png
+++ b/src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_STONE_BIRD_A_RIGHT.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_STONE_TABLET_A.png b/src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_STONE_TABLET_A.png
index 80436ba52e..a5d73f716d 100644
--- a/src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_STONE_TABLET_A.png
+++ b/src/resources/assets/miscutils/textures/blocks/metro/TEXTURE_STONE_TABLET_A.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/rum_mature_flow.png b/src/resources/assets/miscutils/textures/blocks/rum_mature_flow.png
index f90f75723e..f155520eae 100644
--- a/src/resources/assets/miscutils/textures/blocks/rum_mature_flow.png
+++ b/src/resources/assets/miscutils/textures/blocks/rum_mature_flow.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/rum_mature_still.png b/src/resources/assets/miscutils/textures/blocks/rum_mature_still.png
index f90f75723e..f155520eae 100644
--- a/src/resources/assets/miscutils/textures/blocks/rum_mature_still.png
+++ b/src/resources/assets/miscutils/textures/blocks/rum_mature_still.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/rum_semi_mature_flow.png b/src/resources/assets/miscutils/textures/blocks/rum_semi_mature_flow.png
index f90f75723e..f155520eae 100644
--- a/src/resources/assets/miscutils/textures/blocks/rum_semi_mature_flow.png
+++ b/src/resources/assets/miscutils/textures/blocks/rum_semi_mature_flow.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/rum_semi_mature_still.png b/src/resources/assets/miscutils/textures/blocks/rum_semi_mature_still.png
index f90f75723e..f155520eae 100644
--- a/src/resources/assets/miscutils/textures/blocks/rum_semi_mature_still.png
+++ b/src/resources/assets/miscutils/textures/blocks/rum_semi_mature_still.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/trees/leaves/leaves_rainforest.png b/src/resources/assets/miscutils/textures/blocks/trees/leaves/leaves_rainforest.png
index a6773aff74..ddccb0e4fa 100644
--- a/src/resources/assets/miscutils/textures/blocks/trees/leaves/leaves_rainforest.png
+++ b/src/resources/assets/miscutils/textures/blocks/trees/leaves/leaves_rainforest.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/trees/leaves/leaves_rainforest_opaque.png b/src/resources/assets/miscutils/textures/blocks/trees/leaves/leaves_rainforest_opaque.png
index e91ed32a45..96e756c22c 100644
--- a/src/resources/assets/miscutils/textures/blocks/trees/leaves/leaves_rainforest_opaque.png
+++ b/src/resources/assets/miscutils/textures/blocks/trees/leaves/leaves_rainforest_opaque.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/blocks/trees/logs/log_rainforest.png b/src/resources/assets/miscutils/textures/blocks/trees/logs/log_rainforest.png
index d4da03e602..3ff2ee2021 100644
--- a/src/resources/assets/miscutils/textures/blocks/trees/logs/log_rainforest.png
+++ b/src/resources/assets/miscutils/textures/blocks/trees/logs/log_rainforest.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/entity/australia/boar.png b/src/resources/assets/miscutils/textures/entity/australia/boar.png
index d231498857..147fc906fc 100644
--- a/src/resources/assets/miscutils/textures/entity/australia/boar.png
+++ b/src/resources/assets/miscutils/textures/entity/australia/boar.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/entity/australia/bush_spider.png b/src/resources/assets/miscutils/textures/entity/australia/bush_spider.png
index 097c9b068a..5e05105be5 100644
--- a/src/resources/assets/miscutils/textures/entity/australia/bush_spider.png
+++ b/src/resources/assets/miscutils/textures/entity/australia/bush_spider.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/entity/australia/dingo/dingo.png b/src/resources/assets/miscutils/textures/entity/australia/dingo/dingo.png
index f37ef81613..3fa3b44ea7 100644
--- a/src/resources/assets/miscutils/textures/entity/australia/dingo/dingo.png
+++ b/src/resources/assets/miscutils/textures/entity/australia/dingo/dingo.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/entity/australia/dingo/dingo_angry.png b/src/resources/assets/miscutils/textures/entity/australia/dingo/dingo_angry.png
index 7891ce91f4..9b2912aba5 100644
--- a/src/resources/assets/miscutils/textures/entity/australia/dingo/dingo_angry.png
+++ b/src/resources/assets/miscutils/textures/entity/australia/dingo/dingo_angry.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/entity/australia/dingo/dingo_collar.png b/src/resources/assets/miscutils/textures/entity/australia/dingo/dingo_collar.png
index ae1c920419..6e37c611cb 100644
--- a/src/resources/assets/miscutils/textures/entity/australia/dingo/dingo_collar.png
+++ b/src/resources/assets/miscutils/textures/entity/australia/dingo/dingo_collar.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/entity/australia/dingo/dingo_tame.png b/src/resources/assets/miscutils/textures/entity/australia/dingo/dingo_tame.png
index f1236d2cd0..cd539c5773 100644
--- a/src/resources/assets/miscutils/textures/entity/australia/dingo/dingo_tame.png
+++ b/src/resources/assets/miscutils/textures/entity/australia/dingo/dingo_tame.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/entity/australia/octopus.png b/src/resources/assets/miscutils/textures/entity/australia/octopus.png
index 765835a6fe..8ce98b003c 100644
--- a/src/resources/assets/miscutils/textures/entity/australia/octopus.png
+++ b/src/resources/assets/miscutils/textures/entity/australia/octopus.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/entity/sickBlaze.png b/src/resources/assets/miscutils/textures/entity/sickBlaze.png
index f5981a42d9..d2b36d633d 100644
--- a/src/resources/assets/miscutils/textures/entity/sickBlaze.png
+++ b/src/resources/assets/miscutils/textures/entity/sickBlaze.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/entity/villager/aboriginal.png b/src/resources/assets/miscutils/textures/entity/villager/aboriginal.png
index b348e781ed..cd0474869f 100644
--- a/src/resources/assets/miscutils/textures/entity/villager/aboriginal.png
+++ b/src/resources/assets/miscutils/textures/entity/villager/aboriginal.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/entity/villager/banker.png b/src/resources/assets/miscutils/textures/entity/villager/banker.png
index 22c8bd7dac..afe65842cb 100644
--- a/src/resources/assets/miscutils/textures/entity/villager/banker.png
+++ b/src/resources/assets/miscutils/textures/entity/villager/banker.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/entity/villager/technician.png b/src/resources/assets/miscutils/textures/entity/villager/technician.png
index a5668f719a..3df6503f9e 100644
--- a/src/resources/assets/miscutils/textures/entity/villager/technician.png
+++ b/src/resources/assets/miscutils/textures/entity/villager/technician.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/entity/villager/trader.png b/src/resources/assets/miscutils/textures/entity/villager/trader.png
index 0a2f362429..f21c4eea6c 100644
--- a/src/resources/assets/miscutils/textures/entity/villager/trader.png
+++ b/src/resources/assets/miscutils/textures/entity/villager/trader.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/enviroment/moon_phases.png b/src/resources/assets/miscutils/textures/enviroment/moon_phases.png
index 67cd1962a0..9131d0f58c 100644
--- a/src/resources/assets/miscutils/textures/enviroment/moon_phases.png
+++ b/src/resources/assets/miscutils/textures/enviroment/moon_phases.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/enviroment/snow.png b/src/resources/assets/miscutils/textures/enviroment/snow.png
index b233e1c0fa..a91935ee0e 100644
--- a/src/resources/assets/miscutils/textures/enviroment/snow.png
+++ b/src/resources/assets/miscutils/textures/enviroment/snow.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/enviroment/sun.png b/src/resources/assets/miscutils/textures/enviroment/sun.png
index 61bc432f19..6c25e9c637 100644
--- a/src/resources/assets/miscutils/textures/enviroment/sun.png
+++ b/src/resources/assets/miscutils/textures/enviroment/sun.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/AdvancedBoiler.png b/src/resources/assets/miscutils/textures/gui/AdvancedBoiler.png
index 9b673f8a33..e678d0fdb2 100644
--- a/src/resources/assets/miscutils/textures/gui/AdvancedBoiler.png
+++ b/src/resources/assets/miscutils/textures/gui/AdvancedBoiler.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/AdvancedCraftingTable.png b/src/resources/assets/miscutils/textures/gui/AdvancedCraftingTable.png
index 3d5cc1591e..1b2314c488 100644
--- a/src/resources/assets/miscutils/textures/gui/AdvancedCraftingTable.png
+++ b/src/resources/assets/miscutils/textures/gui/AdvancedCraftingTable.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/BronzeCraftingTable.png b/src/resources/assets/miscutils/textures/gui/BronzeCraftingTable.png
index fa432b2805..ea9319a50e 100644
--- a/src/resources/assets/miscutils/textures/gui/BronzeCraftingTable.png
+++ b/src/resources/assets/miscutils/textures/gui/BronzeCraftingTable.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/CircuitProgrammer.png b/src/resources/assets/miscutils/textures/gui/CircuitProgrammer.png
index d9f9c8b95a..8f77124bbb 100644
--- a/src/resources/assets/miscutils/textures/gui/CircuitProgrammer.png
+++ b/src/resources/assets/miscutils/textures/gui/CircuitProgrammer.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/CokeOven.png b/src/resources/assets/miscutils/textures/gui/CokeOven.png
index 1ba910c262..c094d9c319 100644
--- a/src/resources/assets/miscutils/textures/gui/CokeOven.png
+++ b/src/resources/assets/miscutils/textures/gui/CokeOven.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/FishTrap.png b/src/resources/assets/miscutils/textures/gui/FishTrap.png
index 0c8318cd01..35423fffb9 100644
--- a/src/resources/assets/miscutils/textures/gui/FishTrap.png
+++ b/src/resources/assets/miscutils/textures/gui/FishTrap.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/Generic3By3.png b/src/resources/assets/miscutils/textures/gui/Generic3By3.png
index 3998db0137..1d8c806693 100644
--- a/src/resources/assets/miscutils/textures/gui/Generic3By3.png
+++ b/src/resources/assets/miscutils/textures/gui/Generic3By3.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/IndustrialCentrifuge.png b/src/resources/assets/miscutils/textures/gui/IndustrialCentrifuge.png
index 8fc8e8b319..95ec56941d 100644
--- a/src/resources/assets/miscutils/textures/gui/IndustrialCentrifuge.png
+++ b/src/resources/assets/miscutils/textures/gui/IndustrialCentrifuge.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/IndustrialCuttingMachine.png b/src/resources/assets/miscutils/textures/gui/IndustrialCuttingMachine.png
index 941e2e89de..a555f14f11 100644
--- a/src/resources/assets/miscutils/textures/gui/IndustrialCuttingMachine.png
+++ b/src/resources/assets/miscutils/textures/gui/IndustrialCuttingMachine.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/IndustrialElectrolyzer.png b/src/resources/assets/miscutils/textures/gui/IndustrialElectrolyzer.png
index acc8ba88fa..ec8d7eb118 100644
--- a/src/resources/assets/miscutils/textures/gui/IndustrialElectrolyzer.png
+++ b/src/resources/assets/miscutils/textures/gui/IndustrialElectrolyzer.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/IndustrialExtruder.png b/src/resources/assets/miscutils/textures/gui/IndustrialExtruder.png
index 941e2e89de..a555f14f11 100644
--- a/src/resources/assets/miscutils/textures/gui/IndustrialExtruder.png
+++ b/src/resources/assets/miscutils/textures/gui/IndustrialExtruder.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/IndustrialMixer.png b/src/resources/assets/miscutils/textures/gui/IndustrialMixer.png
index eabc89c7a0..1c24391f02 100644
--- a/src/resources/assets/miscutils/textures/gui/IndustrialMixer.png
+++ b/src/resources/assets/miscutils/textures/gui/IndustrialMixer.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/IndustrialSifter.png b/src/resources/assets/miscutils/textures/gui/IndustrialSifter.png
index 2463fc650c..34641e3a09 100644
--- a/src/resources/assets/miscutils/textures/gui/IndustrialSifter.png
+++ b/src/resources/assets/miscutils/textures/gui/IndustrialSifter.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/IndustrialThermalCentrifuge.png b/src/resources/assets/miscutils/textures/gui/IndustrialThermalCentrifuge.png
index b866a70c3a..d75e2b6ae6 100644
--- a/src/resources/assets/miscutils/textures/gui/IndustrialThermalCentrifuge.png
+++ b/src/resources/assets/miscutils/textures/gui/IndustrialThermalCentrifuge.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/IndustrialWashPlant.png b/src/resources/assets/miscutils/textures/gui/IndustrialWashPlant.png
index 73469d9511..4475138f7b 100644
--- a/src/resources/assets/miscutils/textures/gui/IndustrialWashPlant.png
+++ b/src/resources/assets/miscutils/textures/gui/IndustrialWashPlant.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/IndustrialWireFactory.png b/src/resources/assets/miscutils/textures/gui/IndustrialWireFactory.png
index c64d6b1de2..dd0c5ce5e7 100644
--- a/src/resources/assets/miscutils/textures/gui/IndustrialWireFactory.png
+++ b/src/resources/assets/miscutils/textures/gui/IndustrialWireFactory.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/IronBlastFurnace.png b/src/resources/assets/miscutils/textures/gui/IronBlastFurnace.png
index 3eca66e9f8..c2ccbba96b 100644
--- a/src/resources/assets/miscutils/textures/gui/IronBlastFurnace.png
+++ b/src/resources/assets/miscutils/textures/gui/IronBlastFurnace.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/MacerationStack.png b/src/resources/assets/miscutils/textures/gui/MacerationStack.png
index 270178c4a0..7fb4099566 100644
--- a/src/resources/assets/miscutils/textures/gui/MacerationStack.png
+++ b/src/resources/assets/miscutils/textures/gui/MacerationStack.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/MaterialPress.png b/src/resources/assets/miscutils/textures/gui/MaterialPress.png
index b1f1118eeb..70befc17f0 100644
--- a/src/resources/assets/miscutils/textures/gui/MaterialPress.png
+++ b/src/resources/assets/miscutils/textures/gui/MaterialPress.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/MatterFabricator.png b/src/resources/assets/miscutils/textures/gui/MatterFabricator.png
index 80c994d8b0..1d5e9d27b8 100644
--- a/src/resources/assets/miscutils/textures/gui/MatterFabricator.png
+++ b/src/resources/assets/miscutils/textures/gui/MatterFabricator.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/ModularityTable.png b/src/resources/assets/miscutils/textures/gui/ModularityTable.png
index 7b151b392e..1a455d4f95 100644
--- a/src/resources/assets/miscutils/textures/gui/ModularityTable.png
+++ b/src/resources/assets/miscutils/textures/gui/ModularityTable.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/MultiblockDisplay.png b/src/resources/assets/miscutils/textures/gui/MultiblockDisplay.png
index f2def4b3f0..bec61bce18 100644
--- a/src/resources/assets/miscutils/textures/gui/MultiblockDisplay.png
+++ b/src/resources/assets/miscutils/textures/gui/MultiblockDisplay.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/PollutionCleaner.png b/src/resources/assets/miscutils/textures/gui/PollutionCleaner.png
index fee895ea68..6162c2fdc3 100644
--- a/src/resources/assets/miscutils/textures/gui/PollutionCleaner.png
+++ b/src/resources/assets/miscutils/textures/gui/PollutionCleaner.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/PowerSubStation.png b/src/resources/assets/miscutils/textures/gui/PowerSubStation.png
index a8f9a0db86..a764dc719a 100644
--- a/src/resources/assets/miscutils/textures/gui/PowerSubStation.png
+++ b/src/resources/assets/miscutils/textures/gui/PowerSubStation.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/ProjectTable.png b/src/resources/assets/miscutils/textures/gui/ProjectTable.png
index 475f9dd3fe..e8f65a6752 100644
--- a/src/resources/assets/miscutils/textures/gui/ProjectTable.png
+++ b/src/resources/assets/miscutils/textures/gui/ProjectTable.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/SafeBlock.png b/src/resources/assets/miscutils/textures/gui/SafeBlock.png
index 10eddcb040..fe60913941 100644
--- a/src/resources/assets/miscutils/textures/gui/SafeBlock.png
+++ b/src/resources/assets/miscutils/textures/gui/SafeBlock.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/SteelBoiler.png b/src/resources/assets/miscutils/textures/gui/SteelBoiler.png
index 215f72c88a..e4f2869e8f 100644
--- a/src/resources/assets/miscutils/textures/gui/SteelBoiler.png
+++ b/src/resources/assets/miscutils/textures/gui/SteelBoiler.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/TreeFarmer.png b/src/resources/assets/miscutils/textures/gui/TreeFarmer.png
index df42131b5b..cd2e86dcb4 100644
--- a/src/resources/assets/miscutils/textures/gui/TreeFarmer.png
+++ b/src/resources/assets/miscutils/textures/gui/TreeFarmer.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/Workbench.png b/src/resources/assets/miscutils/textures/gui/Workbench.png
index ff5ed715fa..95d93d3c4c 100644
--- a/src/resources/assets/miscutils/textures/gui/Workbench.png
+++ b/src/resources/assets/miscutils/textures/gui/Workbench.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/helium_collector_gui.png b/src/resources/assets/miscutils/textures/gui/helium_collector_gui.png
index 114891e80a..b22d0ed947 100644
--- a/src/resources/assets/miscutils/textures/gui/helium_collector_gui.png
+++ b/src/resources/assets/miscutils/textures/gui/helium_collector_gui.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/itemBackpack.png b/src/resources/assets/miscutils/textures/gui/itemBackpack.png
index d392830883..08ac08a2db 100644
--- a/src/resources/assets/miscutils/textures/gui/itemBackpack.png
+++ b/src/resources/assets/miscutils/textures/gui/itemBackpack.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/itemGrindle.png b/src/resources/assets/miscutils/textures/gui/itemGrindle.png
index 32b7bec438..98ccb311d0 100644
--- a/src/resources/assets/miscutils/textures/gui/itemGrindle.png
+++ b/src/resources/assets/miscutils/textures/gui/itemGrindle.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/gui/machine_Charger.png b/src/resources/assets/miscutils/textures/gui/machine_Charger.png
index ec4b790ff6..dcad2b2983 100644
--- a/src/resources/assets/miscutils/textures/gui/machine_Charger.png
+++ b/src/resources/assets/miscutils/textures/gui/machine_Charger.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/100.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/100.png
index d74a810fbd..cedee004e4 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/100.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/100.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/101.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/101.png
new file mode 100644
index 0000000000..1ebe9648e6
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/101.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/102.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/102.png
index e721d63382..c73159e9da 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/102.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/102.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/103.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/103.png
index 0d66b3d141..5e2e56f927 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/103.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/103.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/104.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/104.png
index 6ec4da704e..8ad5f2ee31 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/104.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/104.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/105.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/105.png
new file mode 100644
index 0000000000..f9ebf8c4a5
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/105.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/218.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/218.png
index 6f8d8bdde5..5d6a74cd72 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/218.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/218.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/40.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/40.png
index 18ee704cde..a1b063620a 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/40.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/40.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/44.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/44.png
index 2599391de5..23cc1deb66 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/44.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/44.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50.png
index 422b0fd5df..52d46cb62c 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/1.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/1.png
index 1ced435a76..6660384d76 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/1.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/1.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/2.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/2.png
index 492db7d4ba..0b4e7d6583 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/2.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/2.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/3.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/3.png
index 404730cc20..554a7d8e52 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/3.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/3.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/4.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/4.png
index bdac346dda..b567a0cd15 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/4.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/4.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/5.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/5.png
index 90e304bad3..891608d308 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/5.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/5.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/6.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/6.png
index 1294d07d71..246319069a 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/6.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/6.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/7.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/7.png
index 145918212f..296c9b6c97 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/7.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/7.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/8.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/8.png
index 6e2900017e..fe22c02056 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/8.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/50/8.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52.png
index 422b0fd5df..52d46cb62c 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/1.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/1.png
index 1ced435a76..6660384d76 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/1.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/1.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/2.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/2.png
index 492db7d4ba..0b4e7d6583 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/2.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/2.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/3.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/3.png
index 404730cc20..554a7d8e52 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/3.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/3.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/4.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/4.png
index bdac346dda..b567a0cd15 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/4.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/4.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/5.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/5.png
index 90e304bad3..891608d308 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/5.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/5.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/6.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/6.png
index 1294d07d71..246319069a 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/6.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/6.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/7.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/7.png
index 145918212f..296c9b6c97 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/7.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/7.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/8.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/8.png
index 6e2900017e..fe22c02056 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/8.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/52/8.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54.png
index 422b0fd5df..52d46cb62c 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/1.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/1.png
index 1ced435a76..6660384d76 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/1.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/1.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/2.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/2.png
index 492db7d4ba..0b4e7d6583 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/2.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/2.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/3.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/3.png
index 404730cc20..554a7d8e52 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/3.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/3.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/4.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/4.png
index bdac346dda..b567a0cd15 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/4.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/4.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/5.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/5.png
index 90e304bad3..891608d308 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/5.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/5.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/6.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/6.png
index 1294d07d71..246319069a 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/6.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/6.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/7.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/7.png
index 145918212f..296c9b6c97 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/7.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/7.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/8.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/8.png
index 6e2900017e..fe22c02056 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/8.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/54/8.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/55.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/55.png
index 749eec3a57..23e0a10e06 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/55.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/55.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/60.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/60.png
index e2b05916a5..08122e5042 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/60.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/60.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/61.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/61.png
index 21f5e3948f..f1756e78ba 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/61.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/61.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/62.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/62.png
index 59212293d7..9190330469 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/62.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/62.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/63.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/63.png
index 21f5e3948f..f1756e78ba 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/63.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/63.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/64.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/64.png
index 1e3fa413ee..032a256989 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/64.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/64.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/66.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/66.png
index a5630cf75d..28005f9c52 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/66.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/66.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/68.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/68.png
index 85512eb0f1..4fa1301387 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/68.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/68.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/70.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/70.png
index 1f3dbfa367..322292e225 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/70.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/70.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/700.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/700.png
index 67cbee5e71..af05b249b2 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/700.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/700.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/701.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/701.png
index 02c424ce60..87d68083fa 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/701.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/701.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/702.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/702.png
index 9537aa2d1b..197729ce5c 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/702.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/702.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/703.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/703.png
index b7a993787b..9f75ddb6f2 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/703.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/703.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/704.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/704.png
index ef671f83ce..011f12583d 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/704.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/704.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/705.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/705.png
index 92deda49ab..2968f9e0f9 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/705.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/705.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/706.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/706.png
index cc2f6733a6..ab26c57778 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/706.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/706.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/707.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/707.png
index 238b760f21..84cb315d59 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/707.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/707.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/708.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/708.png
index 8d0f69f425..ac695c9089 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/708.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/708.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/710.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/710.png
index de71ed7356..9555795cbe 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/710.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/710.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/711.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/711.png
index 019858428a..b8294d66d5 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/711.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/711.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/712.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/712.png
index 8765d5dcb2..d1ddb92013 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/712.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/712.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/713.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/713.png
index 62b75f5fe6..db0d4d4dde 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/713.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/713.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/714.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/714.png
index 64b483e2cf..dd3de3ecff 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/714.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/714.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/715.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/715.png
index 64b483e2cf..dd3de3ecff 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/715.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/715.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/716.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/716.png
index dac7c33510..506ab6621b 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/716.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/716.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/717.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/717.png
index dac7c33510..506ab6621b 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/717.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/717.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/718.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/718.png
index dac7c33510..506ab6621b 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/718.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/718.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/719.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/719.png
index 0d7bb39054..05c3440206 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/719.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/719.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/720.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/720.png
index ce9a27bf9e..6b6d885084 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/720.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/720.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/721.png b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/721.png
index 23972faf59..23b7878fdd 100644
--- a/src/resources/assets/miscutils/textures/items/MU-metaitem.01/721.png
+++ b/src/resources/assets/miscutils/textures/items/MU-metaitem.01/721.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/StoneStatue.png b/src/resources/assets/miscutils/textures/items/StoneStatue.png
index e92f69fce4..36ab6ccd56 100644
--- a/src/resources/assets/miscutils/textures/items/StoneStatue.png
+++ b/src/resources/assets/miscutils/textures/items/StoneStatue.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/bucket/BucketEnder.png b/src/resources/assets/miscutils/textures/items/bucket/BucketEnder.png
index be510770c6..6a00cf1509 100644
--- a/src/resources/assets/miscutils/textures/items/bucket/BucketEnder.png
+++ b/src/resources/assets/miscutils/textures/items/bucket/BucketEnder.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/bucket/BucketPyrotheum.png b/src/resources/assets/miscutils/textures/items/bucket/BucketPyrotheum.png
index 0480d68077..82f1bb4b84 100644
--- a/src/resources/assets/miscutils/textures/items/bucket/BucketPyrotheum.png
+++ b/src/resources/assets/miscutils/textures/items/bucket/BucketPyrotheum.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/frameAccelerated.png b/src/resources/assets/miscutils/textures/items/frameAccelerated.png
index 99f6ba89f8..e02bd78586 100644
--- a/src/resources/assets/miscutils/textures/items/frameAccelerated.png
+++ b/src/resources/assets/miscutils/textures/items/frameAccelerated.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/frameBusy.png b/src/resources/assets/miscutils/textures/items/frameBusy.png
index 370b29e8c2..ea20d3d046 100644
--- a/src/resources/assets/miscutils/textures/items/frameBusy.png
+++ b/src/resources/assets/miscutils/textures/items/frameBusy.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/frameDecaying.png b/src/resources/assets/miscutils/textures/items/frameDecaying.png
index 2d3ca5a029..3e6feb1a3c 100644
--- a/src/resources/assets/miscutils/textures/items/frameDecaying.png
+++ b/src/resources/assets/miscutils/textures/items/frameDecaying.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/frameMutagenic.png b/src/resources/assets/miscutils/textures/items/frameMutagenic.png
index 0440c70db0..0a24289776 100644
--- a/src/resources/assets/miscutils/textures/items/frameMutagenic.png
+++ b/src/resources/assets/miscutils/textures/items/frameMutagenic.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/frameStabilizing.png b/src/resources/assets/miscutils/textures/items/frameStabilizing.png
index bb6abf9ba5..1fed360bf7 100644
--- a/src/resources/assets/miscutils/textures/items/frameStabilizing.png
+++ b/src/resources/assets/miscutils/textures/items/frameStabilizing.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/frameUseless.png b/src/resources/assets/miscutils/textures/items/frameUseless.png
index 6308d4c44d..e316e0a5d6 100644
--- a/src/resources/assets/miscutils/textures/items/frameUseless.png
+++ b/src/resources/assets/miscutils/textures/items/frameUseless.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/frameVoid.png b/src/resources/assets/miscutils/textures/items/frameVoid.png
index 685c5e876f..45fc307328 100644
--- a/src/resources/assets/miscutils/textures/items/frameVoid.png
+++ b/src/resources/assets/miscutils/textures/items/frameVoid.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/iconsets/SKOOKUMCHOOCHER.png b/src/resources/assets/miscutils/textures/items/iconsets/SKOOKUMCHOOCHER.png
index d23748f845..d6ba7ec2ca 100644
--- a/src/resources/assets/miscutils/textures/items/iconsets/SKOOKUMCHOOCHER.png
+++ b/src/resources/assets/miscutils/textures/items/iconsets/SKOOKUMCHOOCHER.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/iconsets/VOID.png b/src/resources/assets/miscutils/textures/items/iconsets/VOID.png
index b3422f24e2..db16e741fe 100644
--- a/src/resources/assets/miscutils/textures/items/iconsets/VOID.png
+++ b/src/resources/assets/miscutils/textures/items/iconsets/VOID.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/0.png b/src/resources/assets/miscutils/textures/items/ion/0.png
new file mode 100644
index 0000000000..c56a04238f
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/0.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/1.png b/src/resources/assets/miscutils/textures/items/ion/1.png
new file mode 100644
index 0000000000..174d2ad950
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/1.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/10.png b/src/resources/assets/miscutils/textures/items/ion/10.png
new file mode 100644
index 0000000000..8e3348f582
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/10.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/100.png b/src/resources/assets/miscutils/textures/items/ion/100.png
new file mode 100644
index 0000000000..3d92a39004
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/100.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/101.png b/src/resources/assets/miscutils/textures/items/ion/101.png
new file mode 100644
index 0000000000..85b8f58ad9
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/101.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/102.png b/src/resources/assets/miscutils/textures/items/ion/102.png
new file mode 100644
index 0000000000..6993d5e4cf
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/102.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/103.png b/src/resources/assets/miscutils/textures/items/ion/103.png
new file mode 100644
index 0000000000..a3faa8a260
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/103.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/104.png b/src/resources/assets/miscutils/textures/items/ion/104.png
new file mode 100644
index 0000000000..9c80b9d1f0
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/104.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/105.png b/src/resources/assets/miscutils/textures/items/ion/105.png
new file mode 100644
index 0000000000..2633689df4
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/105.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/106.png b/src/resources/assets/miscutils/textures/items/ion/106.png
new file mode 100644
index 0000000000..c368411d12
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/106.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/107.png b/src/resources/assets/miscutils/textures/items/ion/107.png
new file mode 100644
index 0000000000..fc8e4c2844
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/107.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/108.png b/src/resources/assets/miscutils/textures/items/ion/108.png
new file mode 100644
index 0000000000..d2b271526a
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/108.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/109.png b/src/resources/assets/miscutils/textures/items/ion/109.png
new file mode 100644
index 0000000000..585321db38
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/109.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/11.png b/src/resources/assets/miscutils/textures/items/ion/11.png
new file mode 100644
index 0000000000..72baf3d9e9
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/11.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/110.png b/src/resources/assets/miscutils/textures/items/ion/110.png
new file mode 100644
index 0000000000..82d73b7aca
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/110.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/111.png b/src/resources/assets/miscutils/textures/items/ion/111.png
new file mode 100644
index 0000000000..869435fd75
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/111.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/112.png b/src/resources/assets/miscutils/textures/items/ion/112.png
new file mode 100644
index 0000000000..bb14befcfe
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/112.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/113.png b/src/resources/assets/miscutils/textures/items/ion/113.png
new file mode 100644
index 0000000000..5aae8d7814
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/113.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/114.png b/src/resources/assets/miscutils/textures/items/ion/114.png
new file mode 100644
index 0000000000..ea4897286d
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/114.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/115.png b/src/resources/assets/miscutils/textures/items/ion/115.png
new file mode 100644
index 0000000000..815acfb339
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/115.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/116.png b/src/resources/assets/miscutils/textures/items/ion/116.png
new file mode 100644
index 0000000000..a335c2bb70
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/116.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/117.png b/src/resources/assets/miscutils/textures/items/ion/117.png
new file mode 100644
index 0000000000..f3d46e4bb6
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/117.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/12.png b/src/resources/assets/miscutils/textures/items/ion/12.png
new file mode 100644
index 0000000000..c2698ef286
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/12.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/13.png b/src/resources/assets/miscutils/textures/items/ion/13.png
new file mode 100644
index 0000000000..d9f17334f7
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/13.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/14.png b/src/resources/assets/miscutils/textures/items/ion/14.png
new file mode 100644
index 0000000000..0640a05827
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/14.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/15.png b/src/resources/assets/miscutils/textures/items/ion/15.png
new file mode 100644
index 0000000000..8b9a6c872e
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/15.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/16.png b/src/resources/assets/miscutils/textures/items/ion/16.png
new file mode 100644
index 0000000000..3e0dbe1143
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/16.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/17.png b/src/resources/assets/miscutils/textures/items/ion/17.png
new file mode 100644
index 0000000000..dfcb224a3e
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/17.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/18.png b/src/resources/assets/miscutils/textures/items/ion/18.png
new file mode 100644
index 0000000000..910712afc5
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/18.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/19.png b/src/resources/assets/miscutils/textures/items/ion/19.png
new file mode 100644
index 0000000000..63627d13a3
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/19.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/2.png b/src/resources/assets/miscutils/textures/items/ion/2.png
new file mode 100644
index 0000000000..ab4474425e
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/2.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/20.png b/src/resources/assets/miscutils/textures/items/ion/20.png
new file mode 100644
index 0000000000..c4c2b0da40
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/20.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/21.png b/src/resources/assets/miscutils/textures/items/ion/21.png
new file mode 100644
index 0000000000..ad8c2b6dbf
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/21.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/22.png b/src/resources/assets/miscutils/textures/items/ion/22.png
new file mode 100644
index 0000000000..ce4fcd3ff2
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/22.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/23.png b/src/resources/assets/miscutils/textures/items/ion/23.png
new file mode 100644
index 0000000000..fe75b049ce
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/23.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/24.png b/src/resources/assets/miscutils/textures/items/ion/24.png
new file mode 100644
index 0000000000..bb256ca2bb
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/24.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/25.png b/src/resources/assets/miscutils/textures/items/ion/25.png
new file mode 100644
index 0000000000..6d413674c2
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/25.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/26.png b/src/resources/assets/miscutils/textures/items/ion/26.png
new file mode 100644
index 0000000000..c93c306f5a
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/26.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/27.png b/src/resources/assets/miscutils/textures/items/ion/27.png
new file mode 100644
index 0000000000..f822d7a4bb
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/27.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/28.png b/src/resources/assets/miscutils/textures/items/ion/28.png
new file mode 100644
index 0000000000..1b65383965
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/28.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/29.png b/src/resources/assets/miscutils/textures/items/ion/29.png
new file mode 100644
index 0000000000..a3c412094e
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/29.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/3.png b/src/resources/assets/miscutils/textures/items/ion/3.png
new file mode 100644
index 0000000000..59ad76340c
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/3.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/30.png b/src/resources/assets/miscutils/textures/items/ion/30.png
new file mode 100644
index 0000000000..3ae749cc91
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/30.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/31.png b/src/resources/assets/miscutils/textures/items/ion/31.png
new file mode 100644
index 0000000000..6bb1f6c61f
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/31.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/32.png b/src/resources/assets/miscutils/textures/items/ion/32.png
new file mode 100644
index 0000000000..c8bc92a688
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/32.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/33.png b/src/resources/assets/miscutils/textures/items/ion/33.png
new file mode 100644
index 0000000000..5062c0c109
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/33.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/34.png b/src/resources/assets/miscutils/textures/items/ion/34.png
new file mode 100644
index 0000000000..bd1e33c191
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/34.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/35.png b/src/resources/assets/miscutils/textures/items/ion/35.png
new file mode 100644
index 0000000000..c2a42ac980
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/35.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/36.png b/src/resources/assets/miscutils/textures/items/ion/36.png
new file mode 100644
index 0000000000..403d45a66c
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/36.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/37.png b/src/resources/assets/miscutils/textures/items/ion/37.png
new file mode 100644
index 0000000000..89f011e548
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/37.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/38.png b/src/resources/assets/miscutils/textures/items/ion/38.png
new file mode 100644
index 0000000000..b00ab7f5fc
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/38.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/39.png b/src/resources/assets/miscutils/textures/items/ion/39.png
new file mode 100644
index 0000000000..9fc883c731
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/39.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/4.png b/src/resources/assets/miscutils/textures/items/ion/4.png
new file mode 100644
index 0000000000..122cd9e837
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/4.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/40.png b/src/resources/assets/miscutils/textures/items/ion/40.png
new file mode 100644
index 0000000000..371171fe61
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/40.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/41.png b/src/resources/assets/miscutils/textures/items/ion/41.png
new file mode 100644
index 0000000000..acc8d4df0b
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/41.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/42.png b/src/resources/assets/miscutils/textures/items/ion/42.png
new file mode 100644
index 0000000000..0f8432ea59
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/42.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/43.png b/src/resources/assets/miscutils/textures/items/ion/43.png
new file mode 100644
index 0000000000..1f62a1a4f9
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/43.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/44.png b/src/resources/assets/miscutils/textures/items/ion/44.png
new file mode 100644
index 0000000000..f26b23050a
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/44.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/45.png b/src/resources/assets/miscutils/textures/items/ion/45.png
new file mode 100644
index 0000000000..e2d6413dee
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/45.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/46.png b/src/resources/assets/miscutils/textures/items/ion/46.png
new file mode 100644
index 0000000000..50920e75b5
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/46.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/47.png b/src/resources/assets/miscutils/textures/items/ion/47.png
new file mode 100644
index 0000000000..c31a2ad43d
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/47.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/48.png b/src/resources/assets/miscutils/textures/items/ion/48.png
new file mode 100644
index 0000000000..90b6ab544e
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/48.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/49.png b/src/resources/assets/miscutils/textures/items/ion/49.png
new file mode 100644
index 0000000000..1c1ed02d40
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/49.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/5.png b/src/resources/assets/miscutils/textures/items/ion/5.png
new file mode 100644
index 0000000000..0f33a3363c
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/5.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/50.png b/src/resources/assets/miscutils/textures/items/ion/50.png
new file mode 100644
index 0000000000..c47f4a297e
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/50.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/51.png b/src/resources/assets/miscutils/textures/items/ion/51.png
new file mode 100644
index 0000000000..606a1e8ef4
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/51.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/52.png b/src/resources/assets/miscutils/textures/items/ion/52.png
new file mode 100644
index 0000000000..0a535c6158
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/52.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/53.png b/src/resources/assets/miscutils/textures/items/ion/53.png
new file mode 100644
index 0000000000..1fef4e5f2f
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/53.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/54.png b/src/resources/assets/miscutils/textures/items/ion/54.png
new file mode 100644
index 0000000000..663170c84d
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/54.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/55.png b/src/resources/assets/miscutils/textures/items/ion/55.png
new file mode 100644
index 0000000000..4519b12d97
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/55.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/56.png b/src/resources/assets/miscutils/textures/items/ion/56.png
new file mode 100644
index 0000000000..926b37bc80
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/56.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/57.png b/src/resources/assets/miscutils/textures/items/ion/57.png
new file mode 100644
index 0000000000..c80a29d94e
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/57.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/58.png b/src/resources/assets/miscutils/textures/items/ion/58.png
new file mode 100644
index 0000000000..e33f90d6bc
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/58.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/59.png b/src/resources/assets/miscutils/textures/items/ion/59.png
new file mode 100644
index 0000000000..14b48b0c39
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/59.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/6.png b/src/resources/assets/miscutils/textures/items/ion/6.png
new file mode 100644
index 0000000000..a8a9b906d2
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/6.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/60.png b/src/resources/assets/miscutils/textures/items/ion/60.png
new file mode 100644
index 0000000000..4d77e6d779
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/60.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/61.png b/src/resources/assets/miscutils/textures/items/ion/61.png
new file mode 100644
index 0000000000..42e2669011
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/61.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/62.png b/src/resources/assets/miscutils/textures/items/ion/62.png
new file mode 100644
index 0000000000..5b0ce84ee4
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/62.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/63.png b/src/resources/assets/miscutils/textures/items/ion/63.png
new file mode 100644
index 0000000000..372d256a0e
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/63.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/64.png b/src/resources/assets/miscutils/textures/items/ion/64.png
new file mode 100644
index 0000000000..61b6521d64
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/64.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/65.png b/src/resources/assets/miscutils/textures/items/ion/65.png
new file mode 100644
index 0000000000..66129d8bab
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/65.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/66.png b/src/resources/assets/miscutils/textures/items/ion/66.png
new file mode 100644
index 0000000000..5ec0a6c747
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/66.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/67.png b/src/resources/assets/miscutils/textures/items/ion/67.png
new file mode 100644
index 0000000000..09c9dd8b12
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/67.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/68.png b/src/resources/assets/miscutils/textures/items/ion/68.png
new file mode 100644
index 0000000000..d809bd3646
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/68.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/69.png b/src/resources/assets/miscutils/textures/items/ion/69.png
new file mode 100644
index 0000000000..9e0d0b0d75
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/69.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/7.png b/src/resources/assets/miscutils/textures/items/ion/7.png
new file mode 100644
index 0000000000..6d1f5c229c
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/7.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/70.png b/src/resources/assets/miscutils/textures/items/ion/70.png
new file mode 100644
index 0000000000..5bf9df2778
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/70.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/71.png b/src/resources/assets/miscutils/textures/items/ion/71.png
new file mode 100644
index 0000000000..f052e1c772
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/71.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/72.png b/src/resources/assets/miscutils/textures/items/ion/72.png
new file mode 100644
index 0000000000..044e445356
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/72.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/73.png b/src/resources/assets/miscutils/textures/items/ion/73.png
new file mode 100644
index 0000000000..24bf977862
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/73.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/74.png b/src/resources/assets/miscutils/textures/items/ion/74.png
new file mode 100644
index 0000000000..7768bd6f4e
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/74.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/75.png b/src/resources/assets/miscutils/textures/items/ion/75.png
new file mode 100644
index 0000000000..ed9961e54f
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/75.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/76.png b/src/resources/assets/miscutils/textures/items/ion/76.png
new file mode 100644
index 0000000000..9010680490
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/76.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/77.png b/src/resources/assets/miscutils/textures/items/ion/77.png
new file mode 100644
index 0000000000..007497b931
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/77.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/78.png b/src/resources/assets/miscutils/textures/items/ion/78.png
new file mode 100644
index 0000000000..36c2031937
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/78.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/79.png b/src/resources/assets/miscutils/textures/items/ion/79.png
new file mode 100644
index 0000000000..144e55beae
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/79.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/8.png b/src/resources/assets/miscutils/textures/items/ion/8.png
new file mode 100644
index 0000000000..0249fbcf3b
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/8.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/80.png b/src/resources/assets/miscutils/textures/items/ion/80.png
new file mode 100644
index 0000000000..ec7de9fda2
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/80.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/81.png b/src/resources/assets/miscutils/textures/items/ion/81.png
new file mode 100644
index 0000000000..9e19f0dbde
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/81.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/82.png b/src/resources/assets/miscutils/textures/items/ion/82.png
new file mode 100644
index 0000000000..f321ff1073
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/82.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/83.png b/src/resources/assets/miscutils/textures/items/ion/83.png
new file mode 100644
index 0000000000..c219309000
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/83.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/84.png b/src/resources/assets/miscutils/textures/items/ion/84.png
new file mode 100644
index 0000000000..c7be4342ad
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/84.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/85.png b/src/resources/assets/miscutils/textures/items/ion/85.png
new file mode 100644
index 0000000000..f0d9995742
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/85.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/86.png b/src/resources/assets/miscutils/textures/items/ion/86.png
new file mode 100644
index 0000000000..df5da1cc2e
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/86.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/87.png b/src/resources/assets/miscutils/textures/items/ion/87.png
new file mode 100644
index 0000000000..ec37e331ff
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/87.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/88.png b/src/resources/assets/miscutils/textures/items/ion/88.png
new file mode 100644
index 0000000000..9c53cfa885
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/88.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/89.png b/src/resources/assets/miscutils/textures/items/ion/89.png
new file mode 100644
index 0000000000..1e7f46a245
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/89.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/9.png b/src/resources/assets/miscutils/textures/items/ion/9.png
new file mode 100644
index 0000000000..946246b360
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/9.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/90.png b/src/resources/assets/miscutils/textures/items/ion/90.png
new file mode 100644
index 0000000000..023364b0fb
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/90.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/91.png b/src/resources/assets/miscutils/textures/items/ion/91.png
new file mode 100644
index 0000000000..44f463ff62
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/91.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/92.png b/src/resources/assets/miscutils/textures/items/ion/92.png
new file mode 100644
index 0000000000..ef1d21c530
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/92.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/93.png b/src/resources/assets/miscutils/textures/items/ion/93.png
new file mode 100644
index 0000000000..175f6bf84e
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/93.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/94.png b/src/resources/assets/miscutils/textures/items/ion/94.png
new file mode 100644
index 0000000000..544749b556
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/94.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/95.png b/src/resources/assets/miscutils/textures/items/ion/95.png
new file mode 100644
index 0000000000..a2d38fa96e
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/95.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/96.png b/src/resources/assets/miscutils/textures/items/ion/96.png
new file mode 100644
index 0000000000..12e545a65f
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/96.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/97.png b/src/resources/assets/miscutils/textures/items/ion/97.png
new file mode 100644
index 0000000000..ee9ed016dc
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/97.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/98.png b/src/resources/assets/miscutils/textures/items/ion/98.png
new file mode 100644
index 0000000000..aa8a1bf7ce
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/98.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/99.png b/src/resources/assets/miscutils/textures/items/ion/99.png
new file mode 100644
index 0000000000..b5ba289886
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/99.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/ion/IonBase.png b/src/resources/assets/miscutils/textures/items/ion/IonBase.png
new file mode 100644
index 0000000000..fd342f7db2
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/ion/IonBase.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemAirFilter.png b/src/resources/assets/miscutils/textures/items/itemAirFilter.png
index 5dfa00636d..da4b975517 100644
--- a/src/resources/assets/miscutils/textures/items/itemAirFilter.png
+++ b/src/resources/assets/miscutils/textures/items/itemAirFilter.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemAlkalusDisk.png b/src/resources/assets/miscutils/textures/items/itemAlkalusDisk.png
index 27aa983cea..8553a13cfb 100644
--- a/src/resources/assets/miscutils/textures/items/itemAlkalusDisk.png
+++ b/src/resources/assets/miscutils/textures/items/itemAlkalusDisk.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemBackpack.png b/src/resources/assets/miscutils/textures/items/itemBackpack.png
index 00be30bea1..99add96c2b 100644
--- a/src/resources/assets/miscutils/textures/items/itemBackpack.png
+++ b/src/resources/assets/miscutils/textures/items/itemBackpack.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemBlueprint.png b/src/resources/assets/miscutils/textures/items/itemBlueprint.png
index 7d60e0871b..593ba0ac17 100644
--- a/src/resources/assets/miscutils/textures/items/itemBlueprint.png
+++ b/src/resources/assets/miscutils/textures/items/itemBlueprint.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemBoilerChassis.png b/src/resources/assets/miscutils/textures/items/itemBoilerChassis.png
index ae6b89766c..1ac3bff818 100644
--- a/src/resources/assets/miscutils/textures/items/itemBoilerChassis.png
+++ b/src/resources/assets/miscutils/textures/items/itemBoilerChassis.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemBoots.png b/src/resources/assets/miscutils/textures/items/itemBoots.png
index c63e56deae..9cd07048cd 100644
--- a/src/resources/assets/miscutils/textures/items/itemBoots.png
+++ b/src/resources/assets/miscutils/textures/items/itemBoots.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemBread.png b/src/resources/assets/miscutils/textures/items/itemBread.png
index e2b05916a5..332b994342 100644
--- a/src/resources/assets/miscutils/textures/items/itemBread.png
+++ b/src/resources/assets/miscutils/textures/items/itemBread.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemBufferCore.png b/src/resources/assets/miscutils/textures/items/itemBufferCore.png
index 6dd01c09d9..3e41cfaa1c 100644
--- a/src/resources/assets/miscutils/textures/items/itemBufferCore.png
+++ b/src/resources/assets/miscutils/textures/items/itemBufferCore.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemCell.png b/src/resources/assets/miscutils/textures/items/itemCell.png
index e932f27eef..023291b957 100644
--- a/src/resources/assets/miscutils/textures/items/itemCell.png
+++ b/src/resources/assets/miscutils/textures/items/itemCell.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemCell_Overlay.png b/src/resources/assets/miscutils/textures/items/itemCell_Overlay.png
index 40dd2573a0..35c124ab0c 100644
--- a/src/resources/assets/miscutils/textures/items/itemCell_Overlay.png
+++ b/src/resources/assets/miscutils/textures/items/itemCell_Overlay.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemCentidust.png b/src/resources/assets/miscutils/textures/items/itemCentidust.png
index c2e90c0074..13658b477f 100644
--- a/src/resources/assets/miscutils/textures/items/itemCentidust.png
+++ b/src/resources/assets/miscutils/textures/items/itemCentidust.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemDebugShapeSpawner.png b/src/resources/assets/miscutils/textures/items/itemDebugShapeSpawner.png
index 908d3121e9..3fa59812e9 100644
--- a/src/resources/assets/miscutils/textures/items/itemDebugShapeSpawner.png
+++ b/src/resources/assets/miscutils/textures/items/itemDebugShapeSpawner.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemDecidust.png b/src/resources/assets/miscutils/textures/items/itemDecidust.png
index 5fa27aebcb..1d7766cca5 100644
--- a/src/resources/assets/miscutils/textures/items/itemDecidust.png
+++ b/src/resources/assets/miscutils/textures/items/itemDecidust.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemDefault.png b/src/resources/assets/miscutils/textures/items/itemDefault.png
index fbf4503b26..9ed71de6dd 100644
--- a/src/resources/assets/miscutils/textures/items/itemDefault.png
+++ b/src/resources/assets/miscutils/textures/items/itemDefault.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemEnergeticRotorBlade.png b/src/resources/assets/miscutils/textures/items/itemEnergeticRotorBlade.png
index ffa38f29e2..7c03ca0ada 100644
--- a/src/resources/assets/miscutils/textures/items/itemEnergeticRotorBlade.png
+++ b/src/resources/assets/miscutils/textures/items/itemEnergeticRotorBlade.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemEnergeticShaft.png b/src/resources/assets/miscutils/textures/items/itemEnergeticShaft.png
index 533568b8be..bf9ab22ce2 100644
--- a/src/resources/assets/miscutils/textures/items/itemEnergeticShaft.png
+++ b/src/resources/assets/miscutils/textures/items/itemEnergeticShaft.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemFoodCurriedSausages.png b/src/resources/assets/miscutils/textures/items/itemFoodCurriedSausages.png
index edb649ce9f..55a9e7c912 100644
--- a/src/resources/assets/miscutils/textures/items/itemFoodCurriedSausages.png
+++ b/src/resources/assets/miscutils/textures/items/itemFoodCurriedSausages.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemFoodRaisinToast.png b/src/resources/assets/miscutils/textures/items/itemFoodRaisinToast.png
index be14940e7f..12a1962cd3 100644
--- a/src/resources/assets/miscutils/textures/items/itemFoodRaisinToast.png
+++ b/src/resources/assets/miscutils/textures/items/itemFoodRaisinToast.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemGem.png b/src/resources/assets/miscutils/textures/items/itemGem.png
index e52bdaffa2..ad5126851a 100644
--- a/src/resources/assets/miscutils/textures/items/itemGem.png
+++ b/src/resources/assets/miscutils/textures/items/itemGem.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemHeavyPlate.png b/src/resources/assets/miscutils/textures/items/itemHeavyPlate.png
index 718fab4f76..1f005e0156 100644
--- a/src/resources/assets/miscutils/textures/items/itemHeavyPlate.png
+++ b/src/resources/assets/miscutils/textures/items/itemHeavyPlate.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemHeliumBlob.png b/src/resources/assets/miscutils/textures/items/itemHeliumBlob.png
index 3d3804e2a3..f86ce276cc 100644
--- a/src/resources/assets/miscutils/textures/items/itemHeliumBlob.png
+++ b/src/resources/assets/miscutils/textures/items/itemHeliumBlob.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemHelmet.png b/src/resources/assets/miscutils/textures/items/itemHelmet.png
index 517312045a..d7c34334b2 100644
--- a/src/resources/assets/miscutils/textures/items/itemHelmet.png
+++ b/src/resources/assets/miscutils/textures/items/itemHelmet.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemHotIngotRaisinBread.png b/src/resources/assets/miscutils/textures/items/itemHotIngotRaisinBread.png
index e2b05916a5..332b994342 100644
--- a/src/resources/assets/miscutils/textures/items/itemHotIngotRaisinBread.png
+++ b/src/resources/assets/miscutils/textures/items/itemHotIngotRaisinBread.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemIngot.png b/src/resources/assets/miscutils/textures/items/itemIngot.png
index 685dbcbfd8..a904365fba 100644
--- a/src/resources/assets/miscutils/textures/items/itemIngot.png
+++ b/src/resources/assets/miscutils/textures/items/itemIngot.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemIngotBatteryAlloy.png b/src/resources/assets/miscutils/textures/items/itemIngotBatteryAlloy.png
index ab91ac2c85..edaac2807f 100644
--- a/src/resources/assets/miscutils/textures/items/itemIngotBatteryAlloy.png
+++ b/src/resources/assets/miscutils/textures/items/itemIngotBatteryAlloy.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemIngotHot.png b/src/resources/assets/miscutils/textures/items/itemIngotHot.png
index a0d2e6162a..d0f73e2868 100644
--- a/src/resources/assets/miscutils/textures/items/itemIngotHot.png
+++ b/src/resources/assets/miscutils/textures/items/itemIngotHot.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemIngotRaisinBread.png b/src/resources/assets/miscutils/textures/items/itemIngotRaisinBread.png
index e2b05916a5..332b994342 100644
--- a/src/resources/assets/miscutils/textures/items/itemIngotRaisinBread.png
+++ b/src/resources/assets/miscutils/textures/items/itemIngotRaisinBread.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemIridiumRotorBlade.png b/src/resources/assets/miscutils/textures/items/itemIridiumRotorBlade.png
index 31e5c0563a..73c2cbe026 100644
--- a/src/resources/assets/miscutils/textures/items/itemIridiumRotorBlade.png
+++ b/src/resources/assets/miscutils/textures/items/itemIridiumRotorBlade.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemIridiumShaft.png b/src/resources/assets/miscutils/textures/items/itemIridiumShaft.png
index 168ef8e907..585b862d12 100644
--- a/src/resources/assets/miscutils/textures/items/itemIridiumShaft.png
+++ b/src/resources/assets/miscutils/textures/items/itemIridiumShaft.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemMagnaliumRotorBlade.png b/src/resources/assets/miscutils/textures/items/itemMagnaliumRotorBlade.png
index a100a2ab32..d10128babd 100644
--- a/src/resources/assets/miscutils/textures/items/itemMagnaliumRotorBlade.png
+++ b/src/resources/assets/miscutils/textures/items/itemMagnaliumRotorBlade.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemMagnaliumShaft.png b/src/resources/assets/miscutils/textures/items/itemMagnaliumShaft.png
index d909ff9a98..b93430f732 100644
--- a/src/resources/assets/miscutils/textures/items/itemMagnaliumShaft.png
+++ b/src/resources/assets/miscutils/textures/items/itemMagnaliumShaft.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemNugget.png b/src/resources/assets/miscutils/textures/items/itemNugget.png
index 15d2a25795..e4d3e0c89c 100644
--- a/src/resources/assets/miscutils/textures/items/itemNugget.png
+++ b/src/resources/assets/miscutils/textures/items/itemNugget.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemPLACEHOLDER_Circuit.png b/src/resources/assets/miscutils/textures/items/itemPLACEHOLDER_Circuit.png
index 27fbb8036a..aba5bf6850 100644
--- a/src/resources/assets/miscutils/textures/items/itemPLACEHOLDER_Circuit.png
+++ b/src/resources/assets/miscutils/textures/items/itemPLACEHOLDER_Circuit.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemPlateBatteryAlloy.png b/src/resources/assets/miscutils/textures/items/itemPlateBatteryAlloy.png
index c41f17392c..fb293722f6 100644
--- a/src/resources/assets/miscutils/textures/items/itemPlateBatteryAlloy.png
+++ b/src/resources/assets/miscutils/textures/items/itemPlateBatteryAlloy.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemPlatebody.png b/src/resources/assets/miscutils/textures/items/itemPlatebody.png
index 20722c8607..ec472a86a0 100644
--- a/src/resources/assets/miscutils/textures/items/itemPlatebody.png
+++ b/src/resources/assets/miscutils/textures/items/itemPlatebody.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemPlatelegs.png b/src/resources/assets/miscutils/textures/items/itemPlatelegs.png
index 382a871aae..bcaa1338e6 100644
--- a/src/resources/assets/miscutils/textures/items/itemPlatelegs.png
+++ b/src/resources/assets/miscutils/textures/items/itemPlatelegs.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemRotor.png b/src/resources/assets/miscutils/textures/items/itemRotor.png
index 6c6a16bfe5..c593cee35b 100644
--- a/src/resources/assets/miscutils/textures/items/itemRotor.png
+++ b/src/resources/assets/miscutils/textures/items/itemRotor.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemSandstoneHammer.png b/src/resources/assets/miscutils/textures/items/itemSandstoneHammer.png
index 77c67f0814..ae8fc32267 100644
--- a/src/resources/assets/miscutils/textures/items/itemSandstoneHammer.png
+++ b/src/resources/assets/miscutils/textures/items/itemSandstoneHammer.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemShard.png b/src/resources/assets/miscutils/textures/items/itemShard.png
index ee88e8eca9..104a59d2b3 100644
--- a/src/resources/assets/miscutils/textures/items/itemShard.png
+++ b/src/resources/assets/miscutils/textures/items/itemShard.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemSlowBuildersRing.png b/src/resources/assets/miscutils/textures/items/itemSlowBuildersRing.png
index 93b78dd141..f711563765 100644
--- a/src/resources/assets/miscutils/textures/items/itemSlowBuildersRing.png
+++ b/src/resources/assets/miscutils/textures/items/itemSlowBuildersRing.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemStaballoyAxe.png b/src/resources/assets/miscutils/textures/items/itemStaballoyAxe.png
index 0fe6015831..d7f8ed262f 100644
--- a/src/resources/assets/miscutils/textures/items/itemStaballoyAxe.png
+++ b/src/resources/assets/miscutils/textures/items/itemStaballoyAxe.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemStaballoyPickaxe.png b/src/resources/assets/miscutils/textures/items/itemStaballoyPickaxe.png
index d1d6a487df..024f4f384c 100644
--- a/src/resources/assets/miscutils/textures/items/itemStaballoyPickaxe.png
+++ b/src/resources/assets/miscutils/textures/items/itemStaballoyPickaxe.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemStickyRubber.png b/src/resources/assets/miscutils/textures/items/itemStickyRubber.png
index d020c1b2b2..c95353c892 100644
--- a/src/resources/assets/miscutils/textures/items/itemStickyRubber.png
+++ b/src/resources/assets/miscutils/textures/items/itemStickyRubber.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemSword.png b/src/resources/assets/miscutils/textures/items/itemSword.png
index 2278866502..56ac390aa8 100644
--- a/src/resources/assets/miscutils/textures/items/itemSword.png
+++ b/src/resources/assets/miscutils/textures/items/itemSword.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemTungstenSteelRotorBlade.png b/src/resources/assets/miscutils/textures/items/itemTungstenSteelRotorBlade.png
index 1708c9f934..cd376cb5cb 100644
--- a/src/resources/assets/miscutils/textures/items/itemTungstenSteelRotorBlade.png
+++ b/src/resources/assets/miscutils/textures/items/itemTungstenSteelRotorBlade.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemUltimetRotorBlade.png b/src/resources/assets/miscutils/textures/items/itemUltimetRotorBlade.png
index 83c40e49db..89f7b9474a 100644
--- a/src/resources/assets/miscutils/textures/items/itemUltimetRotorBlade.png
+++ b/src/resources/assets/miscutils/textures/items/itemUltimetRotorBlade.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemUltimetShaft.png b/src/resources/assets/miscutils/textures/items/itemUltimetShaft.png
index 49b449f94f..df6c9b9c49 100644
--- a/src/resources/assets/miscutils/textures/items/itemUltimetShaft.png
+++ b/src/resources/assets/miscutils/textures/items/itemUltimetShaft.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemVibrantRotorBlade.png b/src/resources/assets/miscutils/textures/items/itemVibrantRotorBlade.png
index 0842ccda42..5dea2ec1e5 100644
--- a/src/resources/assets/miscutils/textures/items/itemVibrantRotorBlade.png
+++ b/src/resources/assets/miscutils/textures/items/itemVibrantRotorBlade.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/itemVibrantShaft.png b/src/resources/assets/miscutils/textures/items/itemVibrantShaft.png
index 877e47766a..3a1fe64176 100644
--- a/src/resources/assets/miscutils/textures/items/itemVibrantShaft.png
+++ b/src/resources/assets/miscutils/textures/items/itemVibrantShaft.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/material/DustBlizz.png b/src/resources/assets/miscutils/textures/items/material/DustBlizz.png
index 6a88347a39..e253eea6de 100644
--- a/src/resources/assets/miscutils/textures/items/material/DustBlizz.png
+++ b/src/resources/assets/miscutils/textures/items/material/DustBlizz.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/material/DustCryotheum.png b/src/resources/assets/miscutils/textures/items/material/DustCryotheum.png
index b8fb006c46..960b304439 100644
--- a/src/resources/assets/miscutils/textures/items/material/DustCryotheum.png
+++ b/src/resources/assets/miscutils/textures/items/material/DustCryotheum.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/material/DustPyrotheum.png b/src/resources/assets/miscutils/textures/items/material/DustPyrotheum.png
index 370ecee9a3..eaf605e762 100644
--- a/src/resources/assets/miscutils/textures/items/material/DustPyrotheum.png
+++ b/src/resources/assets/miscutils/textures/items/material/DustPyrotheum.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/material/RodBlizz.png b/src/resources/assets/miscutils/textures/items/material/RodBlizz.png
index a8274f74b7..d813e6b746 100644
--- a/src/resources/assets/miscutils/textures/items/material/RodBlizz.png
+++ b/src/resources/assets/miscutils/textures/items/material/RodBlizz.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/0.PNG b/src/resources/assets/miscutils/textures/items/particle/0.PNG
new file mode 100644
index 0000000000..a0a32d4508
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/0.PNG
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/1.png b/src/resources/assets/miscutils/textures/items/particle/1.png
new file mode 100644
index 0000000000..4eddfa1727
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/1.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/10.PNG b/src/resources/assets/miscutils/textures/items/particle/10.PNG
new file mode 100644
index 0000000000..09eee049a9
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/10.PNG
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/11.PNG b/src/resources/assets/miscutils/textures/items/particle/11.PNG
new file mode 100644
index 0000000000..7f636919b6
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/11.PNG
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/12.PNG b/src/resources/assets/miscutils/textures/items/particle/12.PNG
new file mode 100644
index 0000000000..4e9504b03f
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/12.PNG
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/13.PNG b/src/resources/assets/miscutils/textures/items/particle/13.PNG
new file mode 100644
index 0000000000..d929480c16
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/13.PNG
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/14.PNG b/src/resources/assets/miscutils/textures/items/particle/14.PNG
new file mode 100644
index 0000000000..7338066c1a
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/14.PNG
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/15.PNG b/src/resources/assets/miscutils/textures/items/particle/15.PNG
new file mode 100644
index 0000000000..189a3127d9
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/15.PNG
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/16.PNG b/src/resources/assets/miscutils/textures/items/particle/16.PNG
new file mode 100644
index 0000000000..8824201ff3
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/16.PNG
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/17.PNG b/src/resources/assets/miscutils/textures/items/particle/17.PNG
new file mode 100644
index 0000000000..edea5115c0
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/17.PNG
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/18.PNG b/src/resources/assets/miscutils/textures/items/particle/18.PNG
new file mode 100644
index 0000000000..d3e63562d7
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/18.PNG
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/19.PNG b/src/resources/assets/miscutils/textures/items/particle/19.PNG
new file mode 100644
index 0000000000..43f9278b2c
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/19.PNG
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/2.png b/src/resources/assets/miscutils/textures/items/particle/2.png
new file mode 100644
index 0000000000..292207ae7e
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/2.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/20.PNG b/src/resources/assets/miscutils/textures/items/particle/20.PNG
new file mode 100644
index 0000000000..0e2ce23565
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/20.PNG
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/21.PNG b/src/resources/assets/miscutils/textures/items/particle/21.PNG
new file mode 100644
index 0000000000..758fa46941
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/21.PNG
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/22.PNG b/src/resources/assets/miscutils/textures/items/particle/22.PNG
new file mode 100644
index 0000000000..08bda97b66
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/22.PNG
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/23.PNG b/src/resources/assets/miscutils/textures/items/particle/23.PNG
new file mode 100644
index 0000000000..9ba21b22eb
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/23.PNG
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/24.PNG b/src/resources/assets/miscutils/textures/items/particle/24.PNG
new file mode 100644
index 0000000000..bc6aec8854
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/24.PNG
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/3.png b/src/resources/assets/miscutils/textures/items/particle/3.png
new file mode 100644
index 0000000000..d085b86507
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/3.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/4.png b/src/resources/assets/miscutils/textures/items/particle/4.png
new file mode 100644
index 0000000000..faf8db0576
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/4.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/5.png b/src/resources/assets/miscutils/textures/items/particle/5.png
new file mode 100644
index 0000000000..3a30274238
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/5.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/6.png b/src/resources/assets/miscutils/textures/items/particle/6.png
new file mode 100644
index 0000000000..8930ce52ef
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/6.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/7.PNG b/src/resources/assets/miscutils/textures/items/particle/7.PNG
new file mode 100644
index 0000000000..0581d47446
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/7.PNG
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/8.PNG b/src/resources/assets/miscutils/textures/items/particle/8.PNG
new file mode 100644
index 0000000000..6bd3c2c682
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/8.PNG
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/9.PNG b/src/resources/assets/miscutils/textures/items/particle/9.PNG
new file mode 100644
index 0000000000..430f1aed3d
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/9.PNG
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/science/Atom.png b/src/resources/assets/miscutils/textures/items/science/Atom.png
index b97ad8c669..eec0344eda 100644
--- a/src/resources/assets/miscutils/textures/items/science/Atom.png
+++ b/src/resources/assets/miscutils/textures/items/science/Atom.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/token/0.png b/src/resources/assets/miscutils/textures/items/token/0.png
index 925fe2f778..7947f30bb6 100644
--- a/src/resources/assets/miscutils/textures/items/token/0.png
+++ b/src/resources/assets/miscutils/textures/items/token/0.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/models/TinFoil.png b/src/resources/assets/miscutils/textures/models/TinFoil.png
index 4f4f29bb32..6c8e967db5 100644
--- a/src/resources/assets/miscutils/textures/models/TinFoil.png
+++ b/src/resources/assets/miscutils/textures/models/TinFoil.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/space/RocketGui.png b/src/resources/assets/miscutils/textures/space/RocketGui.png
index 615b894962..2aa4a893ed 100644
--- a/src/resources/assets/miscutils/textures/space/RocketGui.png
+++ b/src/resources/assets/miscutils/textures/space/RocketGui.png
Binary files differ