From e6ddc31395e2f53e4b08fc4cf7091cf2744a23e2 Mon Sep 17 00:00:00 2001 From: Raven Szewczyk Date: Sat, 25 May 2024 13:42:15 +0100 Subject: Move kekztech sources --- src/main/java/client/ClientProxy.java | 19 + src/main/java/client/gui/KT_UITextures.java | 17 + src/main/java/common/Blocks.java | 59 + src/main/java/common/CommonProxy.java | 42 + src/main/java/common/Recipes.java | 141 +++ src/main/java/common/Researches.java | 71 ++ src/main/java/common/TileEntities.java | 43 + .../java/common/blocks/BaseGTUpdateableBlock.java | 57 + src/main/java/common/blocks/Block_GDCUnit.java | 29 + src/main/java/common/blocks/Block_IchorJar.java | 230 ++++ .../common/blocks/Block_LapotronicEnergyUnit.java | 173 +++ .../java/common/blocks/Block_LargeHexPlate.java | 65 ++ .../java/common/blocks/Block_TFFTStorageField.java | 92 ++ .../common/blocks/Block_ThaumiumReinforcedJar.java | 252 +++++ src/main/java/common/blocks/Block_YSZUnit.java | 29 + src/main/java/common/itemBlocks/IB_IchorJar.java | 27 + .../common/itemBlocks/IB_LapotronicEnergyUnit.java | 190 ++++ .../common/itemBlocks/IB_TFFTStorageField.java | 63 ++ .../itemBlocks/IB_ThaumiumReinforcedJar.java | 27 + src/main/java/common/items/ErrorItem.java | 48 + .../common/items/MetaItem_CraftingComponent.java | 89 ++ .../java/common/recipeLoaders/AlloySmelter.java | 32 + src/main/java/common/recipeLoaders/Assembler.java | 295 +++++ .../java/common/recipeLoaders/AssemblyLine.java | 227 ++++ .../java/common/recipeLoaders/ChemicalReactor.java | 30 + src/main/java/common/recipeLoaders/Crafting.java | 72 ++ .../java/common/recipeLoaders/FormingPress.java | 29 + src/main/java/common/recipeLoaders/Mixer.java | 48 + .../recipeLoaders/ResearchableAssemblyLine.java | 137 +++ src/main/java/common/recipeLoaders/Unpackager.java | 200 ++++ .../GTMTE_LapotronicSuperCapacitor.java | 1189 ++++++++++++++++++++ .../common/tileentities/GTMTE_SOFuelCellMK1.java | 221 ++++ .../common/tileentities/GTMTE_SOFuelCellMK2.java | 222 ++++ src/main/java/common/tileentities/GTMTE_TFFT.java | 787 +++++++++++++ .../java/common/tileentities/GTMTE_TFFTHatch.java | 271 +++++ src/main/java/common/tileentities/TE_IchorJar.java | 10 + .../java/common/tileentities/TE_IchorVoidJar.java | 10 + .../tileentities/TE_ThaumiumReinforcedJar.java | 10 + .../tileentities/TE_ThaumiumReinforcedVoidJar.java | 10 + src/main/java/kekztech/Items.java | 70 ++ src/main/java/kekztech/KekzCore.java | 83 ++ src/main/java/kekztech/ServerProxy.java | 6 + src/main/java/util/Util.java | 93 ++ .../gregtech/textures/blocks/iconsets/TFFT.png | Bin 0 -> 238 bytes .../textures/blocks/iconsets/TFFT_ACTIVE.png | Bin 0 -> 412 bytes .../blocks/iconsets/TFFT_ACTIVE.png.mcmeta | 5 + .../textures/blocks/iconsets/TFFT_ACTIVE_GLOW.png | Bin 0 -> 255 bytes .../blocks/iconsets/TFFT_ACTIVE_GLOW.png.mcmeta | 6 + .../textures/blocks/iconsets/TFFT_HATCH.png | Bin 0 -> 113 bytes src/main/resources/assets/kekztech/lang/en_US.lang | 109 ++ src/main/resources/assets/kekztech/lang/zh_CN.lang | 93 ++ .../textures/blocks/GDCCeramicElectrolyteUnit.png | Bin 0 -> 425 bytes .../blocks/InsanelyUltimateEnergyUnit_side.png | Bin 0 -> 448 bytes .../blocks/InsanelyUltimateEnergyUnit_top.png | Bin 0 -> 277 bytes .../kekztech/textures/blocks/LSCBase_side.png | Bin 0 -> 251 bytes .../kekztech/textures/blocks/LSCBase_top.png | Bin 0 -> 266 bytes .../textures/blocks/LapotronicEnergyUnit1_side.png | Bin 0 -> 279 bytes .../textures/blocks/LapotronicEnergyUnit1_top.png | Bin 0 -> 296 bytes .../textures/blocks/LapotronicEnergyUnit2_side.png | Bin 0 -> 280 bytes .../textures/blocks/LapotronicEnergyUnit2_top.png | Bin 0 -> 296 bytes .../textures/blocks/LapotronicEnergyUnit3_side.png | Bin 0 -> 279 bytes .../textures/blocks/LapotronicEnergyUnit3_top.png | Bin 0 -> 295 bytes .../textures/blocks/LapotronicEnergyUnit4_side.png | Bin 0 -> 279 bytes .../textures/blocks/LapotronicEnergyUnit4_top.png | Bin 0 -> 296 bytes .../textures/blocks/LapotronicEnergyUnit6_side.png | Bin 0 -> 279 bytes .../textures/blocks/LapotronicEnergyUnit6_top.png | Bin 0 -> 259 bytes .../textures/blocks/LapotronicEnergyUnit7_side.png | Bin 0 -> 279 bytes .../textures/blocks/LapotronicEnergyUnit7_top.png | Bin 0 -> 276 bytes .../kekztech/textures/blocks/LargeHexTile_0_0.png | Bin 0 -> 212902 bytes .../kekztech/textures/blocks/LargeHexTile_0_1.png | Bin 0 -> 194679 bytes .../kekztech/textures/blocks/LargeHexTile_0_2.png | Bin 0 -> 188252 bytes .../kekztech/textures/blocks/LargeHexTile_0_3.png | Bin 0 -> 202085 bytes .../kekztech/textures/blocks/LargeHexTile_1_0.png | Bin 0 -> 203604 bytes .../kekztech/textures/blocks/LargeHexTile_1_1.png | Bin 0 -> 202723 bytes .../kekztech/textures/blocks/LargeHexTile_1_2.png | Bin 0 -> 184021 bytes .../kekztech/textures/blocks/LargeHexTile_1_3.png | Bin 0 -> 185686 bytes .../kekztech/textures/blocks/LargeHexTile_2_0.png | Bin 0 -> 183484 bytes .../kekztech/textures/blocks/LargeHexTile_2_1.png | Bin 0 -> 189460 bytes .../kekztech/textures/blocks/LargeHexTile_2_2.png | Bin 0 -> 205600 bytes .../kekztech/textures/blocks/LargeHexTile_2_3.png | Bin 0 -> 197674 bytes .../kekztech/textures/blocks/LargeHexTile_3_0.png | Bin 0 -> 193911 bytes .../kekztech/textures/blocks/LargeHexTile_3_1.png | Bin 0 -> 205189 bytes .../kekztech/textures/blocks/LargeHexTile_3_2.png | Bin 0 -> 198508 bytes .../kekztech/textures/blocks/LargeHexTile_3_3.png | Bin 0 -> 202600 bytes .../blocks/MegaUltimateEnergyUnit_side.png | Bin 0 -> 492 bytes .../textures/blocks/MegaUltimateEnergyUnit_top.png | Bin 0 -> 243 bytes .../blocks/ReallyUltimateEnergyUnit_side.png | Bin 0 -> 488 bytes .../blocks/ReallyUltimateEnergyUnit_top.png | Bin 0 -> 227 bytes .../assets/kekztech/textures/blocks/TFFTCasing.png | Bin 0 -> 320 bytes .../textures/blocks/TFFTStorageFieldBlock1.png | Bin 0 -> 156 bytes .../textures/blocks/TFFTStorageFieldBlock10.png | Bin 0 -> 887 bytes .../blocks/TFFTStorageFieldBlock10.png.mcmeta | 45 + .../textures/blocks/TFFTStorageFieldBlock2.png | Bin 0 -> 156 bytes .../textures/blocks/TFFTStorageFieldBlock3.png | Bin 0 -> 156 bytes .../textures/blocks/TFFTStorageFieldBlock4.png | Bin 0 -> 156 bytes .../textures/blocks/TFFTStorageFieldBlock5.png | Bin 0 -> 156 bytes .../textures/blocks/TFFTStorageFieldBlock6.png | Bin 0 -> 156 bytes .../textures/blocks/TFFTStorageFieldBlock7.png | Bin 0 -> 161 bytes .../textures/blocks/TFFTStorageFieldBlock8.png | Bin 0 -> 156 bytes .../textures/blocks/TFFTStorageFieldBlock9.png | Bin 0 -> 156 bytes .../textures/blocks/UltimateEnergyUnit_side.png | Bin 0 -> 274 bytes .../textures/blocks/UltimateEnergyUnit_top.png | Bin 0 -> 241 bytes .../textures/blocks/YSZCeramicElectrolyteUnit.png | Bin 0 -> 423 bytes .../kekztech/textures/blocks/ichor_jar_bottom.png | Bin 0 -> 384 bytes .../kekztech/textures/blocks/ichor_jar_side.png | Bin 0 -> 465 bytes .../textures/blocks/ichor_jar_side_void.png | Bin 0 -> 467 bytes .../kekztech/textures/blocks/ichor_jar_top.png | Bin 0 -> 547 bytes .../textures/blocks/ichor_jar_top_void.png | Bin 0 -> 560 bytes .../textures/blocks/thaumreinforced_jar_bottom.png | Bin 0 -> 566 bytes .../textures/blocks/thaumreinforced_jar_side.png | Bin 0 -> 718 bytes .../blocks/thaumreinforced_jar_side_void.png | Bin 0 -> 717 bytes .../textures/blocks/thaumreinforced_jar_top.png | Bin 0 -> 670 bytes .../blocks/thaumreinforced_jar_top_void.png | Bin 0 -> 669 bytes .../textures/gui/overlay_button/wireless_off.png | Bin 0 -> 703 bytes .../gui/overlay_button/wireless_off_disabled.png | Bin 0 -> 743 bytes .../textures/gui/overlay_button/wireless_on.png | Bin 0 -> 644 bytes .../assets/kekztech/textures/items/CeriaDust.png | Bin 0 -> 263 bytes .../assets/kekztech/textures/items/Error.png | Bin 0 -> 6206 bytes .../kekztech/textures/items/GDCCeramicDust.png | Bin 0 -> 254 bytes .../kekztech/textures/items/GDCCeramicPlate.png | Bin 0 -> 281 bytes .../kekztech/textures/items/YSZCeramicDust.png | Bin 0 -> 254 bytes .../kekztech/textures/items/YSZCeramicPlate.png | Bin 0 -> 277 bytes .../assets/kekztech/textures/items/YttriaDust.png | Bin 0 -> 252 bytes .../kekztech/textures/items/ZirconiaDust.png | Bin 0 -> 253 bytes 124 files changed, 6073 insertions(+) create mode 100644 src/main/java/client/ClientProxy.java create mode 100644 src/main/java/client/gui/KT_UITextures.java create mode 100644 src/main/java/common/Blocks.java create mode 100644 src/main/java/common/CommonProxy.java create mode 100644 src/main/java/common/Recipes.java create mode 100644 src/main/java/common/Researches.java create mode 100644 src/main/java/common/TileEntities.java create mode 100644 src/main/java/common/blocks/BaseGTUpdateableBlock.java create mode 100644 src/main/java/common/blocks/Block_GDCUnit.java create mode 100644 src/main/java/common/blocks/Block_IchorJar.java create mode 100644 src/main/java/common/blocks/Block_LapotronicEnergyUnit.java create mode 100644 src/main/java/common/blocks/Block_LargeHexPlate.java create mode 100644 src/main/java/common/blocks/Block_TFFTStorageField.java create mode 100644 src/main/java/common/blocks/Block_ThaumiumReinforcedJar.java create mode 100644 src/main/java/common/blocks/Block_YSZUnit.java create mode 100644 src/main/java/common/itemBlocks/IB_IchorJar.java create mode 100644 src/main/java/common/itemBlocks/IB_LapotronicEnergyUnit.java create mode 100644 src/main/java/common/itemBlocks/IB_TFFTStorageField.java create mode 100644 src/main/java/common/itemBlocks/IB_ThaumiumReinforcedJar.java create mode 100644 src/main/java/common/items/ErrorItem.java create mode 100644 src/main/java/common/items/MetaItem_CraftingComponent.java create mode 100644 src/main/java/common/recipeLoaders/AlloySmelter.java create mode 100644 src/main/java/common/recipeLoaders/Assembler.java create mode 100644 src/main/java/common/recipeLoaders/AssemblyLine.java create mode 100644 src/main/java/common/recipeLoaders/ChemicalReactor.java create mode 100644 src/main/java/common/recipeLoaders/Crafting.java create mode 100644 src/main/java/common/recipeLoaders/FormingPress.java create mode 100644 src/main/java/common/recipeLoaders/Mixer.java create mode 100644 src/main/java/common/recipeLoaders/ResearchableAssemblyLine.java create mode 100644 src/main/java/common/recipeLoaders/Unpackager.java create mode 100644 src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java create mode 100644 src/main/java/common/tileentities/GTMTE_SOFuelCellMK1.java create mode 100644 src/main/java/common/tileentities/GTMTE_SOFuelCellMK2.java create mode 100644 src/main/java/common/tileentities/GTMTE_TFFT.java create mode 100644 src/main/java/common/tileentities/GTMTE_TFFTHatch.java create mode 100644 src/main/java/common/tileentities/TE_IchorJar.java create mode 100644 src/main/java/common/tileentities/TE_IchorVoidJar.java create mode 100644 src/main/java/common/tileentities/TE_ThaumiumReinforcedJar.java create mode 100644 src/main/java/common/tileentities/TE_ThaumiumReinforcedVoidJar.java create mode 100644 src/main/java/kekztech/Items.java create mode 100644 src/main/java/kekztech/KekzCore.java create mode 100644 src/main/java/kekztech/ServerProxy.java create mode 100644 src/main/java/util/Util.java create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/TFFT.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/TFFT_ACTIVE.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/TFFT_ACTIVE.png.mcmeta create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/TFFT_ACTIVE_GLOW.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/TFFT_ACTIVE_GLOW.png.mcmeta create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/TFFT_HATCH.png create mode 100644 src/main/resources/assets/kekztech/lang/en_US.lang create mode 100644 src/main/resources/assets/kekztech/lang/zh_CN.lang create mode 100644 src/main/resources/assets/kekztech/textures/blocks/GDCCeramicElectrolyteUnit.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/InsanelyUltimateEnergyUnit_side.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/InsanelyUltimateEnergyUnit_top.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LSCBase_side.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LSCBase_top.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit1_side.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit1_top.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit2_side.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit2_top.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit3_side.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit3_top.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit4_side.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit4_top.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit6_side.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit6_top.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit7_side.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit7_top.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_0_0.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_0_1.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_0_2.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_0_3.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_1_0.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_1_1.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_1_2.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_1_3.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_2_0.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_2_1.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_2_2.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_2_3.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_3_0.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_3_1.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_3_2.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_3_3.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/MegaUltimateEnergyUnit_side.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/MegaUltimateEnergyUnit_top.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/ReallyUltimateEnergyUnit_side.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/ReallyUltimateEnergyUnit_top.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/TFFTCasing.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/TFFTStorageFieldBlock1.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/TFFTStorageFieldBlock10.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/TFFTStorageFieldBlock10.png.mcmeta create mode 100644 src/main/resources/assets/kekztech/textures/blocks/TFFTStorageFieldBlock2.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/TFFTStorageFieldBlock3.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/TFFTStorageFieldBlock4.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/TFFTStorageFieldBlock5.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/TFFTStorageFieldBlock6.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/TFFTStorageFieldBlock7.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/TFFTStorageFieldBlock8.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/TFFTStorageFieldBlock9.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/UltimateEnergyUnit_side.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/UltimateEnergyUnit_top.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/YSZCeramicElectrolyteUnit.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/ichor_jar_bottom.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/ichor_jar_side.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/ichor_jar_side_void.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/ichor_jar_top.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/ichor_jar_top_void.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/thaumreinforced_jar_bottom.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/thaumreinforced_jar_side.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/thaumreinforced_jar_side_void.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/thaumreinforced_jar_top.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/thaumreinforced_jar_top_void.png create mode 100644 src/main/resources/assets/kekztech/textures/gui/overlay_button/wireless_off.png create mode 100644 src/main/resources/assets/kekztech/textures/gui/overlay_button/wireless_off_disabled.png create mode 100644 src/main/resources/assets/kekztech/textures/gui/overlay_button/wireless_on.png create mode 100644 src/main/resources/assets/kekztech/textures/items/CeriaDust.png create mode 100644 src/main/resources/assets/kekztech/textures/items/Error.png create mode 100644 src/main/resources/assets/kekztech/textures/items/GDCCeramicDust.png create mode 100644 src/main/resources/assets/kekztech/textures/items/GDCCeramicPlate.png create mode 100644 src/main/resources/assets/kekztech/textures/items/YSZCeramicDust.png create mode 100644 src/main/resources/assets/kekztech/textures/items/YSZCeramicPlate.png create mode 100644 src/main/resources/assets/kekztech/textures/items/YttriaDust.png create mode 100644 src/main/resources/assets/kekztech/textures/items/ZirconiaDust.png (limited to 'src') diff --git a/src/main/java/client/ClientProxy.java b/src/main/java/client/ClientProxy.java new file mode 100644 index 0000000000..9dfaea0d33 --- /dev/null +++ b/src/main/java/client/ClientProxy.java @@ -0,0 +1,19 @@ +package client; + +import common.CommonProxy; + +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; + +public class ClientProxy extends CommonProxy { + + @Override + public void preInit(final FMLPreInitializationEvent e) { + super.preInit(e); + } + + @Override + public void init(final FMLInitializationEvent e) { + super.init(e); + } +} diff --git a/src/main/java/client/gui/KT_UITextures.java b/src/main/java/client/gui/KT_UITextures.java new file mode 100644 index 0000000000..6f28a0280b --- /dev/null +++ b/src/main/java/client/gui/KT_UITextures.java @@ -0,0 +1,17 @@ +package client.gui; + +import com.gtnewhorizons.modularui.api.drawable.UITexture; + +import kekztech.KekzCore; + +public class KT_UITextures { + + public static final UITexture OVERLAY_BUTTON_WIRELESS_ON = UITexture + .fullImage(KekzCore.MODID, "gui/overlay_button/wireless_on"); + + public static final UITexture OVERLAY_BUTTON_WIRELESS_OFF = UITexture + .fullImage(KekzCore.MODID, "gui/overlay_button/wireless_off"); + + public static final UITexture OVERLAY_BUTTON_WIRELESS_OFF_DISABLED = UITexture + .fullImage(KekzCore.MODID, "gui/overlay_button/wireless_off_disabled"); +} diff --git a/src/main/java/common/Blocks.java b/src/main/java/common/Blocks.java new file mode 100644 index 0000000000..4003e8e9e4 --- /dev/null +++ b/src/main/java/common/Blocks.java @@ -0,0 +1,59 @@ +package common; + +import net.minecraft.block.Block; + +import common.blocks.Block_GDCUnit; +import common.blocks.Block_IchorJar; +import common.blocks.Block_LapotronicEnergyUnit; +import common.blocks.Block_LargeHexPlate; +import common.blocks.Block_TFFTStorageField; +import common.blocks.Block_ThaumiumReinforcedJar; +import common.blocks.Block_YSZUnit; + +import kekztech.KekzCore; + +public class Blocks { + + public static Block yszUnit; + public static Block gdcUnit; + public static Block tfftStorageField; + public static Block jarThaumiumReinforced; + public static Block jarIchor; + public static Block lscLapotronicEnergyUnit; + + public static Block largeHexPlate; + + public static void preInit() { + KekzCore.LOGGER.info("Registering blocks..."); + + registerBlocks_SOFC(); + registerBlocks_TFFT(); + registerBlocks_Jars(); + registerBlocks_LSC(); + registerBlocks_Cosmetics(); + + KekzCore.LOGGER.info("Finished registering blocks"); + } + + private static void registerBlocks_SOFC() { + yszUnit = Block_YSZUnit.registerBlock(); + gdcUnit = Block_GDCUnit.registerBlock(); + } + + private static void registerBlocks_TFFT() { + tfftStorageField = Block_TFFTStorageField.registerBlock(); + } + + private static void registerBlocks_Jars() { + jarThaumiumReinforced = Block_ThaumiumReinforcedJar.registerBlock(); + jarIchor = Block_IchorJar.registerBlock(); + } + + private static void registerBlocks_LSC() { + lscLapotronicEnergyUnit = Block_LapotronicEnergyUnit.registerBlock(); + } + + private static void registerBlocks_Cosmetics() { + largeHexPlate = Block_LargeHexPlate.registerBlock(); + } +} diff --git a/src/main/java/common/CommonProxy.java b/src/main/java/common/CommonProxy.java new file mode 100644 index 0000000000..777a8af268 --- /dev/null +++ b/src/main/java/common/CommonProxy.java @@ -0,0 +1,42 @@ +package common; + +import common.items.ErrorItem; +import common.items.MetaItem_CraftingComponent; +import common.tileentities.GTMTE_TFFTHatch; + +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLPostInitializationEvent; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; +import kekztech.Items; + +public class CommonProxy { + + public void preInit(final FMLPreInitializationEvent e) { + // Items + ErrorItem.getInstance() + .registerItem(); + MetaItem_CraftingComponent.getInstance() + .registerItem(); + Items.registerOreDictNames(); + // Blocks + Blocks.preInit(); + // TileEntities + TileEntities.preInit(); + // TC Research + Researches.preInit(); + } + + public void init(final FMLInitializationEvent e) { + // GregTech Meta TileEntities + TileEntities.init(); + } + + public void postInit(final FMLPostInitializationEvent e) { + // Recipes + Recipes.postInit(); + // Research + Researches.postInit(); + + GTMTE_TFFTHatch.registerAEIntegration(); + } +} diff --git a/src/main/java/common/Recipes.java b/src/main/java/common/Recipes.java new file mode 100644 index 0000000000..2560e8dc37 --- /dev/null +++ b/src/main/java/common/Recipes.java @@ -0,0 +1,141 @@ +package common; + +import static gregtech.api.enums.Mods.ThaumicTinkerer; + +import java.util.HashMap; + +import net.minecraft.item.ItemStack; + +import common.recipeLoaders.AlloySmelter; +import common.recipeLoaders.Assembler; +import common.recipeLoaders.AssemblyLine; +import common.recipeLoaders.ChemicalReactor; +import common.recipeLoaders.Crafting; +import common.recipeLoaders.FormingPress; +import common.recipeLoaders.Mixer; +import common.recipeLoaders.ResearchableAssemblyLine; +import common.recipeLoaders.Unpackager; + +import cpw.mods.fml.common.registry.GameRegistry; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import kekztech.KekzCore; +import thaumcraft.api.ItemApi; +import thaumcraft.api.ThaumcraftApi; +import thaumcraft.api.aspects.Aspect; +import thaumcraft.api.aspects.AspectList; +import thaumcraft.api.crafting.InfusionRecipe; + +public class Recipes { + + public static final HashMap infusionRecipes = new HashMap<>(); + + public static void postInit() { + KekzCore.LOGGER.info("Registering recipes..."); + + new AlloySmelter().run(); + new Assembler().run(); + new AssemblyLine().run(); + new ChemicalReactor().run(); + new Crafting().run(); + new FormingPress().run(); + new Mixer().run(); + new ResearchableAssemblyLine().run(); + new Unpackager().run(); + + registerRecipes_Jars(); + + KekzCore.LOGGER.info("Finished registering recipes"); + } + + private static void registerRecipes_Jars() { + + // Thaumium Reinforced Jar + final ItemStack[] recipe_jarthaumiumreinforced = { + GameRegistry.makeItemStack("Thaumcraft:ItemResource", 15, 1, null), + GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Thaumium, 1), + new ItemStack(net.minecraft.init.Blocks.glass_pane), + GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Thaumium, 1), + new ItemStack(net.minecraft.init.Blocks.glass_pane), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Titanium, 1), + GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Thaumium, 1), + new ItemStack(net.minecraft.init.Blocks.glass_pane), + GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Thaumium, 1), + new ItemStack(net.minecraft.init.Blocks.glass_pane), }; + final AspectList aspects_jarthaumiumreinforced = new AspectList().add(Aspect.ARMOR, 64) + .add(Aspect.ORDER, 32) + .add(Aspect.WATER, 32) + .add(Aspect.GREED, 16) + .add(Aspect.VOID, 16) + .add(Aspect.AIR, 8); + infusionRecipes.put( + "THAUMIUMREINFORCEDJAR", + ThaumcraftApi.addInfusionCraftingRecipe( + "THAUMIUMREINFORCEDJAR", + new ItemStack(Blocks.jarThaumiumReinforced, 1, 0), + 5, + aspects_jarthaumiumreinforced, + ItemApi.getBlock("blockJar", 0), + recipe_jarthaumiumreinforced)); + // Thaumium Reinforced Void Jar + final ItemStack[] recipe_voidjarupgrade = { + GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Obsidian, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Blaze, 1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.EnderEye, 1), ItemApi.getItem("itemNugget", 5) }; + final AspectList aspects_voidjarupgrade = new AspectList().add(Aspect.VOID, 14) + .add(Aspect.MAGIC, 14) + .add(Aspect.ENTROPY, 14) + .add(Aspect.WATER, 14); + infusionRecipes.put( + "THAUMIUMREINFORCEDVOIDJAR", + ThaumcraftApi.addInfusionCraftingRecipe( + "THAUMIUMREINFORCEDJAR", + new ItemStack(Blocks.jarThaumiumReinforced, 1, 3), + 2, + aspects_voidjarupgrade, + new ItemStack(Blocks.jarThaumiumReinforced, 1, 0), + recipe_voidjarupgrade)); + + final ItemStack[] recipe_jarichor = { GT_ModHandler.getModItem(ThaumicTinkerer.ID, "kamiResource", 1, 0), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Diamond, 1), + new ItemStack(net.minecraft.init.Blocks.glass_pane), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Osmiridium, 1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Diamond, 1), + new ItemStack(net.minecraft.init.Blocks.glass_pane), + GT_OreDictUnificator.get(OrePrefixes.gemExquisite, Materials.Diamond, 1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Diamond, 1), + new ItemStack(net.minecraft.init.Blocks.glass_pane), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Osmiridium, 1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Diamond, 1), + new ItemStack(net.minecraft.init.Blocks.glass_pane), }; + final AspectList aspects_jarichor = new AspectList().add(Aspect.ARMOR, 256) + .add(Aspect.ELDRITCH, 128) + .add(Aspect.ORDER, 128) + .add(Aspect.WATER, 128) + .add(Aspect.GREED, 64) + .add(Aspect.VOID, 64) + .add(Aspect.AIR, 32); + infusionRecipes.put( + "ICHORJAR", + ThaumcraftApi.addInfusionCraftingRecipe( + "ICHORJAR", + new ItemStack(Blocks.jarIchor, 1, 0), + 15, + aspects_jarichor, + ItemApi.getBlock("blockJar", 0), + recipe_jarichor)); + // Ichor Void Jar + infusionRecipes.put( + "ICHORVOIDJAR", + ThaumcraftApi.addInfusionCraftingRecipe( + "ICHORJAR", + new ItemStack(Blocks.jarIchor, 1, 3), + 5, + aspects_voidjarupgrade, + new ItemStack(Blocks.jarIchor, 1, 0), + recipe_voidjarupgrade)); + } + +} diff --git a/src/main/java/common/Researches.java b/src/main/java/common/Researches.java new file mode 100644 index 0000000000..0ebe161da4 --- /dev/null +++ b/src/main/java/common/Researches.java @@ -0,0 +1,71 @@ +package common; + +import net.minecraft.item.ItemStack; + +import kekztech.KekzCore; +import thaumcraft.api.aspects.Aspect; +import thaumcraft.api.aspects.AspectList; +import thaumcraft.api.research.ResearchItem; +import thaumcraft.api.research.ResearchPage; +import thaumic.tinkerer.common.research.KamiResearchItem; + +public class Researches { + + public static final String THAUMIUMREINFORCEDJAR = "THAUMIUMREINFORCEDJAR"; + public static final String ICHORJAR = "ICHORJAR"; + + public static void preInit() { + // Blacklist these researches from being a requirement to unlock TTKami + KekzCore.LOGGER.info("Blacklisting research " + THAUMIUMREINFORCEDJAR + " from /iskamiunlocked"); + KamiResearchItem.Blacklist.add(ICHORJAR); + KekzCore.LOGGER.info("Blacklisting research" + ICHORJAR + "from /iskamiunlocked"); + KamiResearchItem.Blacklist.add(ICHORJAR); + } + + public static void postInit() { + final AspectList aspects_jarthaumiumreinforced = new AspectList().add(Aspect.ARMOR, 3) + .add(Aspect.WATER, 3) + .add(Aspect.GREED, 3) + .add(Aspect.VOID, 3); + @SuppressWarnings("unused") + final ResearchItem jar_thaumiumreinforced = new ResearchItem( + "THAUMIUMREINFORCEDJAR", + "ALCHEMY", + aspects_jarthaumiumreinforced, + 3, + -4, + 2, + new ItemStack(Blocks.jarThaumiumReinforced, 1)) + .setPages( + new ResearchPage("kekztech.research_page.THAUMIUMREINFORCEDJAR.0"), + new ResearchPage(Recipes.infusionRecipes.get("THAUMIUMREINFORCEDJAR")), + new ResearchPage(Recipes.infusionRecipes.get("THAUMIUMREINFORCEDVOIDJAR")), + new ResearchPage("kekztech.research_page.THAUMIUMREINFORCEDJAR.1")) + .setConcealed() + .setParents("JARLABEL") + .registerResearchItem(); + + final AspectList aspects_jarichor = new AspectList().add(Aspect.ARMOR, 3) + .add(Aspect.ELDRITCH, 3) + .add(Aspect.WATER, 3) + .add(Aspect.GREED, 5) + .add(Aspect.VOID, 5); + @SuppressWarnings("unused") + final ResearchItem jar_ichor = new ResearchItem( + "ICHORJAR", + "ALCHEMY", + aspects_jarichor, + 2, + -5, + 3, + new ItemStack(Blocks.jarIchor, 1)) + .setPages( + new ResearchPage("kekztech.research_page.ICHORJAR.0"), + new ResearchPage(Recipes.infusionRecipes.get("ICHORJAR")), + new ResearchPage(Recipes.infusionRecipes.get("ICHORVOIDJAR"))) + .setConcealed() + .setParents("THAUMIUMREINFORCEDJAR") + .setParentsHidden("ICHOR") + .registerResearchItem(); + } +} diff --git a/src/main/java/common/TileEntities.java b/src/main/java/common/TileEntities.java new file mode 100644 index 0000000000..31246ac5d8 --- /dev/null +++ b/src/main/java/common/TileEntities.java @@ -0,0 +1,43 @@ +package common; + +import common.tileentities.GTMTE_LapotronicSuperCapacitor; +import common.tileentities.GTMTE_SOFuelCellMK1; +import common.tileentities.GTMTE_SOFuelCellMK2; +import common.tileentities.GTMTE_TFFT; +import common.tileentities.GTMTE_TFFTHatch; +import common.tileentities.TE_IchorJar; +import common.tileentities.TE_IchorVoidJar; +import common.tileentities.TE_ThaumiumReinforcedJar; +import common.tileentities.TE_ThaumiumReinforcedVoidJar; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class TileEntities { + + // Multiblock controllers + public static GTMTE_SOFuelCellMK1 sofc1; + public static GTMTE_SOFuelCellMK2 sofc2; + public static GTMTE_TFFT tfft; + public static GTMTE_LapotronicSuperCapacitor lsc; + + // Singleblocks + public static GTMTE_TFFTHatch tfftHatch; + + public static void preInit() { + GameRegistry.registerTileEntity(TE_ThaumiumReinforcedJar.class, "kekztech_thaumiumreinforcedjar"); + GameRegistry.registerTileEntity(TE_ThaumiumReinforcedVoidJar.class, "kekztech_thaumiumreinforcedvoidjar"); + GameRegistry.registerTileEntity(TE_IchorJar.class, "kekztech_ichorjar"); + GameRegistry.registerTileEntity(TE_IchorVoidJar.class, "kekztech_ichorvoidjar"); + } + + public static void init() { + // Multiblock controllers + sofc1 = new GTMTE_SOFuelCellMK1(13101, "multimachine.fuelcellmk1", "Solid-Oxide Fuel Cell Mk I"); + sofc2 = new GTMTE_SOFuelCellMK2(13102, "multimachine.fuelcellmk2", "Solid-Oxide Fuel Cell Mk II"); + tfft = new GTMTE_TFFT(13104, "multimachine.tfft", "T.F.F.T"); + lsc = new GTMTE_LapotronicSuperCapacitor(13106, "multimachine.supercapacitor", "Lapotronic Supercapacitor"); + + // Singleblocks + tfftHatch = new GTMTE_TFFTHatch(13109, "machine.tffthatch", "T.F.F.T Multi I/O Hatch"); + } +} diff --git a/src/main/java/common/blocks/BaseGTUpdateableBlock.java b/src/main/java/common/blocks/BaseGTUpdateableBlock.java new file mode 100644 index 0000000000..ef61327dd7 --- /dev/null +++ b/src/main/java/common/blocks/BaseGTUpdateableBlock.java @@ -0,0 +1,57 @@ +package common.blocks; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +import gregtech.api.GregTech_API; + +/** + * Any blocks that are used as structure parts for GregTech multi machines have to inherit from this class. Otherwise + * the checkMachine() method that verifies a machine's structure won't be called correctly. + */ +public abstract class BaseGTUpdateableBlock extends Block { + + protected BaseGTUpdateableBlock(Material material) { + super(material); + GregTech_API.registerMachineBlock(this, -1); + super.setHarvestLevel("wrench", 2); + } + + @Override + public int damageDropped(int meta) { + return meta; + } + + @Override + public boolean canBeReplacedByLeaves(IBlockAccess world, int x, int y, int z) { + return false; + } + + @Override + public boolean canEntityDestroy(IBlockAccess world, int x, int y, int z, Entity entity) { + return false; + } + + @Override + public boolean canCreatureSpawn(EnumCreatureType type, IBlockAccess world, int x, int y, int z) { + return false; + } + + @Override + public void onBlockAdded(World aWorld, int aX, int aY, int aZ) { + if (GregTech_API.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) { + GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); + } + } + + @Override + public void breakBlock(World aWorld, int aX, int aY, int aZ, Block aBlock, int aMetaData) { + if (GregTech_API.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) { + GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); + } + } +} diff --git a/src/main/java/common/blocks/Block_GDCUnit.java b/src/main/java/common/blocks/Block_GDCUnit.java new file mode 100644 index 0000000000..27bc95759d --- /dev/null +++ b/src/main/java/common/blocks/Block_GDCUnit.java @@ -0,0 +1,29 @@ +package common.blocks; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; + +import cpw.mods.fml.common.registry.GameRegistry; +import kekztech.KekzCore; + +public class Block_GDCUnit extends BaseGTUpdateableBlock { + + private static final Block_GDCUnit instance = new Block_GDCUnit(); + + private Block_GDCUnit() { + super(Material.iron); + } + + public static Block registerBlock() { + final String blockName = "kekztech_gdcceramicelectrolyteunit_block"; + instance.setBlockName(blockName); + instance.setCreativeTab(CreativeTabs.tabMisc); + instance.setBlockTextureName(KekzCore.MODID + ":" + "GDCCeramicElectrolyteUnit"); + instance.setHardness(5.0f); + instance.setResistance(6.0f); + GameRegistry.registerBlock(instance, blockName); + + return instance; + } +} diff --git a/src/main/java/common/blocks/Block_IchorJar.java b/src/main/java/common/blocks/Block_IchorJar.java new file mode 100644 index 0000000000..a82f9862f0 --- /dev/null +++ b/src/main/java/common/blocks/Block_IchorJar.java @@ -0,0 +1,230 @@ +package common.blocks; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.Explosion; +import net.minecraft.world.World; + +import common.itemBlocks.IB_IchorJar; +import common.tileentities.TE_IchorJar; +import common.tileentities.TE_IchorVoidJar; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import thaumcraft.api.aspects.Aspect; +import thaumcraft.api.aspects.AspectList; +import thaumcraft.common.blocks.BlockJar; +import thaumcraft.common.config.ConfigBlocks; +import thaumcraft.common.config.ConfigItems; +import thaumcraft.common.items.ItemEssence; +import thaumcraft.common.tiles.TileJarFillable; + +public class Block_IchorJar extends BlockJar { + + private static final Block_IchorJar INSTANCE = new Block_IchorJar(); + + private Block_IchorJar() { + super(); + + super.setHardness(12.0F); + super.setResistance(3.0f); + } + + public static Block registerBlock() { + final String blockName = "kekztech_ichorjar_block"; + INSTANCE.setBlockName(blockName); + INSTANCE.setHarvestLevel("pickaxe", 3); + GameRegistry.registerBlock(INSTANCE, IB_IchorJar.class, blockName); + + return INSTANCE; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister ir) { + super.iconLiquid = ir.registerIcon("thaumcraft:animatedglow"); + super.iconJarSide = ir.registerIcon("kekztech:ichor_jar_side"); + super.iconJarTop = ir.registerIcon("kekztech:ichor_jar_top"); + super.iconJarTopVoid = ir.registerIcon("kekztech:ichor_jar_top_void"); + super.iconJarSideVoid = ir.registerIcon("kekztech:ichor_jar_side_void"); + super.iconJarBottom = ir.registerIcon("kekztech:ichor_jar_bottom"); + } + + @Override + @SideOnly(Side.CLIENT) + @SuppressWarnings({ "unchecked" }) + public void getSubBlocks(Item par1, CreativeTabs par2CreativeTabs, List par3List) { + par3List.add(new ItemStack(par1, 1, 0)); // Normal jar + par3List.add(new ItemStack(par1, 1, 3)); // Void jar + } + + @Override + public TileEntity createTileEntity(World world, int meta) { + if (meta == 3) { + return new TE_IchorVoidJar(); + } else { + return new TE_IchorJar(); + } + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float f1, float f2, + float f3) { + // Call parent method to handle jar emptying, labels stuff etc + super.onBlockActivated(world, x, y, z, player, side, f1, f2, f3); + // Interact with Essentia Phials if the player holds one + final ItemStack heldItem = player.getHeldItem(); + if (heldItem != null && heldItem.getItem() == ConfigItems.itemEssence) { + final TileEntity te = world.getTileEntity(x, y, z); + if (te instanceof TE_IchorJar) { + return dealWithPhial(world, player, x, y, z); + } else if (te instanceof TE_IchorVoidJar) { + return dealWithPhial(world, player, x, y, z); + } + } + + return true; + } + + /** + * Handle compatibility with Essentia Phials + * + * @param world Pass through from onBlockActivated() + * @param player Pass through from onBlockActivated() + * @param x Pass through from onBlockActivated() + * @param y Pass through from onBlockActivated() + * @param z Pass through from onBlockActivated() + * @return Not sure tbh + */ + private boolean dealWithPhial(World world, EntityPlayer player, int x, int y, int z) { + final TileJarFillable jarTE = (TileJarFillable) world.getTileEntity(x, y, z); + final ItemStack heldItem = player.getHeldItem(); + // Check whether to fill or to drain the phial + if (heldItem.getItemDamage() == 0) { + if (jarTE.amount >= 8) { + if (world.isRemote) { + player.swingItem(); + return false; + } + + final Aspect jarAspect = Aspect.getAspect(jarTE.aspect.getTag()); + if (jarTE.takeFromContainer(jarAspect, 8)) { + // Take an empty phial from the player's inventory + heldItem.stackSize--; + // Fill a new phial + final ItemStack filledPhial = new ItemStack(ConfigItems.itemEssence, 1, 1); + final AspectList phialContent = new AspectList().add(jarAspect, 8); + ((ItemEssence) ConfigItems.itemEssence).setAspects(filledPhial, phialContent); + // Drop on ground if there's no inventory space + if (!player.inventory.addItemStackToInventory(filledPhial)) { + world.spawnEntityInWorld( + new EntityItem(world, (float) x + 0.5F, (float) y + 0.5F, (float) z + 0.5F, filledPhial)); + } + + world.playSoundAtEntity(player, "game.neutral.swim", 0.25F, 1.0F); + player.inventoryContainer.detectAndSendChanges(); + return true; + } + } + } else { + final AspectList phialContent = ((ItemEssence) ConfigItems.itemEssence).getAspects(heldItem); + if (phialContent != null && phialContent.size() == 1) { + final Aspect phialAspect = phialContent.getAspects()[0]; + if (jarTE.amount + 8 <= jarTE.maxAmount && jarTE.doesContainerAccept(phialAspect)) { + if (world.isRemote) { + player.swingItem(); + return false; + } + + if (jarTE.addToContainer(phialAspect, 8) == 0) { + world.markBlockForUpdate(x, y, z); + jarTE.markDirty(); + heldItem.stackSize--; + // Drop on ground if there's no inventory space + if (!player.inventory.addItemStackToInventory(new ItemStack(ConfigItems.itemEssence, 1, 0))) { + world.spawnEntityInWorld( + new EntityItem( + world, + (float) x + 0.5F, + (float) y + 0.5F, + (float) z + 0.5F, + new ItemStack(ConfigItems.itemEssence, 1, 0))); + } + + world.playSoundAtEntity(player, "game.neutral.swim", 0.25F, 1.0F); + player.inventoryContainer.detectAndSendChanges(); + return true; + } + } + } + } + + return true; + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block par5, int par6) { + final TileEntity te = world.getTileEntity(x, y, z); + if (te instanceof TE_IchorJar) { + final TE_IchorJar ite = (TE_IchorJar) te; + breakBlockWarpy(world, x, y, z, ite.amount, 200, 6.0F); + } else if (te instanceof TE_IchorVoidJar) { + final TE_IchorVoidJar ite = (TE_IchorVoidJar) te; + breakBlockWarpy(world, x, y, z, ite.amount, 200, 6.0F); + } + super.breakBlock(world, x, y, z, par5, par6); + } + + private void breakBlockWarpy(World world, int x, int y, int z, int fillAmount, int iterations, + float explosionStrength) { + if (fillAmount > 0) { + // Create a decent explosion in the center of the block (TNT has strength 4.0F) + world.createExplosion(null, x + 0.5D, y + 0.5D, z + 0.5D, explosionStrength, false); + + // Place a lot of Flux in the area + final int limit = fillAmount / 16; + int created = 0; + for (int i = 0; i < iterations; i++) { + final int xf = x + world.rand.nextInt(7) - world.rand.nextInt(7); + final int yf = x + world.rand.nextInt(7) - world.rand.nextInt(7); + final int zf = x + world.rand.nextInt(7) - world.rand.nextInt(7); + if (world.isAirBlock(xf, yf, zf)) { + if (yf > y) { + world.setBlock(xf, yf, zf, ConfigBlocks.blockFluxGas, 8, 3); + } else { + world.setBlock(xf, yf, zf, ConfigBlocks.blockFluxGoo, 8, 3); + } + + if (created++ > limit) { + break; + } + } + } + } + } + + @Override + public ArrayList getDrops(World world, int x, int y, int z, int meta, int fortune) { + return new ArrayList<>(Collections.singleton(new ItemStack(this, 1, (meta == 3) ? 3 : 0))); + } + + @Override + public void onBlockHarvested(World par1World, int par2, int par3, int par4, int par5, + EntityPlayer par6EntityPlayer) {} + + @Override + public boolean canDropFromExplosion(Explosion e) { + return false; + } +} diff --git a/src/main/java/common/blocks/Block_LapotronicEnergyUnit.java b/src/main/java/common/blocks/Block_LapotronicEnergyUnit.java new file mode 100644 index 0000000000..653c99216b --- /dev/null +++ b/src/main/java/common/blocks/Block_LapotronicEnergyUnit.java @@ -0,0 +1,173 @@ +package common.blocks; + +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.util.ResourceLocation; + +import common.itemBlocks.IB_LapotronicEnergyUnit; + +import cpw.mods.fml.common.registry.GameRegistry; +import gregtech.api.enums.Textures; +import gregtech.api.interfaces.IIconContainer; +import gregtech.api.render.TextureFactory; +import gregtech.api.util.GT_Utility; + +public class Block_LapotronicEnergyUnit extends BaseGTUpdateableBlock { + + private static final Block_LapotronicEnergyUnit INSTANCE = new Block_LapotronicEnergyUnit(); + + public enum IconBaseSide implements IIconContainer { + + INSTANCE; + + @Override + public IIcon getIcon() { + return Block_LapotronicEnergyUnit.INSTANCE.iconBaseSide; + } + + @Override + public IIcon getOverlayIcon() { + return null; + } + + @Override + public ResourceLocation getTextureFile() { + return TextureMap.locationBlocksTexture; + } + } + + static { + // technically, this page is owned by me, glee8e, however, I'm kind enough to spare 1 for kekztech since + // this is basically abandon ware by now. + GT_Utility.addTexturePage((byte) 42); + Textures.BlockIcons.setCasingTexture((byte) 42, (byte) 127, TextureFactory.of(IconBaseSide.INSTANCE)); + } + + private IIcon iconBaseSide; + private IIcon iconBaseTop; + + private IIcon iconLapoEmptySide; + private IIcon iconLapoEmptyTop; + private IIcon iconLapoEVSide; + private IIcon iconLapoEVTop; + private IIcon iconLapoIVSide; + private IIcon iconLapoIVTop; + private IIcon iconLapoLuVSide; + private IIcon iconLapoLuVTop; + private IIcon iconLapoZPMSide; + private IIcon iconLapoZPMTop; + private IIcon iconLapoUVSide; + private IIcon iconLapoUVTop; + private IIcon iconUltimateSide; + private IIcon iconUltimateTop; + private IIcon iconUltimateExtremeSide; + private IIcon iconUltimateExtremeTop; + private IIcon iconUltimateInsaneSide; + private IIcon iconUltimateInsaneTop; + private IIcon iconUltimateMegaSide; + private IIcon iconUltimateMegaTop; + + private Block_LapotronicEnergyUnit() { + super(Material.iron); + } + + public static Block registerBlock() { + final String blockName = "kekztech_lapotronicenergyunit_block"; + INSTANCE.setBlockName(blockName); + INSTANCE.setCreativeTab(CreativeTabs.tabMisc); + INSTANCE.setHardness(5.0f); + INSTANCE.setResistance(6.0f); + GameRegistry.registerBlock(INSTANCE, IB_LapotronicEnergyUnit.class, blockName); + + return INSTANCE; + } + + @Override + public void registerBlockIcons(IIconRegister ir) { + iconBaseSide = ir.registerIcon("kekztech:LSCBase_side"); + iconBaseTop = ir.registerIcon("kekztech:LSCBase_top"); + + iconLapoEmptySide = ir.registerIcon("kekztech:LapotronicEnergyUnit6_side"); + iconLapoEmptyTop = ir.registerIcon("kekztech:LapotronicEnergyUnit6_top"); + iconLapoEVSide = ir.registerIcon("kekztech:LapotronicEnergyUnit7_side"); + iconLapoEVTop = ir.registerIcon("kekztech:LapotronicEnergyUnit7_top"); + iconLapoIVSide = ir.registerIcon("kekztech:LapotronicEnergyUnit1_side"); + iconLapoIVTop = ir.registerIcon("kekztech:LapotronicEnergyUnit1_top"); + iconLapoLuVSide = ir.registerIcon("kekztech:LapotronicEnergyUnit2_side"); + iconLapoLuVTop = ir.registerIcon("kekztech:LapotronicEnergyUnit2_top"); + iconLapoZPMSide = ir.registerIcon("kekztech:LapotronicEnergyUnit3_side"); + iconLapoZPMTop = ir.registerIcon("kekztech:LapotronicEnergyUnit3_top"); + iconLapoUVSide = ir.registerIcon("kekztech:LapotronicEnergyUnit4_side"); + iconLapoUVTop = ir.registerIcon("kekztech:LapotronicEnergyUnit4_top"); + + iconUltimateSide = ir.registerIcon("kekztech:UltimateEnergyUnit_side"); + iconUltimateTop = ir.registerIcon("kekztech:UltimateEnergyUnit_top"); + iconUltimateExtremeSide = ir.registerIcon("kekztech:ReallyUltimateEnergyUnit_side"); + iconUltimateExtremeTop = ir.registerIcon("kekztech:ReallyUltimateEnergyUnit_top"); + iconUltimateInsaneSide = ir.registerIcon("kekztech:InsanelyUltimateEnergyUnit_side"); + iconUltimateInsaneTop = ir.registerIcon("kekztech:InsanelyUltimateEnergyUnit_top"); + iconUltimateMegaSide = ir.registerIcon("kekztech:MegaUltimateEnergyUnit_side"); + iconUltimateMegaTop = ir.registerIcon("kekztech:MegaUltimateEnergyUnit_top"); + } + + @Override + @SuppressWarnings({ "unchecked" }) + public void getSubBlocks(Item par1, CreativeTabs par2CreativeTabs, List par3List) { + // Multi casing + par3List.add(new ItemStack(par1, 1, 0)); + // Empty capacitor + par3List.add(new ItemStack(par1, 1, 6)); + // Lapo capacitors EV - UV + par3List.add(new ItemStack(par1, 1, 7)); + par3List.add(new ItemStack(par1, 1, 1)); + par3List.add(new ItemStack(par1, 1, 2)); + par3List.add(new ItemStack(par1, 1, 3)); + par3List.add(new ItemStack(par1, 1, 4)); + // Ultimate battery + par3List.add(new ItemStack(par1, 1, 5)); + // UEV Cap + par3List.add(new ItemStack(par1, 1, 8)); + // UIV Cap + par3List.add(new ItemStack(par1, 1, 9)); + // UMV Cap + par3List.add(new ItemStack(par1, 1, 10)); + } + + @Override + public IIcon getIcon(int side, int meta) { + switch (meta) { + case 0: + return (side < 2) ? iconBaseTop : iconBaseSide; + case 1: + return (side < 2) ? iconLapoIVTop : iconLapoIVSide; + case 2: + return (side < 2) ? iconLapoLuVTop : iconLapoLuVSide; + case 3: + return (side < 2) ? iconLapoZPMTop : iconLapoZPMSide; + case 4: + return (side < 2) ? iconLapoUVTop : iconLapoUVSide; + case 5: + return (side < 2) ? iconUltimateTop : iconUltimateSide; + case 6: + return (side < 2) ? iconLapoEmptyTop : iconLapoEmptySide; + case 7: + return (side < 2) ? iconLapoEVTop : iconLapoEVSide; + case 8: + return (side < 2) ? iconUltimateExtremeTop : iconUltimateExtremeSide; + case 9: + return (side < 2) ? iconUltimateInsaneTop : iconUltimateInsaneSide; + case 10: + return (side < 2) ? iconUltimateMegaTop : iconUltimateMegaSide; + default: + return iconUltimateTop; + } + } +} diff --git a/src/main/java/common/blocks/Block_LargeHexPlate.java b/src/main/java/common/blocks/Block_LargeHexPlate.java new file mode 100644 index 0000000000..ac8174ff34 --- /dev/null +++ b/src/main/java/common/blocks/Block_LargeHexPlate.java @@ -0,0 +1,65 @@ +package common.blocks; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; + +import cpw.mods.fml.common.registry.GameRegistry; + +public class Block_LargeHexPlate extends Block { + + private static final Block_LargeHexPlate INSTANCE = new Block_LargeHexPlate(); + private static final int BATCH_SIZE = 4; + + private final IIcon[][] parts = new IIcon[BATCH_SIZE][BATCH_SIZE]; + + private Block_LargeHexPlate() { + super(Material.rock); + } + + public static Block registerBlock() { + final String blockName = "kekztech_largehextile_block"; + INSTANCE.setBlockName(blockName); + INSTANCE.setCreativeTab(CreativeTabs.tabMisc); + INSTANCE.setHardness(6.0f); + INSTANCE.setResistance(10.0f); + GameRegistry.registerBlock(INSTANCE, blockName); + + return INSTANCE; + } + + @Override + public void registerBlockIcons(IIconRegister ir) { + for (int x = 0; x < BATCH_SIZE; x++) { + for (int z = 0; z < BATCH_SIZE; z++) { + parts[x][z] = ir.registerIcon("kekztech:LargeHexTile_" + x + "_" + z); + } + } + } + + @Override + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { + final int xMod = x >= 0 ? Math.abs(x % BATCH_SIZE) + : Math.abs((Math.abs(x) % BATCH_SIZE) - BATCH_SIZE) % BATCH_SIZE; + final int yMod = y >= 0 ? Math.abs(y % BATCH_SIZE) + : Math.abs((Math.abs(y) % BATCH_SIZE) - BATCH_SIZE) % BATCH_SIZE; + final int zMod = z >= 0 ? Math.abs(z % BATCH_SIZE) + : Math.abs((Math.abs(z) % BATCH_SIZE) - BATCH_SIZE) % BATCH_SIZE; + + if (side == 0 || side == 1) { + return parts[xMod][zMod]; + } else if (side == 2 || side == 3) { + return parts[xMod][yMod]; + } else { + return parts[zMod][yMod]; + } + } + + @Override + public IIcon getIcon(int side, int meta) { + return parts[(int) Math.ceil(BATCH_SIZE / 2)][(int) Math.ceil(BATCH_SIZE / 2)]; + } +} diff --git a/src/main/java/common/blocks/Block_TFFTStorageField.java b/src/main/java/common/blocks/Block_TFFTStorageField.java new file mode 100644 index 0000000000..069dd40dca --- /dev/null +++ b/src/main/java/common/blocks/Block_TFFTStorageField.java @@ -0,0 +1,92 @@ +package common.blocks; + +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.util.ResourceLocation; + +import common.itemBlocks.IB_TFFTStorageField; +import common.tileentities.GTMTE_TFFT; + +import cpw.mods.fml.common.registry.GameRegistry; +import gregtech.api.enums.Textures; +import gregtech.api.interfaces.IIconContainer; +import gregtech.api.render.TextureFactory; +import gregtech.api.util.GT_Utility; +import kekztech.KekzCore; + +public class Block_TFFTStorageField extends BaseGTUpdateableBlock { + + private static final Block_TFFTStorageField INSTANCE = new Block_TFFTStorageField(); + private static final int SUB_BLOCK_COUNT = GTMTE_TFFT.Field.VALUES.length + 1; + private static final IIcon[] textures = new IIcon[SUB_BLOCK_COUNT]; + + public enum TFFTCasingIcon implements IIconContainer { + + INSTANCE; + + @Override + public IIcon getIcon() { + return textures[0]; + } + + @Override + public IIcon getOverlayIcon() { + return null; + } + + @Override + public ResourceLocation getTextureFile() { + return TextureMap.locationBlocksTexture; + } + } + + // I guess glodblock won't mind + static { + GT_Utility.addTexturePage((byte) 12); + Textures.BlockIcons + .setCasingTexture((byte) 12, (byte) 127, TextureFactory.of(Block_TFFTStorageField.TFFTCasingIcon.INSTANCE)); + } + + private Block_TFFTStorageField() { + super(Material.iron); + } + + public static Block registerBlock() { + final String blockName = "kekztech_tfftstoragefield_block"; + INSTANCE.setBlockName(blockName); + INSTANCE.setCreativeTab(CreativeTabs.tabMisc); + INSTANCE.setHardness(5.0f); + INSTANCE.setResistance(6.0f); + GameRegistry.registerBlock(INSTANCE, IB_TFFTStorageField.class, blockName); + + return INSTANCE; + } + + @Override + public void registerBlockIcons(IIconRegister ir) { + textures[0] = ir.registerIcon(KekzCore.MODID + ":" + "TFFTCasing"); + for (int i = 1; i < SUB_BLOCK_COUNT; i++) { + textures[i] = ir.registerIcon(KekzCore.MODID + ":" + "TFFTStorageFieldBlock" + i); + } + } + + @Override + public void getSubBlocks(Item par1, CreativeTabs par2CreativeTabs, List par3List) { + for (int i = 0; i < SUB_BLOCK_COUNT; i++) { + par3List.add(new ItemStack(par1, 1, i)); + } + } + + @Override + public IIcon getIcon(int side, int meta) { + return textures[meta]; + } +} diff --git a/src/main/java/common/blocks/Block_ThaumiumReinforcedJar.java b/src/main/java/common/blocks/Block_ThaumiumReinforcedJar.java new file mode 100644 index 0000000000..3c91ac6d0d --- /dev/null +++ b/src/main/java/common/blocks/Block_ThaumiumReinforcedJar.java @@ -0,0 +1,252 @@ +package common.blocks; + +import java.util.ArrayList; +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.Explosion; +import net.minecraft.world.World; + +import common.itemBlocks.IB_ThaumiumReinforcedJar; +import common.tileentities.TE_ThaumiumReinforcedJar; +import common.tileentities.TE_ThaumiumReinforcedVoidJar; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import thaumcraft.api.aspects.Aspect; +import thaumcraft.api.aspects.AspectList; +import thaumcraft.common.blocks.BlockJar; +import thaumcraft.common.config.ConfigBlocks; +import thaumcraft.common.config.ConfigItems; +import thaumcraft.common.items.ItemEssence; +import thaumcraft.common.tiles.TileJarFillable; + +public class Block_ThaumiumReinforcedJar extends BlockJar { + + private static final Block_ThaumiumReinforcedJar INSTANCE = new Block_ThaumiumReinforcedJar(); + + private Block_ThaumiumReinforcedJar() { + super(); + + super.setHardness(6.0F); + super.setResistance(6.0F); + } + + public static Block registerBlock() { + final String blockName = "kekztech_thaumiumreinforcedjar_block"; + INSTANCE.setBlockName(blockName); + INSTANCE.setHarvestLevel("pickaxe", 2); + GameRegistry.registerBlock(INSTANCE, IB_ThaumiumReinforcedJar.class, blockName); + + return INSTANCE; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister ir) { + super.iconLiquid = ir.registerIcon("thaumcraft:animatedglow"); + super.iconJarSide = ir.registerIcon("kekztech:thaumreinforced_jar_side"); + super.iconJarTop = ir.registerIcon("kekztech:thaumreinforced_jar_top"); + super.iconJarTopVoid = ir.registerIcon("kekztech:thaumreinforced_jar_top_void"); + super.iconJarSideVoid = ir.registerIcon("kekztech:thaumreinforced_jar_side_void"); + super.iconJarBottom = ir.registerIcon("kekztech:thaumreinforce