aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/goodgenerator/items/nuclear
diff options
context:
space:
mode:
authorGlodBlock <1356392126@qq.com>2021-12-07 23:02:17 +0800
committerGlodBlock <1356392126@qq.com>2021-12-07 23:02:17 +0800
commit92238a0f3b06a80683f50dfd2d6e9164d2d0f1ab (patch)
tree2d1118c74e43d5f4337266c3d64f1921c0526d42 /src/main/java/goodgenerator/items/nuclear
parent06cac63657f40c489477abe923ea3f144fe6749c (diff)
downloadGT5-Unofficial-92238a0f3b06a80683f50dfd2d6e9164d2d0f1ab.tar.gz
GT5-Unofficial-92238a0f3b06a80683f50dfd2d6e9164d2d0f1ab.tar.bz2
GT5-Unofficial-92238a0f3b06a80683f50dfd2d6e9164d2d0f1ab.zip
rename package
Diffstat (limited to 'src/main/java/goodgenerator/items/nuclear')
-rw-r--r--src/main/java/goodgenerator/items/nuclear/IsotopeMaterial.java55
-rw-r--r--src/main/java/goodgenerator/items/nuclear/IsotopeMaterialLoader.java16
-rw-r--r--src/main/java/goodgenerator/items/nuclear/NuclearMetaItemGenerator.java103
-rw-r--r--src/main/java/goodgenerator/items/nuclear/NuclearTextures.java31
4 files changed, 205 insertions, 0 deletions
diff --git a/src/main/java/goodgenerator/items/nuclear/IsotopeMaterial.java b/src/main/java/goodgenerator/items/nuclear/IsotopeMaterial.java
new file mode 100644
index 0000000000..3d3d36cee0
--- /dev/null
+++ b/src/main/java/goodgenerator/items/nuclear/IsotopeMaterial.java
@@ -0,0 +1,55 @@
+package goodgenerator.items.nuclear;
+
+import goodgenerator.loader.Loaders;
+import net.minecraft.item.ItemStack;
+
+import java.util.HashMap;
+import java.util.HashSet;
+
+public class IsotopeMaterial {
+
+ public static final HashSet<IsotopeMaterial> mIsotopeMaterial = new HashSet<>();
+ public static final HashMap<Integer, IsotopeMaterial> mIDMap = new HashMap<>();
+ public static final HashMap<String, IsotopeMaterial> mNameMap = new HashMap<>();
+
+ public final int mID;
+ public final int mNeutron;
+ public final String mName;
+ public final String mLocalizedName;
+ public final String mMaterialName;
+ public final short[] mRGB;
+ public final NuclearTextures mTexture;
+
+ public IsotopeMaterial(int aID, String aName, String aMaterialName, String aLocalizedName, NuclearTextures aTexture, int aR, int aG, int aB, int aNeutron) {
+ this.mID = aID;
+ this.mNeutron = aNeutron;
+ this.mName = aName;
+ this.mMaterialName = aMaterialName;
+ this.mLocalizedName = aLocalizedName;
+ this.mRGB = new short[] {(short) aR,(short) aG,(short) aB, 0};
+ this.mTexture = aTexture;
+ mIsotopeMaterial.add(this);
+ mIDMap.put(this.mID, this);
+ mNameMap.put(this.mName, this);
+ }
+
+ public ItemStack getFull(int aAmount) {
+ if (aAmount > 64) aAmount = 64;
+ return new ItemStack(Loaders.Isotope, aAmount, mID + 1000);
+ }
+
+ public ItemStack getTiny(int aAmount) {
+ if (aAmount > 64) aAmount = 64;
+ return new ItemStack(Loaders.Isotope, aAmount, mID + 2000);
+ }
+
+ public ItemStack getFullOxide(int aAmount) {
+ if (aAmount > 64) aAmount = 64;
+ return new ItemStack(Loaders.Isotope, aAmount, mID + 3000);
+ }
+
+ public ItemStack getTinyOxide(int aAmount) {
+ if (aAmount > 64) aAmount = 64;
+ return new ItemStack(Loaders.Isotope, aAmount, mID + 4000);
+ }
+}
diff --git a/src/main/java/goodgenerator/items/nuclear/IsotopeMaterialLoader.java b/src/main/java/goodgenerator/items/nuclear/IsotopeMaterialLoader.java
new file mode 100644
index 0000000000..75c2dba39c
--- /dev/null
+++ b/src/main/java/goodgenerator/items/nuclear/IsotopeMaterialLoader.java
@@ -0,0 +1,16 @@
+package goodgenerator.items.nuclear;
+
+public class IsotopeMaterialLoader implements Runnable {
+
+ protected static final int OffsetID = 0;
+
+ public static final IsotopeMaterial Thorium232 = new IsotopeMaterial(
+ OffsetID,
+ "Thorium232", "Thorium", "Thorium-232",
+ NuclearTextures.STABLE1, 59, 59, 59,
+ 232
+ );
+
+ @Override
+ public void run() { }
+}
diff --git a/src/main/java/goodgenerator/items/nuclear/NuclearMetaItemGenerator.java b/src/main/java/goodgenerator/items/nuclear/NuclearMetaItemGenerator.java
new file mode 100644
index 0000000000..bd530699b3
--- /dev/null
+++ b/src/main/java/goodgenerator/items/nuclear/NuclearMetaItemGenerator.java
@@ -0,0 +1,103 @@
+package goodgenerator.items.nuclear;
+
+import com.github.bartimaeusnek.bartworks.util.Pair;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import goodgenerator.main.GoodGenerator;
+import gregtech.api.interfaces.IIconContainer;
+import gregtech.api.items.GT_MetaGenerated_Item;
+import gregtech.api.util.GT_LanguageManager;
+import gregtech.api.util.GT_OreDictUnificator;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.IIcon;
+
+import java.util.List;
+
+import static goodgenerator.items.nuclear.IsotopeMaterial.mIDMap;
+import static goodgenerator.items.nuclear.IsotopeMaterial.mIsotopeMaterial;
+
+public class NuclearMetaItemGenerator extends GT_MetaGenerated_Item {
+
+ /**
+ * <p>Full ingot - 1000
+ * <p>Tiny ingot - 2000
+ * <p>Full-Oxide - 3000
+ * <p>Tiny-Oxide - 4000
+ */
+ public static final Pair<Integer, String>[] TYPE_OFFSET = new Pair[] {
+ new Pair<>(1000, "%s"),
+ new Pair<>(2000, "Tiny of %s"),
+ new Pair<>(3000, "%s Oxide"),
+ new Pair<>(4000, "Tiny of %s Oxide"),
+ };
+ public static final Pair<Integer, String>[] OREPREFIX = new Pair[] {
+ new Pair<>(1000, "item%s"),
+ new Pair<>(2000, "itemTiny%s"),
+ new Pair<>(3000, "item%sOxide"),
+ new Pair<>(4000, "itemTiny%sOxide"),
+ };
+
+ public NuclearMetaItemGenerator() {
+ super("nuclearIsotopeMaterial", (short) 32766, (short) 0);
+ this.setCreativeTab(GoodGenerator.GG);
+ for (IsotopeMaterial tIsotope : mIsotopeMaterial) {
+ for (Pair<Integer, String> tType : TYPE_OFFSET) {
+ int tOffset = tType.getKey();
+ String tOreName = tType.getValue();
+ ItemStack tStack = new ItemStack(this, 1, tIsotope.mID + tOffset);
+ GT_LanguageManager.addStringLocalization(this.getUnlocalizedName(tStack) + ".name", String.format(tOreName, tIsotope.mLocalizedName));
+ GT_LanguageManager.addStringLocalization(this.getUnlocalizedName(tStack) + ".tooltip", String.format("§b%s's Isotope.§r", tIsotope.mMaterialName));
+ }
+ for (Pair<Integer, String> tOreDict : OREPREFIX) {
+ int tOffset = tOreDict.getKey();
+ String tOreName = tOreDict.getValue();
+ ItemStack tStack = new ItemStack(this, 1, tIsotope.mID + tOffset);
+ GT_OreDictUnificator.registerOre(String.format(tOreName, tIsotope.mName), tStack);
+ }
+ }
+ }
+
+ @Override
+ public String getItemStackDisplayName(ItemStack aStack) {
+ return GT_LanguageManager.getTranslation(this.getUnlocalizedName(aStack) + ".name");
+ }
+
+ @Override
+ public IIconContainer getIconContainer(int aMetaData) {
+ int tID = aMetaData % 1000;
+ int tType = aMetaData / 1000 - 1;
+ IsotopeMaterial tMaterial = mIDMap.get(tID);
+ if (tMaterial != null) {
+ return tMaterial.mTexture.mTextures[tType];
+ }
+ return null;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void getSubItems(Item var1, CreativeTabs aCreativeTab, List aList) {
+ for (IsotopeMaterial tIsotope : mIsotopeMaterial) {
+ for (int i = 1; i <= 4; i ++) {
+ ItemStack tStack = new ItemStack(this, 1, tIsotope.mID + i * 1000);
+ aList.add(tStack);
+ }
+ }
+ }
+
+ @Override
+ public short[] getRGBa(ItemStack aStack) {
+ int tID = aStack.getItemDamage() % 1000;
+ IsotopeMaterial tMaterial = mIDMap.get(tID);
+ if (tMaterial != null) {
+ return tMaterial.mRGB;
+ }
+ return null;
+ }
+
+ @Override
+ public final IIcon getIconFromDamage(int aMetaData) {
+ return this.getIconContainer(aMetaData).getIcon();
+ }
+}
diff --git a/src/main/java/goodgenerator/items/nuclear/NuclearTextures.java b/src/main/java/goodgenerator/items/nuclear/NuclearTextures.java
new file mode 100644
index 0000000000..b68c31a014
--- /dev/null
+++ b/src/main/java/goodgenerator/items/nuclear/NuclearTextures.java
@@ -0,0 +1,31 @@
+package goodgenerator.items.nuclear;
+
+import gregtech.api.enums.Textures;
+import gregtech.api.interfaces.IIconContainer;
+
+public class NuclearTextures {
+ public static final NuclearTextures
+ STABLE1 = new NuclearTextures("stable1"),
+ STABLE2 = new NuclearTextures("stable2"),
+ UNSTABLE1 = new NuclearTextures("unstable1"),
+ UNSTABLE2 = new NuclearTextures("unstable2"),
+ UNSTABLE3 = new NuclearTextures("unstable3"),
+ UNSTABLE4 = new NuclearTextures("unstable4");
+
+ public final IIconContainer[] mTextures = new IIconContainer[4];
+ public final String mSetName;
+ public static final String mTextureDir = "icons/isotope/";
+ public static final int
+ FULL = 0,
+ TINY = 1,
+ FULL_OXIDE = 2,
+ TINY_OXIDE = 3;
+
+ public NuclearTextures(String aName) {
+ mSetName = aName;
+ mTextures[0] = new Textures.ItemIcons.CustomIcon(mTextureDir + aName);
+ mTextures[1] = new Textures.ItemIcons.CustomIcon(mTextureDir + aName + "tiny");
+ mTextures[2] = new Textures.ItemIcons.CustomIcon(mTextureDir + aName);
+ mTextures[3] = new Textures.ItemIcons.CustomIcon(mTextureDir + aName + "tiny");
+ }
+}