From 499411aa21ac4a742b6d51ef3ce9c4046d0a22c1 Mon Sep 17 00:00:00 2001 From: Alkalus <3060479+draknyte1@users.noreply.github.com> Date: Fri, 25 Jan 2019 04:34:06 +0000 Subject: + Added recipes to obtain Astral Titanium, Celestial Tungsten Advanced Nitinol and Chromatic Glass. + Added Particle Physics, so some basic extent. + Added new textures for some Meta items. + Added new textures for all particles and ions. + Added Custom Debug NBT to error ingots, in the event one is obtained by a player. + Added more information to the tooltip of Control Cores. + Added more uniform ways to obtain tiered item components to CI. - Hard disable of GC Fuel tweaks for the moment. % Hopefully greatly improved the cape handler. Cape list is now stored on Overmind's site, meaning it can be updated outside of the mod. % Cape Handler now will store the cape data locally in a .dat for offline use, this can be updated anytime by removing it, or once a week if outdated) % Tweaked Cyclotron Recipe map to support new changes to functionality. % Tweaked RTG fuel pellet production time in Cyclotron to be 100x. % Adjusted requirements for Quicklime to generate (It may vanish after this commit, May be worth rolling back if an issue.). % Adjusted code to use checkForInvalidItems instead of direct item comparisons in several places. % Renamed Buffer Cores to Energy Cores. % Adjusted recipes for Energy Cores and Energy Buffers, they now require 6 slot assembly. $ Fixed Multiblock handling during structure checks, they'd accidentally detect the controller as an invalid block. --- .gitignore | 1 + src/Java/gregtech/api/util/Recipe_GT.java | 2 +- src/Java/gtPlusPlus/GTplusplus.java | 96 ++----- src/Java/gtPlusPlus/core/item/ModItems.java | 17 +- .../core/item/base/misc/BaseItemParticle.java | 5 +- .../core/item/chemistry/IonParticles.java | 117 +++++++++ .../core/item/chemistry/RocketFuels.java | 2 +- .../core/item/chemistry/StandardBaseParticles.java | 90 ++++++- .../gtPlusPlus/core/item/general/BufferCore.java | 66 ++--- .../core/item/general/ItemControlCore.java | 11 + src/Java/gtPlusPlus/core/material/Material.java | 2 +- src/Java/gtPlusPlus/core/material/Particle.java | 47 +++- .../gtPlusPlus/core/recipe/RECIPES_GREGTECH.java | 256 +++++++++++++++++-- .../gtPlusPlus/core/recipe/RECIPES_Machines.java | 274 ++++++++++++-------- src/Java/gtPlusPlus/core/recipe/common/CI.java | 276 +++++++++++++++++++- src/Java/gtPlusPlus/core/util/Utils.java | 5 +- .../gtPlusPlus/core/util/minecraft/ItemUtils.java | 29 +-- src/Java/gtPlusPlus/preloader/asm/AsmConfig.java | 6 +- .../xmod/gregtech/api/enums/GregtechItemList.java | 3 + .../interfaces/internal/IGregtech_RecipeAdder.java | 2 +- .../base/GregtechMeta_MultiBlockBase.java | 31 ++- .../common/items/MetaGeneratedGregtechItems.java | 1 + .../gregtech/common/render/GTPP_CapeRenderer.java | 278 +++++++++++++-------- .../GregtechMetaTileEntity_Cyclotron.java | 150 ++++++++--- .../gregtech/loaders/RecipeGen_BlastSmelter.java | 12 +- .../xmod/gregtech/recipes/GregtechRecipeAdder.java | 11 +- src/resources/assets/miscutils/lang/en_US.lang | 23 +- .../textures/items/MU-metaitem.01/101.png | Bin 0 -> 309 bytes .../textures/items/MU-metaitem.01/105.png | Bin 0 -> 30527 bytes .../assets/miscutils/textures/items/ion/0.png | Bin 0 -> 112 bytes .../assets/miscutils/textures/items/ion/1.png | Bin 0 -> 146 bytes .../assets/miscutils/textures/items/ion/10.png | Bin 0 -> 161 bytes .../assets/miscutils/textures/items/ion/100.png | Bin 0 -> 161 bytes .../assets/miscutils/textures/items/ion/101.png | Bin 0 -> 153 bytes .../assets/miscutils/textures/items/ion/102.png | Bin 0 -> 124 bytes .../assets/miscutils/textures/items/ion/103.png | Bin 0 -> 148 bytes .../assets/miscutils/textures/items/ion/104.png | Bin 0 -> 156 bytes .../assets/miscutils/textures/items/ion/105.png | Bin 0 -> 175 bytes .../assets/miscutils/textures/items/ion/106.png | Bin 0 -> 148 bytes .../assets/miscutils/textures/items/ion/107.png | Bin 0 -> 143 bytes .../assets/miscutils/textures/items/ion/108.png | Bin 0 -> 152 bytes .../assets/miscutils/textures/items/ion/109.png | Bin 0 -> 154 bytes .../assets/miscutils/textures/items/ion/11.png | Bin 0 -> 178 bytes .../assets/miscutils/textures/items/ion/110.png | Bin 0 -> 163 bytes .../assets/miscutils/textures/items/ion/111.png | Bin 0 -> 146 bytes .../assets/miscutils/textures/items/ion/112.png | Bin 0 -> 148 bytes .../assets/miscutils/textures/items/ion/113.png | Bin 0 -> 113 bytes .../assets/miscutils/textures/items/ion/114.png | Bin 0 -> 160 bytes .../assets/miscutils/textures/items/ion/115.png | Bin 0 -> 138 bytes .../assets/miscutils/textures/items/ion/116.png | Bin 0 -> 140 bytes .../assets/miscutils/textures/items/ion/117.png | Bin 0 -> 166 bytes .../assets/miscutils/textures/items/ion/12.png | Bin 0 -> 147 bytes .../assets/miscutils/textures/items/ion/13.png | Bin 0 -> 151 bytes .../assets/miscutils/textures/items/ion/14.png | Bin 0 -> 125 bytes .../assets/miscutils/textures/items/ion/15.png | Bin 0 -> 136 bytes .../assets/miscutils/textures/items/ion/16.png | Bin 0 -> 136 bytes .../assets/miscutils/textures/items/ion/17.png | Bin 0 -> 148 bytes .../assets/miscutils/textures/items/ion/18.png | Bin 0 -> 143 bytes .../assets/miscutils/textures/items/ion/19.png | Bin 0 -> 161 bytes .../assets/miscutils/textures/items/ion/2.png | Bin 0 -> 115 bytes .../assets/miscutils/textures/items/ion/20.png | Bin 0 -> 155 bytes .../assets/miscutils/textures/items/ion/21.png | Bin 0 -> 115 bytes .../assets/miscutils/textures/items/ion/22.png | Bin 0 -> 132 bytes .../assets/miscutils/textures/items/ion/23.png | Bin 0 -> 144 bytes .../assets/miscutils/textures/items/ion/24.png | Bin 0 -> 150 bytes .../assets/miscutils/textures/items/ion/25.png | Bin 0 -> 141 bytes .../assets/miscutils/textures/items/ion/26.png | Bin 0 -> 148 bytes .../assets/miscutils/textures/items/ion/27.png | Bin 0 -> 141 bytes .../assets/miscutils/textures/items/ion/28.png | Bin 0 -> 142 bytes .../assets/miscutils/textures/items/ion/29.png | Bin 0 -> 145 bytes .../assets/miscutils/textures/items/ion/3.png | Bin 0 -> 150 bytes .../assets/miscutils/textures/items/ion/30.png | Bin 0 -> 159 bytes .../assets/miscutils/textures/items/ion/31.png | Bin 0 -> 157 bytes .../assets/miscutils/textures/items/ion/32.png | Bin 0 -> 158 bytes .../assets/miscutils/textures/items/ion/33.png | Bin 0 -> 158 bytes .../assets/miscutils/textures/items/ion/34.png | Bin 0 -> 144 bytes .../assets/miscutils/textures/items/ion/35.png | Bin 0 -> 159 bytes .../assets/miscutils/textures/items/ion/36.png | Bin 0 -> 155 bytes .../assets/miscutils/textures/items/ion/37.png | Bin 0 -> 149 bytes .../assets/miscutils/textures/items/ion/38.png | Bin 0 -> 135 bytes .../assets/miscutils/textures/items/ion/39.png | Bin 0 -> 141 bytes .../assets/miscutils/textures/items/ion/4.png | Bin 0 -> 125 bytes .../assets/miscutils/textures/items/ion/40.png | Bin 0 -> 157 bytes .../assets/miscutils/textures/items/ion/41.png | Bin 0 -> 162 bytes .../assets/miscutils/textures/items/ion/42.png | Bin 0 -> 133 bytes .../assets/miscutils/textures/items/ion/43.png | Bin 0 -> 147 bytes .../assets/miscutils/textures/items/ion/44.png | Bin 0 -> 155 bytes .../assets/miscutils/textures/items/ion/45.png | Bin 0 -> 152 bytes .../assets/miscutils/textures/items/ion/46.png | Bin 0 -> 173 bytes .../assets/miscutils/textures/items/ion/47.png | Bin 0 -> 154 bytes .../assets/miscutils/textures/items/ion/48.png | Bin 0 -> 129 bytes .../assets/miscutils/textures/items/ion/49.png | Bin 0 -> 152 bytes .../assets/miscutils/textures/items/ion/5.png | Bin 0 -> 127 bytes .../assets/miscutils/textures/items/ion/50.png | Bin 0 -> 163 bytes .../assets/miscutils/textures/items/ion/51.png | Bin 0 -> 142 bytes .../assets/miscutils/textures/items/ion/52.png | Bin 0 -> 110 bytes .../assets/miscutils/textures/items/ion/53.png | Bin 0 -> 167 bytes .../assets/miscutils/textures/items/ion/54.png | Bin 0 -> 155 bytes .../assets/miscutils/textures/items/ion/55.png | Bin 0 -> 152 bytes .../assets/miscutils/textures/items/ion/56.png | Bin 0 -> 142 bytes .../assets/miscutils/textures/items/ion/57.png | Bin 0 -> 154 bytes .../assets/miscutils/textures/items/ion/58.png | Bin 0 -> 136 bytes .../assets/miscutils/textures/items/ion/59.png | Bin 0 -> 156 bytes .../assets/miscutils/textures/items/ion/6.png | Bin 0 -> 131 bytes .../assets/miscutils/textures/items/ion/60.png | Bin 0 -> 142 bytes .../assets/miscutils/textures/items/ion/61.png | Bin 0 -> 157 bytes .../assets/miscutils/textures/items/ion/62.png | Bin 0 -> 129 bytes .../assets/miscutils/textures/items/ion/63.png | Bin 0 -> 165 bytes .../assets/miscutils/textures/items/ion/64.png | Bin 0 -> 134 bytes .../assets/miscutils/textures/items/ion/65.png | Bin 0 -> 157 bytes .../assets/miscutils/textures/items/ion/66.png | Bin 0 -> 139 bytes .../assets/miscutils/textures/items/ion/67.png | Bin 0 -> 129 bytes .../assets/miscutils/textures/items/ion/68.png | Bin 0 -> 126 bytes .../assets/miscutils/textures/items/ion/69.png | Bin 0 -> 157 bytes .../assets/miscutils/textures/items/ion/7.png | Bin 0 -> 128 bytes .../assets/miscutils/textures/items/ion/70.png | Bin 0 -> 121 bytes .../assets/miscutils/textures/items/ion/71.png | Bin 0 -> 127 bytes .../assets/miscutils/textures/items/ion/72.png | Bin 0 -> 137 bytes .../assets/miscutils/textures/items/ion/73.png | Bin 0 -> 150 bytes .../assets/miscutils/textures/items/ion/74.png | Bin 0 -> 153 bytes .../assets/miscutils/textures/items/ion/75.png | Bin 0 -> 154 bytes .../assets/miscutils/textures/items/ion/76.png | Bin 0 -> 126 bytes .../assets/miscutils/textures/items/ion/77.png | Bin 0 -> 138 bytes .../assets/miscutils/textures/items/ion/78.png | Bin 0 -> 152 bytes .../assets/miscutils/textures/items/ion/79.png | Bin 0 -> 157 bytes .../assets/miscutils/textures/items/ion/8.png | Bin 0 -> 107 bytes .../assets/miscutils/textures/items/ion/80.png | Bin 0 -> 112 bytes .../assets/miscutils/textures/items/ion/81.png | Bin 0 -> 151 bytes .../assets/miscutils/textures/items/ion/82.png | Bin 0 -> 139 bytes .../assets/miscutils/textures/items/ion/83.png | Bin 0 -> 149 bytes .../assets/miscutils/textures/items/ion/84.png | Bin 0 -> 153 bytes .../assets/miscutils/textures/items/ion/85.png | Bin 0 -> 152 bytes .../assets/miscutils/textures/items/ion/86.png | Bin 0 -> 125 bytes .../assets/miscutils/textures/items/ion/87.png | Bin 0 -> 153 bytes .../assets/miscutils/textures/items/ion/88.png | Bin 0 -> 157 bytes .../assets/miscutils/textures/items/ion/89.png | Bin 0 -> 125 bytes .../assets/miscutils/textures/items/ion/9.png | Bin 0 -> 161 bytes .../assets/miscutils/textures/items/ion/90.png | Bin 0 -> 146 bytes .../assets/miscutils/textures/items/ion/91.png | Bin 0 -> 119 bytes .../assets/miscutils/textures/items/ion/92.png | Bin 0 -> 163 bytes .../assets/miscutils/textures/items/ion/93.png | Bin 0 -> 138 bytes .../assets/miscutils/textures/items/ion/94.png | Bin 0 -> 153 bytes .../assets/miscutils/textures/items/ion/95.png | Bin 0 -> 150 bytes .../assets/miscutils/textures/items/ion/96.png | Bin 0 -> 157 bytes .../assets/miscutils/textures/items/ion/97.png | Bin 0 -> 146 bytes .../assets/miscutils/textures/items/ion/98.png | Bin 0 -> 143 bytes .../assets/miscutils/textures/items/ion/99.png | Bin 0 -> 128 bytes .../miscutils/textures/items/ion/IonBase.png | Bin 0 -> 1789 bytes .../miscutils/textures/items/itemBufferCore.png | Bin 3115 -> 1329 bytes .../assets/miscutils/textures/items/particle/0.PNG | Bin 0 -> 1672 bytes .../assets/miscutils/textures/items/particle/1.png | Bin 0 -> 1669 bytes .../miscutils/textures/items/particle/10.PNG | Bin 0 -> 1644 bytes .../miscutils/textures/items/particle/11.PNG | Bin 0 -> 1678 bytes .../miscutils/textures/items/particle/12.PNG | Bin 0 -> 1658 bytes .../miscutils/textures/items/particle/13.PNG | Bin 0 -> 1668 bytes .../miscutils/textures/items/particle/14.PNG | Bin 0 -> 1676 bytes .../miscutils/textures/items/particle/15.PNG | Bin 0 -> 1675 bytes .../miscutils/textures/items/particle/16.PNG | Bin 0 -> 1679 bytes .../miscutils/textures/items/particle/17.PNG | Bin 0 -> 1674 bytes .../miscutils/textures/items/particle/18.PNG | Bin 0 -> 1674 bytes .../miscutils/textures/items/particle/19.PNG | Bin 0 -> 1685 bytes .../assets/miscutils/textures/items/particle/2.png | Bin 0 -> 1683 bytes .../miscutils/textures/items/particle/20.PNG | Bin 0 -> 1663 bytes .../miscutils/textures/items/particle/21.PNG | Bin 0 -> 1653 bytes .../miscutils/textures/items/particle/22.PNG | Bin 0 -> 1665 bytes .../miscutils/textures/items/particle/23.PNG | Bin 0 -> 1680 bytes .../miscutils/textures/items/particle/24.PNG | Bin 0 -> 1673 bytes .../assets/miscutils/textures/items/particle/3.png | Bin 0 -> 1681 bytes .../assets/miscutils/textures/items/particle/4.png | Bin 0 -> 1682 bytes .../assets/miscutils/textures/items/particle/5.png | Bin 0 -> 1675 bytes .../assets/miscutils/textures/items/particle/6.png | Bin 0 -> 1674 bytes .../assets/miscutils/textures/items/particle/7.PNG | Bin 0 -> 1667 bytes .../assets/miscutils/textures/items/particle/8.PNG | Bin 0 -> 1656 bytes .../assets/miscutils/textures/items/particle/9.PNG | Bin 0 -> 1663 bytes 174 files changed, 1362 insertions(+), 451 deletions(-) create mode 100644 src/resources/assets/miscutils/textures/items/MU-metaitem.01/101.png create mode 100644 src/resources/assets/miscutils/textures/items/MU-metaitem.01/105.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/0.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/1.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/10.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/100.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/101.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/102.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/103.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/104.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/105.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/106.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/107.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/108.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/109.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/11.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/110.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/111.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/112.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/113.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/114.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/115.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/116.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/117.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/12.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/13.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/14.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/15.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/16.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/17.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/18.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/19.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/2.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/20.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/21.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/22.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/23.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/24.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/25.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/26.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/27.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/28.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/29.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/3.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/30.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/31.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/32.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/33.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/34.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/35.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/36.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/37.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/38.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/39.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/4.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/40.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/41.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/42.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/43.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/44.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/45.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/46.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/47.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/48.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/49.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/5.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/50.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/51.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/52.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/53.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/54.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/55.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/56.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/57.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/58.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/59.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/6.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/60.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/61.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/62.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/63.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/64.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/65.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/66.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/67.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/68.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/69.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/7.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/70.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/71.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/72.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/73.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/74.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/75.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/76.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/77.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/78.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/79.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/8.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/80.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/81.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/82.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/83.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/84.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/85.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/86.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/87.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/88.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/89.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/9.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/90.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/91.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/92.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/93.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/94.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/95.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/96.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/97.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/98.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/99.png create mode 100644 src/resources/assets/miscutils/textures/items/ion/IonBase.png create mode 100644 src/resources/assets/miscutils/textures/items/particle/0.PNG create mode 100644 src/resources/assets/miscutils/textures/items/particle/1.png create mode 100644 src/resources/assets/miscutils/textures/items/particle/10.PNG create mode 100644 src/resources/assets/miscutils/textures/items/particle/11.PNG create mode 100644 src/resources/assets/miscutils/textures/items/particle/12.PNG create mode 100644 src/resources/assets/miscutils/textures/items/particle/13.PNG create mode 100644 src/resources/assets/miscutils/textures/items/particle/14.PNG create mode 100644 src/resources/assets/miscutils/textures/items/particle/15.PNG create mode 100644 src/resources/assets/miscutils/textures/items/particle/16.PNG create mode 100644 src/resources/assets/miscutils/textures/items/particle/17.PNG create mode 100644 src/resources/assets/miscutils/textures/items/particle/18.PNG create mode 100644 src/resources/assets/miscutils/textures/items/particle/19.PNG create mode 100644 src/resources/assets/miscutils/textures/items/particle/2.png create mode 100644 src/resources/assets/miscutils/textures/items/particle/20.PNG create mode 100644 src/resources/assets/miscutils/textures/items/particle/21.PNG create mode 100644 src/resources/assets/miscutils/textures/items/particle/22.PNG create mode 100644 src/resources/assets/miscutils/textures/items/particle/23.PNG create mode 100644 src/resources/assets/miscutils/textures/items/particle/24.PNG create mode 100644 src/resources/assets/miscutils/textures/items/particle/3.png create mode 100644 src/resources/assets/miscutils/textures/items/particle/4.png create mode 100644 src/resources/assets/miscutils/textures/items/particle/5.png create mode 100644 src/resources/assets/miscutils/textures/items/particle/6.png create mode 100644 src/resources/assets/miscutils/textures/items/particle/7.PNG create mode 100644 src/resources/assets/miscutils/textures/items/particle/8.PNG create mode 100644 src/resources/assets/miscutils/textures/items/particle/9.PNG diff --git a/.gitignore b/.gitignore index 9581eb380c..2144086d21 100644 --- a/.gitignore +++ b/.gitignore @@ -130,3 +130,4 @@ scripts /src/Java/gtPlusPlus/xmod/galacticraft/asm/TileEntityFuelLoader_ASM.java /src/Java/gtPlusPlus/xmod/ob/TileEntitySprinkler_ASM.java /src/Java/gtPlusPlus/xmod/thermalfoundation/asm/OreDictionaryArbiter_ASM.java +/GeneratedIcons diff --git a/src/Java/gregtech/api/util/Recipe_GT.java b/src/Java/gregtech/api/util/Recipe_GT.java index 8a5abb529d..611f55c8b0 100644 --- a/src/Java/gregtech/api/util/Recipe_GT.java +++ b/src/Java/gregtech/api/util/Recipe_GT.java @@ -271,7 +271,7 @@ public class Recipe_GT extends GT_Recipe implements IComparableRecipe{ "Fuel Value: ", 1000, " EU", true, false); //Cyclotron recipe map - public static final GT_Recipe_Map sCyclotronRecipes = new GT_Recipe_Map(new HashSet(200), "gt.recipe.cyclotron", "COMET - Compact Cyclotron", null, RES_PATH_GUI + "basicmachines/BlastSmelter", 1, 1, 1, 0, 1, E, 1, E, true, true); + public static final GT_Recipe_Map sCyclotronRecipes = new GT_Recipe_Map(new HashSet(200), "gt.recipe.cyclotron", "COMET - Compact Cyclotron", null, RES_PATH_GUI + "basicmachines/BlastSmelter", 2, 16, 0, 0, 1, E, 1, E, true, true); //Advanced Mixer public static final GT_Recipe_Map sAdvancedMixerRecipes = new GT_Recipe_Map(new HashSet(1000), "gt.recipe.advanced.mixer", diff --git a/src/Java/gtPlusPlus/GTplusplus.java b/src/Java/gtPlusPlus/GTplusplus.java index 8ae48f3b3f..7b340dc798 100644 --- a/src/Java/gtPlusPlus/GTplusplus.java +++ b/src/Java/gtPlusPlus/GTplusplus.java @@ -1,6 +1,8 @@ package gtPlusPlus; -import static gtPlusPlus.core.lib.CORE.ConfigSwitches.*; +import static gtPlusPlus.core.lib.CORE.ConfigSwitches.enableAnimatedTurbines; +import static gtPlusPlus.core.lib.CORE.ConfigSwitches.enableCustomCapes; +import static gtPlusPlus.core.lib.CORE.ConfigSwitches.enableUpdateChecker; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -9,18 +11,24 @@ import java.util.Collection; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.SidedProxy; -import cpw.mods.fml.common.event.*; +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLLoadCompleteEvent; +import cpw.mods.fml.common.event.FMLPostInitializationEvent; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; +import cpw.mods.fml.common.event.FMLServerStartingEvent; +import cpw.mods.fml.common.event.FMLServerStoppingEvent; import cpw.mods.fml.relauncher.IFMLLoadingPlugin.MCVersion; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; import gregtech.api.enums.Textures.BlockIcons; -import gregtech.api.util.*; +import gregtech.api.util.FishPondFakeRecipe; +import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Recipe.GT_Recipe_Map; +import gregtech.api.util.Recipe_GT; +import gregtech.api.util.SemiFluidFuelHandler; import gtPlusPlus.api.objects.Logger; -import gtPlusPlus.api.objects.data.AutoMap; -import gtPlusPlus.api.objects.data.Pair; import gtPlusPlus.core.commands.CommandDebugChunks; import gtPlusPlus.core.commands.CommandMath; import gtPlusPlus.core.common.CommonProxy; @@ -28,16 +36,22 @@ import gtPlusPlus.core.config.ConfigHandler; import gtPlusPlus.core.handler.BookHandler; import gtPlusPlus.core.handler.Recipes.RegistrationHandler; import gtPlusPlus.core.handler.chunkloading.ChunkLoading; -import gtPlusPlus.core.handler.events.*; +import gtPlusPlus.core.handler.events.BlockEventHandler; +import gtPlusPlus.core.handler.events.LoginEventHandler; +import gtPlusPlus.core.handler.events.MissingMappingsEvent; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.lib.LoadedMods; import gtPlusPlus.core.material.Material; import gtPlusPlus.core.material.nuclear.FLUORIDES; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.data.LocaleUtils; -import gtPlusPlus.core.util.minecraft.*; +import gtPlusPlus.core.util.minecraft.FluidUtils; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.core.util.minecraft.RecipeUtils; import gtPlusPlus.core.util.reflect.ReflectionUtils; -import gtPlusPlus.core.util.sys.*; +import gtPlusPlus.core.util.sys.GeoUtils; +import gtPlusPlus.core.util.sys.NetworkUtils; +import gtPlusPlus.core.util.sys.SystemUtils; import gtPlusPlus.plugin.manager.Core_Manager; import gtPlusPlus.xmod.gregtech.api.objects.GregtechBufferThread; import gtPlusPlus.xmod.gregtech.common.Meta_GT_Proxy; @@ -46,7 +60,6 @@ import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtTools; import gtPlusPlus.xmod.gregtech.loaders.GT_Material_Loader; import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_BlastSmelterGT_GTNH; import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechMiniRaFusion; -import gtPlusPlus.xmod.ob.SprinklerHandler; import gtPlusPlus.xmod.thaumcraft.commands.CommandDumpAspects; import net.minecraft.launchwrapper.Launch; import net.minecraft.util.IIcon; @@ -420,69 +433,4 @@ public class GTplusplus implements ActionListener { mGregMatLoader.enableMaterial(Materials.Force); } - /** - * Capes - */ - - public static final AutoMap> mOrangeCapes = new AutoMap>(); - public static final AutoMap> mMiscCapes = new AutoMap>(); - public static final AutoMap> mBetaTestCapes = new AutoMap>(); - public static final AutoMap> mDevCapes = new AutoMap>(); - public static final AutoMap> mPatreonCapes = new AutoMap>(); - - public static void BuildCapeList() { - //Basic Orange Cape (I give these away at times, just because) - mOrangeCapes.put(new Pair("ImmortalPharaoh7", "c8c479b2-7464-4b20-adea-b43ff1c10c53")); - mOrangeCapes.put(new Pair("Walmart_Employee", "7a56602b-9a67-44e3-95a5-270f887712c6")); - mOrangeCapes.put(new Pair("ArchonCerulean", "f773e61f-261f-41e7-a221-5dcace291ced")); - mOrangeCapes.put(new Pair("netmc", "c3ecbcc3-0d83-4da6-bb89-69f3f1a6e38b")); - mOrangeCapes.put(new Pair("twinsrock8", "c1239b45b-b3a3-4282-8143-c73778897dda")); - mOrangeCapes.put(new Pair("Ajes", "b1781fc7-35ca-4255-a21c-cdb1b7ea1853")); - mOrangeCapes.put(new Pair("LAGIdiot", "44f38ff8-aad7-49c3-acb3-d92317af9078")); - mOrangeCapes.put(new Pair("Snaggerr", "7e553c3b-b259-4c16-992a-c8c107401e74")); - mOrangeCapes.put(new Pair("Semmelx4", "651b3963-038f-4769-9f75-0eaca0c4e748")); - //mOrangeCapes.put(new Pair("aaaa", "1234")); - //mOrangeCapes.put(new Pair("aaaa", "1234")); - //mOrangeCapes.put(new Pair("aaaa", "1234")); - - //Misc - mMiscCapes.put(new Pair("doomsquirter", "3aee80ab-d982-4e6d-b8d0-7912bbd75f5d")); - mMiscCapes.put(new Pair("ukdunc", "17d57521-3a1e-4eb9-91e6-901a65c15e07")); - mMiscCapes.put(new Pair("q009", "520aebe6-4cd9-46cd-bc7a-d47e5e648e38")); - mMiscCapes.put(new Pair("JaidenC", "00b157e5-cd97-43a2-a080-460f550e93cd")); - mMiscCapes.put(new Pair("TheGiggitygoo", "9f996c78-bddc-4dec-a522-0df7267f11f3")); - - //Beta/Dev Tester Capes - mBetaTestCapes.put(new Pair("fobius", "ca399a5b-d1bb-46e3-af5b-5939817b5cf8")); - mBetaTestCapes.put(new Pair("cantankerousrex", "")); - mBetaTestCapes.put(new Pair("stephen_2015", "004ae3d8-ecaf-48eb-9e4e-224d42d31c78")); - mBetaTestCapes.put(new Pair("Dyonovan", "2f3a7dff-b1ec-4c05-8eed-63ad2a3ba73f")); - mBetaTestCapes.put(new Pair("Bear989Sr", "1964e3d1-6500-40e7-9ff2-e6161d41a8c2")); - mBetaTestCapes.put(new Pair("CrazyJ1984", "d84f9654-87ea-46a9-881f-c6aa45dd5af8")); - mBetaTestCapes.put(new Pair("AndreyKV", "9550c173-a8c5-4e7f-bf8d-b5ded56921ef")); - mBetaTestCapes.put(new Pair("Piky", "7822ae35-9d5a-4fe7-bd5f-d03006932a65")); - - //GTNH Beta Testers - mBetaTestCapes.put(new Pair("bartimaeusnek", "578c2d13-9358-4ae8-95e7-a30ab9f9f3c7")); - mBetaTestCapes.put(new Pair("Prewf", "634433ec-6256-44aa-97b3-a615be18ce23")); - mBetaTestCapes.put(new Pair("FallDark", "86aa136e-9b5e-45e3-8273-6684fd7c537d")); - mBetaTestCapes.put(new Pair("0lafe", "8b06bcf9-7a94-45f9-a01f-2fff73e7582d")); - mBetaTestCapes.put(new Pair("Dogehog", "499b751e-f106-41ae-8dfe-3b88a73958e0")); - //mBetaTestCapes.put(new Pair("cantankerousrex", "")); - - //Dev Capes - mDevCapes.put(new Pair("draknyte1", "5652713c-668e-47f3-853a-3fa959a9dfd3")); - mDevCapes.put(new Pair("crimsonhood17", "c4773470-2585-4bd7-82b3-8764ca6acd08")); - - - /** - * Patreons - */ - - mPatreonCapes.put(new Pair("Baxterzz", "e8aa5500-7319-4453-822c-b96b29ab5981")); - mPatreonCapes.put(new Pair("leagris", "09752aa3-8b9c-4f8f-b04f-5421e799547d")); - mPatreonCapes.put(new Pair("Traumeister", "fd3f46ac-801a-4566-90b5-75cb362d261e")); - mPatreonCapes.put(new Pair("asturrial", "26c4881f-c708-4c5d-aa76-4419c3a1265b")); - } - } diff --git a/src/Java/gtPlusPlus/core/item/ModItems.java b/src/Java/gtPlusPlus/core/item/ModItems.java index 2fd23ec88d..a14073e569 100644 --- a/src/Java/gtPlusPlus/core/item/ModItems.java +++ b/src/Java/gtPlusPlus/core/item/ModItems.java @@ -292,11 +292,12 @@ public final class ModItems { public static Item boxFood; public static Item boxMagic; - private static DustDecayable dustMolybdenum99; + public static DustDecayable dustMolybdenum99; + public static DustDecayable dustTechnetium99; + public static DustDecayable dustTechnetium99M; - private static DustDecayable dustTechnetium99; - - private static DustDecayable dustTechnetium99M; + public static IonParticles itemIonParticleBase; + public static StandardBaseParticles itemStandarParticleBase; static { Logger.INFO("Items!"); @@ -580,7 +581,7 @@ public final class ModItems { MaterialGenerator.generate(ALLOY.ABYSSAL); - MaterialGenerator.generate(ALLOY.TITANSTEEL, false); + MaterialGenerator.generate(ALLOY.TITANSTEEL); MaterialGenerator.generate(ALLOY.ARCANITE); MaterialGenerator.generate(ALLOY.OCTIRON); @@ -630,7 +631,7 @@ public final class ModItems { dustLithiumPeroxide = ItemUtils.generateSpecialUseDusts("LithiumPeroxide", "Lithium Peroxide", "Li2O2", Utils.rgbtoHexValue(250, 250, 250))[0]; //https://en.wikipedia.org/wiki/Lithium_peroxide dustLithiumHydroxide = ItemUtils.generateSpecialUseDusts("LithiumHydroxide", "Lithium Hydroxide", "LiOH", Utils.rgbtoHexValue(250, 250, 250))[0]; //https://en.wikipedia.org/wiki/Lithium_hydroxide - if ((ItemUtils.getItemStackOfAmountFromOreDict("dustQuicklime", 1).getItem() == ModItems.AAA_Broken) || !LoadedMods.IHL){ + if (!ItemUtils.checkForInvalidItems(ItemUtils.getItemStackOfAmountFromOreDict("dustQuicklime", 1)) && !LoadedMods.IHL){ dustQuicklime = ItemUtils.generateSpecialUseDusts("Quicklime", "Quicklime", "CaO", Utils.rgbtoHexValue(255, 255, 175))[0]; //https://en.wikipedia.org/wiki/Calcium_oxide } dustCalciumHydroxide = ItemUtils.generateSpecialUseDusts("CalciumHydroxide", "Hydrated Lime", "Ca(OH)2", Utils.rgbtoHexValue(255, 255, 255))[0]; //https://en.wikipedia.org/wiki/Calcium_hydroxide @@ -814,8 +815,8 @@ public final class ModItems { dustTechnetium99M = new DustDecayable("dustTechnetium99M", ELEMENT.getInstance().TECHNETIUM.getRgbAsHex(), 8570, new String[] {""+StringUtils.superscript("99ᵐTc"), "Result: Technicium 99 ("+StringUtils.superscript("99Tc")+")"}, dustTechnetium99, 4); dustMolybdenum99 = new DustDecayable("dustMolybdenum99", ELEMENT.getInstance().MOLYBDENUM.getRgbAsHex(), 16450, new String[] {""+StringUtils.superscript("99Mo"), "Result: Technicium 99ᵐ ("+StringUtils.superscript("99ᵐTc")+")"}, dustTechnetium99M, 4); - new IonParticles(); - new StandardBaseParticles(); + itemIonParticleBase = new IonParticles(); + itemStandarParticleBase = new StandardBaseParticles(); diff --git a/src/Java/gtPlusPlus/core/item/base/misc/BaseItemParticle.java b/src/Java/gtPlusPlus/core/item/base/misc/BaseItemParticle.java index 89cd1e55ae..b7bbc84757 100644 --- a/src/Java/gtPlusPlus/core/item/base/misc/BaseItemParticle.java +++ b/src/Java/gtPlusPlus/core/item/base/misc/BaseItemParticle.java @@ -30,7 +30,10 @@ public abstract class BaseItemParticle extends CoreItem { public int getColorFromItemStack(final ItemStack stack, final int HEX_OxFFFFFF) { return aColourMap.get(stack.getItemDamage()); } - + + public int getColorFromParentClass(ItemStack stack, int aaa) { + return super.getColorFromItemStack(stack, aaa); + } @SuppressWarnings({ "unchecked", "rawtypes" }) @Override diff --git a/src/Java/gtPlusPlus/core/item/chemistry/IonParticles.java b/src/Java/gtPlusPlus/core/item/chemistry/IonParticles.java index ff5f67d2da..517a698e80 100644 --- a/src/Java/gtPlusPlus/core/item/chemistry/IonParticles.java +++ b/src/Java/gtPlusPlus/core/item/chemistry/IonParticles.java @@ -1,23 +1,42 @@ package gtPlusPlus.core.item.chemistry; +import java.util.HashMap; +import java.util.List; + import gregtech.api.enums.Materials; import gtPlusPlus.core.item.base.misc.BaseItemParticle; +import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.Utils; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IIcon; public class IonParticles extends BaseItemParticle { + public static HashMap NameToMetaMap = new HashMap(); + public static HashMap MetaToNameMap = new HashMap(); + + public IonParticles() { super("Ion", aElements.length, EnumRarity.rare); } private static final String[] aElements = new String[]{"Hydrogen", "Helium", "Lithium", "Beryllium", "Boron", "Carbon", "Nitrogen", "Oxygen", "Fluorine", "Neon", "Sodium", "Magnesium", "Aluminum", "Silicon", "Phosphorus", "Sulfur", "Chlorine", "Argon", "Potassium", "Calcium", "Scandium", "Titanium", "Vanadium", "Chromium", "Manganese", "Iron", "Cobalt", "Nickel", "Copper", "Zinc", "Gallium", "Germanium", "Arsenic", "Selenium", "Bromine", "Krypton", "Rubidium", "Strontium", "Yttrium", "Zirconium", "Niobium", "Molybdenum", "Technetium", "Ruthenium", "Rhodium", "Palladium", "Silver", "Cadmium", "Indium", "Tin", "Antimony", "Tellurium", "Iodine", "Xenon", "Cesium", "Barium", "Lanthanum", "Cerium", "Praseodymium", "Neodymium", "Promethium", "Samarium", "Europium", "Gadolinium", "Terbium", "Dysprosium", "Holmium", "Erbium", "Thulium", "Ytterbium", "Lutetium", "Hafnium", "Tantalum", "Tungsten", "Rhenium", "Osmium", "Iridium", "Platinum", "Gold", "Mercury", "Thallium", "Lead", "Bismuth", "Polonium", "Astatine", "Radon", "Francium", "Radium", "Actinium", "Thorium", "Protactinium", "Uranium", "Neptunium", "Plutonium", "Americium", "Curium", "Berkelium", "Californium", "Einsteinium", "Fermium", "Mendelevium", "Nobelium", "Lawrencium", "Rutherfordium", "Dubnium", "Seaborgium", "Bohrium", "Hassium", "Meitnerium", "Darmstadtium", "Roentgenium", "Copernicium", "Nihonium", "Flerovium", "Moscovium", "Livermorium", "Tennessine", "Oganesson"}; + + public static IIcon[] overlays = new IIcon[aElements.length]; + public static IIcon baseTexture; static { //Generate Ions int key = 0; for (String s : aElements) { + //Map names to Meta + NameToMetaMap.put(Utils.sanitizeString(s.toLowerCase()), key); + MetaToNameMap.put(key, Utils.sanitizeString(s.toLowerCase())); Materials m = Materials.get(s); int aColour = 0; if (m == null) { @@ -45,5 +64,103 @@ public class IonParticles extends BaseItemParticle { public String getUnlocalizedName(final ItemStack itemStack) { return "item.particle.ion" + "." + aElements[itemStack.getItemDamage()]; } + + private static boolean createNBT(ItemStack rStack){ + final NBTTagCompound tagMain = new NBTTagCompound(); + final NBTTagCompound tagNBT = new NBTTagCompound(); + tagNBT.setLong("Charge", 0); + tagMain.setTag("Ion", tagNBT); + rStack.setTagCompound(tagMain); + return true; + } + + public static final long getChargeState(final ItemStack aStack) { + NBTTagCompound aNBT = aStack.getTagCompound(); + if (aNBT != null) { + aNBT = aNBT.getCompoundTag("Ion"); + if (aNBT != null) { + return aNBT.getLong("Charge"); + } + } + else { + createNBT(aStack); + } + return 0L; + } + + public static final boolean setChargeState(final ItemStack aStack, final long aCharge) { + NBTTagCompound aNBT = aStack.getTagCompound(); + if (aNBT != null) { + aNBT = aNBT.getCompoundTag("Ion"); + if (aNBT != null) { + aNBT.setLong("Charge", aCharge); + return true; + } + } + return false; + } + + @Override + public double getDurabilityForDisplay(ItemStack stack) { + if (stack.getTagCompound() == null){ + createNBT(stack); + } + double chargeState = getChargeState(stack); + return chargeState; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + long aCharge = getChargeState(stack); + String aState = EnumChatFormatting.YELLOW+"Unknown"+EnumChatFormatting.GRAY; + //State not set + if (aCharge == 0) { + list.add(EnumChatFormatting.GRAY+"A "+MetaToNameMap.get(stack.getItemDamage())+" Ion with an "+aState+" charge state"); + } + else { + if (aCharge > 0) { + aState = EnumChatFormatting.GREEN+"Positive"+EnumChatFormatting.GRAY; + } + else { + aState = EnumChatFormatting.RED+"Negative"+EnumChatFormatting.GRAY; + } + + list.add(EnumChatFormatting.GRAY+"A "+MetaToNameMap.get(stack.getItemDamage())+" Ion with a "+aState+" charge state of "+aCharge+""); + } + super.addInformation(stack, player, list, bool); + } + + @Override + public void registerIcons(IIconRegister reg) { + for (int i = 0; i < IonParticles.overlays.length; i++) { + IonParticles.overlays[i] = reg.registerIcon(CORE.MODID + ":" + "ion/"+i); + } + IonParticles.baseTexture = reg.registerIcon(CORE.MODID + ":" + "ion/IonBase"); + } + + @Override + public IIcon getIconFromDamage(int meta) { + return IonParticles.overlays[meta]; + } + + @Override + public boolean requiresMultipleRenderPasses() { + return true; + } + + @Override + public IIcon getIconFromDamageForRenderPass(int aMeta, int aPass) { + if (aPass == 0) { + return IonParticles.baseTexture; + } + else { + return IonParticles.overlays[aMeta]; + } + } + + @Override + public int getRenderPasses(int metadata) { + return 2; + } } diff --git a/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java b/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java index 9bd8a521ab..a516cb0639 100644 --- a/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java +++ b/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java @@ -404,7 +404,7 @@ public class RocketFuels { 480); ItemStack aCell11dimethylhydrazine = ItemUtils.getItemStackOfAmountFromOreDict("cell1,1Dimethylhydrazine", 2); - if (aCell11dimethylhydrazine != null && aCell11dimethylhydrazine.getItem() != ModItems.AAA_Broken) { + if (ItemUtils.checkForInvalidItems(aCell11dimethylhydrazine)) { GT_Values.RA.addCentrifugeRecipe( CI.getNumberedCircuit(23), aCell11dimethylhydrazine, diff --git a/src/Java/gtPlusPlus/core/item/chemistry/StandardBaseParticles.java b/src/Java/gtPlusPlus/core/item/chemistry/StandardBaseParticles.java index dd07d41b3d..1e833a7b00 100644 --- a/src/Java/gtPlusPlus/core/item/chemistry/StandardBaseParticles.java +++ b/src/Java/gtPlusPlus/core/item/chemistry/StandardBaseParticles.java @@ -1,15 +1,26 @@ package gtPlusPlus.core.item.chemistry; -import gregtech.api.enums.Materials; +import java.util.HashMap; +import java.util.List; + +import gtPlusPlus.api.objects.data.AutoMap; import gtPlusPlus.core.item.base.misc.BaseItemParticle; +import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.material.Particle; import gtPlusPlus.core.material.Particle.ElementaryGroup; import gtPlusPlus.core.util.Utils; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IIcon; public class StandardBaseParticles extends BaseItemParticle { + public static HashMap NameToMetaMap = new HashMap(); + public static HashMap MetaToNameMap = new HashMap(); + public StandardBaseParticles() { super("Base", aTypes.length, EnumRarity.rare); } @@ -17,13 +28,19 @@ public class StandardBaseParticles extends BaseItemParticle { private static final String[] aTypes = new String[] { "Graviton", "Up", "Down", "Charm", "Strange", "Top", "Bottom", "Electron", "Electron Neutrino", "Muon", "Muon Neutrino", "Tau", "Tau Neutrino", "Gluon", "Photon", "Z Boson", "W Boson", "Higgs Boson", "Proton", "Neutron", "Lambda", "Omega", "Pion", - "ETA Meson", }; + "ETA Meson", "Unknown" }; + + public IIcon[] icons = new IIcon[aTypes.length]; static { //Generate Ions int key = 0; + + for (String s : aTypes) { - Particle p; + //Map names to Meta + NameToMetaMap.put(Utils.sanitizeString(s.toLowerCase()), key); + MetaToNameMap.put(key, Utils.sanitizeString(s.toLowerCase())); for (Particle o : Particle.aMap) { int aColour = 0; if (o.mParticleName.toLowerCase().equals(s.toLowerCase())) { @@ -73,5 +90,72 @@ public class StandardBaseParticles extends BaseItemParticle { public String getUnlocalizedName(final ItemStack itemStack) { return "item.particle.base" + "." + aTypes[itemStack.getItemDamage()]; } + + public static Particle getParticle(ItemStack aStack) { + AutoMap g = Particle.aMap; + for (Particle p : g) { + String aPartName = Utils.sanitizeString(p.mParticleName.toLowerCase()); + String expectedPart = Utils.sanitizeString(aTypes[aStack.getItemDamage()].toLowerCase()); + if (aPartName.equals(expectedPart)) { + return p; + } + } + return Particle.UNKNOWN; + } + + @Override + public int getColorFromItemStack(final ItemStack stack, final int HEX_OxFFFFFF) { + //return Utils.rgbtoHexValue(200, 200, 200); + return super.getColorFromParentClass(stack, HEX_OxFFFFFF); + } + + @SuppressWarnings({ "rawtypes", "unchecked" }) + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + Particle aCharge = getParticle(stack); + EnumChatFormatting aColour = EnumChatFormatting.GRAY; + String aState = aColour+"Unknown"+EnumChatFormatting.RESET; + if (aCharge != null) { + String aGroup = aCharge.mParticleType.name().toLowerCase(); + if (aGroup.toLowerCase().contains("quark")) { + aColour = EnumChatFormatting.LIGHT_PURPLE; + } + else if (aGroup.toLowerCase().contains("lepton")) { + aColour = EnumChatFormatting.GREEN; + } + else if (aCharge == Particle.HIGGS_BOSON) { + aColour = EnumChatFormatting.YELLOW; + } + else if (aGroup.toLowerCase().contains("boson")) { + aColour = EnumChatFormatting.RED; + } + else if (aGroup.toLowerCase().contains("baryon")) { + aColour = EnumChatFormatting.BLUE; + } + else if (aGroup.toLowerCase().contains("meson")) { + aColour = EnumChatFormatting.WHITE; + } + else { + aColour = EnumChatFormatting.GRAY; + } + String aFirstLet = aGroup.substring(0, 1).toUpperCase(); + aGroup = aGroup.replaceFirst(aGroup.substring(0, 1), aFirstLet); + aState = aColour+aGroup+EnumChatFormatting.RESET; + list.add(EnumChatFormatting.GRAY + "Type: "+aState); + } + super.addInformation(stack, player, list, bool); + } + + @Override + public void registerIcons(IIconRegister reg) { + for (int i = 0; i < this.icons.length; i++) { + this.icons[i] = reg.registerIcon(CORE.MODID + ":" + "particle/"+i); + } + } + + @Override + public IIcon getIconFromDamage(int meta) { + return this.icons[meta]; + } } diff --git a/src/Java/gtPlusPlus/core/item/general/BufferCore.java b/src/Java/gtPlusPlus/core/item/general/BufferCore.java index d3c7d5112f..9b00d3d034 100644 --- a/src/Java/gtPlusPlus/core/item/general/BufferCore.java +++ b/src/Java/gtPlusPlus/core/item/general/BufferCore.java @@ -4,7 +4,7 @@ import java.util.List; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; - +import gregtech.api.enums.GT_Values; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -21,7 +21,7 @@ public class BufferCore extends BaseItemWithDamageValue{ public BufferCore(final String unlocalizedName, final int i) { super(unlocalizedName+i); this.setTextureName(CORE.MODID + ":" + unlocalizedName); - this.setMaxStackSize(2); + this.setMaxStackSize(32); this.coreTier = i; } @@ -40,7 +40,7 @@ public class BufferCore extends BaseItemWithDamageValue{ @SuppressWarnings({ "unchecked", "rawtypes" }) @Override public void addInformation(final ItemStack stack, final EntityPlayer aPlayer, final List list, final boolean bool) { - list.add(EnumChatFormatting.GRAY+"A key crafting component for making energy buffers."); + list.add(EnumChatFormatting.GRAY+"A key crafting component for "+GT_Values.VN[this.coreTier-1]+" Applicances"); } public final int getCoreTier() { @@ -48,51 +48,25 @@ public class BufferCore extends BaseItemWithDamageValue{ } @Override - public int getColorFromItemStack(final ItemStack stack, int HEX_OxFFFFFF) { - //Figure Out Damage - final String s = String.format("%X", HEX_OxFFFFFF); - //Utils.LOG_INFO(s); - //String rgb = Utils.hex2Rgb(s); - //Utils.LOG_INFO(rgb); - if (this.coreTier == 1){ - HEX_OxFFFFFF = 0x4d4d4d; - } - else if (this.coreTier == 2){ - HEX_OxFFFFFF = 0x666666; - } - else if (this.coreTier == 3){ - HEX_OxFFFFFF = 0x8c8c8c; - } - else if (this.coreTier == 4){ - HEX_OxFFFFFF = 0xa6a6a6; - } - else if (this.coreTier == 5){ - HEX_OxFFFFFF = 0xcccccc; - } - else if (this.coreTier == 6){ - HEX_OxFFFFFF = 0xe6e6e6; - } - else if (this.coreTier == 7){ - HEX_OxFFFFFF = 0xffffcc; - } - else if (this.coreTier == 8){ - HEX_OxFFFFFF = 0xace600; - } - else if (this.coreTier == 9){ - HEX_OxFFFFFF = 0xffff00; - } - /*else if (coreTier == 10){ - HEX_OxFFFFFF = 0xff0000; - }*/ - else if (this.coreTier == 10){ - HEX_OxFFFFFF = Utils.rgbtoHexValue(MathUtils.randInt(220, 250), MathUtils.randInt(221, 251), MathUtils.randInt(220, 250)); - } - else { - HEX_OxFFFFFF = 0xffffff; - } + public int getColorFromItemStack(final ItemStack stack, int HEX_OxFFFFFF) { + int[] mTierTypes = new int[] { + Utils.rgbtoHexValue(200, 180, 180), + Utils.rgbtoHexValue(142, 153, 161), + Utils.rgbtoHexValue(230, 121, 75), + Utils.rgbtoHexValue(215, 156, 70), + Utils.rgbtoHexValue(97, 97, 96), //EV + Utils.rgbtoHexValue(202, 202, 201), + Utils.rgbtoHexValue(247, 159, 157), + Utils.rgbtoHexValue(181, 223, 223), + Utils.rgbtoHexValue(187, 219, 185), + }; + + if (this.coreTier == 10){ + return Utils.rgbtoHexValue(MathUtils.randInt(220, 250), MathUtils.randInt(221, 251), MathUtils.randInt(220, 250)); + } - return HEX_OxFFFFFF; + return mTierTypes[this.coreTier-1]; } } diff --git a/src/Java/gtPlusPlus/core/item/general/ItemControlCore.java b/src/Java/gtPlusPlus/core/item/general/ItemControlCore.java index 8ad87c0ea8..eb22f8fa07 100644 --- a/src/Java/gtPlusPlus/core/item/general/ItemControlCore.java +++ b/src/Java/gtPlusPlus/core/item/general/ItemControlCore.java @@ -4,10 +4,13 @@ import java.util.List; import cpw.mods.fml.common.registry.GameRegistry; import gregtech.api.GregTech_API; +import gregtech.api.enums.GT_Values; 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.EnumChatFormatting; import net.minecraft.util.IIcon; import gtPlusPlus.core.lib.CORE; @@ -57,6 +60,14 @@ public class ItemControlCore extends Item { public String getUnlocalizedName(ItemStack stack) { return this.getUnlocalizedName() + "_" + stack.getItemDamage(); } + + @SuppressWarnings({ "unchecked", "rawtypes" }) + @Override + public void addInformation(final ItemStack stack, final EntityPlayer aPlayer, final List list, final boolean bool) { + list.add(EnumChatFormatting.GRAY+"Allows a Multiblock to function upto "+GT_Values.VN[stack.getItemDamage()]+""); + list.add(EnumChatFormatting.GRAY+"Required Tier is determined by the sum of the eu/t of all Energy Inputs"); + list.add(EnumChatFormatting.GRAY+"Lower tiers may be used to underclock, which is useful in some situations"); + } @Override public String getItemStackDisplayName(final ItemStack tItem) { diff --git a/src/Java/gtPlusPlus/core/material/Material.java b/src/Java/gtPlusPlus/core/material/Material.java index 1ee02a2654..03e50aa7dd 100644 --- a/src/Java/gtPlusPlus/core/material/Material.java +++ b/src/Java/gtPlusPlus/core/material/Material.java @@ -753,7 +753,7 @@ public class Material { } } //Logger.MATERIALS("Unabled to find \"" + aKey + this.unlocalizedName + "\""); - return ItemUtils.getErrorStack(stacksize); + return ItemUtils.getErrorStack(stacksize, (aKey + this.unlocalizedName+" x"+stacksize)); } } diff --git a/src/Java/gtPlusPlus/core/material/Particle.java b/src/Java/gtPlusPlus/core/material/Particle.java index 6cc0f878d6..e93129ec58 100644 --- a/src/Java/gtPlusPlus/core/material/Particle.java +++ b/src/Java/gtPlusPlus/core/material/Particle.java @@ -1,6 +1,11 @@ package gtPlusPlus.core.material; import gtPlusPlus.api.objects.data.AutoMap; +import gtPlusPlus.core.item.ModItems; +import gtPlusPlus.core.item.chemistry.IonParticles; +import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import net.minecraft.item.ItemStack; public class Particle { @@ -34,6 +39,8 @@ public class Particle { public static final Particle PION; public static final Particle ETA_MESON; + public static final Particle UNKNOWN; + public static final AutoMap aMap = new AutoMap(); static { @@ -80,7 +87,11 @@ public class Particle { //Mesons PION = new Particle(ElementaryGroup.MESON, "Pion", new Particle[] {MUON, MUON_NEUTRINO}); - ETA_MESON = new Particle(ElementaryGroup.MESON, "ETA Meson", new Particle[] {PION, PION, PION}); + ETA_MESON = new Particle(ElementaryGroup.MESON, "ETA Meson", new Particle[] {PION, PION, PION}); + + + //Wildcard + UNKNOWN = new Particle(ElementaryGroup.UNKNOWN, "Unknown"); } @@ -89,7 +100,8 @@ public class Particle { LEPTON, BOSON, BARYON, - MESON; + MESON, + UNKNOWN; } public final ElementaryGroup mParticleType; @@ -107,4 +119,35 @@ public class Particle { aMap.put(this); } + + public static ItemStack getIon(String aElementName, int aCharge) { + for (String g : gtPlusPlus.core.item.chemistry.IonParticles.NameToMetaMap.keySet()) { + if (g.toLowerCase().equals(Utils.sanitizeString(aElementName.toLowerCase()))){ + Integer meta = gtPlusPlus.core.item.chemistry.IonParticles.NameToMetaMap.get(Utils.sanitizeString(aElementName.toLowerCase())); + if (meta == null) { + meta = 0; + } + ItemStack aIon = ItemUtils.simpleMetaStack(ModItems.itemIonParticleBase, meta, 1); + if (aCharge != 0) { + IonParticles.setChargeState(aIon, aCharge); + } + return aIon; + } + } + return null; + } + + public static ItemStack getBaseParticle(Particle aParticle) { + String aPartName = Utils.sanitizeString(aParticle.mParticleName.toLowerCase()); + for (String g : gtPlusPlus.core.item.chemistry.StandardBaseParticles.NameToMetaMap.keySet()) { + if (g.toLowerCase().equals(aPartName)){ + Integer meta = gtPlusPlus.core.item.chemistry.StandardBaseParticles.NameToMetaMap.get(aPartName); + if (meta == null) { + meta = 0; + } + return ItemUtils.simpleMetaStack(ModItems.itemStandarParticleBase, meta, 1); + } + } + return null; + } } diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java index e2c69277f6..627c171a00 100644 --- a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java +++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java @@ -1,22 +1,25 @@ package gtPlusPlus.core.recipe; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; - -import static gtPlusPlus.core.util.minecraft.ItemUtils.getSimpleStack; - import gregtech.api.GregTech_API; -import gregtech.api.enums.*; -import gregtech.api.util.*; - +import gregtech.api.enums.ConfigCategories; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; +import gregtech.api.util.HotFuel; +import gregtech.api.util.ThermalFuel; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.block.ModBlocks; import gtPlusPlus.core.item.ModItems; +import gtPlusPlus.core.item.chemistry.IonParticles; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.lib.LoadedMods; import gtPlusPlus.core.material.ALLOY; import gtPlusPlus.core.material.ELEMENT; +import gtPlusPlus.core.material.Particle; import gtPlusPlus.core.material.nuclear.FLUORIDES; import gtPlusPlus.core.material.nuclear.NUCLIDE; import gtPlusPlus.core.recipe.common.CI; @@ -25,10 +28,12 @@ import gtPlusPlus.core.util.minecraft.EnchantingUtils; import gtPlusPlus.core.util.minecraft.FluidUtils; import gtPlusPlus.core.util.minecraft.ItemUtils; import gtPlusPlus.core.util.minecraft.MaterialUtils; -import gtPlusPlus.core.util.minecraft.RecipeUtils; import gtPlusPlus.core.util.reflect.AddGregtechRecipe; import gtPlusPlus.everglades.dimension.Dimension_Everglades; import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; public class RECIPES_GREGTECH { @@ -70,9 +75,42 @@ public class RECIPES_GREGTECH { extruderRecipes(); cuttingSawRecipes(); breweryRecipes(); + laserEngraverRecipes(); addFuels(); } + private static void laserEngraverRecipes() { + + GT_Values.RA.addLaserEngraverRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Tungsten, 6L), + GregtechItemList.Laser_Lens_Special.get(0), + ELEMENT.STANDALONE.CELESTIAL_TUNGSTEN.getDust(1), + 20 * 60 * 3, + MaterialUtils.getVoltageForTier(ELEMENT.STANDALONE.CELESTIAL_TUNGSTEN.vTier)); + + GT_Values.RA.addLaserEngraverRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Titanium, 8L), + GregtechItemList.Laser_Lens_Special.get(0), + ELEMENT.STANDALONE.ASTRAL_TITANIUM.getDust(1), + 20 * 60 * 2, + MaterialUtils.getVoltageForTier(ELEMENT.STANDALONE.ASTRAL_TITANIUM.vTier)); + + GT_Values.RA.addLaserEngraverRecipe( + ALLOY.NITINOL_60.getBlock(2), + GregtechItemList.Laser_Lens_Special.get(0), + ELEMENT.STANDALONE.ADVANCED_NITINOL.getBlock(1), + 20 * 60 * 1, + MaterialUtils.getVoltageForTier(ELEMENT.STANDALONE.ADVANCED_NITINOL.vTier)); + + GT_Values.RA.addLaserEngraverRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glass, 64L), + GregtechItemList.Laser_Lens_Special.get(0), + ELEMENT.STANDALONE.CHRONOMATIC_GLASS.getDust(1), + 20 * 60 * 5, + MaterialUtils.getVoltageForTier(ELEMENT.STANDALONE.CHRONOMATIC_GLASS.vTier)); + + } + private static void breweryRecipes() { CORE.RA.addBrewingRecipe(14, EnchantingUtils.getMobEssence(100), EnchantingUtils.getLiquidXP(1332), 100, 120, false); CORE.RA.addBrewingRecipe(14, EnchantingUtils.getLiquidXP(1332), EnchantingUtils.getMobEssence(100), 100, 120, false); @@ -481,10 +519,9 @@ public class RECIPES_GREGTECH { } // Calcium Hydroxide - if ((ItemUtils.getItemStackOfAmountFromOreDict("dustQuicklime", 1).getItem() != ModItems.AAA_Broken) - || LoadedMods.IHL) { + if ((ItemUtils.checkForInvalidItems(ItemUtils.getItemStackOfAmountFromOreDict("dustQuicklime", 1))) || LoadedMods.IHL) { try { - + CORE.RA.addDehydratorRecipe( new ItemStack[] { ItemUtils.getItemStackOfAmountFromOreDict("dustQuicklime", 10) }, // Item FluidUtils.getFluidStack("water", 10000), // Fluid input @@ -1261,39 +1298,218 @@ public class RECIPES_GREGTECH { //Polonium CORE.RA.addCyclotronRecipe(CI.getNumberedCircuit(0), FluidUtils.getFluidStack("molten.bismuth", 1), - new ItemStack[] { GregtechItemList.Pellet_RTG_PO210.get(1) }, null, new int[] { 100 }, 20 * 300, 2040, + new ItemStack[] { GregtechItemList.Pellet_RTG_PO210.get(1) }, null, new int[] { 100 }, 20 * 300 * 100, 2040, 500 * 20); //Americium CORE.RA.addCyclotronRecipe(CI.getNumberedCircuit(0), FluidUtils.getFluidStack("molten.americium", 1), - new ItemStack[] { GregtechItemList.Pellet_RTG_AM241.get(4) }, null, new int[] { 2500 }, 20 * 300, 1020, + new ItemStack[] { GregtechItemList.Pellet_RTG_AM241.get(4) }, null, new int[] { 2500 }, 20 * 300 * 100, 1020, 500 * 20); //PO Special Value //Strontium u235 CORE.RA.addCyclotronRecipe(CI.getNumberedCircuit(0), FluidUtils.getFluidStack("molten.uranium235", 10), - new ItemStack[] { GregtechItemList.Pellet_RTG_SR90.get(1) }, null, new int[] { 570 }, 20 * 300, 1020, + new ItemStack[] { GregtechItemList.Pellet_RTG_SR90.get(1) }, null, new int[] { 570 }, 20 * 300 * 100, 1020, 500 * 20); //PO Special Value //Strontium u233 CORE.RA.addCyclotronRecipe(CI.getNumberedCircuit(0), FluidUtils.getFluidStack("molten.uranium233", 10), - new ItemStack[] { GregtechItemList.Pellet_RTG_SR90.get(1) }, null, new int[] { 660 }, 20 * 300, 1020, + new ItemStack[] { GregtechItemList.Pellet_RTG_SR90.get(1) }, null, new int[] { 660 }, 20 * 300 * 100, 1020, 500 * 20); //PO Special Value //Strontium pu239 CORE.RA.addCyclotronRecipe(CI.getNumberedCircuit(0), FluidUtils.getFluidStack("molten.plutonium239", 10), - new ItemStack[] { GregtechItemList.Pellet_RTG_SR90.get(1) }, null, new int[] { 220 }, 20 * 300, 1020, + new ItemStack[] { GregtechItemList.Pellet_RTG_SR90.get(1) }, null, new int[] { 220 }, 20 * 300 * 100, 1020, 500 * 20); //PO Special Value //Plutonium CORE.RA.addCyclotronRecipe(CI.getNumberedCircuit(0), FluidUtils.getFluidStack("molten.plutonium238", 1), - new ItemStack[] { GregtechItemList.Pellet_RTG_PU2