aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kubatech/loaders/item/KubaItems.java
diff options
context:
space:
mode:
authorRaven Szewczyk <git@eigenraven.me>2024-05-25 14:42:41 +0100
committerRaven Szewczyk <git@eigenraven.me>2024-05-25 14:42:41 +0100
commit8aa595f083b5c3e43246119fca5f4263f81e851b (patch)
tree157d2b528e4b4ea0321022ebfee398f559a9e121 /src/main/java/kubatech/loaders/item/KubaItems.java
parent14a97a5a177399cd8df7f246856c08fcda441afd (diff)
downloadGT5-Unofficial-8aa595f083b5c3e43246119fca5f4263f81e851b.tar.gz
GT5-Unofficial-8aa595f083b5c3e43246119fca5f4263f81e851b.tar.bz2
GT5-Unofficial-8aa595f083b5c3e43246119fca5f4263f81e851b.zip
Migrate kubatech source code
Diffstat (limited to 'src/main/java/kubatech/loaders/item/KubaItems.java')
-rw-r--r--src/main/java/kubatech/loaders/item/KubaItems.java144
1 files changed, 144 insertions, 0 deletions
diff --git a/src/main/java/kubatech/loaders/item/KubaItems.java b/src/main/java/kubatech/loaders/item/KubaItems.java
new file mode 100644
index 0000000000..3dde241ff5
--- /dev/null
+++ b/src/main/java/kubatech/loaders/item/KubaItems.java
@@ -0,0 +1,144 @@
+/*
+ * spotless:off
+ * KubaTech - Gregtech Addon
+ * Copyright (C) 2022 - 2024 kuba6000
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library. If not, see <https://www.gnu.org/licenses/>.
+ * spotless:on
+ */
+
+package kubatech.loaders.item;
+
+import static kubatech.kubatech.KT;
+
+import java.util.HashMap;
+import java.util.List;
+
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.EnumAction;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.IIcon;
+import net.minecraft.world.World;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import kubatech.loaders.ItemLoader;
+
+public class KubaItems extends Item {
+
+ private static final HashMap<Integer, ItemProxy> items = new HashMap<>();
+ private static int idCounter = 0;
+
+ public KubaItems() {
+ this.setMaxDamage(0);
+ this.setHasSubtypes(true);
+ this.setCreativeTab(KT);
+ this.setUnlocalizedName("kubaitems");
+ }
+
+ public ItemStack registerProxyItem(ItemProxy item) {
+ items.put(idCounter, item);
+ item.ItemInit(idCounter);
+ return new ItemStack(this, 1, idCounter++);
+ }
+
+ private ItemProxy getItem(ItemStack stack) {
+ return items.get(stack.getItemDamage());
+ }
+
+ public static ItemProxy getItemProxy(ItemStack stack) {
+ if (!(stack.getItem() instanceof KubaItems)) return null;
+ return ItemLoader.kubaitems.getItem(stack);
+ }
+
+ private ItemProxy getItem(int damage) {
+ return items.get(damage);
+ }
+
+ @Override
+ public boolean onItemUse(ItemStack p_77648_1_, EntityPlayer p_77648_2_, World p_77648_3_, int p_77648_4_,
+ int p_77648_5_, int p_77648_6_, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_) {
+ return false;
+ }
+
+ @Override
+ public EnumAction getItemUseAction(ItemStack p_77661_1_) {
+ return getItem(p_77661_1_).getItemUseAction(p_77661_1_);
+ }
+
+ @Override
+ public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) {
+ return getItem(p_77659_1_).onItemRightClick(p_77659_1_, p_77659_2_, p_77659_3_);
+ }
+
+ @Override
+ public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_) {
+ return getItem(p_77654_1_).onEaten(p_77654_1_, p_77654_2_, p_77654_3_);
+ }
+
+ @Override
+ public int getMaxItemUseDuration(ItemStack p_77626_1_) {
+ return getItem(p_77626_1_).getMaxItemUseDuration();
+ }
+
+ @Override
+ public int getMetadata(int p_77647_1_) {
+ return p_77647_1_;
+ }
+
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ @Override
+ public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List p_77624_3_, boolean p_77624_4_) {
+ getItem(p_77624_1_).addInformation(p_77624_1_, p_77624_2_, (List<String>) p_77624_3_, p_77624_4_);
+ }
+
+ @Override
+ public String getUnlocalizedName(ItemStack p_77667_1_) {
+ return getItem(p_77667_1_).getUnlocalizedName();
+ }
+
+ @Override
+ public String getItemStackDisplayName(ItemStack p_77653_1_) {
+ return getItem(p_77653_1_).getDisplayName(p_77653_1_);
+ }
+
+ @SideOnly(Side.CLIENT)
+ @Override
+ public void registerIcons(IIconRegister p_94581_1_) {
+ items.values()
+ .forEach(t -> t.registerIcon(p_94581_1_));
+ }
+
+ @SideOnly(Side.CLIENT)
+ @Override
+ public IIcon getIconFromDamage(int damage) {
+ return getItem(damage).getIcon();
+ }
+
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ @Override
+ public void getSubItems(Item p_150895_1_, CreativeTabs p_150895_2_, List p_150895_3_) {
+ for (int i = 0; i < items.size(); i++) p_150895_3_.add(new ItemStack(p_150895_1_, 1, i));
+ }
+
+ @Override
+ public void onUpdate(ItemStack p_77663_1_, World p_77663_2_, Entity p_77663_3_, int p_77663_4_,
+ boolean p_77663_5_) {
+ getItem(p_77663_1_).onUpdate(p_77663_1_, p_77663_2_, p_77663_3_, p_77663_4_, p_77663_5_);
+ }
+}