From 8b090e1fd20eb4c301996b5e1dfeb78353e595e4 Mon Sep 17 00:00:00 2001 From: ‭huajijam Date: Mon, 18 Mar 2019 20:52:30 +0800 Subject: fix a bug --- src/Java/gtPlusPlus/GTplusplus.java | 25 +- src/Java/gtPlusPlus/api/objects/data/AutoMap.java | 124 +- .../api/objects/data/ReverseAutoMap.java | 4 +- .../gtPlusPlus/api/objects/data/TypeCounter.java | 8 +- .../api/objects/minecraft/BTF_Inventory.java | 64 + .../gtPlusPlus/api/objects/minecraft/BlockPos.java | 5 + .../api/objects/minecraft/ItemPackage.java | 58 + .../api/objects/minecraft/ThreadPooCollector.java | 111 ++ .../gen/gt/WorldGen_GT_Australia_Ore_Layer.java | 2 +- src/Java/gtPlusPlus/core/block/ModBlocks.java | 39 +- .../gtPlusPlus/core/block/base/BlockBaseOre.java | 4 +- .../core/block/machine/Machine_PooCollector.java | 180 ++ .../core/block/machine/Machine_ProjectTable.java | 30 +- .../core/block/machine/Machine_Workbench.java | 30 +- .../core/client/renderer/RenderGiantChicken.java | 28 - src/Java/gtPlusPlus/core/common/CommonProxy.java | 17 +- .../common/compat/COMPAT_CompactWindmills.java | 18 +- .../core/common/compat/COMPAT_ExtraUtils.java | 2 +- .../core/common/compat/COMPAT_OpenBlocks.java | 2 +- .../core/common/compat/COMPAT_Railcraft.java | 14 + .../core/common/compat/COMPAT_Thaumcraft.java | 12 +- src/Java/gtPlusPlus/core/config/ConfigHandler.java | 4 +- .../core/entity/InternalEntityRegistry.java | 3 + .../entity/monster/EntityStaballoyConstruct.java | 17 +- .../entity/projectile/EntityThrowableBomb.java | 115 ++ .../gtPlusPlus/core/fluids/BlockFluidBase.java | 131 +- src/Java/gtPlusPlus/core/fluids/FactoryFluid.java | 49 + src/Java/gtPlusPlus/core/fluids/FluidFactory.java | 213 +++ src/Java/gtPlusPlus/core/fluids/FluidPackage.java | 83 + src/Java/gtPlusPlus/core/fluids/GenericFluid.java | 70 - .../core/fluids/ItemGenericFluidBucket.java | 318 ++++ .../gtPlusPlus/core/gui/item/GuiBaseGrindle.java | 2 +- .../core/gui/machine/GUI_ScrollTest.java | 7 +- .../core/handler/AchievementHandler.java | 417 +++++ .../gtPlusPlus/core/handler/COMPAT_HANDLER.java | 48 +- .../core/handler/COMPAT_IntermodStaging.java | 13 +- .../handler/StopAnnoyingFuckingAchievements.java | 24 + .../handler/events/GeneralTooltipEventHandler.java | 37 +- src/Java/gtPlusPlus/core/item/ModItems.java | 68 +- .../core/item/base/BaseItemComponent.java | 26 +- .../core/item/base/itemblock/FluidItemBlock.java | 61 + .../core/item/base/itemblock/ItemBlockFluid.java | 78 - .../core/item/base/itemblock/ItemBlockGtBlock.java | 48 +- .../item/base/itemblock/ItemBlockGtFrameBox.java | 71 + .../core/item/base/itemblock/ItemBlockMeta.java | 77 +- .../core/item/base/ore/BaseOreComponent.java | 7 +- .../core/item/base/rods/BaseItemRod.java | 30 +- .../core/item/base/screws/BaseItemScrew.java | 4 +- .../core/item/chemistry/AgriculturalChem.java | 408 +++++ .../gtPlusPlus/core/item/chemistry/CoalTar.java | 285 +-- .../core/item/chemistry/GenericChem.java | 108 ++ .../core/item/chemistry/IonParticles.java | 11 +- .../core/item/chemistry/NuclearChem.java | 44 +- .../gtPlusPlus/core/item/chemistry/OilChem.java | 201 +++ .../core/item/chemistry/RocketFuels.java | 493 +++-- .../core/item/crafting/ItemDummyResearch.java | 111 ++ .../core/item/general/ItemControlCore.java | 22 +- .../core/item/general/ItemGenericToken.java | 39 +- .../core/item/general/books/ItemBaseBook.java | 5 +- .../item/general/capture/ItemEntityCatcher.java | 13 +- .../item/general/throwables/ItemThrowableBomb.java | 123 ++ src/Java/gtPlusPlus/core/item/init/ItemsFoods.java | 12 +- .../core/item/tool/misc/DebugScanner.java | 100 ++ .../core/item/tool/misc/GregtechPump.java | 129 +- src/Java/gtPlusPlus/core/lib/CORE.java | 5 +- src/Java/gtPlusPlus/core/lib/LoadedMods.java | 6 + src/Java/gtPlusPlus/core/material/ALLOY.java | 6 +- src/Java/gtPlusPlus/core/material/ELEMENT.java | 6 +- src/Java/gtPlusPlus/core/material/Material.java | 50 +- src/Java/gtPlusPlus/core/material/ORES.java | 16 +- .../gtPlusPlus/core/recipe/RECIPES_GREGTECH.java | 459 ++++- .../gtPlusPlus/core/recipe/RECIPES_General.java | 201 ++- .../gtPlusPlus/core/recipe/RECIPES_Machines.java | 464 +++-- src/Java/gtPlusPlus/core/recipe/common/CI.java | 50 +- src/Java/gtPlusPlus/core/slots/SlotToolBox.java | 18 +- .../core/tileentities/ModTileEntities.java | 3 +- .../core/tileentities/base/TileEntityBase.java | 21 +- .../machines/TileEntityAdvPooCollector.java | 157 ++ .../machines/TileEntityBaseFluidCollector.java | 238 +++ .../machines/TileEntityPooCollector.java | 144 ++ src/Java/gtPlusPlus/core/util/Utils.java | 25 +- .../gtPlusPlus/core/util/data/StringUtils.java | 100 ++ src/Java/gtPlusPlus/core/util/math/MathUtils.java | 17 +- .../gtPlusPlus/core/util/minecraft/FluidUtils.java | 78 - .../gtPlusPlus/core/util/minecraft/FoodUtils.java | 2 +- .../gtPlusPlus/core/util/minecraft/ItemUtils.java | 116 +- .../core/util/minecraft/MaterialUtils.java | 20 +- .../core/util/minecraft/MiningUtils.java | 22 +- .../core/util/minecraft/RecipeUtils.java | 28 +- .../util/minecraft/gregtech/PollutionUtils.java | 26 +- .../core/util/reflect/ClientProxyFinder.java | 32 - .../gtPlusPlus/core/util/reflect/ProxyFinder.java | 4 +- .../core/util/reflect/ReflectionUtils.java | 499 ++++-- .../everglades/gen/gt/WorldGen_GT_Ore_Layer.java | 2 +- .../gtPlusPlus/nei/GT_NEI_MultiBlockHandler.java | 2 +- .../gtPlusPlus/plugin/agrichem/Core_Agrichem.java | 43 + .../plugin/agrichem/fluids/FluidLoader.java | 21 + .../plugin/fixes/vanilla/Core_VanillaFixes.java | 40 +- .../plugin/fixes/vanilla/VanillaBedHeightFix.java | 18 +- .../villagers/entity/EntityBaseVillager.java | 62 +- .../villagers/entity/EntityNativeAustralian.java | 61 +- .../villagers/tile/TileEntityGenericSpawner.java | 2 +- src/Java/gtPlusPlus/preloader/DevHelper.java | 2 +- .../gtPlusPlus/preloader/Preloader_GT_OreDict.java | 41 +- src/Java/gtPlusPlus/preloader/asm/AsmConfig.java | 10 + ...ClassTransformer_COFH_OreDictionaryArbiter.java | 28 +- .../ClassTransformer_GT_Achievements.java | 1896 ++++++++++++++++++++ .../ClassTransformer_GT_Achievements_CrashFix.java | 218 +++ .../ClassTransformer_GT_BaseMetaTileEntity.java | 158 ++ ...ransformer_GT_BlockMachines_MetaPipeEntity.java | 41 +- .../transformers/ClassTransformer_GT_Client.java | 581 ++++++ .../ClassTransformer_GT_Packet_TileEntity.java | 319 ++++ .../ClassTransformer_IC2_GetHarvestTool.java | 38 +- .../ClassTransformer_Railcraft_FluidHelper.java | 314 +++- .../ClassTransformer_TC_ItemWispEssence.java | 277 +++ .../transformers/Preloader_ClassTransformer2.java | 6 +- .../Preloader_Transformer_Handler.java | 67 +- .../xmod/bartcrops/HANDLER_CropsPlusPlus.java | 21 + .../xmod/bartcrops/LoaderOfTheCrops.java | 109 ++ .../bartcrops/abstracts/BaseAestheticCrop.java | 37 + .../xmod/bartcrops/abstracts/BaseCrop.java | 56 + .../bartcrops/abstracts/BaseHarvestableCrop.java | 69 + .../gtPlusPlus/xmod/bartcrops/crops/Crop_Hemp.java | 56 + .../xmod/eio/handler/HandlerTooltip_EIO.java | 8 +- src/Java/gtPlusPlus/xmod/forestry/HANDLER_FR.java | 8 +- .../forestry/bees/custom/GTPP_Bee_Definition.java | 2 +- .../xmod/forestry/bees/custom/GTPP_Bees.java | 2 +- .../forestry/bees/recipe/FR_Gregtech_Recipes.java | 2 +- .../galacticraft/handler/HandlerTooltip_GC.java | 42 +- .../core/world/gen/ChunkProviderGalactic.java | 46 +- .../xmod/galacticraft/util/GalacticUtils.java | 10 +- src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java | 84 + .../xmod/gregtech/api/enums/GregtechItemList.java | 16 +- .../interfaces/internal/IGregtech_RecipeAdder.java | 18 +- .../api/metatileentity/BaseCustomTileEntity.java | 3 +- .../custom/power/GTPP_MTE_BasicMachine.java | 20 +- ...GT_MetaTileEntity_BasicMachine_GTPP_Recipe.java | 2 +- .../GT_MetaTileEntity_Hatch_ControlCore.java | 24 + .../GT_MetaTileEntity_Hatch_DynamoBuffer.java | 12 +- .../GT_MetaTileEntity_Hatch_Naquadah.java | 2 +- .../GT_MetaTileEntity_Hatch_Plasma.java | 13 +- .../GT_MetaTileEntity_SuperBus_Input.java | 4 +- .../GT_MetaTileEntity_SuperBus_Output.java | 4 +- .../base/GregtechMeta_MultiBlockBase.java | 153 +- .../GregtechRocketFuelGeneratorBase.java | 107 +- .../xmod/gregtech/api/objects/MultiblockLayer.java | 10 +- .../api/util/GregtechOreDictUnificator.java | 3 - .../xmod/gregtech/common/Meta_GT_Proxy.java | 150 +- .../xmod/gregtech/common/StaticFields59.java | 62 +- .../common/blocks/GregtechMetaCasingBlocks4.java | 4 +- .../gregtech/common/helpers/ChargingHelper.java | 9 +- .../gregtech/common/helpers/TreeFarmHelper.java | 4 +- .../common/items/MetaGeneratedGregtechItems.java | 38 +- .../gregtech/common/render/GTPP_CapeRenderer.java | 12 +- .../GregtechMetaTileEntityRocketFuelGenerator.java | 11 +- .../GregtechMetaAtmosphericReconditioner.java | 4 +- .../basic/GregtechMetaWirelessCharger.java | 16 +- .../machines/multi/misc/GMTE_AmazonPackager.java | 10 +- ...regtechMetaTileEntity_IndustrialArcFurnace.java | 18 +- ...echMetaTileEntity_IndustrialCuttingMachine.java | 44 +- .../GregtechMetaTileEntity_IndustrialExtruder.java | 41 +- ...techMetaTileEntity_IndustrialVacuumFreezer.java | 26 +- .../GregtechMetaTileEntity_IndustrialWireMill.java | 46 +- .../advanced/GregtechMetaTileEntity_Adv_EBF.java | 27 +- .../GregtechMetaTileEntity_Adv_Implosion.java | 15 +- .../multi/production/GT4Entity_AutoCrafter.java | 2 +- .../production/GregtechMTE_MiniFusionPlant.java | 7 +- .../GregtechMetaTileEntityGeneratorArray.java | 5 +- .../GregtechMetaTileEntity_Cyclotron.java | 10 +- ...egtechMetaTileEntity_IndustrialFishingPond.java | 2 +- .../GregtechMetaTileEntity_MassFabricator.java | 4 +- .../GregtechMetaTileEntity_Refinery.java | 67 +- .../storage/GregtechMetaEnergyBuffer.java | 3 +- .../xmod/gregtech/loaders/GT_Material_Loader.java | 17 +- .../gregtech/loaders/RecipeGen_DustGeneration.java | 4 +- .../xmod/gregtech/loaders/RecipeGen_Ore.java | 17 +- .../gregtech/loaders/RecipeGen_ShapedCrafting.java | 7 +- .../gregtech/loaders/misc/AssLineAchievements.java | 180 ++ .../xmod/gregtech/recipes/GregtechRecipeAdder.java | 75 +- .../registration/gregtech/GregtechDehydrator.java | 6 +- .../gregtech/GregtechEnergyBuffer.java | 22 +- .../GregtechIndustrialCryogenicFreezer.java | 8 +- .../gregtech/GregtechIndustrialMassFabricator.java | 4 +- .../gregtech/GregtechNitroDieselFix.java | 5 +- .../xmod/growthcraft/fishtrap/FishTrapHandler.java | 5 +- src/Java/gtPlusPlus/xmod/ob/CallbackObject.java | 20 - .../xmod/ob/CustomSprinklerInventory.java | 35 - .../xmod/sc2/modules/ModuleExoticSeeds.java | 4 +- .../xmod/thaumcraft/HANDLER_Thaumcraft.java | 39 +- .../xmod/thaumcraft/aspect/GTPP_AspectCompat.java | 295 +-- .../xmod/thaumcraft/aspect/GTPP_AspectStack.java | 15 + .../xmod/thaumcraft/aspect/GTPP_Aspects.java | 77 - .../objects/ResearchNoteDataWrapper.java | 25 - .../wrapper/aspect/TC_AspectList_Wrapper.java | 40 + .../objects/wrapper/aspect/TC_Aspect_Wrapper.java | 327 ++++ .../wrapper/recipe/Base_Recipe_Wrapper.java | 10 + .../wrapper/recipe/TC_CrucibleRecipe_Wrapper.java | 19 + .../wrapper/recipe/TC_IArcaneRecipe_Wrapper.java | 19 + .../TC_InfusionEnchantmentRecipe_Wrapper.java | 19 + .../wrapper/recipe/TC_InfusionRecipe_Wrapper.java | 19 + .../wrapper/research/TC_PageType_Wrapper.java | 17 + .../research/TC_ResearchCategories_Wrapper.java | 89 + .../research/TC_ResearchCategoryList_Wrapper.java | 21 + .../wrapper/research/TC_ResearchItem_Wrapper.java | 246 +++ .../research/TC_ResearchNoteData_Wrapper.java | 14 + .../wrapper/research/TC_ResearchPage_Wrapper.java | 228 +++ .../xmod/thaumcraft/util/ThaumcraftUtils.java | 351 ++-- .../gtPlusPlus/xmod/tinkers/HANDLER_Tinkers.java | 14 +- .../xmod/tinkers/material/BaseTinkersMaterial.java | 274 +++ .../gtPlusPlus/xmod/tinkers/util/TinkersUtils.java | 481 ++++- src/Java/gtPlusPlus/xmod/witchery/WitchUtils.java | 21 +- 211 files changed, 14091 insertions(+), 2520 deletions(-) create mode 100644 src/Java/gtPlusPlus/api/objects/minecraft/ItemPackage.java create mode 100644 src/Java/gtPlusPlus/api/objects/minecraft/ThreadPooCollector.java create mode 100644 src/Java/gtPlusPlus/core/block/machine/Machine_PooCollector.java create mode 100644 src/Java/gtPlusPlus/core/common/compat/COMPAT_Railcraft.java create mode 100644 src/Java/gtPlusPlus/core/entity/projectile/EntityThrowableBomb.java create mode 100644 src/Java/gtPlusPlus/core/fluids/FactoryFluid.java create mode 100644 src/Java/gtPlusPlus/core/fluids/FluidFactory.java create mode 100644 src/Java/gtPlusPlus/core/fluids/FluidPackage.java delete mode 100644 src/Java/gtPlusPlus/core/fluids/GenericFluid.java create mode 100644 src/Java/gtPlusPlus/core/fluids/ItemGenericFluidBucket.java create mode 100644 src/Java/gtPlusPlus/core/handler/AchievementHandler.java create mode 100644 src/Java/gtPlusPlus/core/handler/StopAnnoyingFuckingAchievements.java create mode 100644 src/Java/gtPlusPlus/core/item/base/itemblock/FluidItemBlock.java delete mode 100644 src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockFluid.java create mode 100644 src/Java/gtPlusPlus/core/item/chemistry/AgriculturalChem.java create mode 100644 src/Java/gtPlusPlus/core/item/chemistry/GenericChem.java create mode 100644 src/Java/gtPlusPlus/core/item/chemistry/OilChem.java create mode 100644 src/Java/gtPlusPlus/core/item/crafting/ItemDummyResearch.java create mode 100644 src/Java/gtPlusPlus/core/item/general/throwables/ItemThrowableBomb.java create mode 100644 src/Java/gtPlusPlus/core/item/tool/misc/DebugScanner.java create mode 100644 src/Java/gtPlusPlus/core/tileentities/machines/TileEntityAdvPooCollector.java create mode 100644 src/Java/gtPlusPlus/core/tileentities/machines/TileEntityBaseFluidCollector.java create mode 100644 src/Java/gtPlusPlus/core/tileentities/machines/TileEntityPooCollector.java delete mode 100644 src/Java/gtPlusPlus/core/util/reflect/ClientProxyFinder.java create mode 100644 src/Java/gtPlusPlus/plugin/agrichem/Core_Agrichem.java create mode 100644 src/Java/gtPlusPlus/plugin/agrichem/fluids/FluidLoader.java create mode 100644 src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Achievements.java create mode 100644 src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Achievements_CrashFix.java create mode 100644 src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BaseMetaTileEntity.java create mode 100644 src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Client.java create mode 100644 src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Packet_TileEntity.java create mode 100644 src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_TC_ItemWispEssence.java create mode 100644 src/Java/gtPlusPlus/xmod/bartcrops/HANDLER_CropsPlusPlus.java create mode 100644 src/Java/gtPlusPlus/xmod/bartcrops/LoaderOfTheCrops.java create mode 100644 src/Java/gtPlusPlus/xmod/bartcrops/abstracts/BaseAestheticCrop.java create mode 100644 src/Java/gtPlusPlus/xmod/bartcrops/abstracts/BaseCrop.java create mode 100644 src/Java/gtPlusPlus/xmod/bartcrops/abstracts/BaseHarvestableCrop.java create mode 100644 src/Java/gtPlusPlus/xmod/bartcrops/crops/Crop_Hemp.java create mode 100644 src/Java/gtPlusPlus/xmod/gregtech/loaders/misc/AssLineAchievements.java delete mode 100644 src/Java/gtPlusPlus/xmod/ob/CallbackObject.java delete mode 100644 src/Java/gtPlusPlus/xmod/ob/CustomSprinklerInventory.java create mode 100644 src/Java/gtPlusPlus/xmod/thaumcraft/aspect/GTPP_AspectStack.java delete mode 100644 src/Java/gtPlusPlus/xmod/thaumcraft/aspect/GTPP_Aspects.java delete mode 100644 src/Java/gtPlusPlus/xmod/thaumcraft/objects/ResearchNoteDataWrapper.java create mode 100644 src/Java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/aspect/TC_AspectList_Wrapper.java create mode 100644 src/Java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/aspect/TC_Aspect_Wrapper.java create mode 100644 src/Java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/recipe/Base_Recipe_Wrapper.java create mode 100644 src/Java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/recipe/TC_CrucibleRecipe_Wrapper.java create mode 100644 src/Java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/recipe/TC_IArcaneRecipe_Wrapper.java create mode 100644 src/Java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/recipe/TC_InfusionEnchantmentRecipe_Wrapper.java create mode 100644 src/Java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/recipe/TC_InfusionRecipe_Wrapper.java create mode 100644 src/Java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/research/TC_PageType_Wrapper.java create mode 100644 src/Java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/research/TC_ResearchCategories_Wrapper.java create mode 100644 src/Java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/research/TC_ResearchCategoryList_Wrapper.java create mode 100644 src/Java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/research/TC_ResearchItem_Wrapper.java create mode 100644 src/Java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/research/TC_ResearchNoteData_Wrapper.java create mode 100644 src/Java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/research/TC_ResearchPage_Wrapper.java create mode 100644 src/Java/gtPlusPlus/xmod/tinkers/material/BaseTinkersMaterial.java (limited to 'src/Java/gtPlusPlus') diff --git a/src/Java/gtPlusPlus/GTplusplus.java b/src/Java/gtPlusPlus/GTplusplus.java index 79a3bee7ba..e10369abe3 100644 --- a/src/Java/gtPlusPlus/GTplusplus.java +++ b/src/Java/gtPlusPlus/GTplusplus.java @@ -74,7 +74,9 @@ public class GTplusplus implements ActionListener { SUPER(null), PRE_INIT(SUPER), INIT(PRE_INIT), - POST_INIT(INIT); + POST_INIT(INIT), + SERVER_START(POST_INIT), + STARTED(SERVER_START); protected boolean mIsPhaseActive = false; private final INIT_PHASE mPrev; @@ -219,19 +221,16 @@ public class GTplusplus implements ActionListener { Logger.INFO("Finally, we are finished. Have some cripsy bacon as a reward."); } - @EventHandler - public void load(FMLInitializationEvent event) { - - } - @EventHandler public synchronized void serverStarting(final FMLServerStartingEvent event) { + INIT_PHASE.SERVER_START.setPhaseActive(true); mChunkLoading.serverStarting(event); event.registerServerCommand(new CommandMath()); event.registerServerCommand(new CommandDebugChunks()); if (LoadedMods.Thaumcraft) { event.registerServerCommand(new CommandDumpAspects()); } + INIT_PHASE.STARTED.setPhaseActive(true); } @Mod.EventHandler @@ -302,6 +301,9 @@ public class GTplusplus implements ActionListener { if (CORE.RA.addMultiblockCentrifugeRecipe(x.mInputs, x.mFluidInputs, x.mFluidOutputs, x.mOutputs, x.mChances, x.mDuration, x.mEUt, x.mSpecialValue)) { mValidCount[0]++; } + else { + mInvalidCount[0]++; + } } else { Logger.INFO("[Recipe] Error generating Large Centrifuge recipe."); @@ -330,6 +332,9 @@ public class GTplusplus implements ActionListener { if (CORE.RA.addMultiblockElectrolyzerRecipe(x.mInputs, x.mFluidInputs, x.mFluidOutputs, x.mOutputs, x.mChances, x.mDuration, x.mEUt, x.mSpecialValue)) { mValidCount[1]++; } + else { + mInvalidCount[1]++; + } } else { Logger.INFO("[Recipe] Error generating Large Electrolyzer recipe."); @@ -371,11 +376,19 @@ public class GTplusplus implements ActionListener { mValidCount[2]++; } } + else { + mInvalidCount[2]++; + } } else { mInvalidCount[2]++; } } + + //Redo plasma recipes in Adv. Vac. + //Meta_GT_Proxy.generatePlasmaRecipesForAdvVacFreezer(); + + String[] machineName = new String[] {"Centrifuge", "Electrolyzer", "Vacuum Freezer"}; for (int i=0;i<3;i++) { Logger.INFO("[Recipe] Generated "+mValidCount[i]+" recipes for the Industrial "+machineName[i]+". The original machine can process "+mOriginalCount[i]+" recipes, meaning "+mInvalidCount[i]+" are invalid for this Multiblock's processing in some way."); diff --git a/src/Java/gtPlusPlus/api/objects/data/AutoMap.java b/src/Java/gtPlusPlus/api/objects/data/AutoMap.java index ca231dbd63..4663229514 100644 --- a/src/Java/gtPlusPlus/api/objects/data/AutoMap.java +++ b/src/Java/gtPlusPlus/api/objects/data/AutoMap.java @@ -3,7 +3,7 @@ package gtPlusPlus.api.objects.data; import java.io.Serializable; import java.util.*; -public class AutoMap implements Iterable, Cloneable, Serializable { +public class AutoMap implements Iterable, Cloneable, Serializable, Collection, Queue { /** * The Internal Map @@ -47,6 +47,10 @@ public class AutoMap implements Iterable, Cloneable, Serializable { return set(object); } + public synchronized boolean add(V object){ + return set(object) != null; + } + public synchronized V set(V object){ if (object == null) { return null; @@ -83,33 +87,129 @@ public class AutoMap implements Iterable, Cloneable, Serializable { return mInternalMap.isEmpty(); } - public synchronized boolean clear(){ + public synchronized void clear(){ this.mInternalID = 0; this.mInternalMap.clear(); this.mInternalNameMap.clear(); - return true; + return; } + @SuppressWarnings("unchecked") public synchronized V[] toArray() { - Collection col = this.mInternalMap.values(); - V[] val = (V[]) new Object[col.size()]; - int counter = 0; - for (V i : col) { - val[counter] = i; - counter++; + Collection col = this.mInternalMap.values(); + List abcList = new ArrayList(); + for (V g : col) { + abcList.add(g); } - return val; + return (V[]) abcList.toArray(); + //return (V[]) new AutoArray(this).getGenericArray(); } public synchronized final int getInternalID() { return mInternalID; - } + } - public synchronized final boolean remove(V value) { + public synchronized final boolean remove(Object value) { + value.getClass(); if (this.mInternalMap.containsValue(value)) { return this.mInternalMap.remove(mInternalNameMap.get(""+value.hashCode()), value); } return false; + } + + @Override + public boolean contains(Object o) { + for (V g : this.mInternalMap.values()) { + if (g.equals(o)) { + return true; + } + } + return false; + } + + @SuppressWarnings("unchecked") + @Override + public V[] toArray(V[] a) { + return (V[]) toArray(); + } + + @Override + public boolean containsAll(Collection c) { + boolean aTrue = true; + for (Object g : c) { + if (!this.contains(g)) { + aTrue = false; + } + } + return aTrue; + } + + @Override + public boolean addAll(Collection c) { + boolean aTrue = true; + for (V g : c) { + if (!this.add(g)) { + aTrue = false; + } + } + return aTrue; + } + + @Override + public boolean removeAll(Collection c) { + boolean aTrue = true; + for (Object g : c) { + if (!this.remove(g)) { + aTrue = false; + } + } + return aTrue; + } + + @Override + public boolean retainAll(Collection c) { + AutoMap aTempAllocation = new AutoMap(); + boolean aTrue = false; + aTempAllocation = this; + aTempAllocation.removeAll(c); + aTrue = this.removeAll(aTempAllocation); + aTempAllocation.clear(); + return aTrue; + } + + @Override + public boolean offer(V e) { + return add(e); + } + + @Override + public V remove() { + V y = this.get(0); + if (remove(y)) + return y; + else + return null; + } + + @Override + public V poll() { + if (this.mInternalMap.isEmpty()) { + return null; + } + return remove(); + } + + @Override + public V element() { + if (this.mInternalMap.isEmpty()) { + return null; + } + return this.get(0); + } + + @Override + public V peek() { + return element(); } } diff --git a/src/Java/gtPlusPlus/api/objects/data/ReverseAutoMap.java b/src/Java/gtPlusPlus/api/objects/data/ReverseAutoMap.java index 73858e8d43..72ec0bc293 100644 --- a/src/Java/gtPlusPlus/api/objects/data/ReverseAutoMap.java +++ b/src/Java/gtPlusPlus/api/objects/data/ReverseAutoMap.java @@ -151,11 +151,11 @@ public class ReverseAutoMap extends AutoMap { } @Override - public synchronized boolean clear(){ + public synchronized void clear(){ this.mInternalID = 0; this.mInternalMap.clear(); this.mInternalMapReverseLookup.clear(); - return true; + return; } @Override diff --git a/src/Java/gtPlusPlus/api/objects/data/TypeCounter.java b/src/Java/gtPlusPlus/api/objects/data/TypeCounter.java index 3d562bf76e..601a51392f 100644 --- a/src/Java/gtPlusPlus/api/objects/data/TypeCounter.java +++ b/src/Java/gtPlusPlus/api/objects/data/TypeCounter.java @@ -17,7 +17,7 @@ public class TypeCounter implements Set { private final Class mClass; public TypeCounter(Class o) { - Logger.INFO("Created new TypeCounter for "+o.getName()); + Logger.WARNING("Created new TypeCounter for "+o.getName()); mClass = o; } @@ -56,17 +56,17 @@ public class TypeCounter implements Set { InternalTypeCounterObject aValue = mInternalMap.get(aKey); if (aValue == null) { aValue = new InternalTypeCounterObject((V) arg0); - Logger.INFO("Adding new key to map: "+aKey); + Logger.WARNING("Adding new key to map: "+aKey); } aValue.add(); int a = aValue.count(); if (a > mHighestValue) { mHighestValue = a; mHighestValueKey = aKey; - Logger.INFO("New Highest Count - "+aKey+":"+a); + Logger.WARNING("New Highest Count - "+aKey+":"+a); } mInternalMap.put(aKey, aValue); - Logger.INFO(aKey+":"+a); + Logger.WARNING(aKey+":"+a); return true; } diff --git a/src/Java/gtPlusPlus/api/objects/minecraft/BTF_Inventory.java b/src/Java/gtPlusPlus/api/objects/minecraft/BTF_Inventory.java index 25968f1908..04ce0dff19 100644 --- a/src/Java/gtPlusPlus/api/objects/minecraft/BTF_Inventory.java +++ b/src/Java/gtPlusPlus/api/objects/minecraft/BTF_Inventory.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import gregtech.api.util.GT_Utility; import gtPlusPlus.core.tileentities.base.TileEntityBase; +import gtPlusPlus.core.util.data.ArrayUtils; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; @@ -19,6 +20,7 @@ public class BTF_Inventory implements ISidedInventory{ } public ItemStack[] getRealInventory() { + purgeNulls(); return this.mInventory; } @@ -139,6 +141,7 @@ public class BTF_Inventory implements ISidedInventory{ public void markDirty() { if (mTile != null) { + purgeNulls(); mTile.markDirty(); } } @@ -160,5 +163,66 @@ public class BTF_Inventory implements ISidedInventory{ return this.mTile != null ? mTile.getInventoryName() : ""; } + public boolean isFull() { + for (int s=0;s { + + public ItemPackage() { + this(false); + } + + public ItemPackage(boolean hasExtraLateRun) { + // Register for late run + COMPAT_HANDLER.mObjectsToRunInPostInit.put(this); + if (hasExtraLateRun) { + COMPAT_HANDLER.mObjectsToRunInOnLoadComplete.put(this); + } + init(); + } + + @Override + public final void run() { + generateRecipes(); + } + + @Override + public final String getInfoData() { + return errorMessage(); + } + + public abstract String errorMessage(); + + public abstract boolean generateRecipes(); + + private final void init() { + items(); + blocks(); + fluids(); + } + + public abstract void items(); + + public abstract void blocks(); + + public abstract void fluids(); + + /** + * Override this to handle GT Recipe map manipulation after they're Baked. + * @param event - the {@link FMLLoadCompleteEvent}. + * @return - Did we do anything? + */ + public boolean onLoadComplete(FMLLoadCompleteEvent event) { + return false; + }; + + +} diff --git a/src/Java/gtPlusPlus/api/objects/minecraft/ThreadPooCollector.java b/src/Java/gtPlusPlus/api/objects/minecraft/ThreadPooCollector.java new file mode 100644 index 0000000000..a5f466b19f --- /dev/null +++ b/src/Java/gtPlusPlus/api/objects/minecraft/ThreadPooCollector.java @@ -0,0 +1,111 @@ +package gtPlusPlus.api.objects.minecraft; + +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; + +import gtPlusPlus.GTplusplus; +import gtPlusPlus.GTplusplus.INIT_PHASE; +import gtPlusPlus.api.objects.data.Pair; +import gtPlusPlus.core.tileentities.machines.TileEntityPooCollector; +import gtPlusPlus.core.util.Utils; +import net.minecraft.entity.passive.EntityAnimal; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; +import net.minecraft.world.chunk.Chunk; + +public class ThreadPooCollector extends Thread { + + public boolean canRun = true; + public boolean isRunning = false; + + private static final long INIT_TIME; + private static long internalTickCounter = 0; + + private static final ThreadPooCollector mThread; + private static final HashMap> mPooCollectors = new LinkedHashMap>(); + + + static { + mThread = new ThreadPooCollector(); + INIT_TIME = (System.currentTimeMillis()); + } + + public ThreadPooCollector() { + setName("gtpp.handler.poop"); + run(); + } + + public static ThreadPooCollector getInstance() { + return mThread; + } + + public static void addTask(TileEntityPooCollector aTile) { + BlockPos aTempPos = new BlockPos(aTile); + mPooCollectors.put(aTempPos.getUniqueIdentifier(), new Pair(aTempPos, aTile)); + } + + public static void stopThread() { + mThread.canRun = false; + } + + + @Override + public void run() { + + if (!isRunning) { + isRunning = true; + } + else { + return; + } + + while (canRun) { + if (mPooCollectors.isEmpty() || GTplusplus.CURRENT_LOAD_PHASE != INIT_PHASE.STARTED) { + continue; + } else { + internalTickCounter = Utils.getTicksFromSeconds( + Utils.getSecondsFromMillis(Utils.getMillisSince(INIT_TIME, System.currentTimeMillis()))); + if (internalTickCounter % 100 == 0) { + for (Pair pair : mPooCollectors.values()) { + if (pair != null) { + BlockPos p = pair.getKey(); + if (p != null) { + if (p.world != null) { + World w = p.world; + if (w == null) { + continue; + } + Chunk c = w.getChunkFromBlockCoords(p.xPos, p.zPos); + if (c != null) { + if (c.isChunkLoaded) { + int startX = p.xPos - 2; + int startY = p.yPos; + int startZ = p.zPos - 2; + int endX = p.xPos + 3; + int endY = p.yPos + 5; + int endZ = p.zPos + 3; + AxisAlignedBB box = AxisAlignedBB.getBoundingBox(startX, startY, startZ, + endX, endY, endZ); + if (box != null) { + @SuppressWarnings("unchecked") + List animals = w.getEntitiesWithinAABB(EntityAnimal.class, box); + if (animals != null && !animals.isEmpty()) { + pair.getValue().onPostTick(animals); + } + } else { + continue; + } + } + } + } + } + } + } + } + } + } + } + + +} diff --git a/src/Java/gtPlusPlus/australia/gen/gt/WorldGen_GT_Australia_Ore_Layer.java b/src/Java/gtPlusPlus/australia/gen/gt/WorldGen_GT_Australia_Ore_Layer.java index bbaa7ef008..a5e5f8b245 100644 --- a/src/Java/gtPlusPlus/australia/gen/gt/WorldGen_GT_Australia_Ore_Layer.java +++ b/src/Java/gtPlusPlus/australia/gen/gt/WorldGen_GT_Australia_Ore_Layer.java @@ -72,7 +72,7 @@ extends WorldGen_GT_Australia { Field temp = ReflectionUtils.getField(GregTech_API.class, "sBlockStones"); tempBlock = temp.get(null); } - catch (NoSuchFieldException | IllegalArgumentException | IllegalAccessException e) {} + catch (IllegalArgumentException | IllegalAccessException e) {} mStoneTypes = (Block) tempBlock; } else { diff --git a/src/Java/gtPlusPlus/core/block/ModBlocks.java b/src/Java/gtPlusPlus/core/block/ModBlocks.java index f95f8814a9..2b04356f52 100644 --- a/src/Java/gtPlusPlus/core/block/ModBlocks.java +++ b/src/Java/gtPlusPlus/core/block/ModBlocks.java @@ -1,23 +1,32 @@ 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; -import gtPlusPlus.core.block.base.BasicBlock.BlockTypes; -import gtPlusPlus.core.block.base.BlockBaseOre; -import gtPlusPlus.core.block.general.*; +import gtPlusPlus.core.block.general.BlockCompressedObsidian; +import gtPlusPlus.core.block.general.BlockNet; +import gtPlusPlus.core.block.general.BlockTankXpConverter; +import gtPlusPlus.core.block.general.FirePit; +import gtPlusPlus.core.block.general.FluidTankInfinite; +import gtPlusPlus.core.block.general.HellFire; +import gtPlusPlus.core.block.general.LightGlass; +import gtPlusPlus.core.block.general.MiningExplosives; +import gtPlusPlus.core.block.general.PlayerDoors; import gtPlusPlus.core.block.general.antigrief.BlockWitherProof; -import gtPlusPlus.core.block.machine.*; +import gtPlusPlus.core.block.machine.CircuitProgrammer; +import gtPlusPlus.core.block.machine.DecayablesChest; +import gtPlusPlus.core.block.machine.FishTrap; +import gtPlusPlus.core.block.machine.HeliumGenerator; +import gtPlusPlus.core.block.machine.Machine_ModularityTable; +import gtPlusPlus.core.block.machine.Machine_PooCollector; +import gtPlusPlus.core.block.machine.Machine_ProjectTable; +import gtPlusPlus.core.block.machine.Machine_SuperJukebox; +import gtPlusPlus.core.block.machine.Machine_TradeTable; +import gtPlusPlus.core.block.machine.Machine_Workbench; +import gtPlusPlus.core.block.machine.Machine_WorkbenchAdvanced; import gtPlusPlus.core.block.machine.bedrock.Mining_Head_Fake; import gtPlusPlus.core.block.machine.bedrock.Mining_Pipe_Fake; import gtPlusPlus.core.fluids.FluidRegistryHandler; -import gtPlusPlus.core.lib.CORE; -import gtPlusPlus.core.util.Utils; -import gtPlusPlus.plugin.villagers.block.BlockGenericSpawner; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; import net.minecraftforge.fluids.Fluid; public final class ModBlocks { @@ -78,6 +87,8 @@ public final class ModBlocks { public static Block blockCustomMobSpawner; public static Block blockCustomSuperLight; public static Block blockCustomJukebox; + + public static Block blockPooCollector; public static void init() { Logger.INFO("Initializing Blocks."); @@ -127,6 +138,8 @@ public final class ModBlocks { //blockCustomSuperLight = new BlockSuperLight(); blockCustomJukebox = new Machine_SuperJukebox(); + + blockPooCollector = new Machine_PooCollector(); } diff --git a/src/Java/gtPlusPlus/core/block/base/BlockBaseOre.java b/src/Java/gtPlusPlus/core/block/base/BlockBaseOre.java index 4d7478dbdd..e1bc3462be 100644 --- a/src/Java/gtPlusPlus/core/block/base/BlockBaseOre.java +++ b/src/Java/gtPlusPlus/core/block/base/BlockBaseOre.java @@ -113,7 +113,7 @@ public class BlockBaseOre extends BasicBlock implements ITexturedBlock { hiddenTextureArray = new IIconContainer[6]; } } - catch (NoSuchFieldException | IllegalArgumentException | IllegalAccessException e) { + catch (IllegalArgumentException | IllegalAccessException e) { hiddenTextureArray = new IIconContainer[6]; } } @@ -216,7 +216,7 @@ public class BlockBaseOre extends BasicBlock implements ITexturedBlock { hiddenTextureArray = new IIconContainer[6]; } } - catch (NoSuchFieldException | IllegalArgumentException | IllegalAccessException e) { + catch (IllegalArgumentException | IllegalAccessException e) { hiddenTextureArray = new IIconContainer[6]; } } diff --git a/src/Java/gtPlusPlus/core/block/machine/Machine_PooCollector.java b/src/Java/gtPlusPlus/core/block/machine/Machine_PooCollector.java new file mode 100644 index 0000000000..23fdfe9733 --- /dev/null +++ b/src/Java/gtPlusPlus/core/block/machine/Machine_PooCollector.java @@ -0,0 +1,180 @@ +package gtPlusPlus.core.block.machine; + +import java.util.List; +import java.util.Random; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import gtPlusPlus.core.creative.AddToCreativeTab; +import gtPlusPlus.core.item.base.itemblock.ItemBlockMeta; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.tileentities.machines.TileEntityAdvPooCollector; +import gtPlusPlus.core.tileentities.machines.TileEntityBaseFluidCollector; +import gtPlusPlus.core.tileentities.machines.TileEntityPooCollector; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.core.util.minecraft.PlayerUtils; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +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.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class Machine_PooCollector extends BlockContainer { + + @SideOnly(Side.CLIENT) + private IIcon textureTop; + @SideOnly(Side.CLIENT) + private IIcon textureTop2; + @SideOnly(Side.CLIENT) + private IIcon textureSide; + @SideOnly(Side.CLIENT) + private IIcon textureSide2; + + public Machine_PooCollector() { + super(Material.iron); + this.setBlockName("blockPooCollector"); + this.setCreativeTab(AddToCreativeTab.tabMachines); + GameRegistry.registerBlock(this, ItemBlockMeta.class,"blockPooCollector"); + } + + /** + * Gets the block's texture. Args: side, meta + */ + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(final int aSide, final int aMeta) { + if (aMeta <= 7) { + blockIcon = textureSide; + return aSide <= 1 ? this.textureTop : this.textureSide; + } + else { + blockIcon = textureSide2; + return aSide <= 1 ? this.textureTop2 : this.textureSide2; + } + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(final IIconRegister p_149651_1_) { + this.textureTop = p_149651_1_.registerIcon(CORE.MODID + ":" + "TileEntities/" + "sewer_top"); + this.textureTop2 = p_149651_1_.registerIcon(CORE.MODID + ":" + "TileEntities/" + "sewer_adv_top"); + this.textureSide = p_149651_1_.registerIcon(CORE.MODID + ":" + "TileEntities/" + "sewer_sides"); + this.textureSide2 = p_149651_1_.registerIcon(CORE.MODID + ":" + "TileEntities/" + "sewer_adv_sides"); + } + + /** + * Called upon block activation (right click on the block.) + */ + @Override + public boolean onBlockActivated(final World world, final int x, final int y, final int z, final EntityPlayer player, + final int side, final float lx, final float ly, final float lz) { + if (world.isRemote) { + return true; + } else { + TileEntityBaseFluidCollector tank = (TileEntityBaseFluidCollector) world.getTileEntity(x, y, z); + if (tank != null) { + Item handItem; + try { + handItem = player.getHeldItem().getItem(); + } catch (Throwable t) { + handItem = null; + } + + //Fluid container code + /*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(); + } + } + + }*/ + + if (!tank.mInventory.isEmpty()) { + PlayerUtils.messagePlayer(player, "Inventory contains:"); + PlayerUtils.messagePlayer(player, ItemUtils.getArrayStackNames(tank.mInventory.getRealInventory())); + } + else { + PlayerUtils.messagePlayer(player, "No solids collected yet."); + } + if (tank.tank.getFluid() != null) { + PlayerUtils.messagePlayer(player, "Tank contains " + tank.tank.getFluidAmount() + "L of " + + tank.tank.getFluid().getLocalizedName()); + } + } + } + return true; + } + + @Override + public int getRenderBlockPass() { + return 0; + } + + @Override + public boolean isOpaqueCube() { + return super.isOpaqueCube(); + } + + @Override + public TileEntity createNewTileEntity(final World world, final int aMeta) { + return aMeta <= 7 ? new TileEntityPooCollector() : new TileEntityAdvPooCollector(); + } + + @Override + public void onBlockAdded(World world, int x, int y, int z) { + super.onBlockAdded(world, x, y, z); + } + + @Override + public int getBlockColor() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public int damageDropped(final int damage) { + return damage; + } + + @Override + public Item getItemDropped(final int meta, final Random rand, final int fortune) { + return Item.getItemFromBlock(this); + } + + @Override + public int getRenderColor(int aMeta) { + return super.getRenderColor(aMeta); + } + + @Override + public void getSubBlocks(Item aItem, CreativeTabs aTab, List aList) { + aList.add(new ItemStack(aItem, 1, 0)); + aList.add(new ItemStack(aItem, 1, 8)); + } + +} diff --git a/src/Java/gtPlusPlus/core/block/machine/Machine_ProjectTable.java b/src/Java/gtPlusPlus/core/block/machine/Machine_ProjectTable.java index eecc379290..fdb6b1a0a8 100644 --- a/src/Java/gtPlusPlus/core/block/machine/Machine_ProjectTable.java +++ b/src/Java/gtPlusPlus/core/block/machine/Machine_ProjectTable.java @@ -133,34 +133,24 @@ public class Machine_ProjectTable extends BlockContainer implements ITileTooltip } @Optional.Method(modid = "EnderIO") - private static boolean checkEnderIOWrench(final ItemStack item){ - if (ReflectionUtils.doesClassExist("crazypants.enderio.api.tool.ITool")){ + private static boolean checkEnderIOWrench(final ItemStack item) { + if (ReflectionUtils.doesClassExist("crazypants.enderio.api.tool.ITool")) { Class wrenchClass; - try { - wrenchClass = Class.forName("crazypants.enderio.api.tool.ITool"); - if (wrenchClass.isInstance(item.getItem())){ - return true; - } - } - catch (final ClassNotFoundException e1) { - return false; + wrenchClass = ReflectionUtils.getClass("crazypants.enderio.api.tool.ITool"); + if (wrenchClass.isInstance(item.getItem())) { + return true; } } return false; } @Optional.Method(modid = "Buildcraft") - private static boolean checkBuildcraftWrench(final ItemStack item){ - if (ReflectionUtils.doesClassExist("buildcraft.api.tools.IToolWrench")){ + private static boolean checkBuildcraftWrench(final ItemStack item) { + if (ReflectionUtils.doesClassExist("buildcraft.api.tools.IToolWrench")) { Class wrenchClass; - try { - wrenchClass = Class.forName("buildcraft.api.tools.IToolWrench"); - if (wrenchClass.isInstance(item.getItem())){ - return true; - } - } - catch (final ClassNotFoundException e1) { - return false; + wrenchClass = ReflectionUtils.getClass("buildcraft.api.tools.IToolWrench"); + if (wrenchClass.isInstance(item.getItem())) { + return true; } } return false; diff --git a/src/Java/gtPlusPlus/core/block/machine/Machine_Workbench.java b/src/Java/gtPlusPlus/core/block/machine/Machine_Workbench.java index 675aeaaf2b..5c08612042 100644 --- a/src/Java/gtPlusPlus/core/block/machine/Machine_Workbench.java +++ b/src/Java/gtPlusPlus/core/block/machine/Machine_Workbench.java @@ -121,34 +121,24 @@ public class Machine_Workbench extends BlockContainer } @Optional.Method(modid = "EnderIO") - private static boolean checkEnderIOWrench(final ItemStack item){ - if (ReflectionUtils.doesClassExist("crazypants.enderio.api.tool.ITool")){ + private static boolean checkEnderIOWrench(final ItemStack item) { + if (ReflectionUtils.doesClassExist("crazypants.enderio.api.tool.ITool")) { Class wrenchClass; - try { - wrenchClass = Class.forName("crazypants.enderio.api.tool.ITool"); - if (wrenchClass.isInstance(item.getItem())){ - return true; - } - } - catch (final ClassNotFoundException e1) { - return false; + wrenchClass = ReflectionUtils.getClass("crazypants.enderio.api.tool.ITool"); + if (wrenchClass.isInstance(item.getItem())) { + return true; } } return false; } @Optional.Method(modid = "Buildcraft") - private static boolean checkBuildcraftWrench(final ItemStack item){ - if (ReflectionUtils.doesClassExist("buildcraft.api.tools.IToolWrench")){ + private static boolean checkBuildcraftWrench(final ItemStack item) { + if (ReflectionUtils.doesClassExist("buildcraft.api.tools.IToolWrench")) { Class wrenchClass; - try { - wrenchClass = Class.forName("buildcraft.api.tools.IToolWrench"); - if (wrenchClass.isInstance(item.getItem())){ - return true; - } - } - catch (final ClassNotFoundException e1) { - return false; + wrenchClass = ReflectionUtils.getClass("buildcraft.api.tools.IToolWrench"); + if (wrenchClass.isInstance(item.getItem())) { + return true; } } return false; diff --git a/src/Java/gtPlusPlus/core/client/renderer/RenderGiantChicken.java b/src/Java/gtPlusPlus/core/client/renderer/RenderGiantChicken.java index 59621ef830..cc1249280b 100644 --- a/src/Java/gtPlusPlus/core/client/renderer/RenderGiantChicken.java +++ b/src/Java/gtPlusPlus/core/client/renderer/RenderGiantChicken.java @@ -4,40 +4,12 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.model.ModelBase; import net.minecraft.client.renderer.entity.RenderChicken; -import net.minecraft.entity.passive.EntityChicken; -import net.minecraft.util.ResourceLocation; - -import gtPlusPlus.core.util.reflect.ReflectionUtils; @SideOnly(Side.CLIENT) public class RenderGiantChicken extends RenderChicken { - - /** - * Fancy reflective handling of nabbing the original chicken texture object, should save reload the texture to memory. :) - */ - private static final ResourceLocation chickenTexturesEx; - static { - ResourceLocation mChicken; - try { - mChicken = (ResourceLocation) ReflectionUtils.getField(RenderGiantChicken.class, "chickenTextures").get(null); - } - catch (IllegalArgumentException | IllegalAccessException | NoSuchFieldException e) { - mChicken = new ResourceLocation("textures/entity/chicken.png"); - } - chickenTexturesEx = mChicken; - } public RenderGiantChicken(ModelBase p_i1252_1_, float p_i1252_2_) { super(p_i1252_1_, p_i1252_2_); } - - /** - * Returns the location of an entity's texture. Doesn't seem to be called unless you call Render.bindEntityTexture. - */ - @Override - protected ResourceLocation getEntityTexture(EntityChicken p_110775_1_) - { - return chickenTexturesEx; - } } \ 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 9176dcc720..301ca992a4 100644 --- a/src/Java/gtPlusPlus/core/common/CommonProxy.java +++ b/src/Java/gtPlusPlus/core/common/CommonProxy.java @@ -18,11 +18,13 @@ 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.fluids.FluidFactory; 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.StopAnnoyingFuckingAchievements; import gtPlusPlus.core.handler.events.BlockEventHandler; import gtPlusPlus.core.handler.events.GeneralTooltipEventHandler; import gtPlusPlus.core.handler.events.PickaxeBlockBreakEventHandler; @@ -80,8 +82,8 @@ public class CommonProxy { ModItems.init(); ModBlocks.init(); CI.preInit(); - - COMPAT_IntermodStaging.preInit(); + FluidFactory.preInit(); + COMPAT_IntermodStaging.preInit(e); BookHandler.run(); // Registration of entities and renderers Logger.INFO("[Proxy] Calling Entity registrator."); @@ -116,6 +118,7 @@ public class CommonProxy { Logger.ERROR("[ERROR] Did not generate fluids at all."); } CI.init(); + FluidFactory.init(); /** * Register the Event Handlers. @@ -130,6 +133,10 @@ public class CommonProxy { Utils.registerEvent(new HandlerTooltip_EIO()); // Handles Custom Tooltips for GC Utils.registerEvent(new HandlerTooltip_GC()); + + if (CORE.DEVENV) { + Utils.registerEvent(new StopAnnoyingFuckingAchievements()); + } // Register Chunkloader ForgeChunkManager.setForcedChunkLoadingCallback(GTplusplus.instance, ChunkManager.getInstance()); @@ -147,12 +154,13 @@ public class CommonProxy { // Compat Handling COMPAT_HANDLER.registerMyModsOreDictEntries(); COMPAT_HANDLER.intermodOreDictionarySupport(); - COMPAT_IntermodStaging.init(); + COMPAT_IntermodStaging.init(e); } public void postInit(final FMLPostInitializationEvent e) { Logger.INFO("Cleaning up, doing postInit."); PlayerCache.initCache(); + FluidFactory.postInit(); // Make Burnables burnable if (!CORE.burnables.isEmpty()) { @@ -165,7 +173,7 @@ public class CommonProxy { COMPAT_HANDLER.RemoveRecipesFromOtherMods(); COMPAT_HANDLER.InitialiseHandlerThenAddRecipes(); COMPAT_HANDLER.startLoadingGregAPIBasedRecipes(); - COMPAT_IntermodStaging.postInit(); + COMPAT_IntermodStaging.postInit(e); COMPAT_HANDLER.runQueuedRecipes(); } @@ -175,6 +183,7 @@ public class CommonProxy { public void onLoadComplete(FMLLoadCompleteEvent event) { COMPAT_IntermodStaging.onLoadComplete(event); + COMPAT_HANDLER.onLoadComplete(event); } public void registerNetworkStuff() { diff --git a/src/Java/gtPlusPlus/core/common/compat/COMPAT_CompactWindmills.java b/src/Java/gtPlusPlus/core/common/compat/COMPAT_CompactWindmills.java index a5d0768e72..cd5d36b653 100644 --- a/src/Java/gtPlusPlus/core/common/compat/COMPAT_CompactWindmills.java +++ b/src/Java/gtPlusPlus/core/common/compat/COMPAT_CompactWindmills.java @@ -40,17 +40,17 @@ public class COMPAT_CompactWindmills { public static ItemStack evWindmill = ItemUtils.simpleMetaStack("CompactWindmills:blockCompactWindmill", 4, 1); //Compact Rotors - public static ItemStack rotor2 = ItemUtils.getItemStack("CompactWindmills:WOOL", 1); - public static ItemStack rotor1 = ItemUtils.getItemStack("CompactWindmills:WOOD", 1); - public static ItemStack rotor3 = ItemUtils.getItemStack("CompactWindmills:ALLOY", 1); - public static ItemStack rotor4 = ItemUtils.getItemStack("CompactWindmills:CARBON", 1); - public static ItemStack rotor5 = ItemUtils.getItemStack("CompactWindmills:IRIDIUM", 1); + public static ItemStack rotor2 = ItemUtils.getItemStackFromFQRN("CompactWindmills:WOOL", 1); + public static ItemStack rotor1 = ItemUtils.getItemStackFromFQRN("CompactWindmills:WOOD", 1); + public static ItemStack rotor3 = ItemUtils.getItemStackFromFQRN("CompactWindmills:ALLOY", 1); + public static ItemStack rotor4 = ItemUtils.getItemStackFromFQRN("CompactWindmills:CARBON", 1); + public static ItemStack rotor5 = ItemUtils.getItemStackFromFQRN("CompactWindmills:IRIDIUM", 1); //IC2 Rotors - public static ItemStack rotorIC1 = ItemUtils.getItemStack("IC2:itemwoodrotor", 1); - public static ItemStack rotorIC2 = ItemUtils.getItemStack("IC2:itemironrotor", 1); - public static ItemStack rotorIC3 = ItemUtils.getItemStack("IC2:itemsteelrotor", 1); - public static ItemStack rotorIC4 = ItemUtils.getItemStack("IC2:itemwcarbonrotor", 1); + public static ItemStack rotorIC1 = ItemUtils.getItemStackFromFQRN("IC2:itemwoodrotor", 1); + public static ItemStack rotorIC2 = ItemUtils.getItemStackFromFQRN("IC2:itemironrotor", 1); + public static ItemStack rotorIC3 = ItemUtils.getItemStackFromFQRN("IC2:itemsteelrotor", 1); + public static ItemStack rotorIC4 = ItemUtils.getItemStackFromFQRN("IC2:itemwcarbonrotor", 1); public static ItemStack rotorBlade1 = ItemUtils.simpleMetaStack("IC2:itemRecipePart", 7, 1); public static ItemStack rotorBlade2 = ItemUtils.simpleMetaStack("IC2:itemRecipePart", 8, 1); public static ItemStack rotorBlade3 = ItemUtils.simpleMetaStack("IC2:itemRecipePart", 10, 1); diff --git a/src/Java/gtPlusPlus/core/common/compat/COMPAT_ExtraUtils.java b/src/Java/gtPlusPlus/core/common/compat/COMPAT_ExtraUtils.java index 45a70997e4..4d736e1362 100644 --- a/src/Java/gtPlusPlus/core/common/compat/COMPAT_ExtraUtils.java +++ b/src/Java/gtPlusPlus/core/common/compat/COMPAT_ExtraUtils.java @@ -10,7 +10,7 @@ import gtPlusPlus.core.util.minecraft.RecipeUtils; public class COMPAT_ExtraUtils { public static void OreDict(){ - RECIPES_Tools.RECIPE_DivisionSigil = new ItemStack(ItemUtils.getItem("ExtraUtilities:divisionSigil")); + RECIPES_Tools.RECIPE_DivisionSigil = new ItemStack(ItemUtils.getItemFromFQRN("ExtraUtilities:divisionSigil")); run(); } diff --git a/src/Java/gtPlusPlus/core/common/compat/COMPAT_OpenBlocks.java b/src/Java/gtPlusPlus/core/common/compat/COMPAT_OpenBlocks.java index c7b90b780c..6381a6705e 100644 --- a/src/Java/gtPlusPlus/core/common/compat/COMPAT_OpenBlocks.java +++ b/src/Java/gtPlusPlus/core/common/compat/COMPAT_OpenBlocks.java @@ -13,7 +13,7 @@ public class COMPAT_OpenBlocks { private static final void run(){ - Item aGraveItem = ItemUtils.getItem("OpenBlocks:grave"); + Item aGraveItem = ItemUtils.getItemFromFQRN("OpenBlocks:grave"); if (aGraveItem == null) { return; } diff --git a/src/Java/gtPlusPlus/core/common/compat/COMPAT_Railcraft.java b/src/Java/gtPlusPlus/core/common/compat/COMPAT_Railcraft.java new file mode 100644 index 0000000000..f6c8e86808 --- /dev/null +++ b/src/Java/gtPlusPlus/core/common/compat/COMPAT_Railcraft.java @@ -0,0 +1,14 @@ +package gtPlusPlus.core.common.compat; + +public class COMPAT_Railcraft { + + public static void OreDict(){ + run(); + } + + private static final void run(){ + + + } + +} diff --git a/src/Java/gtPlusPlus/core/common/compat/COMPAT_Thaumcraft.java b/src/Java/gtPlusPlus/core/common/compat/COMPAT_Thaumcraft.java index 6247face1d..b78c10c8ce 100644 --- a/src/Java/gtPlusPlus/core/common/compat/COMPAT_Thaumcraft.java +++ b/src/Java/gtPlusPlus/core/common/compat/COMPAT_Thaumcraft.java @@ -20,9 +20,9 @@ public class COMPAT_Thaumcraft { for(int i=0; i<=6; i++){ //Utils.LOG_INFO(""+i); ItemUtils.getItemForOreDict("Thaumcraft:ItemShard", "shardAny", "TC Shard "+i, i); - GT_OreDictUnificator.registerOre("shardAny", ItemUtils.getItemStack("Thaumcraft:ItemShard:"+i, 1)); + GT_OreDictUnificator.registerOre("shardAny", ItemUtils.getItemStackFromFQRN("Thaumcraft:ItemShard:"+i, 1)); ItemUtils.getItemForOreDict("Thaumcraft:ItemShard", "gemInfusedAnything", "TC Shard "+i, i); - GT_OreDictUnificator.registerOre("gemInfusedAnything", ItemUtils.getItemStack("Thaumcraft:ItemShard:"+i, 1)); + GT_OreDictUnificator.registerOre("gemInfusedAnything", ItemUtils.getItemStackFromFQRN("Thaumcraft:ItemShard:"+i, 1)); //System.out.println("TC Shard registration count is: "+i); } @@ -30,15 +30,15 @@ public class COMPAT_Thaumcraft { for(int i=0; i<=6; i++){ //Utils.LOG_INFO(""+i); ItemUtils.getItemForOreDict("ForbiddenMagic:NetherShard", "shardAny", "FM Shard "+i, i); - GT_OreDictUnificator.registerOre("shardAny", ItemUtils.getItemStack("ForbiddenMagic:NetherShard:"+i, 1)); + GT_OreDictUnificator.registerOre("shardAny", ItemUtils.getItemStackFromFQRN("ForbiddenMagic:NetherShard:"+i, 1)); ItemUtils.getItemForOreDict("ForbiddenMagic:NetherShard", "gemInfusedAnything", "FM Shard "+i, i); - GT_OreDictUnificator.registerOre("gemInfusedAnything", ItemUtils.getItemStack("ForbiddenMagic:NetherShard:"+i, 1)); + GT_OreDictUnificator.registerOre("gemInfusedAnything", ItemUtils.getItemStackFromFQRN("ForbiddenMagic:NetherShard:"+i, 1)); //System.out.println("TC Shard registration count is: "+i); } ItemUtils.getItemForOreDict("ForbiddenMagic:GluttonyShard", "shardAny", "FM Gluttony Shard", 0); - GT_OreDictUnificator.registerOre("shardAny", ItemUtils.getItemStack("ForbiddenMagic:GluttonyShard", 1)); + GT_OreDictUnificator.registerOre("shardAny", ItemUtils.getItemStackFromFQRN("ForbiddenMagic:GluttonyShard", 1)); ItemUtils.getItemForOreDict("ForbiddenMagic:GluttonyShard", "gemInfusedAnything", "FM Gluttony Shard", 0); - GT_OreDictUnificator.registerOre("gemInfusedAnything", ItemUtils.getItemStack("ForbiddenMagic:GluttonyShard", 1)); + GT_OreDictUnificator.registerOre("gemInfusedAnything", ItemUtils.getItemStackFromFQRN("ForbiddenMagic:GluttonyShard", 1)); } } diff --git a/src/Java/gtPlusPlus/core/config/ConfigHandler.java b/src/Java/gtPlusPlus/core/config/ConfigHandler.java index 2fbd3f60c2..64c8b74b33 100644 --- a/src/Java/gtPlusPlus/core/config/ConfigHandler.java +++ b/src/Java/gtPlusPlus/core/config/ConfigHandler.java @@ -46,7 +46,9 @@ public class ConfigHandler { enableAlternativeDivisionSigilRecipe = config.getBoolean("enableAlternativeDivisionSigilRecipe", "machines", false, "Utilizes Neutronium instead."); boilerSteamPerSecond = config.getInt("boilerSteamPerSecond", "machines", 750, 0, 10000, "Sets the steam per second value in LV,MV,HV boilers (respectively 1x,2x,3x this number for the tiers)"); - requireControlCores = config.getBoolean("requireControlCores", "machines", true, "Multiblocks Require Control Cores"); + + //requireControlCores + boolean temp = config.getBoolean("requireControlCores", "machines", true, "Multiblocks Require Control Cores"); diff --git a/src/Java/gtPlusPlus/core/entity/InternalEntityRegistry.java b/src/Java/gtPlusPlus/core/entity/InternalEntityRegistry.java index 36f5b86184..e5c779adcf 100644 --- a/src/Java/gtPlusPlus/core/entity/InternalEntityRegistry.java +++ b/src/Java/gtPlusPlus/core/entity/InternalEntityRegistry.java @@ -14,6 +14,7 @@ import gtPlusPlus.core.entity.monster.EntitySickBlaze; import gtPlusPlus.core.entity.monster.EntityStaballoyConstruct; import gtPlusPlus.core.entity.projectile.EntityHydrofluoricAcidPotion; import gtPlusPlus.core.entity.projectile.EntitySulfuricAcidPotion; +import gtPlusPlus.core.entity.projectile.EntityThrowableBomb; import gtPlusPlus.core.entity.projectile.EntityToxinballSmall; import gtPlusPlus.core.util.Utils; @@ -51,6 +52,8 @@ public class InternalEntityRegistry { //EntityRegistry.registerGlobalEntityID(EntityTeslaTowerLightning.class, "plasmaBolt", EntityRegistry.findGlobalUniqueEntityId(), Utils.rgbtoHexValue(255, 0, 0), Utils.rgbtoHexValue(125, 125, 125)); EntityRegistry.registerModEntity(EntityTeslaTowerLightning.class, "plasmaBolt", mEntityID++, GTplusplus.instance, 64, 5, true); + EntityRegistry.registerModEntity(EntityThrowableBomb.class, "EntityThrowableBomb", mEntityID++, GTplusplus.instance, 64, 10, true); + /** * Globals, which generate spawn eggs. (Currently required for Giant chicken spawning) */ diff --git a/src/Java/gtPlusPlus/core/entity/monster/EntityStaballoyConstruct.java b/src/Java/gtPlusPlus/core/entity/monster/EntityStaballoyConstruct.java index bdc239b9ce..f6f397f59e 100644 --- a/src/Java/gtPlusPlus/core/entity/monster/EntityStaballoyConstruct.java +++ b/src/Java/gtPlusPlus/core/entity/monster/EntityStaballoyConstruct.java @@ -363,18 +363,15 @@ public class EntityStaballoyConstruct extends EntityIronGolem { } //Get a private field from a super class if it exists. - try { - if (mFirstUpdateField == null) { - mFirstUpdateField = ReflectionUtils.getField(Class.forName("net.minecraft.entity.Entity"), "firstUpdate"); - } - if (mFirstUpdateField != null && mReflectFirs