From 1b820de08a05070909a267e17f033fcf58ac8710 Mon Sep 17 00:00:00 2001 From: NotAPenguin Date: Mon, 2 Sep 2024 23:17:17 +0200 Subject: The Great Renaming (#3014) * move kekztech to a single root dir * move detrav to a single root dir * move gtnh-lanthanides to a single root dir * move tectech and delete some gross reflection in gt++ * remove more reflection inside gt5u * delete more reflection in gt++ * fix imports * move bartworks and bwcrossmod * fix proxies * move galactigreg and ggfab * move gtneioreplugin * try to fix gt++ bee loader * apply the rename rules to BW * apply rename rules to bwcrossmod * apply rename rules to detrav scanner mod * apply rename rules to galacticgreg * apply rename rules to ggfab * apply rename rules to goodgenerator * apply rename rules to gtnh-lanthanides * apply rename rules to gt++ * apply rename rules to kekztech * apply rename rules to kubatech * apply rename rules to tectech * apply rename rules to gt apply the rename rules to gt * fix tt import * fix mui hopefully * fix coremod except intergalactic * rename assline recipe class * fix a class name i stumbled on * rename StructureUtility to GTStructureUtility to prevent conflict with structurelib * temporary rename of GTTooltipDataCache to old name * fix gt client/server proxy names --- src/main/java/bartworks/API/APIConfigValues.java | 20 + src/main/java/bartworks/API/BioObjectAdder.java | 196 ++ src/main/java/bartworks/API/BioVatLogicAdder.java | 237 +++ src/main/java/bartworks/API/BorosilicateGlass.java | 211 ++ src/main/java/bartworks/API/GlassTier.java | 78 + src/main/java/bartworks/API/INoiseGen.java | 29 + src/main/java/bartworks/API/IRadMaterial.java | 39 + .../java/bartworks/API/ITileAddsInformation.java | 19 + src/main/java/bartworks/API/ITileDropsContent.java | 23 + .../API/ITileHasDifferentTextureSides.java | 39 + src/main/java/bartworks/API/SideReference.java | 39 + .../java/bartworks/API/VoidMinerDropAdder.java | 24 + src/main/java/bartworks/API/WerkstoffAPI.java | 35 + .../java/bartworks/API/WerkstoffAdderRegistry.java | 31 + .../java/bartworks/API/modularUI/BWUITextures.java | 68 + .../API/recipe/BWNBTDependantCraftingRecipe.java | 76 + .../bartworks/API/recipe/BacterialVatFrontend.java | 92 + .../bartworks/API/recipe/BartWorksRecipeMaps.java | 89 + .../java/bartworks/API/recipe/DynamicGTRecipe.java | 33 + .../bartworks/API/recipe/RadioHatchFrontend.java | 45 + .../ASM/BWCoreStaticReplacementMethodes.java | 112 ++ src/main/java/bartworks/GuiHandler.java | 34 + src/main/java/bartworks/MainMod.java | 214 ++ .../ClientEventHandler/TooltipEventHandler.java | 36 + .../client/creativetabs/BartWorksTab.java | 31 + .../java/bartworks/client/creativetabs/BioTab.java | 32 + .../java/bartworks/client/creativetabs/GT2Tab.java | 31 + .../client/gui/GuiContainerRotorBlock.java | 89 + .../client/renderer/BWBlockOreRenderer.java | 159 ++ .../bartworks/client/renderer/BWItemRenderer.java | 136 ++ .../client/renderer/BWVanillaTexture.java | 56 + .../client/renderer/EICPistonVisualizer.java | 112 ++ .../client/renderer/RendererGlassBlock.java | 112 ++ .../renderer/RendererSwitchingColorFluid.java | 333 ++++ .../client/textures/PrefixTextureLinker.java | 91 + .../java/bartworks/common/blocks/BWBlocks.java | 134 ++ .../bartworks/common/blocks/BWBlocksGlass.java | 187 ++ .../bartworks/common/blocks/BWBlocksGlass2.java | 179 ++ .../common/blocks/BWMachineBlockContainer.java | 43 + .../blocks/BWMultipleTileEntityContainer.java | 164 ++ .../common/blocks/BWTileEntityContainer.java | 204 ++ .../bartworks/common/blocks/BlockBioFluid.java | 92 + .../bartworks/common/commands/ChangeConfig.java | 72 + .../common/commands/ClearCraftingCache.java | 39 + .../common/commands/GetWorkingDirectory.java | 37 + .../common/commands/PrintRecipeListToFile.java | 62 + src/main/java/bartworks/common/commands/RunGC.java | 38 + .../java/bartworks/common/commands/SummonRuin.java | 46 + .../bartworks/common/configs/ConfigHandler.java | 301 +++ .../java/bartworks/common/items/BWItemBlocks.java | 84 + .../common/items/ItemCircuitProgrammer.java | 236 +++ .../java/bartworks/common/items/ItemLabModule.java | 41 + .../java/bartworks/common/items/ItemLabParts.java | 150 ++ .../bartworks/common/items/ItemRockCutter.java | 183 ++ .../common/items/ItemSimpleWindMeter.java | 76 + .../bartworks/common/items/ItemStonageRotors.java | 162 ++ .../bartworks/common/items/ItemTeslaStaff.java | 141 ++ .../bartworks/common/items/SimpleIconItem.java | 35 + .../bartworks/common/items/SimpleSubItemClass.java | 69 + .../common/loaders/ArtificialMicaLine.java | 191 ++ .../bartworks/common/loaders/BioCultureLoader.java | 104 + .../java/bartworks/common/loaders/BioItemList.java | 106 + .../bartworks/common/loaders/BioLabLoader.java | 23 + .../bartworks/common/loaders/BioRecipeLoader.java | 211 ++ .../ElectricImplosionCompressorRecipes.java | 229 +++ .../java/bartworks/common/loaders/FluidLoader.java | 145 ++ .../bartworks/common/loaders/ItemRegistry.java | 654 ++++++ .../common/loaders/LocalisationLoader.java | 62 + .../common/loaders/RadioHatchMaterialLoader.java | 365 ++++ .../bartworks/common/loaders/RecipeLoader.java | 59 + .../common/loaders/RegisterGlassTiers.java | 118 ++ .../common/loaders/RegisterServerCommands.java | 34 + .../common/loaders/StaticRecipeChangeLoaders.java | 562 ++++++ .../common/loaders/recipes/Assembler.java | 270 +++ .../common/loaders/recipes/AssemblyLine.java | 81 + .../common/loaders/recipes/Autoclave.java | 40 + .../common/loaders/recipes/Centrifuge.java | 141 ++ .../common/loaders/recipes/ChemicalBath.java | 83 + .../common/loaders/recipes/ChemicalReactor.java | 28 + .../common/loaders/recipes/CraftingRecipes.java | 468 +++++ .../common/loaders/recipes/Electrolyzer.java | 151 ++ .../common/loaders/recipes/Extractor.java | 44 + .../common/loaders/recipes/FakeRecipes.java | 11 + .../common/loaders/recipes/FluidHeater.java | 26 + .../common/loaders/recipes/FluidSolidifier.java | 102 + .../common/loaders/recipes/FormingPress.java | 76 + .../common/loaders/recipes/LaserEngraver.java | 27 + .../bartworks/common/loaders/recipes/Mixer.java | 62 + .../common/loaders/recipes/Pulverizer.java | 97 + .../common/loaders/recipes/PyrolyseOven.java | 27 + src/main/java/bartworks/common/net/BWNetwork.java | 170 ++ .../common/net/CircuitProgrammerPacket.java | 88 + src/main/java/bartworks/common/net/EICPacket.java | 60 + .../java/bartworks/common/net/MetaBlockPacket.java | 108 + .../bartworks/common/net/OreDictCachePacket.java | 71 + .../java/bartworks/common/net/RendererPacket.java | 99 + .../bartworks/common/net/ServerJoinedPacket.java | 61 + .../classic/TileEntityDimIDBridge.java | 24 + .../classic/TileEntityHeatedWaterPump.java | 375 ++++ .../tileentities/classic/TileEntityRotorBlock.java | 41 + .../tileentities/debug/MTECreativeScanner.java | 70 + .../common/tileentities/multis/MTEBioVat.java | 834 ++++++++ .../multis/MTECircuitAssemblyLine.java | 672 +++++++ .../multis/MTEDeepEarthHeatingPump.java | 336 ++++ .../multis/MTEElectricImplosionCompressor.java | 565 ++++++ .../multis/MTEHighTempGasCooledReactor.java | 619 ++++++ .../common/tileentities/multis/MTELESU.java | 590 ++++++ .../common/tileentities/multis/MTEManualTrafo.java | 363 ++++ .../multis/MTEThoriumHighTempReactor.java | 416 ++++ .../common/tileentities/multis/MTEWindmill.java | 637 ++++++ .../multis/mega/MTEMegaBlastFurnace.java | 430 ++++ .../multis/mega/MTEMegaChemicalReactor.java | 278 +++ .../multis/mega/MTEMegaDistillTower.java | 446 +++++ .../multis/mega/MTEMegaOilCracker.java | 465 +++++ .../multis/mega/MTEMegaVacuumFreezer.java | 533 +++++ .../multis/mega/MegaMultiBlockBase.java | 212 ++ .../tiered/GT_MetaTileEntity_RadioHatch.java | 494 +++++ .../tileentities/tiered/MTEAcidGenerator.java | 155 ++ .../common/tileentities/tiered/MTEBioLab.java | 405 ++++ .../tiered/MTECompressedFluidHatch.java | 57 + .../common/tileentities/tiered/MTEDiode.java | 125 ++ .../tileentities/tiered/MTEEnergyDistributor.java | 72 + .../tileentities/tiered/MTEGiantOutputHatch.java | 41 + .../tiered/MTEHumongousInputHatch.java | 41 + .../java/bartworks/neiHandler/BWNEIConfig.java | 96 + .../bartworks/neiHandler/BioLabNEIHandler.java | 70 + .../bartworks/neiHandler/BioVatNEIHandler.java | 71 + .../java/bartworks/neiHandler/OreNEIHandler.java | 249 +++ .../server/EventHandler/ServerEventHandler.java | 94 + .../system/material/BWGTMaterialReference.java | 523 +++++ .../system/material/BWItemMetaGeneratedBlock.java | 94 + .../system/material/BWMetaGeneratedBlocks.java | 130 ++ .../material/BWMetaGeneratedBlocksCasing.java | 121 ++ .../system/material/BWMetaGeneratedFrames.java | 144 ++ .../system/material/BWMetaGeneratedItems.java | 258 +++ .../system/material/BWMetaGeneratedOres.java | 133 ++ .../system/material/BWMetaGeneratedSmallOres.java | 76 + .../material/BWMetaGeneratedWerkstoffBlocks.java | 65 + .../system/material/BWNonMetaMaterialItems.java | 167 ++ .../BWTileEntityMetaGeneratedBlocksCasing.java | 50 + ...ileEntityMetaGeneratedBlocksCasingAdvanced.java | 50 + .../material/BWTileEntityMetaGeneratedOre.java | 116 ++ .../BWTileEntityMetaGeneratedSmallOre.java | 125 ++ .../BWTileEntityMetaGeneratedWerkstoffBlock.java | 49 + .../CircuitGeneration/BWCircuitsLoader.java | 25 + .../material/CircuitGeneration/BWMetaItems.java | 327 +++ .../material/CircuitGeneration/CircuitData.java | 76 + .../CircuitGeneration/CircuitImprintLoader.java | 367 ++++ .../CircuitGeneration/CircuitPartLoader.java | 265 +++ .../material/TileEntityMetaGeneratedBlock.java | 71 + .../java/bartworks/system/material/Werkstoff.java | 1263 ++++++++++++ .../bartworks/system/material/WerkstoffLoader.java | 2105 ++++++++++++++++++++ .../material/gtenhancement/BWGTMetaItems.java | 207 ++ .../material/gtenhancement/GTMetaItemEnhancer.java | 150 ++ .../gtenhancement/PlatinumSludgeOverHaul.java | 1102 ++++++++++ .../material/processingLoaders/AddSomeRecipes.java | 95 + .../processingLoaders/AdditionalRecipes.java | 537 +++++ .../material/processingLoaders/DownTierLoader.java | 47 + .../processingLoaders/LoadItemContainers.java | 76 + .../werkstoff_loaders/IWerkstoffRunnable.java | 21 + .../werkstoff_loaders/recipe/AspectLoader.java | 57 + .../werkstoff_loaders/recipe/BlockLoader.java | 73 + .../werkstoff_loaders/recipe/CasingLoader.java | 77 + .../werkstoff_loaders/recipe/CellLoader.java | 330 +++ .../recipe/CraftingMaterialLoader.java | 295 +++ .../werkstoff_loaders/recipe/CrushedLoader.java | 301 +++ .../werkstoff_loaders/recipe/DustLoader.java | 528 +++++ .../werkstoff_loaders/recipe/GemLoader.java | 294 +++ .../werkstoff_loaders/recipe/MetalLoader.java | 65 + .../werkstoff_loaders/recipe/MoltenCellLoader.java | 376 ++++ .../recipe/MultipleMetalLoader.java | 68 + .../werkstoff_loaders/recipe/OreLoader.java | 65 + .../werkstoff_loaders/recipe/RawOreLoader.java | 65 + .../recipe/SimpleMetalLoader.java | 249 +++ .../werkstoff_loaders/recipe/ToolLoader.java | 600 ++++++ .../registration/AssociationLoader.java | 41 + .../registration/BridgeMaterialsLoader.java | 171 ++ .../registration/CasingRegistrator.java | 39 + .../bartworks/system/oredict/OreDictAdder.java | 42 + .../bartworks/system/oredict/OreDictHandler.java | 94 + .../java/bartworks/system/oregen/BWOreLayer.java | 273 +++ .../bartworks/system/oregen/BWWordGenerator.java | 140 ++ .../system/oregen/BWWorldGenRoss128b.java | 174 ++ .../system/oregen/BWWorldGenRoss128ba.java | 162 ++ .../bartworks/system/worldgen/BWWorldGenUtil.java | 48 + .../bartworks/system/worldgen/MapGenRuins.java | 501 +++++ src/main/java/bartworks/util/BWColorUtil.java | 216 ++ src/main/java/bartworks/util/BWRecipes.java | 71 + .../java/bartworks/util/BWTooltipReference.java | 45 + src/main/java/bartworks/util/BWUtil.java | 784 ++++++++ src/main/java/bartworks/util/BioCulture.java | 253 +++ src/main/java/bartworks/util/BioDNA.java | 51 + src/main/java/bartworks/util/BioData.java | 173 ++ src/main/java/bartworks/util/BioPlasmid.java | 51 + .../java/bartworks/util/CachedReflectionUtils.java | 31 + .../bartworks/util/ConnectedBlocksChecker.java | 187 ++ .../util/ConnectedBlocksCheckerIteration.java | 146 ++ src/main/java/bartworks/util/Coords.java | 79 + src/main/java/bartworks/util/EnumUtils.java | 50 + src/main/java/bartworks/util/MathUtils.java | 116 ++ src/main/java/bartworks/util/MurmurHash3.java | 306 +++ .../java/bartworks/util/NoiseUtil/BartsNoise.java | 171 ++ .../bartworks/util/NoiseUtil/SimplexNoise.java | 396 ++++ .../java/bartworks/util/NonNullWrappedHashMap.java | 56 + .../java/bartworks/util/NonNullWrappedHashSet.java | 51 + src/main/java/bartworks/util/Pair.java | 81 + .../java/bartworks/util/ResultWrongSievert.java | 97 + src/main/java/bartworks/util/StreamUtils.java | 38 + .../accessprioritylist/AccessPriorityList.java | 388 ++++ .../AccessPriorityListIterators.java | 163 ++ .../accessprioritylist/AccessPriorityListNode.java | 72 + .../java/bartworks/util/flowerset/FlowerSet.java | 146 ++ src/main/java/bartworks/util/log/DebugLog.java | 65 + 213 files changed, 39152 insertions(+) create mode 100644 src/main/java/bartworks/API/APIConfigValues.java create mode 100644 src/main/java/bartworks/API/BioObjectAdder.java create mode 100644 src/main/java/bartworks/API/BioVatLogicAdder.java create mode 100644 src/main/java/bartworks/API/BorosilicateGlass.java create mode 100644 src/main/java/bartworks/API/GlassTier.java create mode 100644 src/main/java/bartworks/API/INoiseGen.java create mode 100644 src/main/java/bartworks/API/IRadMaterial.java create mode 100644 src/main/java/bartworks/API/ITileAddsInformation.java create mode 100644 src/main/java/bartworks/API/ITileDropsContent.java create mode 100644 src/main/java/bartworks/API/ITileHasDifferentTextureSides.java create mode 100644 src/main/java/bartworks/API/SideReference.java create mode 100644 src/main/java/bartworks/API/VoidMinerDropAdder.java create mode 100644 src/main/java/bartworks/API/WerkstoffAPI.java create mode 100644 src/main/java/bartworks/API/WerkstoffAdderRegistry.java create mode 100644 src/main/java/bartworks/API/modularUI/BWUITextures.java create mode 100644 src/main/java/bartworks/API/recipe/BWNBTDependantCraftingRecipe.java create mode 100644 src/main/java/bartworks/API/recipe/BacterialVatFrontend.java create mode 100644 src/main/java/bartworks/API/recipe/BartWorksRecipeMaps.java create mode 100644 src/main/java/bartworks/API/recipe/DynamicGTRecipe.java create mode 100644 src/main/java/bartworks/API/recipe/RadioHatchFrontend.java create mode 100644 src/main/java/bartworks/ASM/BWCoreStaticReplacementMethodes.java create mode 100644 src/main/java/bartworks/GuiHandler.java create mode 100644 src/main/java/bartworks/MainMod.java create mode 100644 src/main/java/bartworks/client/ClientEventHandler/TooltipEventHandler.java create mode 100644 src/main/java/bartworks/client/creativetabs/BartWorksTab.java create mode 100644 src/main/java/bartworks/client/creativetabs/BioTab.java create mode 100644 src/main/java/bartworks/client/creativetabs/GT2Tab.java create mode 100644 src/main/java/bartworks/client/gui/GuiContainerRotorBlock.java create mode 100644 src/main/java/bartworks/client/renderer/BWBlockOreRenderer.java create mode 100644 src/main/java/bartworks/client/renderer/BWItemRenderer.java create mode 100644 src/main/java/bartworks/client/renderer/BWVanillaTexture.java create mode 100644 src/main/java/bartworks/client/renderer/EICPistonVisualizer.java create mode 100644 src/main/java/bartworks/client/renderer/RendererGlassBlock.java create mode 100644 src/main/java/bartworks/client/renderer/RendererSwitchingColorFluid.java create mode 100644 src/main/java/bartworks/client/textures/PrefixTextureLinker.java create mode 100644 src/main/java/bartworks/common/blocks/BWBlocks.java create mode 100644 src/main/java/bartworks/common/blocks/BWBlocksGlass.java create mode 100644 src/main/java/bartworks/common/blocks/BWBlocksGlass2.java create mode 100644 src/main/java/bartworks/common/blocks/BWMachineBlockContainer.java create mode 100644 src/main/java/bartworks/common/blocks/BWMultipleTileEntityContainer.java create mode 100644 src/main/java/bartworks/common/blocks/BWTileEntityContainer.java create mode 100644 src/main/java/bartworks/common/blocks/BlockBioFluid.java create mode 100644 src/main/java/bartworks/common/commands/ChangeConfig.java create mode 100644 src/main/java/bartworks/common/commands/ClearCraftingCache.java create mode 100644 src/main/java/bartworks/common/commands/GetWorkingDirectory.java create mode 100644 src/main/java/bartworks/common/commands/PrintRecipeListToFile.java create mode 100644 src/main/java/bartworks/common/commands/RunGC.java create mode 100644 src/main/java/bartworks/common/commands/SummonRuin.java create mode 100644 src/main/java/bartworks/common/configs/ConfigHandler.java create mode 100644 src/main/java/bartworks/common/items/BWItemBlocks.java create mode 100644 src/main/java/bartworks/common/items/ItemCircuitProgrammer.java create mode 100644 src/main/java/bartworks/common/items/ItemLabModule.java create mode 100644 src/main/java/bartworks/common/items/ItemLabParts.java create mode 100644 src/main/java/bartworks/common/items/ItemRockCutter.java create mode 100644 src/main/java/bartworks/common/items/ItemSimpleWindMeter.java create mode 100644 src/main/java/bartworks/common/items/ItemStonageRotors.java create mode 100644 src/main/java/bartworks/common/items/ItemTeslaStaff.java create mode 100644 src/main/java/bartworks/common/items/SimpleIconItem.java create mode 100644 src/main/java/bartworks/common/items/SimpleSubItemClass.java create mode 100644 src/main/java/bartworks/common/loaders/ArtificialMicaLine.java create mode 100644 src/main/java/bartworks/common/loaders/BioCultureLoader.java create mode 100644 src/main/java/bartworks/common/loaders/BioItemList.java create mode 100644 src/main/java/bartworks/common/loaders/BioLabLoader.java create mode 100644 src/main/java/bartworks/common/loaders/BioRecipeLoader.java create mode 100644 src/main/java/bartworks/common/loaders/ElectricImplosionCompressorRecipes.java create mode 100644 src/main/java/bartworks/common/loaders/FluidLoader.java create mode 100644 src/main/java/bartworks/common/loaders/ItemRegistry.java create mode 100644 src/main/java/bartworks/common/loaders/LocalisationLoader.java create mode 100644 src/main/java/bartworks/common/loaders/RadioHatchMaterialLoader.java create mode 100644 src/main/java/bartworks/common/loaders/RecipeLoader.java create mode 100644 src/main/java/bartworks/common/loaders/RegisterGlassTiers.java create mode 100644 src/main/java/bartworks/common/loaders/RegisterServerCommands.java create mode 100644 src/main/java/bartworks/common/loaders/StaticRecipeChangeLoaders.java create mode 100644 src/main/java/bartworks/common/loaders/recipes/Assembler.java create mode 100644 src/main/java/bartworks/common/loaders/recipes/AssemblyLine.java create mode 100644 src/main/java/bartworks/common/loaders/recipes/Autoclave.java create mode 100644 src/main/java/bartworks/common/loaders/recipes/Centrifuge.java create mode 100644 src/main/java/bartworks/common/loaders/recipes/ChemicalBath.java create mode 100644 src/main/java/bartworks/common/loaders/recipes/ChemicalReactor.java create mode 100644 src/main/java/bartworks/common/loaders/recipes/CraftingRecipes.java create mode 100644 src/main/java/bartworks/common/loaders/recipes/Electrolyzer.java create mode 100644 src/main/java/bartworks/common/loaders/recipes/Extractor.java create mode 100644 src/main/java/bartworks/common/loaders/recipes/FakeRecipes.java create mode 100644 src/main/java/bartworks/common/loaders/recipes/FluidHeater.java create mode 100644 src/main/java/bartworks/common/loaders/recipes/FluidSolidifier.java create mode 100644 src/main/java/bartworks/common/loaders/recipes/FormingPress.java create mode 100644 src/main/java/bartworks/common/loaders/recipes/LaserEngraver.java create mode 100644 src/main/java/bartworks/common/loaders/recipes/Mixer.java create mode 100644 src/main/java/bartworks/common/loaders/recipes/Pulverizer.java create mode 100644 src/main/java/bartworks/common/loaders/recipes/PyrolyseOven.java create mode 100644 src/main/java/bartworks/common/net/BWNetwork.java create mode 100644 src/main/java/bartworks/common/net/CircuitProgrammerPacket.java create mode 100644 src/main/java/bartworks/common/net/EICPacket.java create mode 100644 src/main/java/bartworks/common/net/MetaBlockPacket.java create mode 100644 src/main/java/bartworks/common/net/OreDictCachePacket.java create mode 100644 src/main/java/bartworks/common/net/RendererPacket.java create mode 100644 src/main/java/bartworks/common/net/ServerJoinedPacket.java create mode 100644 src/main/java/bartworks/common/tileentities/classic/TileEntityDimIDBridge.java create mode 100644 src/main/java/bartworks/common/tileentities/classic/TileEntityHeatedWaterPump.java create mode 100644 src/main/java/bartworks/common/tileentities/classic/TileEntityRotorBlock.java create mode 100644 src/main/java/bartworks/common/tileentities/debug/MTECreativeScanner.java create mode 100644 src/main/java/bartworks/common/tileentities/multis/MTEBioVat.java create mode 100644 src/main/java/bartworks/common/tileentities/multis/MTECircuitAssemblyLine.java create mode 100644 src/main/java/bartworks/common/tileentities/multis/MTEDeepEarthHeatingPump.java create mode 100644 src/main/java/bartworks/common/tileentities/multis/MTEElectricImplosionCompressor.java create mode 100644 src/main/java/bartworks/common/tileentities/multis/MTEHighTempGasCooledReactor.java create mode 100644 src/main/java/bartworks/common/tileentities/multis/MTELESU.java create mode 100644 src/main/java/bartworks/common/tileentities/multis/MTEManualTrafo.java create mode 100644 src/main/java/bartworks/common/tileentities/multis/MTEThoriumHighTempReactor.java create mode 100644 src/main/java/bartworks/common/tileentities/multis/MTEWindmill.java create mode 100644 src/main/java/bartworks/common/tileentities/multis/mega/MTEMegaBlastFurnace.java create mode 100644 src/main/java/bartworks/common/tileentities/multis/mega/MTEMegaChemicalReactor.java create mode 100644 src/main/java/bartworks/common/tileentities/multis/mega/MTEMegaDistillTower.java create mode 100644 src/main/java/bartworks/common/tileentities/multis/mega/MTEMegaOilCracker.java create mode 100644 src/main/java/bartworks/common/tileentities/multis/mega/MTEMegaVacuumFreezer.java create mode 100644 src/main/java/bartworks/common/tileentities/multis/mega/MegaMultiBlockBase.java create mode 100644 src/main/java/bartworks/common/tileentities/tiered/GT_MetaTileEntity_RadioHatch.java create mode 100644 src/main/java/bartworks/common/tileentities/tiered/MTEAcidGenerator.java create mode 100644 src/main/java/bartworks/common/tileentities/tiered/MTEBioLab.java create mode 100644 src/main/java/bartworks/common/tileentities/tiered/MTECompressedFluidHatch.java create mode 100644 src/main/java/bartworks/common/tileentities/tiered/MTEDiode.java create mode 100644 src/main/java/bartworks/common/tileentities/tiered/MTEEnergyDistributor.java create mode 100644 src/main/java/bartworks/common/tileentities/tiered/MTEGiantOutputHatch.java create mode 100644 src/main/java/bartworks/common/tileentities/tiered/MTEHumongousInputHatch.java create mode 100644 src/main/java/bartworks/neiHandler/BWNEIConfig.java create mode 100644 src/main/java/bartworks/neiHandler/BioLabNEIHandler.java create mode 100644 src/main/java/bartworks/neiHandler/BioVatNEIHandler.java create mode 100644 src/main/java/bartworks/neiHandler/OreNEIHandler.java create mode 100644 src/main/java/bartworks/server/EventHandler/ServerEventHandler.java create mode 100644 src/main/java/bartworks/system/material/BWGTMaterialReference.java create mode 100644 src/main/java/bartworks/system/material/BWItemMetaGeneratedBlock.java create mode 100644 src/main/java/bartworks/system/material/BWMetaGeneratedBlocks.java create mode 100644 src/main/java/bartworks/system/material/BWMetaGeneratedBlocksCasing.java create mode 100644 src/main/java/bartworks/system/material/BWMetaGeneratedFrames.java create mode 100644 src/main/java/bartworks/system/material/BWMetaGeneratedItems.java create mode 100644 src/main/java/bartworks/system/material/BWMetaGeneratedOres.java create mode 100644 src/main/java/bartworks/system/material/BWMetaGeneratedSmallOres.java create mode 100644 src/main/java/bartworks/system/material/BWMetaGeneratedWerkstoffBlocks.java create mode 100644 src/main/java/bartworks/system/material/BWNonMetaMaterialItems.java create mode 100644 src/main/java/bartworks/system/material/BWTileEntityMetaGeneratedBlocksCasing.java create mode 100644 src/main/java/bartworks/system/material/BWTileEntityMetaGeneratedBlocksCasingAdvanced.java create mode 100644 src/main/java/bartworks/system/material/BWTileEntityMetaGeneratedOre.java create mode 100644 src/main/java/bartworks/system/material/BWTileEntityMetaGeneratedSmallOre.java create mode 100644 src/main/java/bartworks/system/material/BWTileEntityMetaGeneratedWerkstoffBlock.java create mode 100644 src/main/java/bartworks/system/material/CircuitGeneration/BWCircuitsLoader.java create mode 100644 src/main/java/bartworks/system/material/CircuitGeneration/BWMetaItems.java create mode 100644 src/main/java/bartworks/system/material/CircuitGeneration/CircuitData.java create mode 100644 src/main/java/bartworks/system/material/CircuitGeneration/CircuitImprintLoader.java create mode 100644 src/main/java/bartworks/system/material/CircuitGeneration/CircuitPartLoader.java create mode 100644 src/main/java/bartworks/system/material/TileEntityMetaGeneratedBlock.java create mode 100644 src/main/java/bartworks/system/material/Werkstoff.java create mode 100644 src/main/java/bartworks/system/material/WerkstoffLoader.java create mode 100644 src/main/java/bartworks/system/material/gtenhancement/BWGTMetaItems.java create mode 100644 src/main/java/bartworks/system/material/gtenhancement/GTMetaItemEnhancer.java create mode 100644 src/main/java/bartworks/system/material/gtenhancement/PlatinumSludgeOverHaul.java create mode 100644 src/main/java/bartworks/system/material/processingLoaders/AddSomeRecipes.java create mode 100644 src/main/java/bartworks/system/material/processingLoaders/AdditionalRecipes.java create mode 100644 src/main/java/bartworks/system/material/processingLoaders/DownTierLoader.java create mode 100644 src/main/java/bartworks/system/material/processingLoaders/LoadItemContainers.java create mode 100644 src/main/java/bartworks/system/material/werkstoff_loaders/IWerkstoffRunnable.java create mode 100644 src/main/java/bartworks/system/material/werkstoff_loaders/recipe/AspectLoader.java create mode 100644 src/main/java/bartworks/system/material/werkstoff_loaders/recipe/BlockLoader.java create mode 100644 src/main/java/bartworks/system/material/werkstoff_loaders/recipe/CasingLoader.java create mode 100644 src/main/java/bartworks/system/material/werkstoff_loaders/recipe/CellLoader.java create mode 100644 src/main/java/bartworks/system/material/werkstoff_loaders/recipe/CraftingMaterialLoader.java create mode 100644 src/main/java/bartworks/system/material/werkstoff_loaders/recipe/CrushedLoader.java create mode 100644 src/main/java/bartworks/system/material/werkstoff_loaders/recipe/DustLoader.java create mode 100644 src/main/java/bartworks/system/material/werkstoff_loaders/recipe/GemLoader.java create mode 100644 src/main/java/bartworks/system/material/werkstoff_loaders/recipe/MetalLoader.java create mode 100644 src/main/java/bartworks/system/material/werkstoff_loaders/recipe/MoltenCellLoader.java create mode 100644 src/main/java/bartworks/system/material/werkstoff_loaders/recipe/MultipleMetalLoader.java create mode 100644 src/main/java/bartworks/system/material/werkstoff_loaders/recipe/OreLoader.java create mode 100644 src/main/java/bartworks/system/material/werkstoff_loaders/recipe/RawOreLoader.java create mode 100644 src/main/java/bartworks/system/material/werkstoff_loaders/recipe/SimpleMetalLoader.java create mode 100644 src/main/java/bartworks/system/material/werkstoff_loaders/recipe/ToolLoader.java create mode 100644 src/main/java/bartworks/system/material/werkstoff_loaders/registration/AssociationLoader.java create mode 100644 src/main/java/bartworks/system/material/werkstoff_loaders/registration/BridgeMaterialsLoader.java create mode 100644 src/main/java/bartworks/system/material/werkstoff_loaders/registration/CasingRegistrator.java create mode 100644 src/main/java/bartworks/system/oredict/OreDictAdder.java create mode 100644 src/main/java/bartworks/system/oredict/OreDictHandler.java create mode 100644 src/main/java/bartworks/system/oregen/BWOreLayer.java create mode 100644 src/main/java/bartworks/system/oregen/BWWordGenerator.java create mode 100644 src/main/java/bartworks/system/oregen/BWWorldGenRoss128b.java create mode 100644 src/main/java/bartworks/system/oregen/BWWorldGenRoss128ba.java create mode 100644 src/main/java/bartworks/system/worldgen/BWWorldGenUtil.java create mode 100644 src/main/java/bartworks/system/worldgen/MapGenRuins.java create mode 100644 src/main/java/bartworks/util/BWColorUtil.java create mode 100644 src/main/java/bartworks/util/BWRecipes.java create mode 100644 src/main/java/bartworks/util/BWTooltipReference.java create mode 100644 src/main/java/bartworks/util/BWUtil.java create mode 100644 src/main/java/bartworks/util/BioCulture.java create mode 100644 src/main/java/bartworks/util/BioDNA.java create mode 100644 src/main/java/bartworks/util/BioData.java create mode 100644 src/main/java/bartworks/util/BioPlasmid.java create mode 100644 src/main/java/bartworks/util/CachedReflectionUtils.java create mode 100644 src/main/java/bartworks/util/ConnectedBlocksChecker.java create mode 100644 src/main/java/bartworks/util/ConnectedBlocksCheckerIteration.java create mode 100644 src/main/java/bartworks/util/Coords.java create mode 100644 src/main/java/bartworks/util/EnumUtils.java create mode 100644 src/main/java/bartworks/util/MathUtils.java create mode 100644 src/main/java/bartworks/util/MurmurHash3.java create mode 100644 src/main/java/bartworks/util/NoiseUtil/BartsNoise.java create mode 100644 src/main/java/bartworks/util/NoiseUtil/SimplexNoise.java create mode 100644 src/main/java/bartworks/util/NonNullWrappedHashMap.java create mode 100644 src/main/java/bartworks/util/NonNullWrappedHashSet.java create mode 100644 src/main/java/bartworks/util/Pair.java create mode 100644 src/main/java/bartworks/util/ResultWrongSievert.java create mode 100644 src/main/java/bartworks/util/StreamUtils.java create mode 100644 src/main/java/bartworks/util/accessprioritylist/AccessPriorityList.java create mode 100644 src/main/java/bartworks/util/accessprioritylist/AccessPriorityListIterators.java create mode 100644 src/main/java/bartworks/util/accessprioritylist/AccessPriorityListNode.java create mode 100644 src/main/java/bartworks/util/flowerset/FlowerSet.java create mode 100644 src/main/java/bartworks/util/log/DebugLog.java (limited to 'src/main/java/bartworks') diff --git a/src/main/java/bartworks/API/APIConfigValues.java b/src/main/java/bartworks/API/APIConfigValues.java new file mode 100644 index 0000000000..7ab0326802 --- /dev/null +++ b/src/main/java/bartworks/API/APIConfigValues.java @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2018-2020 bartimaeusnek Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in the Software without restriction, + * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following + * conditions: The above copyright notice and this permission notice shall be included in all copies or substantial + * portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +package bartworks.API; + +public class APIConfigValues { + + // One-Side-Only + public static boolean debugLog = true; +} diff --git a/src/main/java/bartworks/API/BioObjectAdder.java b/src/main/java/bartworks/API/BioObjectAdder.java new file mode 100644 index 0000000000..d82124ac57 --- /dev/null +++ b/src/main/java/bartworks/API/BioObjectAdder.java @@ -0,0 +1,196 @@ +/* + * Copyright (c) 2018-2020 bartimaeusnek Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in the Software without restriction, + * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following + * conditions: The above copyright notice and this permission notice shall be included in all copies or substantial + * portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +package bartworks.API; + +import static gregtech.api.enums.Mods.Gendustry; +import static gregtech.api.recipe.RecipeMaps.centrifugeRecipes; +import static gregtech.api.util.GTRecipeBuilder.SECONDS; + +import java.awt.Color; + +import net.minecraft.item.EnumRarity; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; + +import bartworks.util.BioCulture; +import bartworks.util.BioDNA; +import bartworks.util.BioData; +import bartworks.util.BioPlasmid; +import gregtech.api.enums.FluidState; +import gregtech.api.enums.GTValues; +import gregtech.api.enums.Materials; +import gregtech.api.enums.TierEU; +import gregtech.api.fluid.GTFluidFactory; +import gregtech.api.util.GTUtility; + +public final class BioObjectAdder { + + /** + * @param color the color of the Culture + * @param name the name of the Culture + * @param plasmid the cultures plasmid, get it from createAndRegisterBioPlasmid + * @param dna the cultures dna, get it from createAndRegisterBioDNA + * @param breedable if the culture can be inserted into the BacterialVat + * @param rarity visual + * @return + */ + public static BioCulture createAndRegisterBioCulture(Color color, String name, BioPlasmid plasmid, BioDNA dna, + EnumRarity rarity, boolean breedable) { + if (BioCulture.BIO_CULTURE_ARRAY_LIST.size() > 1) + return BioCulture.createAndRegisterBioCulture(color, name, plasmid, dna, rarity, breedable); + new Exception( + "Too Early to register a BioCulture! You MUST run this either after:bartworks OR in the init Phase!") + .printStackTrace(); + return null; + } + + /** + * rarity inherits from dna + * + * @param color the color of the Culture + * @param name the name of the Culture + * @param plasmid the cultures plasmid, get it from createAndRegisterBioPlasmid + * @param dna the cultures dna, get it from createAndRegisterBioDNA + * @param breedable if the culture can be inserted into the BacterialVat + * @return + */ + public static BioCulture createAndRegisterBioCulture(Color color, String name, BioPlasmid plasmid, BioDNA dna, + boolean breedable) { + if (BioCulture.BIO_CULTURE_ARRAY_LIST.size() > 1) + return BioCulture.createAndRegisterBioCulture(color, name, plasmid, dna, breedable); + new Exception( + "Too Early to register a BioCulture! You MUST run this either after:bartworks OR in the init Phase!") + .printStackTrace(); + return null; + } + + /** + * unspecific Biodata that can be converted into DNA and Plasmid with the propper methodes + * + * @param aName the name of the Biodata + * @param rarity visual only + * @param chance the chanche to extract this BioData + * @param tier the tier of this BioData 0=HV, 1=EV etc. + * @return + */ + public static BioData createAndRegisterBioData(String aName, EnumRarity rarity, int chance, int tier) { + if (BioData.BIO_DATA_ARRAY_LIST.size() > 1) + return BioData.createAndRegisterBioData(aName, rarity, chance, tier); + new Exception("Too Early to register a BioData! You MUST run this either after:bartworks OR in the init Phase!") + .printStackTrace(); + return null; + } + + /** + * Default Constructor for HV Tier DNA with 75% extraction rate + * + * @param aName Name of the DNA String + * @param rarity visual + * @return + */ + public static BioDNA createAndRegisterBioDNA(String aName, EnumRarity rarity) { + if (BioData.BIO_DATA_ARRAY_LIST.size() > 1) return BioDNA.createAndRegisterBioDNA(aName, rarity); + new Exception("Too Early to register a BioData! You MUST run this either after:bartworks OR in the init Phase!") + .printStackTrace(); + return null; + } + + /** + * Default Constructor for HV Tier Plasmid with 75% extraction rate + * + * @param aName Name of the Plasmid + * @param rarity visual + * @return + */ + public static BioPlasmid createAndRegisterBioPlasmid(String aName, EnumRarity rarity) { + if (BioData.BIO_DATA_ARRAY_LIST.size() > 1) return BioPlasmid.createAndRegisterBioPlasmid(aName, rarity); + new Exception("Too Early to register a BioData! You MUST run this either after:bartworks OR in the init Phase!") + .printStackTrace(); + return null; + } + + /** + * @param aName Name of the DNA String + * @param rarity visual + * @param chance chanche of extracting + * @param tier tier needed to extract 0=HV, 1=EV etc. + * @return + */ + public static BioDNA createAndRegisterBioDNA(String aName, EnumRarity rarity, int chance, int tier) { + if (BioData.BIO_DATA_ARRAY_LIST.size() > 1) return BioDNA.createAndRegisterBioDNA(aName, rarity, chance, tier); + new Exception("Too Early to register a BioData! You MUST run this either after:bartworks OR in the init Phase!") + .printStackTrace(); + return null; + } + + /** + * @param aName Name of the Plasmid + * @param rarity visual + * @param chance chanche of extracting + * @param tier tier needed to extract 0=HV, 1=EV etc. + * @return + */ + public static BioPlasmid createAndRegisterBioPlasmid(String aName, EnumRarity rarity, int chance, int tier) { + if (BioData.BIO_DATA_ARRAY_LIST.size() > 1) + return BioPlasmid.createAndRegisterBioPlasmid(aName, rarity, chance, tier); + new Exception("Too Early to register a BioData! You MUST run this either after:bartworks OR in the init Phase!") + .printStackTrace(); + return null; + } + + /** + * @param voltageTier (i.e. 6 for LuV, 7 for ZPM, only intresting for LuV+) + * @return the propper Bacteria Tier (at least 0) + */ + public static int getBacteriaTierFromVoltageTier(int voltageTier) { + return Math.max(voltageTier - 6, 0); + } + + /** + * If you get NPE's related to BioCultures (most likely because of Load Order or creating BioCultures after the + * postinit Phase) execute this. + */ + public static void regenerateBioFluids() { + FluidStack dnaFluid = Gendustry.isModLoaded() ? FluidRegistry.getFluidStack("liquiddna", 100) + : Materials.Biomass.getFluid(100L); + for (BioCulture B : BioCulture.BIO_CULTURE_ARRAY_LIST) { + if (B.getFluidNotSet()) { + B.setFluid( + GTFluidFactory.builder( + B.getName() + .replace(" ", "") + .toLowerCase() + "fluid") + .withTextureName("molten.autogenerated") + .withColorRGBA( + new short[] { (short) B.getColor() + .getRed(), + (short) B.getColor() + .getBlue(), + (short) B.getColor() + .getGreen() }) + .withStateAndTemperature(FluidState.LIQUID, 300) + .buildAndRegister() + .asFluid()); + + GTValues.RA.stdBuilder() + .itemInputs(GTUtility.getIntegratedCircuit(10)) + .fluidInputs(new FluidStack(B.getFluid(), 1000)) + .fluidOutputs(dnaFluid) + .duration(25 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(centrifugeRecipes); + } + } + } +} diff --git a/src/main/java/bartworks/API/BioVatLogicAdder.java b/src/main/java/bartworks/API/BioVatLogicAdder.java new file mode 100644 index 0000000000..26e612c407 --- /dev/null +++ b/src/main/java/bartworks/API/BioVatLogicAdder.java @@ -0,0 +1,237 @@ +/* + * Copyright (c) 2018-2020 bartimaeusnek Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in the Software without restriction, + * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following + * conditions: The above copyright notice and this permission notice shall be included in all copies or substantial + * portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +package bartworks.API; + +import static gregtech.api.enums.Mods.IndustrialCraft2; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Objects; + +import net.minecraft.item.ItemStack; + +import bartworks.system.material.BWNonMetaMaterialItems; +import bartworks.system.material.WerkstoffLoader; +import bartworks.util.BWUtil; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.util.GTModHandler; + +public final class BioVatLogicAdder { + + public static class RadioHatch { + + public static void runBasicItemIntegration() { + giveItemStackRadioHatchAbilites(ItemList.ThoriumCell_1.get(1), Materials.Thorium, 3); + giveItemStackRadioHatchAbilites(ItemList.ThoriumCell_2.get(1), Materials.Thorium, 6); + giveItemStackRadioHatchAbilites(ItemList.ThoriumCell_4.get(1), Materials.Thorium, 12); + + giveItemStackRadioHatchAbilites(ItemList.NaquadahCell_1.get(1), Materials.Naquadah, 3); + giveItemStackRadioHatchAbilites(ItemList.NaquadahCell_2.get(1), Materials.Naquadah, 6); + giveItemStackRadioHatchAbilites(ItemList.NaquadahCell_4.get(1), Materials.Naquadah, 12); + + giveItemStackRadioHatchAbilites(ItemList.Moxcell_1.get(1), Materials.Plutonium, 3); + giveItemStackRadioHatchAbilites(ItemList.Moxcell_2.get(1), Materials.Plutonium, 6); + giveItemStackRadioHatchAbilites(ItemList.Moxcell_4.get(1), Materials.Plutonium, 12); + + giveItemStackRadioHatchAbilites(ItemList.Uraniumcell_1.get(1), Materials.Uranium, 3); + giveItemStackRadioHatchAbilites(ItemList.Uraniumcell_2.get(1), Materials.Uranium, 6); + giveItemStackRadioHatchAbilites(ItemList.Uraniumcell_4.get(1), Materials.Uranium, 12); + + giveItemStackRadioHatchAbilites( + BWNonMetaMaterialItems.TiberiumCell_1.get(1), + WerkstoffLoader.Tiberium.getBridgeMaterial(), + 3); + giveItemStackRadioHatchAbilites( + BWNonMetaMaterialItems.TiberiumCell_2.get(1), + WerkstoffLoader.Tiberium.getBridgeMaterial(), + 6); + giveItemStackRadioHatchAbilites( + BWNonMetaMaterialItems.TiberiumCell_4.get(1), + WerkstoffLoader.Tiberium.getBridgeMaterial(), + 12); + + giveItemStackRadioHatchAbilites(BWNonMetaMaterialItems.TheCoreCell.get(1), Materials.Naquadah, 96); + + giveItemStackRadioHatchAbilites(ItemList.Depleted_Thorium_1.get(1), Materials.Thorium, 3, 10); + giveItemStackRadioHatchAbilites(ItemList.Depleted_Thorium_2.get(1), Materials.Thorium, 6, 10); + giveItemStackRadioHatchAbilites(ItemList.Depleted_Thorium_4.get(1), Materials.Thorium, 12, 10); + + giveItemStackRadioHatchAbilites(ItemList.Depleted_Naquadah_1.get(1), Materials.Naquadah, 3, 10); + giveItemStackRadioHatchAbilites(ItemList.Depleted_Naquadah_2.get(1), Materials.Naquadah, 6, 10); + giveItemStackRadioHatchAbilites(ItemList.Depleted_Naquadah_4.get(1), Materials.Naquadah, 12, 10); + + giveItemStackRadioHatchAbilites( + GTModHandler.getModItem(IndustrialCraft2.ID, "reactorMOXSimpledepleted", 1), + Materials.Plutonium, + 3, + 10); + giveItemStackRadioHatchAbilites( + GTModHandler.getModItem(IndustrialCraft2.ID, "reactorMOXDualdepleted", 1), + Materials.Plutonium, + 6, + 10); + giveItemStackRadioHatchAbilites( + GTModHandler.getModItem(IndustrialCraft2.ID, "reactorMOXQuaddepleted", 1), + Materials.Plutonium, + 12, + 10); + + giveItemStackRadioHatchAbilites( + GTModHandler.getModItem(IndustrialCraft2.ID, "reactorUraniumSimpledepleted", 1), + Materials.Uranium, + 3, + 10); + giveItemStackRadioHatchAbilites( + GTModHandler.getModItem(IndustrialCraft2.ID, "reactorUraniumDualdepleted", 1), + Materials.Uranium, + 6, + 10); + giveItemStackRadioHatchAbilites( + GTModHandler.getModItem(IndustrialCraft2.ID, "reactorUraniumQuaddepleted", 1), + Materials.Uranium, + 12, + 10); + + giveItemStackRadioHatchAbilites( + BWNonMetaMaterialItems.Depleted_Tiberium_1.get(1), + WerkstoffLoader.Tiberium.getBridgeMaterial(), + 3, + 10); + giveItemStackRadioHatchAbilites( + BWNonMetaMaterialItems.Depleted_Tiberium_2.get(1), + WerkstoffLoader.Tiberium.getBridgeMaterial(), + 6, + 10); + giveItemStackRadioHatchAbilites( + BWNonMetaMaterialItems.Depleted_Tiberium_4.get(1), + WerkstoffLoader.Tiberium.getBridgeMaterial(), + 12, + 10); + + giveItemStackRadioHatchAbilites( + BWNonMetaMaterialItems.Depleted_TheCoreCell.get(1), + Materials.Naquadah, + 96, + 10); + + giveItemStackRadioHatchAbilites(ItemList.MNqCell_1.get(1), Materials.Naquadria, 3); + giveItemStackRadioHatchAbilites(ItemList.MNqCell_2.get(1), Materials.Naquadria, 6); + giveItemStackRadioHatchAbilites(ItemList.MNqCell_4.get(1), Materials.Naquadria, 12); + giveItemStackRadioHatchAbilites(ItemList.Depleted_MNq_1.get(1), Materials.Naquadria, 3, 10); + giveItemStackRadioHatchAbilites(ItemList.Depleted_MNq_2.get(1), Materials.Naquadria, 6, 10); + giveItemStackRadioHatchAbilites(ItemList.Depleted_MNq_4.get(1), Materials.Naquadria, 12, 10); + } + + private static final HashSet MaSv = new HashSet<>(); + private static final HashMap IsSv = new HashMap<>(); + private static final HashMap IsKg = new HashMap<>(); + private static final HashMap IsColor = new HashMap<>(); + + public static HashSet getMaSv() { + return RadioHatch.MaSv; + } + + public static HashMap getIsKg() { + return IsKg; + } + + public static HashMap getIsSv() { + return RadioHatch.IsSv; + } + + public static HashMap getIsColor() { + return IsColor; + } + + public static void setOverrideSvForMaterial(Materials m, int sv) { + MaSv.add(new BioVatLogicAdder.MaterialSvPair(m, sv)); + } + + public static void giveItemStackRadioHatchAbilites(ItemStack stack, int sv) { + IsSv.put(stack, sv); + } + + public static void giveItemStackRadioHatchAbilites(ItemStack stack, Materials materials) { + IsSv.put(stack, BWUtil.calculateSv(materials)); + } + + public static void giveItemStackRadioHatchAbilites(ItemStack stack, int sv, int kg) { + IsSv.put(stack, sv); + IsKg.put(stack, kg); + } + + public static void giveItemStackRadioHatchAbilites(ItemStack stack, Materials materials, int kg) { + giveItemStackRadioHatchAbilites(stack, BWUtil.calculateSv(materials), kg); + IsColor.put(stack, materials.getRGBA()); + } + + public static void giveItemStackRadioHatchAbilites(ItemStack stack, Materials materials, int kg, int divider) { + giveItemStackRadioHatchAbilites(stack, BWUtil.calculateSv(materials) / divider, kg); + IsColor.put(stack, materials.getRGBA()); + } + + public static void giveItemStackRadioHatchAbilites(ItemStack stack, int sv, int kg, short[] color) { + giveItemStackRadioHatchAbilites(stack, sv, kg); + IsColor.put(stack, color); + } + + public static int MaxSV = 150; + + public static int getMaxSv() { + int ret = MaxSV; + for (MaterialSvPair pair : RadioHatch.getMaSv()) { + if (pair.getSievert() > ret) ret = pair.getSievert(); + } + for (ItemStack is : RadioHatch.IsSv.keySet()) { + if (RadioHatch.IsSv.get(is) > ret) ret = RadioHatch.IsSv.get(is); + } + return ret; + } + } + + public static class MaterialSvPair { + + final Materials materials; + final Integer sievert; + + public MaterialSvPair(Materials materials, Integer sievert) { + this.materials = materials; + this.sievert = sievert; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || this.getClass() != o.getClass()) return false; + BioVatLogicAdder.MaterialSvPair that = (BioVatLogicAdder.MaterialSvPair) o; + return Objects.equals(this.getMaterials(), that.getMaterials()) + && Objects.equals(this.getSievert(), that.getSievert()); + } + + @Override + public int hashCode() { + return Objects.hash(this.getMaterials(), this.getSievert()); + } + + public Materials getMaterials() { + return this.materials; + } + + public Integer getSievert() { + return this.sievert; + } + } + +} diff --git a/src/main/java/bartworks/API/BorosilicateGlass.java b/src/main/java/bartworks/API/BorosilicateGlass.java new file mode 100644 index 0000000000..cc61ec1337 --- /dev/null +++ b/src/main/java/bartworks/API/BorosilicateGlass.java @@ -0,0 +1,211 @@ +package bartworks.API; + +import static com.gtnewhorizon.structurelib.structure.StructureUtility.lazy; +import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlockAdder; +import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlockAnyMeta; +import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlocksTiered; + +import java.util.ArrayList; +import java.util.List; +import java.util.PriorityQueue; +import java.util.function.BiConsumer; +import java.util.function.Function; +import java.util.stream.Collectors; + +import net.minecraft.block.Block; + +import org.apache.commons.lang3.tuple.Pair; + +import com.google.common.collect.HashBasedTable; +import com.google.common.collect.LinkedHashMultimap; +import com.google.common.collect.SetMultimap; +import com.google.common.collect.Table; +import com.gtnewhorizon.structurelib.structure.IStructureElement; + +import bartworks.common.loaders.ItemRegistry; +import cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.LoaderState; + +/** + * API for bartworks borosilicate glass. + *

+ * You might have noticed this API does not expose any Block instance, but only IStructureElements. This is in case we + * add more glass blocks later, and we run out of meta id for only one block. + *

+ * IStructureElements returned from this class SHOULD NOT have its methods called before post init, or else you + * might end up with wrong autoplace hints. + */ +public class BorosilicateGlass { + + private static List> representatives; + private static SetMultimap> allLevels; + private static final Table allLevelsReverse = HashBasedTable.create(); + + private static boolean isValidTier(int tier) { + return tier > 0 && tier <= Byte.MAX_VALUE; + } + + public static Block getGlassBlock() { + return ItemRegistry.bw_realglas; + } + + public static Block getGlassBlock2() { + return ItemRegistry.bw_realglas; + } + + private static void doRegister(byte level, Block block, int meta, + SetMultimap> allLevels) { + allLevels.put(level, Pair.of(block, meta)); + allLevelsReverse.put(block, meta, level); + } + + private static SetMultimap> getAllLevels() { + if (allLevels == null) { + SetMultimap> ret = LinkedHashMultimap.create(); + Block block = getGlassBlock(); + doRegister((byte) 3, block, 0, ret); + doRegister((byte) 4, block, 1, ret); + doRegister((byte) 5, block, 12, ret); + doRegister((byte) 5, block, 2, ret); + doRegister((byte) 6, block, 3, ret); + doRegister((byte) 7, block, 4, ret); + doRegister((byte) 8, block, 5, ret); + for (int i = 6; i < 12; i++) { + doRegister((byte) 3, block, i, ret); + } + doRegister((byte) 9, block, 13, ret); + doRegister((byte) 10, block, 14, ret); + doRegister((byte) 11, block, 15, ret); + block = getGlassBlock2(); + doRegister((byte) 12, block, 0, ret); + allLevels = ret; + } + return allLevels; + } + + private static List> getRepresentatives() { + if (representatives == null) { + SetMultimap> allLevels = getAllLevels(); + ArrayList> ret = new ArrayList<>(); + for (Byte level : new PriorityQueue<>(allLevels.keySet())) { + ret.add( + allLevels.get(level) + .iterator() + .next()); + } + representatives = ret; + } + return representatives; + } + + private static Byte checkWithinBound(byte val, byte lo, byte hi) { + return val > hi || val < lo ? null : val; + } + + /** + * ONLY registers borosilicate glass. Without this, {@link #getTier} won't work properly in environments that don't + * have the coremod. + */ + public static void registerBorosilicateGlass() { + getAllLevels(); + } + + /** + * Register a new block as valid borosilicate glass with given tier (even if it doesn't contain boron at all) + * + * Does not support matching by more complex stuff like tile entity! + * + * Can only be called at INIT stage. + */ + public static void registerGlass(Block block, int meta, byte tier) { + if (Loader.instance() + .hasReachedState(LoaderState.POSTINITIALIZATION)) throw new IllegalStateException("register too late!"); + if (!Loader.instance() + .hasReachedState(LoaderState.INITIALIZATION)) throw new IllegalStateException("register too early!"); + if (!isValidTier(tier)) throw new IllegalArgumentException("not a valid tier: " + tier); + doRegister(tier, block, meta, getAllLevels()); + } + + /** + * Check if there is at least one type of boroglass in that tier. + */ + public static boolean hasGlassInTier(int tier) { + return getAllLevels().containsKey((byte) tier); + } + + /** + * Get a structure element for a certain tier of borosilicate glass. DOES NOT accept other glass like + * reinforced glass, magic mirror, vanilla glass, etc. unless these glass are explicitly registered as a + * borosilicate glass. + *

+ * Use this if you just want boroglass here and doesn't care what tier it is. + */ + public static IStructureElement ofBoroGlass(int tier) { + if (!hasGlassInTier(tier)) throw new IllegalArgumentException(); + return lazy(t -> { + Pair pair = getRepresentatives().get(tier - 3); + return ofBlockAdder((t1, block1, meta) -> getTier(block1, meta) == tier, pair.getKey(), pair.getValue()); + }); + } + + /** + * Get a structure element for any kind of borosilicate glass. DOES NOT accept other glass like reinforced + * glass, magic mirror, vanilla glass, etc. unless these glass are explicitly registered as a borosilicate glass. + *

+ * Use this if you just want boroglass here and doesn't care what tier it is. + */ + public static IStructureElement ofBoroGlassAnyTier() { + return lazy(t -> ofBlockAnyMeta(getGlassBlock())); + } + + /** + * Get a structure element for borosilicate glass. DOES NOT accept other glass like reinforced glass, magic + * mirror, vanilla glass, etc. unless these glass are explicitly registered as a borosilicate glass. + *

+ * This assumes you want all glass used to be of the same tier. + *

+ * NOTE: This will accept the basic boron glass (HV tier) as well. You might not want this. Use the other overload + * to filter this out. + * + * @param initialValue the value set before structure check started + */ + public static IStructureElement ofBoroGlass(byte initialValue, BiConsumer setter, + Function getter) { + return lazy( + t -> ofBlocksTiered(BorosilicateGlass::getTier, getRepresentatives(), initialValue, setter, getter)); + } + + /** + * Get a structure element for borosilicate glass. DOES NOT accept other glass like reinforced glass, magic + * mirror, vanilla glass, etc. unless these glass are explicitly registered as a borosilicate glass. + * + * @param initialValue the value set before structure check started + * @param minTier minimal accepted tier. inclusive. must be greater than 0. + * @param maxTier maximal accepted tier. inclusive. + */ + public static IStructureElement ofBoroGlass(byte initialValue, byte minTier, byte maxTier, + BiConsumer setter, Function getter) { + if (minTier > maxTier || minTier < 0) throw new IllegalArgumentException(); + return lazy( + t -> ofBlocksTiered( + (block1, meta) -> checkWithinBound(getTier(block1, meta), minTier, maxTier), + getRepresentatives().stream() + .skip(Math.max(minTier - 3, 0)) + .limit(maxTier - minTier + 1) + .collect(Collectors.toList()), + initialValue, + setter, + getter)); + } + + /** + * Get the tier of this borosilicate glass. DOES NOT consider other glass like reinforced glass, magic + * mirror, vanilla glass, etc. unless these glass are explicitly registered as a borosilicate glass. + * + * @return glass tier, or -1 if is not a borosilicate glass + */ + public static byte getTier(Block block, int meta) { + Byte ret = allLevelsReverse.get(block, meta); + return ret == null ? -1 : ret; + } +} diff --git a/src/main/java/bartworks/API/GlassTier.java b/src/main/java/bartworks/API/GlassTier.java new file mode 100644 index 0000000000..381dae28e1 --- /dev/null +++ b/src/main/java/bartworks/API/GlassTier.java @@ -0,0 +1,78 @@ +package bartworks.API; + +import static cpw.mods.fml.common.registry.GameRegistry.findBlock; + +import java.util.HashMap; +import java.util.Objects; + +import net.minecraft.block.Block; + +import org.jetbrains.annotations.NotNull; + +public class GlassTier { + + private static final HashMap glasses = new HashMap<>(); + + /** + * @param modname The modid owning the block + * @param unlocalisedBlockName The name of the block itself + * @param meta The meta of the block + * @param tier the glasses Tier = Voltage tier (MIN 3) + */ + public static void addCustomGlass(String modname, String unlocalisedBlockName, int meta, int tier) { + Block block = findBlock(modname, unlocalisedBlockName); + if (block != null) { + addCustomGlass(block, meta, tier); + } else { + new IllegalArgumentException( + "Block: " + unlocalisedBlockName + + " of the Mod: " + + modname + + " was NOT found when attempting to register a glass!").printStackTrace(); + } + } + +