aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.classpath10
-rw-r--r--.gradle/2.0/taskArtifacts/cache.properties1
-rw-r--r--.gradle/2.0/taskArtifacts/cache.properties.lockbin0 -> 17 bytes
-rw-r--r--.gradle/2.0/taskArtifacts/fileHashes.binbin0 -> 87690 bytes
-rw-r--r--.gradle/2.0/taskArtifacts/fileSnapshots.binbin0 -> 66345 bytes
-rw-r--r--.gradle/2.0/taskArtifacts/outputFileStates.binbin0 -> 18722 bytes
-rw-r--r--.gradle/2.0/taskArtifacts/taskArtifacts.binbin0 -> 21129 bytes
-rw-r--r--build.gradle2
-rw-r--r--config/GregTech/Recipes.cfg17
-rw-r--r--config/IC2.ini2
-rw-r--r--config/splash.properties2
-rw-r--r--crash-reports/crash-2019-06-09_18.36.52-client.txt139
-rw-r--r--crash-reports/crash-2019-06-09_18.40.05-client.txt139
-rw-r--r--gradle/wrapper/gradle-wrapper.properties6
-rw-r--r--lib/MACHINE_CASING_VENT.pngbin467 -> 0 bytes
-rw-r--r--logs/2019-06-08-1.log.gzbin680 -> 713 bytes
-rw-r--r--logs/2019-06-08-2.log.gzbin685 -> 663 bytes
-rw-r--r--logs/2019-06-08-3.log.gzbin658 -> 672 bytes
-rw-r--r--logs/2019-06-08-4.log.gzbin713 -> 663 bytes
-rw-r--r--logs/2019-06-08-5.log.gzbin663 -> 880 bytes
-rw-r--r--logs/2019-06-08-6.log.gzbin672 -> 683 bytes
-rw-r--r--logs/2019-06-08-7.log.gzbin663 -> 686 bytes
-rw-r--r--logs/2019-06-09-1.log.gzbin0 -> 618 bytes
-rw-r--r--logs/2019-06-09-2.log.gzbin0 -> 666 bytes
-rw-r--r--logs/2019-06-09-3.log.gzbin0 -> 319 bytes
-rw-r--r--logs/2019-06-09-4.log.gzbin0 -> 318 bytes
-rw-r--r--logs/2019-06-09-5.log.gzbin0 -> 702 bytes
-rw-r--r--logs/2019-06-09-6.log.gzbin0 -> 2801 bytes
-rw-r--r--logs/2019-06-09-7.log.gzbin0 -> 1313 bytes
-rw-r--r--options.txt2
-rw-r--r--saves/NEI/local/New World/NEI.datbin94 -> 88 bytes
-rw-r--r--saves/New World/DIM-1/data/villages.datbin56 -> 56 bytes
-rw-r--r--saves/New World/DIM1/data/villages.datbin56 -> 56 bytes
-rw-r--r--saves/New World/data/villages.datbin56 -> 56 bytes
-rw-r--r--saves/New World/level.datbin14458 -> 14520 bytes
-rw-r--r--saves/New World/level.dat_oldbin14458 -> 14519 bytes
-rw-r--r--saves/New World/playerdata/ddc68fe4-0789-360b-a837-3dcbb936da65.datbin707 -> 767 bytes
-rw-r--r--saves/New World/region/r.0.-1.mcabin1671168 -> 1671168 bytes
-rw-r--r--saves/New World/region/r.0.0.mcabin2461696 -> 2461696 bytes
-rw-r--r--saves/New World/session.lockbin8 -> 8 bytes
-rw-r--r--saves/New World/stats/ddc68fe4-0789-360b-a837-3dcbb936da65.json2
-rw-r--r--src/main/java/blocks/Block_GDCUnit.java (renamed from src/main/java/fuelcell/Block_GDCUnit.java)2
-rw-r--r--src/main/java/blocks/Block_YSZUnit.java (renamed from src/main/java/fuelcell/Block_YSZUnit.java)2
-rw-r--r--src/main/java/container/Container_ModularNuclearReactor.java (renamed from src/main/java/reactor/Container_ModularNuclearReactor.java)4
-rw-r--r--src/main/java/container/GUIContainer_ModularNuclearReactor.java (renamed from src/main/java/reactor/GUIContainer_ModularNuclearReactor.java)2
-rw-r--r--src/main/java/items/ErrorItem.java (renamed from src/main/java/kekztech/ErrorItem.java)3
-rw-r--r--src/main/java/items/MetaItem_CraftingComponent.java (renamed from src/main/java/kekztech/MetaItem_CraftingComponent.java)12
-rw-r--r--src/main/java/items/MetaItem_ReactorComponent.java (renamed from src/main/java/kekztech/MetaItem_ReactorComponent.java)3
-rw-r--r--src/main/java/kekztech/GTMultiController.java5
-rw-r--r--src/main/java/kekztech/Items.java7
-rw-r--r--src/main/java/kekztech/KekzCore.java202
-rw-r--r--src/main/java/kekztech/Util.java1
-rw-r--r--src/main/java/reactor/items/CoolantCell.java2
-rw-r--r--src/main/java/reactor/items/FuelRod.java2
-rw-r--r--src/main/java/reactor/items/HeatExchanger.java4
-rw-r--r--src/main/java/reactor/items/HeatPipe.java29
-rw-r--r--src/main/java/reactor/items/HeatVent.java4
-rw-r--r--src/main/java/reactor/items/NeutronReflector.java2
-rw-r--r--src/main/java/tileentities/GTMTE_ModularNuclearReactor.java (renamed from src/main/java/reactor/GTMTE_ModularNuclearReactor.java)14
-rw-r--r--src/main/java/tileentities/GTMTE_SOFuelCellMK1.java (renamed from src/main/java/fuelcell/GTMTE_SOFuelCellMK1.java)101
-rw-r--r--src/main/java/tileentities/GTMTE_SOFuelCellMK2.java (renamed from src/main/java/fuelcell/GTMTE_SOFuelCellMK2.java)93
61 files changed, 686 insertions, 130 deletions
diff --git a/.classpath b/.classpath
index 580a8e91c4..14cfcfbb21 100644
--- a/.classpath
+++ b/.classpath
@@ -4,10 +4,10 @@
<classpathentry kind="src" path="src/main/resources"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry combineaccessrules="false" kind="src" path="/Forge"/>
- <classpathentry kind="lib" path="lib/gregtech-5.09.32-dev.jar" sourcepath="lib/gregtech-5.09.32-dev-src.zip"/>
- <classpathentry kind="lib" path="lib/industrialcraft-2-2.2.828a-experimental-deobf.jar"/>
- <classpathentry kind="lib" path="lib/NotEnoughItems-1.7.10-1.0.5.120-dev.jar"/>
- <classpathentry kind="lib" path="lib/CodeChickenCore-1.7.10-1.0.7.47-dev.jar"/>
- <classpathentry kind="lib" path="lib/CodeChickenLib-1.7.10-1.1.3.140-dev.jar"/>
+ <classpathentry kind="lib" path="E:/Development/KekzTech/libs/CodeChickenCore-1.7.10-1.0.7.47-dev.jar"/>
+ <classpathentry kind="lib" path="libs/CodeChickenLib-1.7.10-1.1.3.140-dev.jar"/>
+ <classpathentry kind="lib" path="libs/gregtech-5.09.32-dev.jar"/>
+ <classpathentry kind="lib" path="libs/industrialcraft-2-2.2.828a-experimental-deobf.jar"/>
+ <classpathentry kind="lib" path="libs/NotEnoughItems-1.7.10-1.0.5.120-dev.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
diff --git a/.gradle/2.0/taskArtifacts/cache.properties b/.gradle/2.0/taskArtifacts/cache.properties
new file mode 100644
index 0000000000..0a27f00048
--- /dev/null
+++ b/.gradle/2.0/taskArtifacts/cache.properties
@@ -0,0 +1 @@
+#Sun Jun 09 22:52:57 CEST 2019
diff --git a/.gradle/2.0/taskArtifacts/cache.properties.lock b/.gradle/2.0/taskArtifacts/cache.properties.lock
new file mode 100644
index 0000000000..ca3bbae07a
--- /dev/null
+++ b/.gradle/2.0/taskArtifacts/cache.properties.lock
Binary files differ
diff --git a/.gradle/2.0/taskArtifacts/fileHashes.bin b/.gradle/2.0/taskArtifacts/fileHashes.bin
new file mode 100644
index 0000000000..c297a16654
--- /dev/null
+++ b/.gradle/2.0/taskArtifacts/fileHashes.bin
Binary files differ
diff --git a/.gradle/2.0/taskArtifacts/fileSnapshots.bin b/.gradle/2.0/taskArtifacts/fileSnapshots.bin
new file mode 100644
index 0000000000..07f121e479
--- /dev/null
+++ b/.gradle/2.0/taskArtifacts/fileSnapshots.bin
Binary files differ
diff --git a/.gradle/2.0/taskArtifacts/outputFileStates.bin b/.gradle/2.0/taskArtifacts/outputFileStates.bin
new file mode 100644
index 0000000000..33e592204a
--- /dev/null
+++ b/.gradle/2.0/taskArtifacts/outputFileStates.bin
Binary files differ
diff --git a/.gradle/2.0/taskArtifacts/taskArtifacts.bin b/.gradle/2.0/taskArtifacts/taskArtifacts.bin
new file mode 100644
index 0000000000..38ef8749f4
--- /dev/null
+++ b/.gradle/2.0/taskArtifacts/taskArtifacts.bin
Binary files differ
diff --git a/build.gradle b/build.gradle
index 0306dde268..1a154c453c 100644
--- a/build.gradle
+++ b/build.gradle
@@ -16,6 +16,8 @@ buildscript {
}
apply plugin: 'forge'
+sourceCompatibility = 1.8
+targetCompatibility = 1.8
version = "0.1"
group= "kekztech" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
diff --git a/config/GregTech/Recipes.cfg b/config/GregTech/Recipes.cfg
index 9033b90669..25bb16c96b 100644
--- a/config/GregTech/Recipes.cfg
+++ b/config/GregTech/Recipes.cfg
@@ -323,6 +323,7 @@ alloysmelting {
I:ingotYttrium_200=200
I:ingotZinc_130=130
I:ingotZinc_200=200
+ I:item.kekztech_crafting_item.14_400=400
I:nuggetAluminium_100=100
I:nuggetAluminium_130=130
I:nuggetAmericium_100=100
@@ -4630,6 +4631,9 @@ assembling {
I:tile.furnace_400=400
I:tile.hopper_800=800
I:tile.jukebox_400=400
+ I:tile.kekztech_gdcceramicelectrolyteunit_block_2400=2400
+ I:tile.kekztech_yszceramicelectrolyteunit_block_1200=1200
+ I:tile.kekztech_yszceramicelectrolyteunit_block_2400=2400
I:tile.lever_400=400
I:tile.musicBlock_200=200
I:tile.netherFence_100=100
@@ -4994,6 +4998,8 @@ autoclave {
I:gt.metaitem.02.32540_19200=19200
I:ic2.itemDustenergium_250=250
I:ic2.itemDustenergium_500=500
+ I:item.kekztech_crafting_item.5_2400=2400
+ I:item.kekztech_crafting_item.5_7680=7680
}
@@ -6880,6 +6886,12 @@ chemicalreactor {
I:isoprene_120=120
I:item.appleGold_50=50
I:item.carrotGolden_50=50
+ I:item.kekztech_crafting_item.11_400=400
+ I:item.kekztech_crafting_item.12_400=400
+ I:item.kekztech_crafting_item.13_400=400
+ I:item.kekztech_crafting_item.5_1=1
+ I:item.kekztech_crafting_item.5_1200=1200
+ I:item.kekztech_crafting_item.6_400=400
I:item.magmaCream_50=50
I:item.speckledMelon_50=50
I:leadzincsolution_50=50
@@ -20671,6 +20683,9 @@ mixer {
I:ic2biomass_400=400
I:ic2coolant_256=256
I:item.fermentedSpiderEye_100=100
+ I:item.kekztech_crafting_item.10_400=400
+ I:item.kekztech_crafting_item.4_100=100
+ I:item.kekztech_crafting_item.9_400=400
I:liquid_drillingfluid_64=64
I:liquid_nitrationmixture_480=480
I:molten.concrete_20=20
@@ -21085,6 +21100,8 @@ press {
I:gt.metaitem.02.32563_384=384
I:gt.metaitem.02.32569_384=384
I:ic2.itemCoin_100=100
+ I:item.kekztech_crafting_item.14_800=800
+ I:item.kekztech_crafting_item.15_800=800
}
diff --git a/config/IC2.ini b/config/IC2.ini
index 6af543ae7f..25985da584 100644
--- a/config/IC2.ini
+++ b/config/IC2.ini
@@ -1,5 +1,5 @@
; ic2 general config
-; created Jun 8, 2019 9:40:58 PM
+; created Jun 9, 2019 10:23:53 PM
;---
[worldgen]
diff --git a/config/splash.properties b/config/splash.properties
index 6b7594e1ce..9f6df603f4 100644
--- a/config/splash.properties
+++ b/config/splash.properties
@@ -1,5 +1,5 @@
#Splash screen properties
-#Sat Jun 08 21:40:49 CEST 2019
+#Sun Jun 09 22:23:42 CEST 2019
logoTexture=textures/gui/title/mojang.png
background=0xFFFFFF
font=0x0
diff --git a/crash-reports/crash-2019-06-09_18.36.52-client.txt b/crash-reports/crash-2019-06-09_18.36.52-client.txt
new file mode 100644
index 0000000000..d7f5e9b6cf
--- /dev/null
+++ b/crash-reports/crash-2019-06-09_18.36.52-client.txt
@@ -0,0 +1,139 @@
+---- Minecraft Crash Report ----
+// Shall we play a game?
+
+Time: 6/9/19 6:36 PM
+Description: Initializing game
+
+java.lang.ClassCastException: net.minecraft.item.ItemStack cannot be cast to java.lang.Character
+ at net.minecraft.item.crafting.CraftingManager.addRecipe(CraftingManager.java:209)
+ at cpw.mods.fml.common.registry.GameRegistry.addShapedRecipe(GameRegistry.java:250)
+ at kekztech.KekzCore.postInit(KekzCore.java:64)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
+ at java.lang.reflect.Method.invoke(Unknown Source)
+ at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532)
+ at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
+ at java.lang.reflect.Method.invoke(Unknown Source)
+ at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
+ at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
+ at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
+ at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
+ at com.google.common.eventbus.EventBus.post(EventBus.java:275)
+ at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212)
+ at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
+ at java.lang.reflect.Method.invoke(Unknown Source)
+ at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
+ at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
+ at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
+ at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
+ at com.google.common.eventbus.EventBus.post(EventBus.java:275)
+ at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119)
+ at cpw.mods.fml.common.Loader.initializeMods(Loader.java:742)
+ at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:311)
+ at net.minecraft.client.Minecraft.startGame(Minecraft.java:597)
+ at net.minecraft.client.Minecraft.run(Minecraft.java:942)
+ at net.minecraft.client.main.Main.main(Main.java:164)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
+ at java.lang.reflect.Method.invoke(Unknown Source)
+ at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
+ at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
+ at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
+ at GradleStart.main(Unknown Source)
+
+
+A detailed walkthrough of the error, its code path and all known details is as follows:
+---------------------------------------------------------------------------------------
+
+-- Head --
+Stacktrace:
+ at net.minecraft.item.crafting.CraftingManager.addRecipe(CraftingManager.java:209)
+ at cpw.mods.fml.common.registry.GameRegistry.addShapedRecipe(GameRegistry.java:250)
+ at kekztech.KekzCore.postInit(KekzCore.java:64)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
+ at java.lang.reflect.Method.invoke(Unknown Source)
+ at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532)
+ at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
+ at java.lang.reflect.Method.invoke(Unknown Source)
+ at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
+ at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
+ at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
+ at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
+ at com.google.common.eventbus.EventBus.post(EventBus.java:275)
+ at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212)
+ at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
+ at java.lang.reflect.Method.invoke(Unknown Source)
+ at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
+ at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
+ at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
+ at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
+ at com.google.common.eventbus.EventBus.post(EventBus.java:275)
+ at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119)
+ at cpw.mods.fml.common.Loader.initializeMods(Loader.java:742)
+ at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:311)
+ at net.minecraft.client.Minecraft.startGame(Minecraft.java:597)
+
+-- Initialization --
+Details:
+Stacktrace:
+ at net.minecraft.client.Minecraft.run(Minecraft.java:942)
+ at net.minecraft.client.main.Main.main(Main.java:164)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
+ at java.lang.reflect.Method.invoke(Unknown Source)
+ at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
+ at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
+ at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
+ at GradleStart.main(Unknown Source)
+
+-- System Details --
+Details:
+ Minecraft Version: 1.7.10
+ Operating System: Windows 10 (amd64) version 10.0
+ Java Version: 1.8.0_211, Oracle Corporation
+ Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
+ Memory: 1162024768 bytes (1108 MB) / 1618477056 bytes (1543 MB) up to 3799515136 bytes (3623 MB)
+ JVM Flags: 0 total;
+ AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
+ IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
+ FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1614 10 mods loaded, 10 mods active
+ States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
+ UCHIJ mcp{9.05} [Minecraft Coder Pack] (minecraft.jar)
+ UCHIJ FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.4.1614-1.7.10.jar)
+ UCHIJ Forge{10.13.4.1614} [Minecraft Forge] (forgeSrc-1.7.10-10.13.4.1614-1.7.10.jar)
+ UCHIJ NotEnoughItems{1.0.5.120} [Not Enough Items] (NotEnoughItems-1.7.10-1.0.5.120-dev.jar)
+ UCHIJ CodeChickenCore{1.0.7.47} [CodeChicken Core] (minecraft.jar)
+ UCHIJ IC2{2.2.828-experimental} [IndustrialCraft 2] (industrialcraft-2-2.2.828a-experimental-deobf.jar)
+ UCHIJ gregtech{MC1710} [GregTech] (gregtech-5.09.32-dev.jar)
+ UCHIE kekztech{0.1a} [KekzTech] (bin)
+ UCHIJ examplemod{1.0} [Example Mod] (bin)
+ UCHIJ devtips{1.1} [DevTooltips] (devtips-1.1.jar)
+ GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.6.0 NVIDIA 398.36' Renderer: 'GeForce GTX 970/PCIe/SSE2'
+ Launched Version: 1.7.10
+ LWJGL: 2.9.1
+ OpenGL: GeForce GTX 970/PCIe/SSE2 GL version 4.6.0 NVIDIA 398.36, NVIDIA Corporation
+ GL Caps: Using GL 1.3 multitexturing.
+Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.
+Anisotropic filtering is supported and maximum anisotropy is 16.
+Shaders are available because OpenGL 2.1 is supported.
+
+ Is Modded: Definitely; Client brand changed to 'fml,forge'
+ Type: Client (map_client.txt)
+ Resource Packs: []
+ Current Language: English (US)
+ Profiler Position: N/A (disabled)
+ Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
+ Anisotropic Filtering: Off (1) \ No newline at end of file
diff --git a/crash-reports/crash-2019-06-09_18.40.05-client.txt b/crash-reports/crash-2019-06-09_18.40.05-client.txt
new file mode 100644
index 0000000000..422255c54d
--- /dev/null
+++ b/crash-reports/crash-2019-06-09_18.40.05-client.txt
@@ -0,0 +1,139 @@
+---- Minecraft Crash Report ----
+// My bad.
+
+Time: 6/9/19 6:40 PM
+Description: Initializing game
+
+java.lang.ClassCastException: net.minecraft.item.ItemStack cannot be cast to java.lang.Character
+ at net.minecraft.item.crafting.CraftingManager.addRecipe(CraftingManager.java:209)
+ at cpw.mods.fml.common.registry.GameRegistry.addShapedRecipe(GameRegistry.java:250)
+ at kekztech.KekzCore.postInit(KekzCore.java:64)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
+ at java.lang.reflect.Method.invoke(Unknown Source)
+ at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532)
+ at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
+ at java.lang.reflect.Method.invoke(Unknown Source)
+ at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
+ at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
+ at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
+ at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
+ at com.google.common.eventbus.EventBus.post(EventBus.java:275)
+ at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212)
+ at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
+ at java.lang.reflect.Method.invoke(Unknown Source)
+ at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
+ at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
+ at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
+ at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
+ at com.google.common.eventbus.EventBus.post(EventBus.java:275)
+ at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119)
+ at cpw.mods.fml.common.Loader.initializeMods(Loader.java:742)
+ at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:311)
+ at net.minecraft.client.Minecraft.startGame(Minecraft.java:597)
+ at net.minecraft.client.Minecraft.run(Minecraft.java:942)
+ at net.minecraft.client.main.Main.main(Main.java:164)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
+ at java.lang.reflect.Method.invoke(Unknown Source)
+ at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
+ at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
+ at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
+ at GradleStart.main(Unknown Source)
+
+
+A detailed walkthrough of the error, its code path and all known details is as follows:
+---------------------------------------------------------------------------------------
+
+-- Head --
+Stacktrace:
+ at net.minecraft.item.crafting.CraftingManager.addRecipe(CraftingManager.java:209)
+ at cpw.mods.fml.common.registry.GameRegistry.addShapedRecipe(GameRegistry.java:250)
+ at kekztech.KekzCore.postInit(KekzCore.java:64)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
+ at java.lang.reflect.Method.invoke(Unknown Source)
+ at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532)
+ at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
+ at java.lang.reflect.Method.invoke(Unknown Source)
+ at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
+ at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
+ at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
+ at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
+ at com.google.common.eventbus.EventBus.post(EventBus.java:275)
+ at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212)
+ at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
+ at java.lang.reflect.Method.invoke(Unknown Source)
+ at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
+ at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
+ at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
+ at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
+ at com.google.common.eventbus.EventBus.post(EventBus.java:275)
+ at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119)
+ at cpw.mods.fml.common.Loader.initializeMods(Loader.java:742)
+ at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:311)
+ at net.minecraft.client.Minecraft.startGame(Minecraft.java:597)
+
+-- Initialization --
+Details:
+Stacktrace:
+ at net.minecraft.client.Minecraft.run(Minecraft.java:942)
+ at net.minecraft.client.main.Main.main(Main.java:164)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
+ at java.lang.reflect.Method.invoke(Unknown Source)
+ at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
+ at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
+ at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
+ at GradleStart.main(Unknown Source)
+
+-- System Details --
+Details:
+ Minecraft Version: 1.7.10
+ Operating System: Windows 10 (amd64) version 10.0
+ Java Version: 1.8.0_211, Oracle Corporation
+ Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
+ Memory: 924043544 bytes (881 MB) / 1652031488 bytes (1575 MB) up to 3799515136 bytes (3623 MB)
+ JVM Flags: 0 total;
+ AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
+ IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
+ FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1614 10 mods loaded, 10 mods active
+ States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
+ UCHIJ mcp{9.05} [Minecraft Coder Pack] (minecraft.jar)
+ UCHIJ FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.4.1614-1.7.10.jar)
+ UCHIJ Forge{10.13.4.1614} [Minecraft Forge] (forgeSrc-1.7.10-10.13.4.1614-1.7.10.jar)
+ UCHIJ NotEnoughItems{1.0.5.120} [Not Enough Items] (NotEnoughItems-1.7.10-1.0.5.120-dev.jar)
+ UCHIJ CodeChickenCore{1.0.7.47} [CodeChicken Core] (minecraft.jar)
+ UCHIJ IC2{2.2.828-experimental} [IndustrialCraft 2] (industrialcraft-2-2.2.828a-experimental-deobf.jar)
+ UCHIJ gregtech{MC1710} [GregTech] (gregtech-5.09.32-dev.jar)
+ UCHIE kekztech{0.1a} [KekzTech] (bin)
+ UCHIJ examplemod{1.0} [Example Mod] (bin)
+ UCHIJ devtips{1.1} [DevTooltips] (devtips-1.1.jar)
+ GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.6.0 NVIDIA 398.36' Renderer: 'GeForce GTX 970/PCIe/SSE2'
+ Launched Version: 1.7.10
+ LWJGL: 2.9.1
+ OpenGL: GeForce GTX 970/PCIe/SSE2 GL version 4.6.0 NVIDIA 398.36, NVIDIA Corporation
+ GL Caps: Using GL 1.3 multitexturing.
+Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.
+Anisotropic filtering is supported and maximum anisotropy is 16.
+Shaders are available because OpenGL 2.1 is supported.
+
+ Is Modded: Definitely; Client brand changed to 'fml,forge'
+ Type: Client (map_client.txt)
+ Resource Packs: []
+ Current Language: English (US)
+ Profiler Position: N/A (disabled)
+ Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
+ Anisotropic Filtering: Off (1) \ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000000..678d9d8de3
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Wed Jul 02 15:54:47 CDT 2014
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-2.0-bin.zip
diff --git a/lib/MACHINE_CASING_VENT.png b/lib/MACHINE_CASING_VENT.png
deleted file mode 100644
index 6d9fb32d7e..0000000000
--- a/lib/MACHINE_CASING_VENT.png
+++ /dev/null
Binary files differ
diff --git a/logs/2019-06-08-1.log.gz b/logs/2019-06-08-1.log.gz
index 0c7f2f3cad..1b3dc7304d 100644
--- a/logs/2019-06-08-1.log.gz
+++ b/logs/2019-06-08-1.log.gz
Binary files differ
diff --git a/logs/2019-06-08-2.log.gz b/logs/2019-06-08-2.log.gz
index c768eb63ff..46c003444c 100644
--- a/logs/2019-06-08-2.log.gz
+++ b/logs/2019-06-08-2.log.gz
Binary files differ
diff --git a/logs/2019-06-08-3.log.gz b/logs/2019-06-08-3.log.gz
index dac783178f..60ea60d661 100644
--- a/logs/2019-06-08-3.log.gz
+++ b/logs/2019-06-08-3.log.gz
Binary files differ
diff --git a/logs/2019-06-08-4.log.gz b/logs/2019-06-08-4.log.gz
index 1b3dc7304d..4af0292995 100644
--- a/logs/2019-06-08-4.log.gz
+++ b/logs/2019-06-08-4.log.gz
Binary files differ
diff --git a/logs/2019-06-08-5.log.gz b/logs/2019-06-08-5.log.gz
index 46c003444c..587f29e5b7 100644
--- a/logs/2019-06-08-5.log.gz
+++ b/logs/2019-06-08-5.log.gz
Binary files differ
diff --git a/logs/2019-06-08-6.log.gz b/logs/2019-06-08-6.log.gz
index 60ea60d661..b5f0576dc9 100644
--- a/logs/2019-06-08-6.log.gz
+++ b/logs/2019-06-08-6.log.gz
Binary files differ
diff --git a/logs/2019-06-08-7.log.gz b/logs/2019-06-08-7.log.gz
index 4af0292995..08d49fa2e9 100644
--- a/logs/2019-06-08-7.log.gz
+++ b/logs/2019-06-08-7.log.gz
Binary files differ
diff --git a/logs/2019-06-09-1.log.gz b/logs/2019-06-09-1.log.gz
new file mode 100644
index 0000000000..543151b65c
--- /dev/null
+++ b/logs/2019-06-09-1.log.gz
Binary files differ
diff --git a/logs/2019-06-09-2.log.gz b/logs/2019-06-09-2.log.gz
new file mode 100644
index 0000000000..e4ac076134
--- /dev/null
+++ b/logs/2019-06-09-2.log.gz
Binary files differ
diff --git a/logs/2019-06-09-3.log.gz b/logs/2019-06-09-3.log.gz
new file mode 100644
index 0000000000..90b204a53f
--- /dev/null
+++ b/logs/2019-06-09-3.log.gz
Binary files differ
diff --git a/logs/2019-06-09-4.log.gz b/logs/2019-06-09-4.log.gz
new file mode 100644
index 0000000000..a32627c915
--- /dev/null
+++ b/logs/2019-06-09-4.log.gz
Binary files differ
diff --git a/logs/2019-06-09-5.log.gz b/logs/2019-06-09-5.log.gz
new file mode 100644
index 0000000000..525ac02f16
--- /dev/null
+++ b/logs/2019-06-09-5.log.gz
Binary files differ
diff --git a/logs/2019-06-09-6.log.gz b/logs/2019-06-09-6.log.gz
new file mode 100644
index 0000000000..e5f2d4cc1a
--- /dev/null
+++ b/logs/2019-06-09-6.log.gz
Binary files differ
diff --git a/logs/2019-06-09-7.log.gz b/logs/2019-06-09-7.log.gz
new file mode 100644
index 0000000000..69d1687129
--- /dev/null
+++ b/logs/2019-06-09-7.log.gz
Binary files differ
diff --git a/options.txt b/options.txt
index 15bd4c3fa1..8c305b8fca 100644
--- a/options.txt
+++ b/options.txt
@@ -63,7 +63,7 @@ key_key.jump:57
key_key.sneak:42
key_key.drop:16
key_key.inventory:18
-key_key.chat:20
+key_key.chat:28
key_key.playerlist:15
key_key.pickItem:-98
key_key.command:53
diff --git a/saves/NEI/local/New World/NEI.dat b/saves/NEI/local/New World/NEI.dat
index 78398249ba..b3ccd4a6d1 100644
--- a/saves/NEI/local/New World/NEI.dat
+++ b/saves/NEI/local/New World/NEI.dat
Binary files differ
diff --git a/saves/New World/DIM-1/data/villages.dat b/saves/New World/DIM-1/data/villages.dat
index 5d76e45ff5..4ed56e2a59 100644
--- a/saves/New World/DIM-1/data/villages.dat
+++ b/saves/New World/DIM-1/data/villages.dat
Binary files differ
diff --git a/saves/New World/DIM1/data/villages.dat b/saves/New World/DIM1/data/villages.dat
index 5d76e45ff5..4ed56e2a59 100644
--- a/saves/New World/DIM1/data/villages.dat
+++ b/saves/New World/DIM1/data/villages.dat
Binary files differ
diff --git a/saves/New World/data/villages.dat b/saves/New World/data/villages.dat
index 5d76e45ff5..4ed56e2a59 100644
--- a/saves/New World/data/villages.dat
+++ b/saves/New World/data/villages.dat
Binary files differ
diff --git a/saves/New World/level.dat b/saves/New World/level.dat
index ba932fedde..feb43f13c9 100644
--- a/saves/New World/level.dat
+++ b/saves/New World/level.dat
Binary files differ
diff --git a/saves/New World/level.dat_old b/saves/New World/level.dat_old
index a57d9f0822..10f912a565 100644
--- a/saves/New World/level.dat_old
+++ b/saves/New World/level.dat_old
Binary files differ
diff --git a/saves/New World/playerdata/ddc68fe4-0789-360b-a837-3dcbb936da65.dat b/saves/New World/playerdata/ddc68fe4-0789-360b-a837-3dcbb936da65.dat
index 626bfb821a..e25471937d 100644
--- a/saves/New World/playerdata/ddc68fe4-0789-360b-a837-3dcbb936da65.dat
+++ b/saves/New World/playerdata/ddc68fe4-0789-360b-a837-3dcbb936da65.dat
Binary files differ
diff --git a/saves/New World/region/r.0.-1.mca b/saves/New World/region/r.0.-1.mca
index 63d250f81e..d22e6a9d68 100644
--- a/saves/New World/region/r.0.-1.mca
+++ b/saves/New World/region/r.0.-1.mca
Binary files differ
diff --git a/saves/New World/region/r.0.0.mca b/saves/New World/region/r.0.0.mca
index 1d982b8af4..8b85498855 100644
--- a/saves/New World/region/r.0.0.mca
+++ b/saves/New World/region/r.0.0.mca
Binary files differ
diff --git a/saves/New World/session.lock b/saves/New World/session.lock
index 618a7fd07a..8344b49a8d 100644
--- a/saves/New World/session.lock
+++ b/saves/New World/session.lock
Binary files differ
diff --git a/saves/New World/stats/ddc68fe4-0789-360b-a837-3dcbb936da65.json b/saves/New World/stats/ddc68fe4-0789-360b-a837-3dcbb936da65.json
index 4e6e96c4e1..4c6b06441c 100644
--- a/saves/New World/stats/ddc68fe4-0789-360b-a837-3dcbb936da65.json
+++ b/saves/New World/stats/ddc68fe4-0789-360b-a837-3dcbb936da65.json
@@ -1 +1 @@
-{"stat.flyOneCm":21194,"stat.walkOneCm":75824,"stat.jump":106,"stat.playOneMinute":323993,"achievement.openInventory":102,"stat.climbOneCm":1022,"stat.leaveGame":1,"stat.useItem.3":29,"achievement.exploreAllBiomes":{"value":0,"progress":["Swampland"]}} \ No newline at end of file
+{"stat.flyOneCm":36091,"stat.walkOneCm":164961,"stat.jump":230,"stat.playOneMinute":402943,"achievement.openInventory":169,"stat.climbOneCm":1022,"stat.leaveGame":1,"stat.useItem.3":43,"achievement.exploreAllBiomes":{"value":0,"progress":["Swampland"]}} \ No newline at end of file
diff --git a/src/main/java/fuelcell/Block_GDCUnit.java b/src/main/java/blocks/Block_GDCUnit.java
index 6107e017a1..d11681b1d6 100644
--- a/src/main/java/fuelcell/Block_GDCUnit.java
+++ b/src/main/java/blocks/Block_GDCUnit.java
@@ -1,4 +1,4 @@
-package fuelcell;
+package blocks;
import cpw.mods.fml.common.registry.GameRegistry;
import kekztech.KekzCore;
diff --git a/src/main/java/fuelcell/Block_YSZUnit.java b/src/main/java/blocks/Block_YSZUnit.java
index c93f6f374a..1e4df40c67 100644
--- a/src/main/java/fuelcell/Block_YSZUnit.java
+++ b/src/main/java/blocks/Block_YSZUnit.java
@@ -1,4 +1,4 @@
-package fuelcell;
+package blocks;
import cpw.mods.fml.common.registry.GameRegistry;
import kekztech.KekzCore;
diff --git a/src/main/java/reactor/Container_ModularNuclearReactor.java b/src/main/java/container/Container_ModularNuclearReactor.java
index 4ecfe61836..41b686c901 100644
--- a/src/main/java/reactor/Container_ModularNuclearReactor.java
+++ b/src/main/java/container/Container_ModularNuclearReactor.java
@@ -1,4 +1,4 @@
-package reactor;
+package container;
import gregtech.api.gui.GT_Container_MultiMachine;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
@@ -6,6 +6,8 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
+import reactor.ButtonSlot;
+import tileentities.GTMTE_ModularNuclearReactor;
public class Container_ModularNuclearReactor extends GT_Container_MultiMachine {
diff --git a/src/main/java/reactor/GUIContainer_ModularNuclearReactor.java b/src/main/java/container/GUIContainer_ModularNuclearReactor.java
index 1f8248e5bb..58a9ff6caf 100644
--- a/src/main/java/reactor/GUIContainer_ModularNuclearReactor.java
+++ b/src/main/java/container/GUIContainer_ModularNuclearReactor.java
@@ -1,4 +1,4 @@
-package reactor;
+package container;
import org.lwjgl.opengl.GL11;
diff --git a/src/main/java/kekztech/ErrorItem.java b/src/main/java/items/ErrorItem.java
index 7047d3f057..5694b4e800 100644
--- a/src/main/java/kekztech/ErrorItem.java
+++ b/src/main/java/items/ErrorItem.java
@@ -1,8 +1,9 @@
-package kekztech;
+package items;
import java.util.List;
import cpw.mods.fml.common.registry.GameRegistry;
+import kekztech.KekzCore;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
diff --git a/src/main/java/kekztech/MetaItem_CraftingComponent.java b/src/main/java/items/MetaItem_CraftingComponent.java
index 89a015998f..29b8e8ac1f 100644
--- a/src/main/java/kekztech/MetaItem_CraftingComponent.java
+++ b/src/main/java/items/MetaItem_CraftingComponent.java
@@ -1,15 +1,15 @@
-package kekztech;
+package items;
import java.util.List;
import cpw.mods.fml.common.registry.GameRegistry;
+import kekztech.KekzCore;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
-import reactor.items.HeatPipe;
public class MetaItem_CraftingComponent extends Item {
@@ -37,10 +37,10 @@ public class MetaItem_CraftingComponent extends Item {
public void registerIcons(IIconRegister reg) {
int counter = 0;
// Raw heat pipes
- icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + HeatPipe.RESOURCE_NAMES[0]);
- icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + HeatPipe.RESOURCE_NAMES[1]);
- icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + HeatPipe.RESOURCE_NAMES[2]);
- icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + HeatPipe.RESOURCE_NAMES[3]);
+ icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "CopperHeatPipe");
+ icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "SilverHeatPipe");
+ icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "BoronArsenideHeatPipe");
+ icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "DiamondHeatPipe");
// Dust
icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "BoronArsenideDust");
icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "IsotopicallyPureDiamondDust");
diff --git a/src/main/java/kekztech/MetaItem_ReactorComponent.java b/src/main/java/items/MetaItem_ReactorComponent.java
index 16f3f1403f..458de48a00 100644
--- a/src/main/java/kekztech/MetaItem_ReactorComponent.java
+++ b/src/main/java/items/MetaItem_ReactorComponent.java
@@ -1,8 +1,9 @@
-package kekztech;
+package items;
import java.util.List;
import cpw.mods.fml.common.registry.GameRegistry;
+import kekztech.KekzCore;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
diff --git a/src/main/java/kekztech/GTMultiController.java b/src/main/java/kekztech/GTMultiController.java
index e27c2c39bd..d824077201 100644
--- a/src/main/java/kekztech/GTMultiController.java
+++ b/src/main/java/kekztech/GTMultiController.java
@@ -17,6 +17,11 @@ import gregtech.api.util.GT_Utility;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
+/**
+ * Only purpose of this class is to make me learn about GT multis :)
+ * @author Kekzdealer
+ *
+ */
public abstract class GTMultiController {
private final GTRecipe GT_RECIPE = new GTRecipe();
diff --git a/src/main/java/kekztech/Items.java b/src/main/java/kekztech/Items.java
index f7ce2e883a..47708971c7 100644
--- a/src/main/java/kekztech/Items.java
+++ b/src/main/java/kekztech/Items.java
@@ -23,12 +23,17 @@ public enum Items {
T1NeutronReflector(46), T2NeutronReflector(47),
// Coolant Cells
HeliumCoolantCell360k(48), NaKCoolantCell360k(49),
+
// Heat Pipes
CopperHeatPipe(0), SilverHeatPipe(1), BoronArsenideHeatPipe(2), DiamondHeatPipe(3),
BoronArsenideDust(4), IsotopicallyPureDiamondDust(5), AmineCarbamiteDust(6),
BoronArsenideCrystal(7), IsotopicallyPureDiamondCrystal(8),
+ // Ceramics
+ YSZCeramicDust(9), GDCCeramicDust(10),
+ YttriaDust(11), ZirconiaDust(12), CeriaDust(13),
+ YSZCeramicPlate(14), GDCCeramicPlate(15),
// Error Item
- Error(9);
+ Error(0);
private final int metaID;
diff --git a/src/main/java/kekztech/KekzCore.java b/src/main/java/kekztech/KekzCore.java
index bfcd382577..bb65090625 100644
--- a/src/main/java/kekztech/KekzCore.java
+++ b/src/main/java/kekztech/KekzCore.java
@@ -1,20 +1,24 @@
package kekztech;
+import blocks.Block_GDCUnit;
+import blocks.Block_YSZUnit;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
-import fuelcell.Block_GDCUnit;
-import fuelcell.Block_YSZUnit;
-import fuelcell.GTMTE_SOFuelCellMK1;
-import fuelcell.GTMTE_SOFuelCellMK2;
+import cpw.mods.fml.common.registry.GameRegistry;
import gregtech.api.enums.GT_Values;
import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import gregtech.api.util.GT_Utility;
+import items.ErrorItem;
+import items.MetaItem_CraftingComponent;
+import items.MetaItem_ReactorComponent;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidRegistry;
-import reactor.GTMTE_ModularNuclearReactor;
-import reactor.items.HeatExchanger;
-import reactor.items.HeatPipe;
+import tileentities.GTMTE_ModularNuclearReactor;
+import tileentities.GTMTE_SOFuelCellMK1;
+import tileentities.GTMTE_SOFuelCellMK2;
@Mod(modid = KekzCore.MODID, name = KekzCore.NAME, version = KekzCore.VERSION,
dependencies = "required-after:IC2; "
@@ -25,6 +29,10 @@ public class KekzCore {
public static final String NAME = "KekzTech";
public static final String MODID = "kekztech";
public static final String VERSION = "0.1a";
+
+ private GTMTE_SOFuelCellMK1 sofc1;
+ private GTMTE_SOFuelCellMK2 sofc2;
+ private GTMTE_ModularNuclearReactor mdr;
@Mod.Instance("kekztech")
public static KekzCore instance;
@@ -42,38 +50,186 @@ public class KekzCore {
@Mod.EventHandler
public void init(FMLInitializationEvent event ) {
- final GTMTE_SOFuelCellMK1 sofc1 = new GTMTE_SOFuelCellMK1(5000, "multimachine.fuelcellmk1", "Solid-Oxide Fuel Cell Mk I");
- final GTMTE_SOFuelCellMK2 sofc2 = new GTMTE_SOFuelCellMK2(5001, "multimachine.fuelcellmk2", "Solid-Oxide Fuel Cell Mk II");
- final GTMTE_ModularNuclearReactor mdr = new GTMTE_ModularNuclearReactor(5002, "multimachine.nuclearreactor", "Nuclear Reactor");
+ sofc1 = new GTMTE_SOFuelCellMK1(5000, "multimachine.fuelcellmk1", "Solid-Oxide Fuel Cell Mk I");
+ sofc2 = new GTMTE_SOFuelCellMK2(5001, "multimachine.fuelcellmk2", "Solid-Oxide Fuel Cell Mk II");
+ mdr = new GTMTE_ModularNuclearReactor(5002, "multimachine.nuclearreactor", "Nuclear Reactor");
}
@Mod.EventHandler
public void postInit(FMLPostInitializationEvent event) {
- for(GTRecipe recipe : HeatPipe.RECIPE) {
- GT_Values.RA.addLatheRecipe(recipe.getInputItem(), recipe.getOutputItem(), null, recipe.getDuration(), recipe.getEuPerTick());
- }
+ System.out.println("Registering KekzTech recipes...");
+
+ final MetaItem_CraftingComponent craftingItem = MetaItem_CraftingComponent.getInstance();
+ final MetaItem_ReactorComponent reactorItem = MetaItem_ReactorComponent.getInstance();
+
+ // Multiblock Controllers
+ GameRegistry.addShapedRecipe(sofc1.getStackForm(1),
+ "CCC", "PHP", "FBL",
+ 'C', Util.getStackofAmountFromOreDict("circuitAdvanced", 1),
+ 'P', ItemList.Electric_Pump_HV.get(1L, (Object[]) null),
+ 'H', ItemList.Hull_HV.get(1L, (Object[]) null),
+ 'F', Util.getStackofAmountFromOreDict("pipeSmallStainlessSteel", 1),
+ 'B', Util.getStackofAmountFromOreDict("cableGt02Gold", 1),
+ 'L', Util.getStackofAmountFromOreDict("pipeLargeStainlessSteel", 1));
+ GameRegistry.addShapedRecipe(sofc2.getStackForm(1),
+ "CCC", "PHP", "FBL",
+ 'C', Util.getStackofAmountFromOreDict("circuitMaster", 1),
+ 'P', ItemList.Electric_Pump_IV.get(1L, (Object[]) null),
+ 'H', ItemList.Hull_IV.get(1L, (Object[]) null),
+ 'F', Util.getStackofAmountFromOreDict("pipeSmallUltimate", 1),
+ 'B', Util.getStackofAmountFromOreDict("wireGt04SuperconductorEV", 1),
+ 'L', Util.getStackofAmountFromOreDict("pipeMediumUltimate", 1));
+
+ // Ceramic Electrolyte Units
+ final ItemStack[] yszUnit = {
+ GT_Utility.getIntegratedCircuit(6),
+ craftingItem.getStackOfAmountFromDamage(Items.YSZCeramicPlate.getMetaID(), 4),
+ Util.getStackofAmountFromOreDict("frameGtYttrium", 1),
+ Util.getStackofAmountFromOreDict("rotorStainlessSteel", 1),
+ ItemList.Electric_Motor_HV.get(1L, (Object[]) null),
+ };
+ GT_Values.RA.addAssemblerRecipe(
+ yszUnit,
+ Materials.Hydrogen.getGas(4000),
+ new ItemStack(Block_YSZUnit.getInstance(), 1),
+ 1200, 480);
+ final ItemStack[] gdcUnit = {
+ GT_Utility.getIntegratedCircuit(6),
+ craftingItem.getStackOfAmountFromDamage(Items.GDCCeramicPlate.getMetaID(), 8),
+ Util.getStackofAmountFromOreDict("frameGtGadolinium", 1),
+ Util.getStackofAmountFromOreDict("rotorDesh", 1),
+ ItemList.Electric_Motor_IV.get(1L, (Object[]) null),
+ };
+ GT_Values.RA.addAssemblerRecipe(
+ gdcUnit,
+ Materials.Hydrogen.getGas(16000),
+ new ItemStack(Block_GDCUnit.getInstance(), 1),
+ 2400, 1920);
+
+ // Ceramic plates
+ GT_Values.RA.addAlloySmelterRecipe(
+ craftingItem.getStackOfAmountFromDamage(Items.YSZCeramicDust.getMetaID(), 10),
+ ItemList.Shape_Mold_Plate.get(1, (Object[]) null),
+ craftingItem.getStackOfAmountFromDamage(Items.YSZCeramicPlate.getMetaID(), 1),
+ 400, 480);
+ GT_Values.RA.addFormingPressRecipe(
+ craftingItem.getStackOfAmountFromDamage(Items.GDCCeramicDust.getMetaID(), 10),
+ ItemList.Shape_Mold_Plate.get(1, (Object[]) null),
+ craftingItem.getStackOfAmountFromDamage(Items.GDCCeramicPlate.getMetaID(), 1),
+ 800, 480);
+
+ // Dusts
+ GT_Values.RA.addMixerRecipe(Materials.Boron.getDust(1), Materials.Arsenic.getDust(1), GT_Utility.getIntegratedCircuit(6), null,
+ null, null, craftingItem.getStackOfAmountFromDamage(Items.BoronArsenideDust.getMetaID(), 2),
+ 100, 1920);
+ GT_Values.RA.addChemicalRecipe(
+ Materials.Ammonia.getCells(2),
+ Materials.CarbonDioxide.getCells(1),
+ null,
+ null,
+ craftingItem.getStackOfAmountFromDamage(Items.AmineCarbamiteDust.getMetaID(), 1),
+ Util.getStackofAmountFromOreDict("cellEmpty", 3),
+ 400, 30);
+ GT_Values.RA.addChemicalRecipe(
+ craftingItem.getStackOfAmountFromDamage(Items.AmineCarbamiteDust.getMetaID(), 1),
+ Materials.Diamond.getDust(16),
+ Materials.CarbonDioxide.getGas(1000),
+ null,
+ craftingItem.getStackOfAmountFromDamage(Items.IsotopicallyPureDiamondDust.getMetaID(), 1),
+ null, 1200, 480);
+ GT_Values.RA.addAutoclaveRecipe(
+ craftingItem.getStackOfAmountFromDamage(Items.IsotopicallyPureDiamondDust.getMetaID(), 4),
+ Materials.CarbonDioxide.getGas(16000),
+ craftingItem.getStackOfAmountFromDamage(Items.IsotopicallyPureDiamondCrystal.getMetaID(), 1), 10000, 2400, 7680);
+ GT_Values.RA.addChemicalRecipe(
+ Materials.Yttrium.getDust(1), GT_Utility.getIntegratedCircuit(6), Materials.Oxygen.getGas(3000),
+ null, craftingItem.getStackOfAmountFromDamage(Items.YttriaDust.getMetaID(), 1), null,
+ 400, 30);
+ GT_Values.RA.addChemicalRecipe(
+ Util.getStackofAmountFromOreDict("dustZirconium", 1), GT_Utility.getIntegratedCircuit(6), Materials.Oxygen.getGas(2000),
+ null, craftingItem.getStackOfAmountFromDamage(Items.ZirconiaDust.getMetaID(), 1), null,
+ 400, 30);
+ GT_Values.RA.addChemicalRecipe(
+ Materials.Cerium.getDust(2), GT_Utility.getIntegratedCircuit(6), Materials.Oxygen.getGas(3000),
+ null, craftingItem.getStackOfAmountFromDamage(Items.CeriaDust.getMetaID(), 2), null,
+ 400, 30);
+ GT_Values.RA.addMixerRecipe(
+ craftingItem.getStackOfAmountFromDamage(Items.YttriaDust.getMetaID(), 1),
+ craftingItem.getStackOfAmountFromDamage(Items.ZirconiaDust.getMetaID(), 5),
+ GT_Utility.getIntegratedCircuit(6), null, null, null,
+ craftingItem.getStackOfAmountFromDamage(Items.YSZCeramicDust.getMetaID(), 6),
+ 400, 96);
+ GT_Values.RA.addMixerRecipe(
+ Util.getStackofAmountFromOreDict("dustGadolinium", 1),
+ craftingItem.getStackOfAmountFromDamage(Items.CeriaDust.getMetaID(), 9),
+ GT_Utility.getIntegratedCircuit(6), null, null, null,
+ craftingItem.getStackOfAmountFromDamage(Items.GDCCeramicDust.getMetaID(), 10),
+ 400, 1920);
- for(GTRecipe recipe : HeatExchanger.RECIPE) {
- GT_Values.RA.addAssemblerRecipe(
- recipe.getInputItems(), recipe.getInputFluid(), recipe.getOutputItem(), recipe.getDuration(), recipe.getEuPerTick());
- }
+ // Heat Pipes
+ GT_Values.RA.addLatheRecipe(
+ Util.getStackofAmountFromOreDict("stickCopper", 1),
+ craftingItem.getStackFromDamage(Items.CopperHeatPipe.getMetaID()),
+ null, 120, 120);
+ GT_Values.RA.addLatheRecipe(
+ Util.getStackofAmountFromOreDict("stickSilver", 1),
+ craftingItem.getStackFromDamage(Items.SilverHeatPipe.getMetaID()),
+ null, 120, 480);
+ GT_Values.RA.addLatheRecipe(
+ craftingItem.getStackOfAmountFromDamage(Items.BoronArsenideCrystal.getMetaID(), 4),
+ craftingItem.getStackFromDamage(Items.BoronArsenideHeatPipe.getMetaID()),
+ null, 1200, 1920);
+ GT_Values.RA.addLatheRecipe(
+ craftingItem.getStackOfAmountFromDamage(Items.IsotopicallyPureDiamondCrystal.getMetaID(), 4),
+ craftingItem.getStackFromDamage(Items.DiamondHeatPipe.getMetaID()),
+ null, 1200, 7680);
// Heat Vents
final ItemStack[] t1HeatVent = {
- MetaItem_CraftingComponent.getInstance().getStackOfAmountFromDamage(Items.CopperHeatPipe.getMetaID(), 2),
+ craftingItem.getStackOfAmountFromDamage(Items.CopperHeatPipe.getMetaID(), 2),
ItemList.Electric_Motor_MV.get(1L, (Object[]) null),
Util.getStackofAmountFromOreDict("rotorSteel", 1),
Util.getStackofAmountFromOreDict("plateDoubleSteel", 2),
Util.getStackofAmountFromOreDict("screwSteel", 8),
- Util.getStackofAmountFromOreDict("circuitGood", 1)
+ Util.getStackofAmountFromOreDict("circuitGood", 1),
+ GT_Utility.getIntegratedCircuit(6)
};
- GT_Values.RA.addAssemblerRecipe(t1HeatVent,
+ GT_Values.RA.addAssemblerRecipe(
+ t1HeatVent,
FluidRegistry.getFluidStack("molten.copper", 144),
- MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.T1HeatVent.getMetaID()),
- 200, 120
- );
+ reactorItem.getStackFromDamage(Items.T1HeatVent.getMetaID()),
+ 200, 120);
+ final ItemStack[] t2HeatVent = {
+ craftingItem.getStackOfAmountFromDamage(Items.SilverHeatPipe.getMetaID(), 2),
+ ItemList.Electric_Motor_HV.get(1L, (Object[]) null),
+ Util.getStackofAmountFromOreDict("rotorAluminium", 1),
+ Util.getStackofAmountFromOreDict("plateDoubleAluminium", 2),
+ Util.getStackofAmountFromOreDict("screwAluminium", 8),
+ Util.getStackofAmountFromOreDict("circuitAdvanced", 1),
+ GT_Utility.getIntegratedCircuit(6)
+ };
+ GT_Values.RA.addAssemblerRecipe(
+ t2HeatVent,
+ FluidRegistry.getFluidStack("molten.silver", 144),
+ reactorItem.getStackFromDamage(Items.T2HeatVent.getMetaID()),
+ 400, 480);
+ final ItemStack[] t3HeatVent = {
+ craftingItem.getStackOfAmountFromDamage(Items.BoronArsenideHeatPipe.getMetaID(), 2),
+ ItemList.Electric_Motor_IV.get(1L, (Object[]) null),
+ Util.getStackofAmountFromOreDict("rotorTungstenSteel", 1),
+ Util.getStackofAmountFromOreDict("plateDoubleTungstenSteel", 2),
+ Util.getStackofAmountFromOreDict("screwTungsten", 8),
+ Util.getStackofAmountFromOreDict("circuitData", 1),
+ GT_Utility.getIntegratedCircuit(6)
+ };
+ GT_Values.RA.addAssemblerRecipe(
+ t3HeatVent,
+ FluidRegistry.getFluidStack("molten.gallium", 576),
+ reactorItem.getStackFromDamage(Items.T3HeatVent.getMetaID()),
+ 800, 7680);
+ System.out.println("...done");
}
diff --git a/src/main/java/kekztech/Util.java b/src/main/java/kekztech/Util.java
index c1243cadd8..ccbcc799e6 100644
--- a/src/main/java/kekztech/Util.java
+++ b/src/main/java/kekztech/Util.java
@@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
+import items.ErrorItem;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.oredict.OreDictionary;
diff --git a/src/main/java/reactor/items/CoolantCell.java b/src/main/java/reactor/items/CoolantCell.java
index 64b979acc4..04122fef33 100644
--- a/src/main/java/reactor/items/CoolantCell.java
+++ b/src/main/java/reactor/items/CoolantCell.java
@@ -1,8 +1,8 @@
package reactor.items;
+import items.MetaItem_ReactorComponent;
import kekztech.GTRecipe;
import kekztech.Items;
-import kekztech.MetaItem_ReactorComponent;
public class CoolantCell {
diff --git a/src/main/java/reactor/items/FuelRod.java b/src/main/java/reactor/items/FuelRod.java
index adef6f3409..d0f9cb5e17 100644
--- a/src/main/java/reactor/items/FuelRod.java
+++ b/src/main/java/reactor/items/FuelRod.java
@@ -1,8 +1,8 @@
package reactor.items;
+import items.MetaItem_ReactorComponent;
import kekztech.GTRecipe;
import kekztech.Items;
-import kekztech.MetaItem_ReactorComponent;
public class FuelRod {
diff --git a/src/main/java/reactor/items/HeatExchanger.java b/src/main/java/reactor/items/HeatExchanger.java
index b34baf25cf..33825b7ac6 100644
--- a/src/main/java/reactor/items/HeatExchanger.java
+++ b/src/main/java/reactor/items/HeatExchanger.java
@@ -1,9 +1,9 @@
package reactor.items;
+import items.MetaItem_CraftingComponent;
+import items.MetaItem_ReactorComponent;
import kekztech.GTRecipe;
import kekztech.Items;
-import kekztech.MetaItem_CraftingComponent;
-import kekztech.MetaItem_ReactorComponent;
import kekztech.Util;
import net.minecraftforge.fluids.FluidRegistry;
diff --git a/src/main/java/reactor/items/HeatPipe.java b/src/main/java/reactor/items/HeatPipe.java
deleted file mode 100644
index 5f907b02fc..0000000000
--- a/src/main/java/reactor/items/HeatPipe.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package reactor.items;
-
-import kekztech.GTRecipe;
-import kekztech.Items;
-import kekztech.MetaItem_CraftingComponent;
-import kekztech.Util;
-
-public class HeatPipe {
-
- public static String[] RESOURCE_NAMES = {
- "CopperHeatPipe", "SilverHeatPipe", "BoronArsenideHeatPipe", "DiamondHeatPipe"
- };
-
- public static final GTRecipe[] RECIPE = {
- new GTRecipe().setEUPerTick(120).setDuration(120)
- .addInputItem(Util.getStackofAmountFromOreDict("stickCopper", 1))
- .addOutputItem(MetaItem_CraftingComponent.getInstance().getStackFromDamage(Items.CopperHeatPipe.getMetaID())),
- new GTRecipe().setEUPerTick(480).setDuration(120)
- .addInputItem(Util.getStackofAmountFromOreDict("stickSilver", 1))
- .addOutputItem(MetaItem_CraftingComponent.getInstance().getStackFromDamage(Items.SilverHeatPipe.getMetaID())),
- new GTRecipe().setEUPerTick(1920).setDuration(1200)
- .addInputItem(MetaItem_CraftingComponent.getInstance().getStackOfAmountFromDamage(Items.BoronArsenideCrystal.getMetaID(), 4))
- .addOutputItem(MetaItem_CraftingComponent.getInstance().getStackFromDamage(Items.BoronArsenideHeatPipe.getMetaID())),
- new GTRecipe().setEUPerTick(7680).setDuration(1200)
- .addInputItem(MetaItem_CraftingComponent.getInstance().getStackOfAmountFromDamage(Items.IsotopicallyPureDiamondCrystal.getMetaID(), 4))
- .addOutputItem(MetaItem_CraftingComponent.getInstance().getStackFromDamage(Items.DiamondHeatPipe.getMetaID()))
- };
-
-}
diff --git a/src/main/java/reactor/items/HeatVent.java b/src/main/java/reactor/items/HeatVent.java
index e6ad50fb95..670efaeb86 100644
--- a/src/main/java/reactor/items/HeatVent.java
+++ b/src/main/java/reactor/items/HeatVent.java
@@ -1,9 +1,9 @@
package reactor.items;
+import items.MetaItem_CraftingComponent;
+import items.MetaItem_ReactorComponent;
import kekztech.GTRecipe;
import kekztech.Items;
-import kekztech.MetaItem_CraftingComponent;
-import kekztech.MetaItem_ReactorComponent;
import kekztech.Util;
import net.minecraftforge.fluids.FluidRegistry;
diff --git a/src/main/java/reactor/items/NeutronReflector.java b/src/main/java/reactor/items/NeutronReflector.java
index 0066a93917..5766cb41e9 100644
--- a/src/main/java/reactor/items/NeutronReflector.java
+++ b/src/main/java/reactor/items/NeutronReflector.java
@@ -1,8 +1,8 @@
package reactor.items;
+import items.MetaItem_ReactorComponent;
import kekztech.GTRecipe;
import kekztech.Items;
-import kekztech.MetaItem_ReactorComponent;
public class NeutronReflector {
diff --git a/src/main/java/reactor/GTMTE_ModularNuclearReactor.java b/src/main/java/tileentities/GTMTE_ModularNuclearReactor.java
index f7572d589b..c4a54ec472 100644
--- a/src/main/java/reactor/GTMTE_ModularNuclearReactor.java
+++ b/src/main/java/tileentities/GTMTE_ModularNuclearReactor.java
@@ -1,5 +1,6 @@
-package reactor;
+package tileentities;
+import container.GUIContainer_ModularNuclearReactor;
import gregtech.api.GregTech_API;
import gregtech.api.enums.Textures;
import gregtech.api.interfaces.ITexture;
@@ -38,15 +39,15 @@ public class GTMTE_ModularNuclearReactor extends GT_MetaTileEntity_MultiBlockBas
@Override
public String[] getDescription() {
return new String[] {
- "does things",
+ "I'm not quite finished yet",
"------------------------------------------",
"Dimensions: 5x5x5 (WxHxL)",
"Structure:",
+ " Controller: Front center",
" 80x Radiation Proof Machine Casing (at least)",
- " Controller front center",
- " Dynamo Hatch (ONLY in EU-mode, at least one)",
- " Input Bus, Output Bus (optional)",
- " Input Hatch, Output Hatch (ONLY in Coolant-Mode, at least one each)"
+ " Dynamo Hatch: ONLY in EU-mode, at least one",
+ " Input Bus, Output Bus: Optional but required for automation",
+ " Input Hatch, Output Hatch: ONLY in Coolant-Mode, at least one each"
};
}
@@ -61,6 +62,7 @@ public class GTMTE_ModularNuclearReactor extends GT_MetaTileEntity_MultiBlockBas
: new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[CASING_TEXTURE_ID]};
}
+ // TODO: Opening UI crashes server. Controller isn't craftable right now.
public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
return new GUIContainer_ModularNuclearReactor(aPlayerInventory, aBaseMetaTileEntity, this.getLocalName(),
"MultiblockDisplay.png");
diff --git a/src/main/java/fuelcell/GTMTE_SOFuelCellMK1.java b/src/main/java/tileentities/GTMTE_SOFuelCellMK1.java
index c99f4e7dbc..f5fa228392 100644
--- a/src/main/java/fuelcell/GTMTE_SOFuelCellMK1.java
+++ b/src/main/java/tileentities/GTMTE_SOFuelCellMK1.java
@@ -1,6 +1,12 @@
-package fuelcell;
+package tileentities;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+
+import blocks.Block_YSZUnit;
import gregtech.api.GregTech_API;
+import gregtech.api.enums.Materials;
import gregtech.api.enums.Textures;
import gregtech.api.gui.GT_GUIContainer_MultiMachine;
import gregtech.api.interfaces.ITexture;
@@ -8,17 +14,25 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase;
import gregtech.api.objects.GT_RenderedTexture;
+import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_Recipe;
+import gregtech.api.util.GT_Utility;
+import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
import net.minecraft.block.Block;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.util.ForgeDirection;
-import reactor.GUIContainer_ModularNuclearReactor;
+import net.minecraftforge.fluids.FluidStack;
public class GTMTE_SOFuelCellMK1 extends GT_MetaTileEntity_MultiBlockBase {
- final Block CASING = GregTech_API.sBlockCasings4;
- final int CASING_META = 1;
- final int CASING_TEXTURE_ID = 49;
+ private final Block CASING = GregTech_API.sBlockCasings4;
+ private final int CASING_META = 1;
+ private final int CASING_TEXTURE_ID = 49;
+
+ private final int OXYGEN_PER_TICK = 20;
+ private final int EU_PER_TICK = 1024;
+ private final int STEAM_PER_TICK = 900;
public GTMTE_SOFuelCellMK1(int aID, String aName, String aNameRegional) {
super(aID, aName, aNameRegional);
@@ -39,21 +53,22 @@ public class GTMTE_SOFuelCellMK1 extends GT_MetaTileEntity_MultiBlockBase {
public String[] getDescription() {
return new String[] {
"Oxidizes gas fuels to generate electricity without polluting the environment",
- "29,480EU worth of fuel are consumed each second",
- "Outputs 1024EU/t and 18,000L/s Steam",
- "Additionally requires 360L/s Oxygen gas",
+ "Consumes 29,480EU worth of fuel with up to 97% efficiency each second",
+ "Steam production requires the SOFC to heat up completely first",
+ "Outputs " + EU_PER_TICK + "EU/t and " + STEAM_PER_TICK + "L/t Steam",
+ "Additionally requires " + OXYGEN_PER_TICK + "L/t Oxygen gas",
"------------------------------------------",
"Dimensions: 3x3x5 (WxHxL)",
"Structure:",
- " 3x YSZ Ceramic Electrolyte Unit (center 1x1x3)",
+ " Controller: Front center",
+ " Dynamo Hatch: Back center",
+ " 3x YSZ Ceramic Electrolyte Unit: Center 1x1x3",
" 12x Clean Stainless Steel Machine Casing (at least)",
- " Controller front center",
- " Dynamo Hatch back center",
- " Maintenance Hatch, Input Hatches, Output Hatches"
+ " 6x Reinforced Glass: Touching the Electrolyte Units on the horizontal sides",
+ " Maintenance Hatch, Input Hatches, Output Hatches: Instead of any casing"
};
}
- //TODO
@Override
public ITexture[] getTexture(final IGregTechTileEntity aBaseMetaTileEntity, final byte aSide, final byte aFacing,
final byte aColorIndex, final boolean aActive, final boolean aRedstone) {
@@ -65,10 +80,9 @@ public class GTMTE_SOFuelCellMK1 extends GT_MetaTileEntity_MultiBlockBase {
: new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[CASING_TEXTURE_ID]};
}
- //TODO
public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, this.getLocalName(),
- "LargeTurbine.png");
+ "MultiblockDisplay.png");
}
@Override
@@ -78,10 +92,52 @@ public class GTMTE_SOFuelCellMK1 extends GT_MetaTileEntity_MultiBlockBase {
@Override
public boolean checkRecipe(ItemStack stack) {
+ final ArrayList<FluidStack> storedFluids = super.getStoredFluids();
+ Collection<GT_Recipe> recipeList = GT_Recipe_Map.sTurbineFuels.mRecipeList;
+
+ if((storedFluids.size() > 0 && recipeList != null)) {
+
+ final Iterator<FluidStack> fluidsIterator = storedFluids.iterator();
+ while(fluidsIterator.hasNext()) {
+
+ final FluidStack hatchFluid = fluidsIterator.next();
+ final Iterator<GT_Recipe> recipeIterator = recipeList.iterator();
+ while(recipeIterator.hasNext()) {
+
+ final GT_Recipe aFuel = recipeIterator.next();
+ FluidStack liquid;
+ if((liquid = GT_Utility.getFluidForFilledItem(aFuel.getRepresentativeInput(0), true)) != null
+ && hatchFluid.isFluidEqual(liquid)) {
+
+ liquid.amount = EU_PER_TICK / aFuel.mSpecialValue;
+
+ if(super.depleteInput(liquid)) {
+
+ if(!super.depleteInput(Materials.Oxygen.getGas(OXYGEN_PER_TICK))) {
+ super.mEUt = 0;
+ super.mEfficiency = 0;
+ return false;
+ }
+
+ super.mEUt = EU_PER_TICK;
+ super.mProgresstime = 1;
+ super.mMaxProgresstime = 1;
+ super.mEfficiencyIncrease = 5;
+ if(super.mEfficiency == getMaxEfficiency(null)) {
+ super.addOutput(GT_ModHandler.getSteam(STEAM_PER_TICK));
+ }
+ return true;
+ }
+ }
+ }
+ }
+ }
+
+ super.mEUt = 0;
+ super.mEfficiency = 0;
return false;
}
- //TODO
@Override
public boolean checkMachine(IGregTechTileEntity thisController, ItemStack guiSlotItem) {
@@ -119,7 +175,6 @@ public class GTMTE_SOFuelCellMK1 extends GT_MetaTileEntity_MultiBlockBase {
}
}
}
- System.out.println("Front slice status: " +checklist +" / casings left of 12: " +minCasingAmount);
// Middle three slices
for(int X = -1; X <= 1; X++) {
@@ -129,17 +184,15 @@ public class GTMTE_SOFuelCellMK1 extends GT_MetaTileEntity_MultiBlockBase {
final int THIS_Z = ZDIR_BACKFACE + Z;
if(X == 0 && Y == 0) {
if(!thisController.getBlockOffset(THIS_X, 0, THIS_Z).getUnlocalizedName()
- .equals("kekztech_yszceramicelectrolyteunit_block")) {
+ .equals(Block_YSZUnit.getInstance().getUnlocalizedName())) {
checklist = false;
- System.out.println("Expected YSZ Ceramic");
}
continue;
}
if(Y == 0 && (X == -1 || X == 1)) {
- if(!thisController.getBlockOffset(XDIR_BACKFACE, 0, ZDIR_BACKFACE * Z).getUnlocalizedName()
+ if(!thisController.getBlockOffset(THIS_X, 0, THIS_Z).getUnlocalizedName()
.equals("blockAlloyGlass")) {
checklist = false;
- System.out.println("Expected Reinforced Glass");
}
continue;
}
@@ -164,7 +217,6 @@ public class GTMTE_SOFuelCellMK1 extends GT_MetaTileEntity_MultiBlockBase {
}
}
}
- System.out.println("Middle slices status: " +checklist);
// Back slice
for(int X = -1; X <= 1; X++) {
@@ -192,14 +244,13 @@ public class GTMTE_SOFuelCellMK1 extends GT_MetaTileEntity_MultiBlockBase {
}
}
}
- System.out.println("Back slice status: " +checklist);
if(minCasingAmount > 0) {
checklist = false;
}
- if(this.mDynamoHatches.size() < 1) {
- System.out.println("At least one dynamo hatch is required!");
+ if(this.mDynamoHatches.size() != 1) {
+ System.out.println("Exactly one dynamo hatch is required!");
checklist = false;
}
if(this.mInputHatches.size() < 2) {
diff --git a/src/main/java/fuelcell/GTMTE_SOFuelCellMK2.java b/src/main/java/tileentities/GTMTE_SOFuelCellMK2.java
index 030e926867..b3cee6da6a 100644
--- a/src/main/java/fuelcell/GTMTE_SOFuelCellMK2.java
+++ b/src/main/java/tileentities/GTMTE_SOFuelCellMK2.java
@@ -1,6 +1,12 @@
-package fuelcell;
+package tileentities;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+
+import blocks.Block_GDCUnit;
import gregtech.api.GregTech_API;
+import gregtech.api.enums.Materials;
import gregtech.api.enums.Textures;
import gregtech.api.gui.GT_GUIContainer_MultiMachine;
import gregtech.api.interfaces.ITexture;
@@ -8,11 +14,15 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase;
import gregtech.api.objects.GT_RenderedTexture;
+import gregtech.api.util.GT_Recipe;
+import gregtech.api.util.GT_Utility;
+import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
import net.minecraft.block.Block;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.util.ForgeDirection;
-import reactor.GUIContainer_ModularNuclearReactor;
+import net.minecraftforge.fluids.FluidRegistry;
+import net.minecraftforge.fluids.FluidStack;
public class GTMTE_SOFuelCellMK2 extends GT_MetaTileEntity_MultiBlockBase {
@@ -20,6 +30,10 @@ public class GTMTE_SOFuelCellMK2 extends GT_MetaTileEntity_MultiBlockBase {
final int CASING_META = 0;
final int CASING_TEXTURE_ID = 48;
+ private final int OXYGEN_PER_TICK = 100;
+ private final int EU_PER_TICK = 24576; // 100% Efficiency, 3A IV
+ private final int STEAM_PER_TICK = 4800; // SH Steam (10,800EU/t @ 150% Efficiency)
+
public GTMTE_SOFuelCellMK2(int aID, String aName, String aNameRegional) {
super(aID, aName, aNameRegional);
@@ -39,9 +53,10 @@ public class GTMTE_SOFuelCellMK2 extends GT_MetaTileEntity_MultiBlockBase {
public String[] getDescription() {
return new String[] {
"Oxidizes gas fuels to generate electricity without polluting the environment",
- "375,680EU worth of fuel are consumed each second",
- "Outputs 16,384EU/t and 96,000L/s Steam",
- "Additionally requires 1920L/s Oxygen gas",
+ "Consumes 442,200EU worth of fuel with up to 160% efficiency each second",
+ "Steam production requires the SOFC to heat up completely first",
+ "Outputs " + EU_PER_TICK + "EU/t and " + STEAM_PER_TICK + "L/t Superheated Steam",
+ "Additionally requires " + OXYGEN_PER_TICK + "L/t Oxygen gas",
"------------------------------------------",
"Dimensions: 3x3x5 (WxHxL)",
"Structure:",
@@ -53,7 +68,6 @@ public class GTMTE_SOFuelCellMK2 extends GT_MetaTileEntity_MultiBlockBase {
};
}
- //TODO
@Override
public ITexture[] getTexture(final IGregTechTileEntity aBaseMetaTileEntity, final byte aSide, final byte aFacing,
final byte aColorIndex, final boolean aActive, final boolean aRedstone) {
@@ -65,10 +79,9 @@ public class GTMTE_SOFuelCellMK2 extends GT_MetaTileEntity_MultiBlockBase {
: new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[CASING_TEXTURE_ID]};
}
- //TODO
public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, this.getLocalName(),
- "LargeTurbine.png");
+ "MultiblockDisplay.png");
}
@Override
@@ -78,13 +91,55 @@ public class GTMTE_SOFuelCellMK2 extends GT_MetaTileEntity_MultiBlockBase {
@Override
public boolean checkRecipe(ItemStack stack) {
+ final ArrayList<FluidStack> storedFluids = super.getStoredFluids();
+ Collection<GT_Recipe> recipeList = GT_Recipe_Map.sTurbineFuels.mRecipeList;
+
+ if((storedFluids.size() > 0 && recipeList != null)) {
+
+ final Iterator<FluidStack> fluidsIterator = storedFluids.iterator();
+ while(fluidsIterator.hasNext()) {
+
+ final FluidStack hatchFluid = fluidsIterator.next();
+ final Iterator<GT_Recipe> recipeIterator = recipeList.iterator();
+ while(recipeIterator.hasNext()) {
+
+ final GT_Recipe aFuel = recipeIterator.next();
+ FluidStack liquid;
+ if((liquid = GT_Utility.getFluidForFilledItem(aFuel.getRepresentativeInput(0), true)) != null
+ && hatchFluid.isFluidEqual(liquid)) {
+
+ liquid.amount = EU_PER_TICK / aFuel.mSpecialValue;
+
+ if(super.depleteInput(liquid)) {
+
+ if(!super.depleteInput(Materials.Oxygen.getGas(OXYGEN_PER_TICK))) {
+ super.mEUt = 0;
+ super.mEfficiency = 0;
+ return false;
+ }
+
+ super.mEUt = EU_PER_TICK;
+ super.mProgresstime = 1;
+ super.mMaxProgresstime = 1;
+ super.mEfficiencyIncrease = 20;
+ if(super.mEfficiency == getMaxEfficiency(null)) {
+ super.addOutput(FluidRegistry.getFluidStack("ic2superheatedsteam", STEAM_PER_TICK));
+ }
+ return true;
+ }
+ }
+ }
+ }
+ }
+
+ super.mEUt = 0;
+ super.mEfficiency = 0;
return false;
}
- //TODO
@Override
public boolean checkMachine(IGregTechTileEntity thisController, ItemStack guiSlotItem) {
-
+
final int XDIR_BACKFACE = ForgeDirection.getOrientation(thisController.getBackFacing()).offsetX;
final int ZDIR_BACKFACE = ForgeDirection.getOrientation(thisController.getBackFacing()).offsetZ;
@@ -99,7 +154,7 @@ public class GTMTE_SOFuelCellMK2 extends GT_MetaTileEntity_MultiBlockBase {
}
// Get next TE
final int THIS_X = XDIR_BACKFACE + X;
- final int THIS_Z = ZDIR_BACKFACE + 0;
+ final int THIS_Z = ZDIR_BACKFACE + -1;
IGregTechTileEntity currentTE =
thisController.getIGregTechTileEntityOffset(THIS_X, Y, THIS_Z);// x, y ,z
@@ -123,22 +178,24 @@ public class GTMTE_SOFuelCellMK2 extends GT_MetaTileEntity_MultiBlockBase {
// Middle three slices
for(int X = -1; X <= 1; X++) {
for(int Y = -1; Y <= 1; Y++) {
- for(int Z = 1; Z <= 3; Z++) {
+ for(int Z = 0; Z < 3; Z++) {
+ final int THIS_X = XDIR_BACKFACE + X;
+ final int THIS_Z = ZDIR_BACKFACE + Z;
if(X == 0 && Y == 0) {
- if(!thisController.getBlockOffset(XDIR_BACKFACE, 0, ZDIR_BACKFACE * Z).getUnlocalizedName()
- .equals("kekztech_yszceramicelectrolyteunit_block")) {
+ if(!thisController.getBlockOffset(THIS_X, 0, THIS_Z).getUnlocalizedName()
+ .equals(Block_GDCUnit.getInstance().getUnlocalizedName())) {
checklist = false;
}
+ continue;
}
if(Y == 0 && (X == -1 || X == 1)) {
- if(!thisController.getBlockOffset(XDIR_BACKFACE, 0, ZDIR_BACKFACE * Z).getUnlocalizedName()
+ if(!thisController.getBlockOffset(THIS_X, 0, THIS_Z).getUnlocalizedName()
.equals("blockAlloyGlass")) {
checklist = false;
}
+ continue;
}
// Get next TE
- final int THIS_X = XDIR_BACKFACE + X;
- final int THIS_Z = ZDIR_BACKFACE + Z;
IGregTechTileEntity currentTE =
thisController.getIGregTechTileEntityOffset(THIS_X, Y, THIS_Z);// x, y ,z
@@ -165,7 +222,7 @@ public class GTMTE_SOFuelCellMK2 extends GT_MetaTileEntity_MultiBlockBase {
for(int Y = -1; Y <= 1; Y++) {
// Get next TE
final int THIS_X = XDIR_BACKFACE + X;
- final int THIS_Z = ZDIR_BACKFACE + 0;
+ final int THIS_Z = ZDIR_BACKFACE + 3;
IGregTechTileEntity currentTE =
thisController.getIGregTechTileEntityOffset(THIS_X, Y, THIS_Z);// x, y ,z