From 6d1b2216464d4dad449ac6fcfec476832224a55e Mon Sep 17 00:00:00 2001 From: Raven Szewczyk Date: Fri, 24 May 2024 19:50:35 +0100 Subject: Merge addon sources --- src/main/java/gtPlusPlus/core/block/ModBlocks.java | 104 + .../gtPlusPlus/core/block/base/BasicBlock.java | 70 + .../core/block/base/BasicTileBlockWithTooltip.java | 322 +++ .../gtPlusPlus/core/block/base/BlockBaseFluid.java | 102 + .../core/block/base/BlockBaseModular.java | 245 ++ .../gtPlusPlus/core/block/base/BlockBaseOre.java | 217 ++ .../block/general/BlockCompressedObsidian.java | 100 + .../core/block/general/BlockSuperLight.java | 197 ++ .../core/block/general/FluidTankInfinite.java | 141 + .../gtPlusPlus/core/block/general/HellFire.java | 535 ++++ .../gtPlusPlus/core/block/general/LightGlass.java | 137 + .../core/block/general/MiningExplosives.java | 193 ++ .../block/general/antigrief/BlockWitherProof.java | 161 ++ .../block/general/fluids/BlockFluidSludge.java | 68 + .../core/block/machine/CircuitProgrammer.java | 153 + .../core/block/machine/DecayablesChest.java | 186 ++ .../gtPlusPlus/core/block/machine/FishTrap.java | 136 + .../core/block/machine/Machine_PestKiller.java | 137 + .../core/block/machine/Machine_PooCollector.java | 177 ++ .../core/block/machine/Machine_ProjectTable.java | 160 ++ .../core/block/machine/Machine_SuperJukebox.java | 558 ++++ .../core/block/machine/VolumetricFlaskSetter.java | 157 ++ .../gtPlusPlus/core/client/CustomTextureSet.java | 30 + .../core/client/model/ModelDecayChest.java | 45 + .../core/client/model/ModelSickBlaze.java | 87 + .../core/client/model/ModelStaballoyConstruct.java | 117 + .../client/renderer/CustomItemBlockRenderer.java | 84 + .../client/renderer/CustomOreBlockRenderer.java | 2469 ++++++++++++++++ .../core/client/renderer/RenderDecayChest.java | 92 + .../renderer/RenderMiningExplosivesPrimed.java | 111 + .../core/client/renderer/RenderSickBlaze.java | 96 + .../client/renderer/RenderStaballoyConstruct.java | 163 ++ .../core/client/renderer/RenderToxinball.java | 89 + .../renderer/particle/EntityDropParticleFX.java | 105 + .../commands/CommandEnableDebugWhileRunning.java | 279 ++ .../java/gtPlusPlus/core/commands/CommandMath.java | 92 + .../gtPlusPlus/core/commands/CommandUtils.java | 18 + .../java/gtPlusPlus/core/common/CommonProxy.java | 210 ++ .../core/common/compat/COMPAT_Baubles.java | 58 + .../core/common/compat/COMPAT_ExtraUtils.java | 18 + .../core/common/compat/COMPAT_HarvestCraft.java | 14 + .../gtPlusPlus/core/common/compat/COMPAT_IC2.java | 58 + .../core/common/compat/COMPAT_Thaumcraft.java | 47 + .../core/common/compat/COMPAT_Witchery.java | 28 + .../java/gtPlusPlus/core/config/ConfigHandler.java | 670 +++++ .../container/Container_CircuitProgrammer.java | 176 ++ .../core/container/Container_DecayablesChest.java | 133 + .../core/container/Container_FishTrap.java | 134 + .../core/container/Container_PestKiller.java | 147 + .../core/container/Container_ProjectTable.java | 196 ++ .../core/container/Container_SuperJukebox.java | 232 ++ .../container/Container_VolumetricFlaskSetter.java | 170 ++ .../gtPlusPlus/core/creative/AddToCreativeTab.java | 25 + .../core/entity/EntityPrimedMiningExplosive.java | 405 +++ .../core/entity/InternalEntityRegistry.java | 64 + .../core/entity/monster/EntitySickBlaze.java | 224 ++ .../entity/monster/EntityStaballoyConstruct.java | 652 +++++ .../entity/projectile/EntityLightningAttack.java | 79 + .../core/entity/projectile/EntityToxinball.java | 334 +++ .../entity/projectile/EntityToxinballSmall.java | 65 + .../core/fluids/FluidRegistryHandler.java | 52 + .../gtPlusPlus/core/gui/GUI_Base_Tile_Entity.java | 14 + .../gtPlusPlus/core/gui/beta/Gui_ID_Registry.java | 47 + .../java/gtPlusPlus/core/gui/beta/Gui_Types.java | 10 + .../java/gtPlusPlus/core/gui/beta/MU_GuiId.java | 28 + .../core/gui/machine/GUI_CircuitProgrammer.java | 46 + .../core/gui/machine/GUI_DecayablesChest.java | 54 + .../gtPlusPlus/core/gui/machine/GUI_FishTrap.java | 52 + .../core/gui/machine/GUI_PestKiller.java | 175 ++ .../core/gui/machine/GUI_ProjectTable.java | 58 + .../core/gui/machine/GUI_SuperJukebox.java | 88 + .../gui/machine/GUI_VolumetricFlaskSetter.java | 228 ++ .../gtPlusPlus/core/gui/widget/GuiValueField.java | 104 + .../core/handler/AchievementHandler.java | 491 ++++ .../java/gtPlusPlus/core/handler/BookHandler.java | 486 ++++ .../core/handler/BurnableFuelHandler.java | 35 + .../gtPlusPlus/core/handler/COMPAT_HANDLER.java | 299 ++ .../core/handler/COMPAT_IntermodStaging.java | 50 + .../java/gtPlusPlus/core/handler/GuiHandler.java | 159 ++ .../gtPlusPlus/core/handler/PacketHandler.java | 94 + .../core/handler/Recipes/DecayableRecipe.java | 38 + .../handler/Recipes/LateRegistrationHandler.java | 27 + .../core/handler/Recipes/RegistrationHandler.java | 25 + .../core/handler/events/CustomMovementHandler.java | 144 + .../handler/events/EnderDragonDeathHandler.java | 61 + .../core/handler/events/EntityDeathHandler.java | 126 + .../handler/events/GeneralTooltipEventHandler.java | 20 + .../handler/events/PlayerSleepEventHandler.java | 109 + .../core/handler/events/SneakManager.java | 131 + .../workbench/Workbench_CraftingHandler.java | 161 ++ .../gtPlusPlus/core/interfaces/IGuiManager.java | 16 + .../core/interfaces/IGuiManagerMiscUtils.java | 4 + .../gtPlusPlus/core/interfaces/IItemBlueprint.java | 52 + .../inventories/InventoryCircuitProgrammer.java | 156 ++ .../core/inventories/InventoryFishTrap.java | 157 ++ .../core/inventories/InventoryPestKiller.java | 157 ++ .../inventories/Inventory_DecayablesChest.java | 157 ++ .../core/inventories/Inventory_EggBox.java | 157 ++ .../core/inventories/Inventory_SuperJukebox.java | 154 + .../Inventory_VolumetricFlaskSetter.java | 156 ++ .../projecttable/InventoryProjectMain.java | 173 ++ .../projecttable/InventoryProjectOutput.java | 160 ++ .../inventories/tradetable/InventoryTradeMain.java | 173 ++ .../tradetable/InventoryTradeOutput.java | 160 ++ src/main/java/gtPlusPlus/core/item/ModItems.java | 988 +++++++ .../core/item/base/BaseItemBurnable.java | 42 + .../core/item/base/BaseItemColourable.java | 100 + .../core/item/base/BaseItemComponent.java | 459 +++ .../core/item/base/BaseItemDamageable.java | 194 ++ .../gtPlusPlus/core/item/base/BaseItemTCShard.java | 69 + .../core/item/base/BaseItemTickable.java | 332 +++ .../core/item/base/BaseItemWithDamageValue.java | 30 + .../gtPlusPlus/core/item/base/BasicSpawnEgg.java | 238 ++ .../java/gtPlusPlus/core/item/base/CoreItem.java | 286 ++ .../core/item/base/bolts/BaseItemBolt.java | 11 + .../core/item/base/cell/BaseItemCell.java | 73 + .../core/item/base/cell/BaseItemPlasmaCell.java | 76 + .../core/item/base/dusts/BaseItemDust.java | 135 + .../core/item/base/dusts/BaseItemDustUnique.java | 164 ++ .../core/item/base/foil/BaseItemFoil.java | 11 + .../core/item/base/gears/BaseItemGear.java | 11 + .../core/item/base/gears/BaseItemSmallGear.java | 11 + .../core/item/base/ingots/BaseItemIngot.java | 20 + .../core/item/base/ingots/BaseItemIngotHot.java | 111 + .../core/item/base/ingots/BaseItemIngot_OLD.java | 106 + .../item/base/itemblock/ItemBlockBasicTile.java | 51 + .../core/item/base/itemblock/ItemBlockGtBlock.java | 184 ++ .../core/item/base/itemblock/ItemBlockMeta.java | 106 + .../core/item/base/itemblock/ItemBlockOre.java | 148 + .../core/item/base/misc/BaseItemMisc.java | 154 + .../core/item/base/misc/BaseItemParticle.java | 66 + .../core/item/base/nugget/BaseItemNugget.java | 11 + .../base/ore/BaseItemCentrifugedCrushedOre.java | 10 + .../core/item/base/ore/BaseItemCrushedOre.java | 10 + .../core/item/base/ore/BaseItemImpureDust.java | 10 + .../core/item/base/ore/BaseItemMilledOre.java | 24 + .../item/base/ore/BaseItemPurifiedCrushedOre.java | 10 + .../core/item/base/ore/BaseItemPurifiedDust.java | 10 + .../core/item/base/ore/BaseItemRawOre.java | 10 + .../core/item/base/ore/BaseOreComponent.java | 272 ++ .../core/item/base/plates/BaseItemPlate.java | 23 + .../core/item/base/plates/BaseItemPlateDense.java | 11 + .../core/item/base/plates/BaseItemPlateDouble.java | 12 + .../core/item/base/plates/BaseItemPlate_OLD.java | 91 + .../core/item/base/rings/BaseItemRing.java | 11 + .../core/item/base/rods/BaseItemRod.java | 11 + .../core/item/base/rods/BaseItemRodLong.java | 11 + .../core/item/base/rotors/BaseItemRotor.java | 11 + .../core/item/base/screws/BaseItemScrew.java | 11 + .../core/item/base/wire/BaseItemFineWire.java | 11 + .../gtPlusPlus/core/item/bauble/BaseBauble.java | 133 + .../core/item/bauble/BatteryPackBaseBauble.java | 261 ++ .../core/item/bauble/ElectricBaseBauble.java | 220 ++ .../core/item/bauble/FireProtectionBauble.java | 120 + .../core/item/chemistry/AgriculturalChem.java | 667 +++++ .../gtPlusPlus/core/item/chemistry/CoalTar.java | 319 +++ .../core/item/chemistry/GenericChem.java | 961 +++++++ .../core/item/chemistry/IonParticles.java | 171 ++ .../core/item/chemistry/MilledOreProcessing.java | 752 +++++ .../core/item/chemistry/NuclearChem.java | 105 + .../core/item/chemistry/RocketFuels.java | 562 ++++ .../core/item/chemistry/StandardBaseParticles.java | 156 ++ .../chemistry/general/ItemGenericChemBase.java | 321 +++ .../item/circuit/GTPP_IntegratedCircuit_Item.java | 213 ++ .../core/item/crafting/ItemDummyResearch.java | 92 + .../core/item/food/BaseItemMetaFood.java | 509 ++++ .../gtPlusPlus/core/item/general/BufferCore.java | 68 + .../core/item/general/ItemAirFilter.java | 143 + .../item/general/ItemBasicScrubberTurbine.java | 152 + .../core/item/general/ItemBlueprint.java | 297 ++ .../core/item/general/ItemCloakingDevice.java | 232 ++ .../gtPlusPlus/core/item/general/ItemEmpty.java | 18 + .../core/item/general/ItemGenericToken.java | 197 ++ .../core/item/general/ItemHalfCompleteCasings.java | 56 + .../core/item/general/ItemHealingDevice.java | 419 +++ .../core/item/general/ItemLavaFilter.java | 84 + .../core/item/general/ItemMagicFeather.java | 260 ++ .../core/item/general/books/ItemBaseBook.java | 122 + .../item/general/chassis/ItemBoilerChassis.java | 72 + .../item/general/chassis/ItemDehydratorCoil.java | 70 + .../general/chassis/ItemDehydratorCoilWire.java | 70 + .../item/general/spawn/ItemCustomSpawnEgg.java | 278 ++ .../java/gtPlusPlus/core/item/init/ItemsFoods.java | 50 + .../core/item/materials/DustDecayable.java | 97 + .../core/item/tool/misc/GregtechPump.java | 1320 +++++++++ .../core/item/wearable/WearableLoader.java | 14 + .../core/item/wearable/armour/ArmourLoader.java | 38 + .../core/item/wearable/armour/base/BaseArmour.java | 10 + .../item/wearable/armour/base/BaseArmourHelm.java | 9 + .../wearable/armour/tinfoil/ArmourTinFoilHat.java | 179 ++ .../core/item/wearable/base/BaseItemWearable.java | 61 + .../item/wearable/hazmat/ItemArmorHazmatEx.java | 35 + src/main/java/gtPlusPlus/core/lib/CORE.java | 242 ++ .../java/gtPlusPlus/core/lib/VanillaColours.java | 43 + src/main/java/gtPlusPlus/core/material/ALLOY.java | 828 ++++++ .../java/gtPlusPlus/core/material/ELEMENT.java | 651 +++++ .../gtPlusPlus/core/material/MISC_MATERIALS.java | 592 ++++ .../java/gtPlusPlus/core/material/Material.java | 1725 ++++++++++++ .../core/material/MaterialGenerator.java | 428 +++ .../gtPlusPlus/core/material/MaterialStack.java | 116 + .../java/gtPlusPlus/core/material/NONMATERIAL.java | 42 + src/main/java/gtPlusPlus/core/material/ORES.java | 701 +++++ .../java/gtPlusPlus/core/material/Particle.java | 154 + .../core/material/nuclear/FLUORIDES.java | 244 ++ .../gtPlusPlus/core/material/nuclear/NUCLIDE.java | 311 ++ .../core/material/state/MaterialState.java | 22 + .../handler/AbstractClientMessageHandler.java | 14 + .../network/handler/AbstractMessageHandler.java | 38 + .../handler/AbstractServerMessageHandler.java | 14 + .../core/network/packet/AbstractPacket.java | 8 + .../network/packet/Packet_VolumetricFlaskGui.java | 127 + .../network/packet/Packet_VolumetricFlaskGui2.java | 126 + .../gtPlusPlus/core/potion/GtPotionEffect.java | 10 + .../java/gtPlusPlus/core/proxy/ClientProxy.java | 190 ++ .../java/gtPlusPlus/core/proxy/ServerProxy.java | 28 + .../core/recipe/LOADER_Machine_Components.java | 114 + .../gtPlusPlus/core/recipe/RECIPES_GREGTECH.java | 1806 ++++++++++++ .../gtPlusPlus/core/recipe/RECIPES_General.java | 475 ++++ .../core/recipe/RECIPES_LaserEngraver.java | 135 + .../core/recipe/RECIPES_MachineComponents.java | 10 + .../gtPlusPlus/core/recipe/RECIPES_Machines.java | 2960 ++++++++++++++++++++ .../core/recipe/RECIPES_RareEarthProcessing.java | 168 ++ .../core/recipe/RECIPES_SeleniumProcessing.java | 142 + .../java/gtPlusPlus/core/recipe/RECIPES_Tools.java | 118 + .../gtPlusPlus/core/recipe/RECIPE_Batteries.java | 62 + .../gtPlusPlus/core/recipe/ShapedRecipeObject.java | 50 + .../java/gtPlusPlus/core/recipe/common/CI.java | 1008 +++++++ .../java/gtPlusPlus/core/slots/SlotCrafting.java | 154 + .../core/slots/SlotCraftingNoCollect.java | 139 + .../java/gtPlusPlus/core/slots/SlotDataStick.java | 42 + .../java/gtPlusPlus/core/slots/SlotGeneric.java | 22 + .../core/slots/SlotIntegratedCircuit.java | 110 + .../java/gtPlusPlus/core/slots/SlotJukebox.java | 35 + .../java/gtPlusPlus/core/slots/SlotNoInput.java | 22 + .../gtPlusPlus/core/slots/SlotVolumetricFlask.java | 28 + .../core/tileentities/ModTileEntities.java | 35 + .../core/tileentities/base/TileEntityBase.java | 1419 ++++++++++ .../general/TileEntityCircuitProgrammer.java | 313 +++ .../general/TileEntityDecayablesChest.java | 378 +++ .../tileentities/general/TileEntityFishTrap.java | 294 ++ .../general/TileEntityInfiniteFluid.java | 148 + .../general/TileEntityVolumetricFlaskSetter.java | 418 +++ .../machines/TileEntityAdvPooCollector.java | 140 + .../machines/TileEntityBaseFluidCollector.java | 241 ++ .../machines/TileEntityPestKiller.java | 532 ++++ .../machines/TileEntityPooCollector.java | 128 + .../machines/TileEntityProjectTable.java | 165 ++ .../gtPlusPlus/core/util/MovingAverageLong.java | 59 + src/main/java/gtPlusPlus/core/util/Utils.java | 436 +++ src/main/java/gtPlusPlus/core/util/data/AES.java | 135 + .../java/gtPlusPlus/core/util/data/ArrayUtils.java | 44 + .../java/gtPlusPlus/core/util/data/FileUtils.java | 112 + .../gtPlusPlus/core/util/data/LocaleUtils.java | 86 + .../gtPlusPlus/core/util/data/StringUtils.java | 177 ++ .../java/gtPlusPlus/core/util/math/MathUtils.java | 528 ++++ .../core/util/minecraft/EntityUtils.java | 146 + .../gtPlusPlus/core/util/minecraft/FluidUtils.java | 667 +++++ .../core/util/minecraft/InventoryUtils.java | 68 + .../gtPlusPlus/core/util/minecraft/ItemUtils.java | 1012 +++++++ .../gtPlusPlus/core/util/minecraft/LangUtils.java | 41 + .../core/util/minecraft/MaterialUtils.java | 372 +++ .../core/util/minecraft/MiningUtils.java | 133 + .../gtPlusPlus/core/util/minecraft/NBTUtils.java | 164 ++ .../core/util/minecraft/OreDictUtils.java | 20 + .../core/util/minecraft/PlayerUtils.java | 206 ++ .../core/util/minecraft/RecipeUtils.java | 465 +++ .../util/minecraft/gregtech/PollutionUtils.java | 147 + .../core/util/recipe/GT_RecipeUtils.java | 95 + .../core/util/recipe/RecipeHashStrat.java | 116 + .../core/util/reflect/AddGregtechRecipe.java | 77 + .../core/util/reflect/ReflectionUtils.java | 727 +++++ .../gtPlusPlus/core/util/sys/KeyboardUtils.java | 37 + .../core/world/explosions/ExplosionHandler.java | 31 + .../core/world/explosions/MiningExplosion.java | 442 +++ 274 files changed, 57183 insertions(+) create mode 100644 src/main/java/gtPlusPlus/core/block/ModBlocks.java create mode 100644 src/main/java/gtPlusPlus/core/block/base/BasicBlock.java create mode 100644 src/main/java/gtPlusPlus/core/block/base/BasicTileBlockWithTooltip.java create mode 100644 src/main/java/gtPlusPlus/core/block/base/BlockBaseFluid.java create mode 100644 src/main/java/gtPlusPlus/core/block/base/BlockBaseModular.java create mode 100644 src/main/java/gtPlusPlus/core/block/base/BlockBaseOre.java create mode 100644 src/main/java/gtPlusPlus/core/block/general/BlockCompressedObsidian.java create mode 100644 src/main/java/gtPlusPlus/core/block/general/BlockSuperLight.java create mode 100644 src/main/java/gtPlusPlus/core/block/general/FluidTankInfinite.java create mode 100644 src/main/java/gtPlusPlus/core/block/general/HellFire.java create mode 100644 src/main/java/gtPlusPlus/core/block/general/LightGlass.java create mode 100644 src/main/java/gtPlusPlus/core/block/general/MiningExplosives.java create mode 100644 src/main/java/gtPlusPlus/core/block/general/antigrief/BlockWitherProof.java create mode 100644 src/main/java/gtPlusPlus/core/block/general/fluids/BlockFluidSludge.java create mode 100644 src/main/java/gtPlusPlus/core/block/machine/CircuitProgrammer.java create mode 100644 src/main/java/gtPlusPlus/core/block/machine/DecayablesChest.java create mode 100644 src/main/java/gtPlusPlus/core/block/machine/FishTrap.java create mode 100644 src/main/java/gtPlusPlus/core/block/machine/Machine_PestKiller.java create mode 100644 src/main/java/gtPlusPlus/core/block/machine/Machine_PooCollector.java create mode 100644 src/main/java/gtPlusPlus/core/block/machine/Machine_ProjectTable.java create mode 100644 src/main/java/gtPlusPlus/core/block/machine/Machine_SuperJukebox.java create mode 100644 src/main/java/gtPlusPlus/core/block/machine/VolumetricFlaskSetter.java create mode 100644 src/main/java/gtPlusPlus/core/client/CustomTextureSet.java create mode 100644 src/main/java/gtPlusPlus/core/client/model/ModelDecayChest.java create mode 100644 src/main/java/gtPlusPlus/core/client/model/ModelSickBlaze.java create mode 100644 src/main/java/gtPlusPlus/core/client/model/ModelStaballoyConstruct.java create mode 100644 src/main/java/gtPlusPlus/core/client/renderer/CustomItemBlockRenderer.java create mode 100644 src/main/java/gtPlusPlus/core/client/renderer/CustomOreBlockRenderer.java create mode 100644 src/main/java/gtPlusPlus/core/client/renderer/RenderDecayChest.java create mode 100644 src/main/java/gtPlusPlus/core/client/renderer/RenderMiningExplosivesPrimed.java create mode 100644 src/main/java/gtPlusPlus/core/client/renderer/RenderSickBlaze.java create mode 100644 src/main/java/gtPlusPlus/core/client/renderer/RenderStaballoyConstruct.java create mode 100644 src/main/java/gtPlusPlus/core/client/renderer/RenderToxinball.java create mode 100644 src/main/java/gtPlusPlus/core/client/renderer/particle/EntityDropParticleFX.java create mode 100644 src/main/java/gtPlusPlus/core/commands/CommandEnableDebugWhileRunning.java create mode 100644 src/main/java/gtPlusPlus/core/commands/CommandMath.java create mode 100644 src/main/java/gtPlusPlus/core/commands/CommandUtils.java create mode 100644 src/main/java/gtPlusPlus/core/common/CommonProxy.java create mode 100644 src/main/java/gtPlusPlus/core/common/compat/COMPAT_Baubles.java create mode 100644 src/main/java/gtPlusPlus/core/common/compat/COMPAT_ExtraUtils.java create mode 100644 src/main/java/gtPlusPlus/core/common/compat/COMPAT_HarvestCraft.java create mode 100644 src/main/java/gtPlusPlus/core/common/compat/COMPAT_IC2.java create mode 100644 src/main/java/gtPlusPlus/core/common/compat/COMPAT_Thaumcraft.java create mode 100644 src/main/java/gtPlusPlus/core/common/compat/COMPAT_Witchery.java create mode 100644 src/main/java/gtPlusPlus/core/config/ConfigHandler.java create mode 100644 src/main/java/gtPlusPlus/core/container/Container_CircuitProgrammer.java create mode 100644 src/main/java/gtPlusPlus/core/container/Container_DecayablesChest.java create mode 100644 src/main/java/gtPlusPlus/core/container/Container_FishTrap.java create mode 100644 src/main/java/gtPlusPlus/core/container/Container_PestKiller.java create mode 100644 src/main/java/gtPlusPlus/core/container/Container_ProjectTable.java create mode 100644 src/main/java/gtPlusPlus/core/container/Container_SuperJukebox.java create mode 100644 src/main/java/gtPlusPlus/core/container/Container_VolumetricFlaskSetter.java create mode 100644 src/main/java/gtPlusPlus/core/creative/AddToCreativeTab.java create mode 100644 src/main/java/gtPlusPlus/core/entity/EntityPrimedMiningExplosive.java create mode 100644 src/main/java/gtPlusPlus/core/entity/InternalEntityRegistry.java create mode 100644 src/main/java/gtPlusPlus/core/entity/monster/EntitySickBlaze.java create mode 100644 src/main/java/gtPlusPlus/core/entity/monster/EntityStaballoyConstruct.java create mode 100644 src/main/java/gtPlusPlus/core/entity/projectile/EntityLightningAttack.java create mode 100644 src/main/java/gtPlusPlus/core/entity/projectile/EntityToxinball.java create mode 100644 src/main/java/gtPlusPlus/core/entity/projectile/EntityToxinballSmall.java create mode 100644 src/main/java/gtPlusPlus/core/fluids/FluidRegistryHandler.java create mode 100644 src/main/java/gtPlusPlus/core/gui/GUI_Base_Tile_Entity.java create mode 100644 src/main/java/gtPlusPlus/core/gui/beta/Gui_ID_Registry.java create mode 100644 src/main/java/gtPlusPlus/core/gui/beta/Gui_Types.java create mode 100644 src/main/java/gtPlusPlus/core/gui/beta/MU_GuiId.java create mode 100644 src/main/java/gtPlusPlus/core/gui/machine/GUI_CircuitProgrammer.java create mode 100644 src/main/java/gtPlusPlus/core/gui/machine/GUI_DecayablesChest.java create mode 100644 src/main/java/gtPlusPlus/core/gui/machine/GUI_FishTrap.java create mode 100644 src/main/java/gtPlusPlus/core/gui/machine/GUI_PestKiller.java create mode 100644 src/main/java/gtPlusPlus/core/gui/machine/GUI_ProjectTable.java create mode 100644 src/main/java/gtPlusPlus/core/gui/machine/GUI_SuperJukebox.java create mode 100644 src/main/java/gtPlusPlus/core/gui/machine/GUI_VolumetricFlaskSetter.java create mode 100644 src/main/java/gtPlusPlus/core/gui/widget/GuiValueField.java create mode 100644 src/main/java/gtPlusPlus/core/handler/AchievementHandler.java create mode 100644 src/main/java/gtPlusPlus/core/handler/BookHandler.java create mode 100644 src/main/java/gtPlusPlus/core/handler/BurnableFuelHandler.java create mode 100644 src/main/java/gtPlusPlus/core/handler/COMPAT_HANDLER.java create mode 100644 src/main/java/gtPlusPlus/core/handler/COMPAT_IntermodStaging.java create mode 100644 src/main/java/gtPlusPlus/core/handler/GuiHandler.java create mode 100644 src/main/java/gtPlusPlus/core/handler/PacketHandler.java create mode 100644 src/main/java/gtPlusPlus/core/handler/Recipes/DecayableRecipe.java create mode 100644 src/main/java/gtPlusPlus/core/handler/Recipes/LateRegistrationHandler.java create mode 100644 src/main/java/gtPlusPlus/core/handler/Recipes/RegistrationHandler.java create mode 100644 src/main/java/gtPlusPlus/core/handler/events/CustomMovementHandler.java create mode 100644 src/main/java/gtPlusPlus/core/handler/events/EnderDragonDeathHandler.java create mode 100644 src/main/java/gtPlusPlus/core/handler/events/EntityDeathHandler.java create mode 100644 src/main/java/gtPlusPlus/core/handler/events/GeneralTooltipEventHandler.java create mode 100644 src/main/java/gtPlusPlus/core/handler/events/PlayerSleepEventHandler.java create mode 100644 src/main/java/gtPlusPlus/core/handler/events/SneakManager.java create mode 100644 src/main/java/gtPlusPlus/core/handler/workbench/Workbench_CraftingHandler.java create mode 100644 src/main/java/gtPlusPlus/core/interfaces/IGuiManager.java create mode 100644 src/main/java/gtPlusPlus/core/interfaces/IGuiManagerMiscUtils.java create mode 100644 src/main/java/gtPlusPlus/core/interfaces/IItemBlueprint.java create mode 100644 src/main/java/gtPlusPlus/core/inventories/InventoryCircuitProgrammer.java create mode 100644 src/main/java/gtPlusPlus/core/inventories/InventoryFishTrap.java create mode 100644 src/main/java/gtPlusPlus/core/inventories/InventoryPestKiller.java create mode 100644 src/main/java/gtPlusPlus/core/inventories/Inventory_DecayablesChest.java create mode 100644 src/main/java/gtPlusPlus/core/inventories/Inventory_EggBox.java create mode 100644 src/main/java/gtPlusPlus/core/inventories/Inventory_SuperJukebox.java create mode 100644 src/main/java/gtPlusPlus/core/inventories/Inventory_VolumetricFlaskSetter.java create mode 100644 src/main/java/gtPlusPlus/core/inventories/projecttable/InventoryProjectMain.java create mode 100644 src/main/java/gtPlusPlus/core/inventories/projecttable/InventoryProjectOutput.java create mode 100644 src/main/java/gtPlusPlus/core/inventories/tradetable/InventoryTradeMain.java create mode 100644 src/main/java/gtPlusPlus/core/inventories/tradetable/InventoryTradeOutput.java create mode 100644 src/main/java/gtPlusPlus/core/item/ModItems.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/BaseItemBurnable.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/BaseItemColourable.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/BaseItemComponent.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/BaseItemDamageable.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/BaseItemTCShard.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/BaseItemTickable.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/BaseItemWithDamageValue.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/BasicSpawnEgg.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/CoreItem.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/bolts/BaseItemBolt.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/cell/BaseItemCell.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/cell/BaseItemPlasmaCell.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/dusts/BaseItemDust.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/dusts/BaseItemDustUnique.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/foil/BaseItemFoil.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/gears/BaseItemGear.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/gears/BaseItemSmallGear.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/ingots/BaseItemIngot.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/ingots/BaseItemIngotHot.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/ingots/BaseItemIngot_OLD.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/itemblock/ItemBlockBasicTile.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/itemblock/ItemBlockGtBlock.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/itemblock/ItemBlockMeta.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/itemblock/ItemBlockOre.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/misc/BaseItemMisc.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/misc/BaseItemParticle.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/nugget/BaseItemNugget.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/ore/BaseItemCentrifugedCrushedOre.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/ore/BaseItemCrushedOre.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/ore/BaseItemImpureDust.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/ore/BaseItemMilledOre.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/ore/BaseItemPurifiedCrushedOre.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/ore/BaseItemPurifiedDust.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/ore/BaseItemRawOre.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/ore/BaseOreComponent.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/plates/BaseItemPlate.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/plates/BaseItemPlateDense.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/plates/BaseItemPlateDouble.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/plates/BaseItemPlate_OLD.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/rings/BaseItemRing.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/rods/BaseItemRod.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/rods/BaseItemRodLong.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/rotors/BaseItemRotor.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/screws/BaseItemScrew.java create mode 100644 src/main/java/gtPlusPlus/core/item/base/wire/BaseItemFineWire.java create mode 100644 src/main/java/gtPlusPlus/core/item/bauble/BaseBauble.java create mode 100644 src/main/java/gtPlusPlus/core/item/bauble/BatteryPackBaseBauble.java create mode 100644 src/main/java/gtPlusPlus/core/item/bauble/ElectricBaseBauble.java create mode 100644 src/main/java/gtPlusPlus/core/item/bauble/FireProtectionBauble.java create mode 100644 src/main/java/gtPlusPlus/core/item/chemistry/AgriculturalChem.java create mode 100644 src/main/java/gtPlusPlus/core/item/chemistry/CoalTar.java create mode 100644 src/main/java/gtPlusPlus/core/item/chemistry/GenericChem.java create mode 100644 src/main/java/gtPlusPlus/core/item/chemistry/IonParticles.java create mode 100644 src/main/java/gtPlusPlus/core/item/chemistry/MilledOreProcessing.java create mode 100644 src/main/java/gtPlusPlus/core/item/chemistry/NuclearChem.java create mode 100644 src/main/java/gtPlusPlus/core/item/chemistry/RocketFuels.java create mode 100644 src/main/java/gtPlusPlus/core/item/chemistry/StandardBaseParticles.java create mode 100644 src/main/java/gtPlusPlus/core/item/chemistry/general/ItemGenericChemBase.java create mode 100644 src/main/java/gtPlusPlus/core/item/circuit/GTPP_IntegratedCircuit_Item.java create mode 100644 src/main/java/gtPlusPlus/core/item/crafting/ItemDummyResearch.java create mode 100644 src/main/java/gtPlusPlus/core/item/food/BaseItemMetaFood.java create mode 100644 src/main/java/gtPlusPlus/core/item/general/BufferCore.java create mode 100644 src/main/java/gtPlusPlus/core/item/general/ItemAirFilter.java create mode 100644 src/main/java/gtPlusPlus/core/item/general/ItemBasicScrubberTurbine.java create mode 100644 src/main/java/gtPlusPlus/core/item/general/ItemBlueprint.java create mode 100644 src/main/java/gtPlusPlus/core/item/general/ItemCloakingDevice.java create mode 100644 src/main/java/gtPlusPlus/core/item/general/ItemEmpty.java create mode 100644 src/main/java/gtPlusPlus/core/item/general/ItemGenericToken.java create mode 100644 src/main/java/gtPlusPlus/core/item/general/ItemHalfCompleteCasings.java create mode 100644 src/main/java/gtPlusPlus/core/item/general/ItemHealingDevice.java create mode 100644 src/main/java/gtPlusPlus/core/item/general/ItemLavaFilter.java create mode 100644 src/main/java/gtPlusPlus/core/item/general/ItemMagicFeather.java create mode 100644 src/main/java/gtPlusPlus/core/item/general/books/ItemBaseBook.java create mode 100644 src/main/java/gtPlusPlus/core/item/general/chassis/ItemBoilerChassis.java create mode 100644 src/main/java/gtPlusPlus/core/item/general/chassis/ItemDehydratorCoil.java create mode 100644 src/main/java/gtPlusPlus/core/item/general/chassis/ItemDehydratorCoilWire.java create mode 100644 src/main/java/gtPlusPlus/core/item/general/spawn/ItemCustomSpawnEgg.java create mode 100644 src/main/java/gtPlusPlus/core/item/init/ItemsFoods.java create mode 100644 src/main/java/gtPlusPlus/core/item/materials/DustDecayable.java create mode 100644 src/main/java/gtPlusPlus/core/item/tool/misc/GregtechPump.java create mode 100644 src/main/java/gtPlusPlus/core/item/wearable/WearableLoader.java create mode 100644 src/main/java/gtPlusPlus/core/item/wearable/armour/ArmourLoader.java create mode 100644 src/main/java/gtPlusPlus/core/item/wearable/armour/base/BaseArmour.java create mode 100644 src/main/java/gtPlusPlus/core/item/wearable/armour/base/BaseArmourHelm.java create mode 100644 src/main/java/gtPlusPlus/core/item/wearable/armour/tinfoil/ArmourTinFoilHat.java create mode 100644 src/main/java/gtPlusPlus/core/item/wearable/base/BaseItemWearable.java create mode 100644 src/main/java/gtPlusPlus/core/item/wearable/hazmat/ItemArmorHazmatEx.java create mode 100644 src/main/java/gtPlusPlus/core/lib/CORE.java create mode 100644 src/main/java/gtPlusPlus/core/lib/VanillaColours.java create mode 100644 src/main/java/gtPlusPlus/core/material/ALLOY.java create mode 100644 src/main/java/gtPlusPlus/core/material/ELEMENT.java create mode 100644 src/main/java/gtPlusPlus/core/material/MISC_MATERIALS.java create mode 100644 src/main/java/gtPlusPlus/core/material/Material.java create mode 100644 src/main/java/gtPlusPlus/core/material/MaterialGenerator.java create mode 100644 src/main/java/gtPlusPlus/core/material/MaterialStack.java create mode 100644 src/main/java/gtPlusPlus/core/material/NONMATERIAL.java create mode 100644 src/main/java/gtPlusPlus/core/material/ORES.java create mode 100644 src/main/java/gtPlusPlus/core/material/Particle.java create mode 100644 src/main/java/gtPlusPlus/core/material/nuclear/FLUORIDES.java create mode 100644 src/main/java/gtPlusPlus/core/material/nuclear/NUCLIDE.java create mode 100644 src/main/java/gtPlusPlus/core/material/state/MaterialState.java create mode 100644 src/main/java/gtPlusPlus/core/network/handler/AbstractClientMessageHandler.java create mode 100644 src/main/java/gtPlusPlus/core/network/handler/AbstractMessageHandler.java create mode 100644 src/main/java/gtPlusPlus/core/network/handler/AbstractServerMessageHandler.java create mode 100644 src/main/java/gtPlusPlus/core/network/packet/AbstractPacket.java create mode 100644 src/main/java/gtPlusPlus/core/network/packet/Packet_VolumetricFlaskGui.java create mode 100644 src/main/java/gtPlusPlus/core/network/packet/Packet_VolumetricFlaskGui2.java create mode 100644 src/main/java/gtPlusPlus/core/potion/GtPotionEffect.java create mode 100644 src/main/java/gtPlusPlus/core/proxy/ClientProxy.java create mode 100644 src/main/java/gtPlusPlus/core/proxy/ServerProxy.java create mode 100644 src/main/java/gtPlusPlus/core/recipe/LOADER_Machine_Components.java create mode 100644 src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java create mode 100644 src/main/java/gtPlusPlus/core/recipe/RECIPES_General.java create mode 100644 src/main/java/gtPlusPlus/core/recipe/RECIPES_LaserEngraver.java create mode 100644 src/main/java/gtPlusPlus/core/recipe/RECIPES_MachineComponents.java create mode 100644 src/main/java/gtPlusPlus/core/recipe/RECIPES_Machines.java create mode 100644 src/main/java/gtPlusPlus/core/recipe/RECIPES_RareEarthProcessing.java create mode 100644 src/main/java/gtPlusPlus/core/recipe/RECIPES_SeleniumProcessing.java create mode 100644 src/main/java/gtPlusPlus/core/recipe/RECIPES_Tools.java create mode 100644 src/main/java/gtPlusPlus/core/recipe/RECIPE_Batteries.java create mode 100644 src/main/java/gtPlusPlus/core/recipe/ShapedRecipeObject.java create mode 100644 src/main/java/gtPlusPlus/core/recipe/common/CI.java create mode 100644 src/main/java/gtPlusPlus/core/slots/SlotCrafting.java create mode 100644 src/main/java/gtPlusPlus/core/slots/SlotCraftingNoCollect.java create mode 100644 src/main/java/gtPlusPlus/core/slots/SlotDataStick.java create mode 100644 src/main/java/gtPlusPlus/core/slots/SlotGeneric.java create mode 100644 src/main/java/gtPlusPlus/core/slots/SlotIntegratedCircuit.java create mode 100644 src/main/java/gtPlusPlus/core/slots/SlotJukebox.java create mode 100644 src/main/java/gtPlusPlus/core/slots/SlotNoInput.java create mode 100644 src/main/java/gtPlusPlus/core/slots/SlotVolumetricFlask.java create mode 100644 src/main/java/gtPlusPlus/core/tileentities/ModTileEntities.java create mode 100644 src/main/java/gtPlusPlus/core/tileentities/base/TileEntityBase.java create mode 100644 src/main/java/gtPlusPlus/core/tileentities/general/TileEntityCircuitProgrammer.java create mode 100644 src/main/java/gtPlusPlus/core/tileentities/general/TileEntityDecayablesChest.java create mode 100644 src/main/java/gtPlusPlus/core/tileentities/general/TileEntityFishTrap.java create mode 100644 src/main/java/gtPlusPlus/core/tileentities/general/TileEntityInfiniteFluid.java create mode 100644 src/main/java/gtPlusPlus/core/tileentities/general/TileEntityVolumetricFlaskSetter.java create mode 100644 src/main/java/gtPlusPlus/core/tileentities/machines/TileEntityAdvPooCollector.java create mode 100644 src/main/java/gtPlusPlus/core/tileentities/machines/TileEntityBaseFluidCollector.java create mode 100644 src/main/java/gtPlusPlus/core/tileentities/machines/TileEntityPestKiller.java create mode 100644 src/main/java/gtPlusPlus/core/tileentities/machines/TileEntityPooCollector.java create mode 100644 src/main/java/gtPlusPlus/core/tileentities/machines/TileEntityProjectTable.java create mode 100644 src/main/java/gtPlusPlus/core/util/MovingAverageLong.java create mode 100644 src/main/java/gtPlusPlus/core/util/Utils.java create mode 100644 src/main/java/gtPlusPlus/core/util/data/AES.java create mode 100644 src/main/java/gtPlusPlus/core/util/data/ArrayUtils.java create mode 100644 src/main/java/gtPlusPlus/core/util/data/FileUtils.java create mode 100644 src/main/java/gtPlusPlus/core/util/data/LocaleUtils.java create mode 100644 src/main/java/gtPlusPlus/core/util/data/StringUtils.java create mode 100644 src/main/java/gtPlusPlus/core/util/math/MathUtils.java create mode 100644 src/main/java/gtPlusPlus/core/util/minecraft/EntityUtils.java create mode 100644 src/main/java/gtPlusPlus/core/util/minecraft/FluidUtils.java create mode 100644 src/main/java/gtPlusPlus/core/util/minecraft/InventoryUtils.java create mode 100644 src/main/java/gtPlusPlus/core/util/minecraft/ItemUtils.java create mode 100644 src/main/java/gtPlusPlus/core/util/minecraft/LangUtils.java create mode 100644 src/main/java/gtPlusPlus/core/util/minecraft/MaterialUtils.java create mode 100644 src/main/java/gtPlusPlus/core/util/minecraft/MiningUtils.java create mode 100644 src/main/java/gtPlusPlus/core/util/minecraft/NBTUtils.java create mode 100644 src/main/java/gtPlusPlus/core/util/minecraft/OreDictUtils.java create mode 100644 src/main/java/gtPlusPlus/core/util/minecraft/PlayerUtils.java create mode 100644 src/main/java/gtPlusPlus/core/util/minecraft/RecipeUtils.java create mode 100644 src/main/java/gtPlusPlus/core/util/minecraft/gregtech/PollutionUtils.java create mode 100644 src/main/java/gtPlusPlus/core/util/recipe/GT_RecipeUtils.java create mode 100644 src/main/java/gtPlusPlus/core/util/recipe/RecipeHashStrat.java create mode 100644 src/main/java/gtPlusPlus/core/util/reflect/AddGregtechRecipe.java create mode 100644 src/main/java/gtPlusPlus/core/util/reflect/ReflectionUtils.java create mode 100644 src/main/java/gtPlusPlus/core/util/sys/KeyboardUtils.java create mode 100644 src/main/java/gtPlusPlus/core/world/explosions/ExplosionHandler.java create mode 100644 src/main/java/gtPlusPlus/core/world/explosions/MiningExplosion.java (limited to 'src/main/java/gtPlusPlus/core') diff --git a/src/main/java/gtPlusPlus/core/block/ModBlocks.java b/src/main/java/gtPlusPlus/core/block/ModBlocks.java new file mode 100644 index 0000000000..634a073b02 --- /dev/null +++ b/src/main/java/gtPlusPlus/core/block/ModBlocks.java @@ -0,0 +1,104 @@ +package gtPlusPlus.core.block; + +import net.minecraft.block.Block; +import net.minecraftforge.fluids.Fluid; + +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.core.block.general.BlockCompressedObsidian; +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.antigrief.BlockWitherProof; +import gtPlusPlus.core.block.machine.CircuitProgrammer; +import gtPlusPlus.core.block.machine.DecayablesChest; +import gtPlusPlus.core.block.machine.FishTrap; +import gtPlusPlus.core.block.machine.Machine_PestKiller; +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.VolumetricFlaskSetter; +import gtPlusPlus.core.fluids.FluidRegistryHandler; + +public final class ModBlocks { + + public static Block blockCircuitProgrammer; + public static Block blockVolumetricFlaskSetter; + + public static Block blockFishTrap; + public static Block blockDecayablesChest; + + public static Block blockCasingsMisc; + public static Block blockCasings2Misc; + public static Block blockCasings3Misc; + public static Block blockCasings4Misc; + public static Block blockCasings5Misc; + public static Block blockCasings6Misc; + public static Block blockCasingsTieredGTPP; + public static Block blockSpecialMultiCasings; + public static Block blockSpecialMultiCasings2; + public static Block blockCustomMachineCasings; + public static Block blockCustomPipeGearCasings; + + public static Block MatterFabricatorEffectBlock; + + public static Fluid fluidSludge = new Fluid("fluid.sludge"); + public static Block blockFluidSludge; + + public static Block blockMiningExplosive; + + public static Block blockHellfire; + public static Block blockInfiniteFLuidTank; + public static Block blockProjectTable; + public static Block blockWitherGuard; + public static Block blockCompressedObsidian; + + public static Block blockPlayerDoorWooden; + public static Block blockPlayerDoorIron; + public static Block blockPlayerDoorCustom_Glass; + public static Block blockPlayerDoorCustom_Ice; + public static Block blockPlayerDoorCustom_Cactus; + + public static Block blockCustomJukebox; + + public static Block blockPooCollector; + + public static Block blockPestKiller; + + public static void init() { + Logger.INFO("Initializing Blocks."); + + registerBlocks(); + } + + public static void registerBlocks() { + + Logger.INFO("Registering Blocks."); + MatterFabricatorEffectBlock = new LightGlass(false); + + // Fluids + FluidRegistryHandler.registerFluids(); + + // Workbench + blockFishTrap = new FishTrap(); + blockInfiniteFLuidTank = new FluidTankInfinite(); + blockMiningExplosive = new MiningExplosives(); + blockHellfire = new HellFire(); + blockProjectTable = new Machine_ProjectTable(); + blockWitherGuard = new BlockWitherProof(); + blockCompressedObsidian = new BlockCompressedObsidian(); + + blockCircuitProgrammer = new CircuitProgrammer(); + + blockDecayablesChest = new DecayablesChest(); + + blockCustomJukebox = new Machine_SuperJukebox(); + + blockPooCollector = new Machine_PooCollector(); + + blockPestKiller = new Machine_PestKiller(); + + blockVolumetricFlaskSetter = new VolumetricFlaskSetter(); + + } +} diff --git a/src/main/java/gtPlusPlus/core/block/base/BasicBlock.java b/src/main/java/gtPlusPlus/core/block/base/BasicBlock.java new file mode 100644 index 0000000000..d39c194dfd --- /dev/null +++ b/src/main/java/gtPlusPlus/core/block/base/BasicBlock.java @@ -0,0 +1,70 @@ +package gtPlusPlus.core.block.base; + +import static gregtech.api.enums.Mods.GTPlusPlus; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +import gtPlusPlus.core.creative.AddToCreativeTab; +import gtPlusPlus.core.util.Utils; + +public class BasicBlock extends BlockContainer { + + public BasicBlock(BlockTypes type, final String unlocalizedName, final Material material, final int harvestLevel) { + super(material); + this.setBlockName(Utils.sanitizeString(unlocalizedName)); + + if (type != BlockTypes.ORE && !unlocalizedName.toLowerCase() + .contains("ore")) { + this.setBlockTextureName(GTPlusPlus.ID + ":" + unlocalizedName); + } + + this.setCreativeTab(AddToCreativeTab.tabBlock); + this.setResistance(6.0F); + this.setLightLevel(0.0F); + this.setHardness(1.0f * harvestLevel); + this.setHarvestLevel("pickaxe", harvestLevel); + this.setStepSound(soundTypeMetal); + } + + public static enum BlockTypes { + + STANDARD("blockBlock", "pickaxe", soundTypeMetal), + FRAME("blockFrameGt", "wrench", soundTypeMetal), + ORE("blockStone", "pickaxe", soundTypeStone); + + private final String TEXTURE_NAME; + private final String HARVEST_TOOL; + private final SoundType soundOfBlock; + + BlockTypes(final String textureName, final String harvestTool, final SoundType blockSound) { + this.TEXTURE_NAME = textureName; + this.HARVEST_TOOL = harvestTool; + this.soundOfBlock = blockSound; + } + + public String getTexture() { + return this.TEXTURE_NAME; + } + + public String getHarvestTool() { + return this.HARVEST_TOOL; + } + + } + + @Override + public TileEntity createNewTileEntity(final World p_149915_1_, final int p_149915_2_) { + return null; + } + + @Override + public boolean canCreatureSpawn(final EnumCreatureType type, final IBlockAccess world, final int x, final int y, + final int z) { + return false; + } +} diff --git a/src/main/java/gtPlusPlus/core/block/base/BasicTileBlockWithTooltip.java b/src/main/java/gtPlusPlus/core/block/base/BasicTileBlockWithTooltip.java new file mode 100644 index 0000000000..c39565ea41 --- /dev/null +++ b/src/main/java/gtPlusPlus/core/block/base/BasicTileBlockWithTooltip.java @@ -0,0 +1,322 @@ +package gtPlusPlus.core.block.base; + +import static gregtech.api.enums.Mods.GTPlusPlus; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +import net.minecraft.block.Block; +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.EnumCreatureType; +import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +import appeng.core.CreativeTab; +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import gtPlusPlus.api.interfaces.ITileTooltip; +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.api.objects.data.AutoMap; +import gtPlusPlus.api.objects.minecraft.CubicObject; +import gtPlusPlus.api.objects.minecraft.SafeTexture; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.minecraft.InventoryUtils; +import gtPlusPlus.core.util.minecraft.ItemUtils; + +public abstract class BasicTileBlockWithTooltip extends BlockContainer implements ITileTooltip { + + /** + * Each mapped object holds the data for the six sides. + */ + @SideOnly(Side.CLIENT) + private AutoMap> mSidedTextureArray; + + /** + * Holds the data for the six sides, each side holds an array of data for each respective meta. + */ + @SideOnly(Side.CLIENT) + private AutoMap> mSidedTexturePathArray; + + /** + * Does this block have any meta at all? + */ + public final boolean hasMeta() { + return getMetaCount() > 0; + } + + /** + * The amount of meta this block has. + */ + public abstract int getMetaCount(); + + /** + * Does this {@link Block} require special {@link ItemBlock} handling? + * + * @return The {@link Class} that will be used for this {@link Block}. + */ + public Class getItemBlockClass() { + return ItemBlock.class; + } + + /** + * A lazy way to declare the unlocal name for the block, makes boilerplating easy. + * + * @return The internal name for this block. + */ + public abstract String getUnlocalBlockName(); + + /** + * Lazy Boilerplating. + * + * @return Block Hardness. + */ + protected abstract float initBlockHardness(); + + /** + * Lazy Boilerplating. + * + * @return Block Resistance. + */ + protected abstract float initBlockResistance(); + + /** + * Lazy Boilerplating. + * + * @return The {@link CreativeTab} this Block is shown on. + */ + protected abstract CreativeTabs initCreativeTab(); + + /** + * The ID used by the {@link ITileTooltip} handler. Return -1 if you are not providing a custom {@link ItemBlock} in + * {@link #getItemBlockClass}(). + */ + @Override + public abstract int getTooltipID(); + + public BasicTileBlockWithTooltip(Material aBlockMat) { + super(aBlockMat); + // Use Abstract method values + this.setHardness(initBlockHardness()); + this.setResistance(initBlockResistance()); + this.setBlockName(getUnlocalBlockName()); + this.setCreativeTab(initCreativeTab()); + // Register the block last. + GameRegistry.registerBlock(this, getItemBlockClass(), getUnlocalBlockName()); + Logger.INFO("Registered " + getTileEntityName() + "."); + if (Utils.isClient()) { + // Handle Textures + handleTextures(); + } + } + + /** + * The name of the Tile Entity. + */ + protected abstract String getTileEntityName(); + + /** + * The String used for texture pathing. + * + * @return Sanitized {@link String}, containing no spaces or illegal characters. + */ + private String getTileEntityNameForTexturePathing() { + return Utils.sanitizeString(getTileEntityName().replace(" ", "")); + } + + /** + * An array of CubicObjects, one for each meta, else just a single cell array. Expected to be null regularly, as the + * default texture handling should suffice. Handy if re-using textures or using a non-standard structure for them. + * FULL texture path must be used, inclusive of the MODID and a colon. + */ + public CubicObject[] getCustomTextureDirectoryObject() { + return null; + } + + @Override + @SideOnly(Side.CLIENT) + public final IIcon getIcon(final int ordinalSide, final int aMeta) { + return mSidedTextureArray.get(aMeta) + .get(ForgeDirection.getOrientation(ordinalSide)) + .getIcon(); + } + + @Override + public IIcon getIcon(IBlockAccess aWorld, int aX, int aY, int aZ, int ordinalSide) { + return super.getIcon(aWorld, aX, aY, aZ, ordinalSide); + } + + @SideOnly(Side.CLIENT) + private void handleTextures() { + + Logger.INFO("[TeTexture] Building Texture Maps for " + getTileEntityName() + "."); + + // Init on the Client side only, to prevent Field initialisers existing in the Server side bytecode. + mSidedTextureArray = new AutoMap<>(); + mSidedTexturePathArray = new AutoMap<>(); + + // Store them in forge order + // DOWN, UP, NORTH, SOUTH, WEST, EAST + + // Default Path Name, this will make us look inside 'miscutils\textures\blocks' + final String aPrefixTexPath = GTPlusPlus.ID + ":"; + // Default Path Name, this will make us look in the subdirectory for this Tile Entity. + final String aTexPathMid = "TileEntities" + CORE.SEPERATOR + + getTileEntityNameForTexturePathing() + + CORE.SEPERATOR; + // Construct a full path + String aTexPathBuilt = aPrefixTexPath + aTexPathMid; + // File Name Suffixes, without meta tags + String aStringBot; + String aStringTop; + String aStringBack; + String aStringFront; + String aStringLeft; + String aStringRight; + // Do we provide a matrix of custom data to be used for texture processing instead? + if (getCustomTextureDirectoryObject() != null) { + // Get custom provided texture data. + CubicObject[] aDataMap = getCustomTextureDirectoryObject(); + Logger.INFO("[TeTexture] Found custom texture data, using this instead. Size: " + aDataMap.length); + // Map each meta string data to the main map. + for (int i = 0; i < aDataMap.length; i++) { + mSidedTexturePathArray.put(aDataMap[i]); + Logger.INFO("Mapped value for meta " + i + "."); + } + } else { + Logger.INFO("[TeTexture] Processing " + (1 + getMetaCount()) + " sets."); + // Iterate once for each meta + for (int i = 0; i < (1 + getMetaCount()); i++) { + + // File Name Suffixes, without meta tags + aStringBot = "Bottom"; + aStringTop = "Top"; + aStringBack = "Back"; + aStringFront = "Front"; + aStringLeft = "Left"; + aStringRight = "Right"; + + // Add tails if we have meta + if (hasMeta()) { + aStringBot = aStringBot + "_" + i; + aStringTop = aStringTop + "_" + i; + aStringBack = aStringBack + "_" + i; + aStringFront = aStringFront + "_" + i; + aStringLeft = aStringLeft + "_" + i; + aStringRight = aStringRight + "_" + i; + } + // Append the full path + aStringBot = aTexPathBuilt + aStringBot; + aStringTop = aTexPathBuilt + aStringTop; + aStringBack = aTexPathBuilt + aStringBack; + aStringFront = aTexPathBuilt + aStringFront; + aStringLeft = aTexPathBuilt + aStringLeft; + aStringRight = aTexPathBuilt + aStringRight; + // Convenience Blob + CubicObject aMetaBlob = new CubicObject<>( + aStringBot, + aStringTop, + aStringBack, + aStringFront, + aStringLeft, + aStringRight); + mSidedTexturePathArray.put(aMetaBlob); + Logger.INFO("[TeTexture] Added Texture Path data to map for meta " + i); + } + } + Logger.INFO("[TeTexture] Map size for pathing: " + mSidedTexturePathArray.size()); + + // Iteration Index + int aIndex = 0; + + // Iterate each CubicObject, holding the six texture paths for each meta. + for (CubicObject aMetaBlob : mSidedTexturePathArray) { + // Make a Safe Texture for each side + SafeTexture aBottom = SafeTexture.register(aMetaBlob.DOWN); + SafeTexture aTop = SafeTexture.register(aMetaBlob.UP); + SafeTexture aBack = SafeTexture.register(aMetaBlob.NORTH); + SafeTexture aFont = SafeTexture.register(aMetaBlob.SOUTH); + SafeTexture aWest = SafeTexture.register(aMetaBlob.WEST); + SafeTexture aEast = SafeTexture.register(aMetaBlob.EAST); + // Store them in an Array + SafeTexture[] aInjectBlob = new SafeTexture[] { aBottom, aTop, aBack, aFont, aWest, aEast }; + // Convenience Blob + CubicObject aMetaBlob2 = new CubicObject<>(aInjectBlob); + // Store this Blob into + mSidedTextureArray.put(aMetaBlob2); + Logger.INFO("[TeTexture] Added SafeTexture data to map for meta " + (aIndex++)); + } + Logger.INFO("[TeTexture] Map size for registration: " + mSidedTextureArray.size()); + } + + @Override + @SideOnly(Side.CLIENT) + public final void registerBlockIcons(final IIconRegister aRegisterer) {} + + @Override + public abstract TileEntity createNewTileEntity(final World world, final int p_149915_2_); + + /** + * Called when {@link #breakBlock}() is called, but before {@link InventoryUtils#dropInventoryItems} and the super + * call. + */ + public void onBlockBreak() {} + + @Override + public final void breakBlock(final World world, final int x, final int y, final int z, final Block block, + final int number) { + onBlockBreak(); + InventoryUtils.dropInventoryItems(world, x, y, z, block); + super.breakBlock(world, x, y, z, block, number); + } + + @SuppressWarnings({ "unchecked", "rawtypes" }) + @Override + public final void getSubBlocks(Item aItem, CreativeTabs p_149666_2_, List aList) { + if (hasMeta()) { + for (int i = 0; i < getMetaCount(); i++) { + aList.add(ItemUtils.simpleMetaStack(aItem, i, 1)); + } + } else { + aList.add(ItemUtils.getSimpleStack(aItem)); + } + } + + @Override + public boolean canCreatureSpawn(final EnumCreatureType type, final IBlockAccess world, final int x, final int y, + final int z) { + return false; + } + + /** + * Get the block's damage value (for use with pick block). + */ + @Override + public int getDamageValue(World aWorld, int aX, int aY, int aZ) { + return aWorld.getBlockMetadata(aX, aY, aZ); + } + + @Override + public Item getItemDropped(int meta, Random rand, int p_149650_3_) { + return ItemUtils.getSimpleStack(this, 1) + .getItem(); + } + + @Override + public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { + ArrayList drops = new ArrayList<>(); + drops.add(ItemUtils.simpleMetaStack(this, metadata, 1)); + return drops; + } +} diff --git a/src/main/java/gtPlusPlus/core/block/base/BlockBaseFluid.java b/src/main/java/gtPlusPlus/core/block/base/BlockBaseFluid.java new file mode 100644 index 0000000000..6772b71262 --- /dev/null +++ b/src/main/java/gtPlusPlus/core/block/base/BlockBaseFluid.java @@ -0,0 +1,102 @@ +package gtPlusPlus.core.block.base; + +import static gregtech.api.enums.Mods.GTPlusPlus; + +import java.util.Random; + +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.BlockFluidClassic; +import net.minecraftforge.fluids.Fluid; + +import cpw.mods.fml.client.FMLClientHandler; +import cpw.mods.fml.common.Optional; +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import gregtech.api.enums.Mods; +import gtPlusPlus.core.client.renderer.particle.EntityDropParticleFX; +import gtPlusPlus.core.creative.AddToCreativeTab; +import gtPlusPlus.core.item.base.itemblock.ItemBlockMeta; +import gtPlusPlus.core.util.Utils; + +public class BlockBaseFluid extends BlockFluidClassic { + + private final String name; + private final IIcon[] textureArray = new IIcon[6]; + + protected float particleRed = 1.0F; + protected float particleGreen = 1.0F; + protected float particleBlue = 1.0F; + + public BlockBaseFluid(String materialName, Fluid fluid, Material material) { + super(fluid, material); + this.setLightOpacity(2); + this.name = Utils.sanitizeString(materialName); + this.setBlockName("fluid" + this.name); + this.setCreativeTab(AddToCreativeTab.tabBlock); + GameRegistry.registerBlock(this, ItemBlockMeta.class, "fluid" + this.name); + } + + @Override + public boolean canCreatureSpawn(EnumCreatureType arg0, IBlockAccess arg1, int arg2, int arg3, int arg4) { + return false; + } + + public boolean preInit() { + return true; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int ordinalSide, int meta) { + return ordinalSide <= 1 ? this.textureArray[0] : this.textureArray[1]; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister icon) { + this.textureArray[0] = icon.registerIcon(GTPlusPlus.ID + ":" + "fluid/" + "Fluid_" + this.name + "_Still"); + this.textureArray[1] = icon.registerIcon(GTPlusPlus.ID + ":" + "fluid/" + "Fluid_" + this.name + "_Flow"); + } + + @Override + @Optional.Method(modid = Mods.Names.C_O_F_H_CORE) + @SideOnly(Side.CLIENT) + public void randomDisplayTick(World arg0, int arg1, int arg2, int arg3, Random arg4) { + super.randomDisplayTick(arg0, arg1, arg2, arg3, arg4); + double arg5 = arg1 + arg4.nextFloat(); + double arg7 = arg2 - 1.05D; + double arg9 = arg3 + arg4.nextFloat(); + if (super.density < 0) { + arg7 = arg2 + 2.1D; + } + + if (arg4.nextInt(20) == 0 + && arg0.isSideSolid( + arg1, + arg2 + super.densityDir, + arg3, + super.densityDir == -1 ? ForgeDirection.UP : ForgeDirection.DOWN) + && !arg0.getBlock(arg1, arg2 + 2 * super.densityDir, arg3) + .getMaterial() + .blocksMovement()) { + EntityDropParticleFX arg11 = new EntityDropParticleFX( + arg0, + arg5, + arg7, + arg9, + this.particleRed, + this.particleGreen, + this.particleBlue, + super.densityDir); + FMLClientHandler.instance() + .getClient().effectRenderer.addEffect(arg11); + } + } +} diff --git a/src/main/java/gtPlusPlus/core/block/base/BlockBaseModular.java b/src/main/java/gtPlusPlus/core/block/base/BlockBaseModular.java new file mode 100644 index 0000000000..b07c6d1529 --- /dev/null +++ b/src/main/java/gtPlusPlus/core/block/base/BlockBaseModular.java @@ -0,0 +1,245 @@ +package gtPlusPlus.core.block.base; + +import static gregtech.api.enums.Mods.GTPlusPlus; +import static gregtech.api.enums.Mods.GregTech; + +import java.util.HashMap; +import java.util.Map; + +import net.minecraft.block.Block; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TextureSet; +import gregtech.api.util.GT_LanguageManager; +import gregtech.api.util.GT_OreDictUnificator; +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.core.item.base.itemblock.ItemBlockGtBlock; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.material.Material; +import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.math.MathUtils; +import gtPlusPlus.core.util.minecraft.ItemUtils; + +public class BlockBaseModular extends BasicBlock { + + protected Ma