From f297a522a933faedd861d190f8882b717771cf5f Mon Sep 17 00:00:00 2001 From: sisyphussy <221229741+sisyphussy@users.noreply.github.com> Date: Sat, 14 Feb 2026 23:00:32 +0100 Subject: [PATCH] Better item registry (#64) Co-authored-by: Martin Robertz Co-authored-by: boubou19 --- .../common/block/BlockAnimationTablet.java | 6 - .../common/block/BlockAspectAnalyzer.java | 6 - .../tinkerer/common/block/BlockEnchanter.java | 6 - .../tinkerer/common/block/BlockFunnel.java | 6 - .../tinkerer/common/block/BlockGas.java | 5 - .../common/block/BlockGolemConnector.java | 7 - .../common/block/BlockInfusedFarmland.java | 6 - .../common/block/BlockInfusedGrain.java | 5 - .../tinkerer/common/block/BlockMagnet.java | 6 - .../tinkerer/common/block/BlockMod.java | 7 - .../tinkerer/common/block/BlockPlatform.java | 6 - .../tinkerer/common/block/BlockRPlacer.java | 6 - .../tinkerer/common/block/BlockRepairer.java | 6 - .../tinkerer/common/block/BlockSummon.java | 6 - .../common/block/BlockTravelSlab.java | 8 +- .../common/block/BlockTravelStairs.java | 7 - .../tinkerer/common/block/BlockWardSlab.java | 8 +- .../common/block/fire/BlockFireBase.java | 6 - .../common/block/kami/BlockWarpGate.java | 6 - .../common/block/quartz/BlockDarkQuartz.java | 6 - .../block/quartz/BlockDarkQuartzSlab.java | 8 +- .../block/quartz/BlockDarkQuartzStairs.java | 7 - .../BlockTransvectorDislocator.java | 6 - .../BlockTransvectorInterface.java | 7 - .../tinkerer/common/item/ItemBlockFire.java | 7 - .../tinkerer/common/item/ItemBlockMagnet.java | 7 - .../tinkerer/common/item/ItemBloodSword.java | 7 - .../thaumic/tinkerer/common/item/ItemGas.java | 9 +- .../tinkerer/common/item/ItemGasRemover.java | 6 +- .../common/item/ItemInfusedPotion.java | 5 - .../common/item/ItemInfusedSeeds.java | 6 - .../common/item/ItemRevealingHelm.java | 6 - .../tinkerer/common/item/ItemTravelSlab.java | 9 +- .../tinkerer/common/item/ItemWardSlab.java | 9 +- .../common/item/foci/ItemModFocus.java | 6 - .../common/item/kami/ItemBlockWarpGate.java | 7 - .../common/item/kami/ItemIchorPouch.java | 6 - .../item/kami/armor/ItemIchorclothArmor.java | 10 +- .../kami/armor/ItemIchorclothArmorAdv.java | 4 +- .../item/kami/foci/ItemModKamiFocus.java | 6 - .../common/item/kami/tool/ItemIchorAxe.java | 7 - .../common/item/kami/tool/ItemIchorPick.java | 7 - .../item/kami/tool/ItemIchorShovel.java | 7 - .../common/item/kami/tool/ItemIchorSword.java | 7 - .../item/quartz/ItemDarkQuartzBlock.java | 7 - .../item/quartz/ItemDarkQuartzSlab.java | 9 +- .../common/registry/ITTinkererBlock.java | 18 +- .../common/registry/ITTinkererItem.java | 13 +- .../tinkerer/common/registry/ItemBase.java | 7 - .../tinkerer/common/registry/TTRegistry.java | 518 +++++++++++------- 50 files changed, 351 insertions(+), 512 deletions(-) diff --git a/src/main/java/thaumic/tinkerer/common/block/BlockAnimationTablet.java b/src/main/java/thaumic/tinkerer/common/block/BlockAnimationTablet.java index 0ed15539..fa3fd600 100644 --- a/src/main/java/thaumic/tinkerer/common/block/BlockAnimationTablet.java +++ b/src/main/java/thaumic/tinkerer/common/block/BlockAnimationTablet.java @@ -11,7 +11,6 @@ */ package thaumic.tinkerer.common.block; -import java.util.ArrayList; import java.util.Random; import net.minecraft.block.Block; @@ -208,11 +207,6 @@ public class BlockAnimationTablet extends BlockModContainer { return new TileAnimationTablet(); } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getBlockName() { return LibBlockNames.ANIMATION_TABLET; diff --git a/src/main/java/thaumic/tinkerer/common/block/BlockAspectAnalyzer.java b/src/main/java/thaumic/tinkerer/common/block/BlockAspectAnalyzer.java index 96650348..c64388c3 100644 --- a/src/main/java/thaumic/tinkerer/common/block/BlockAspectAnalyzer.java +++ b/src/main/java/thaumic/tinkerer/common/block/BlockAspectAnalyzer.java @@ -11,7 +11,6 @@ */ package thaumic.tinkerer.common.block; -import java.util.ArrayList; import java.util.Random; import net.minecraft.block.Block; @@ -135,11 +134,6 @@ public class BlockAspectAnalyzer extends BlockModContainer { return new TileAspectAnalyzer(); } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getBlockName() { return LibBlockNames.ASPECT_ANALYZER; diff --git a/src/main/java/thaumic/tinkerer/common/block/BlockEnchanter.java b/src/main/java/thaumic/tinkerer/common/block/BlockEnchanter.java index 7ff44a5f..e7dc33f2 100644 --- a/src/main/java/thaumic/tinkerer/common/block/BlockEnchanter.java +++ b/src/main/java/thaumic/tinkerer/common/block/BlockEnchanter.java @@ -11,7 +11,6 @@ */ package thaumic.tinkerer.common.block; -import java.util.ArrayList; import java.util.Random; import net.minecraft.block.Block; @@ -153,11 +152,6 @@ public class BlockEnchanter extends BlockModContainer { return new TileEnchanter(); } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getBlockName() { return LibBlockNames.ENCHANTER; diff --git a/src/main/java/thaumic/tinkerer/common/block/BlockFunnel.java b/src/main/java/thaumic/tinkerer/common/block/BlockFunnel.java index 42ceaf5e..ce7b078f 100644 --- a/src/main/java/thaumic/tinkerer/common/block/BlockFunnel.java +++ b/src/main/java/thaumic/tinkerer/common/block/BlockFunnel.java @@ -11,7 +11,6 @@ */ package thaumic.tinkerer.common.block; -import java.util.ArrayList; import java.util.Random; import net.minecraft.block.Block; @@ -179,11 +178,6 @@ public class BlockFunnel extends BlockModContainer { return new TileFunnel(); } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getBlockName() { return LibBlockNames.FUNNEL; diff --git a/src/main/java/thaumic/tinkerer/common/block/BlockGas.java b/src/main/java/thaumic/tinkerer/common/block/BlockGas.java index cec5cb6c..68f9f523 100644 --- a/src/main/java/thaumic/tinkerer/common/block/BlockGas.java +++ b/src/main/java/thaumic/tinkerer/common/block/BlockGas.java @@ -136,11 +136,6 @@ public abstract class BlockGas extends BlockMod implements ITTinkererBlock { return false; } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public boolean shouldRegister() { return true; diff --git a/src/main/java/thaumic/tinkerer/common/block/BlockGolemConnector.java b/src/main/java/thaumic/tinkerer/common/block/BlockGolemConnector.java index 61099692..1c0d0af6 100644 --- a/src/main/java/thaumic/tinkerer/common/block/BlockGolemConnector.java +++ b/src/main/java/thaumic/tinkerer/common/block/BlockGolemConnector.java @@ -1,7 +1,5 @@ package thaumic.tinkerer.common.block; -import java.util.ArrayList; - import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; import net.minecraft.init.Items; @@ -48,11 +46,6 @@ public class BlockGolemConnector extends BlockCamo { return true; } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getBlockName() { return LibBlockNames.GOLEMCONNECTOR; diff --git a/src/main/java/thaumic/tinkerer/common/block/BlockInfusedFarmland.java b/src/main/java/thaumic/tinkerer/common/block/BlockInfusedFarmland.java index a4d3cd27..2813adf3 100644 --- a/src/main/java/thaumic/tinkerer/common/block/BlockInfusedFarmland.java +++ b/src/main/java/thaumic/tinkerer/common/block/BlockInfusedFarmland.java @@ -1,6 +1,5 @@ package thaumic.tinkerer.common.block; -import java.util.ArrayList; import java.util.Random; import net.minecraft.block.BlockFarmland; @@ -53,11 +52,6 @@ public class BlockInfusedFarmland extends BlockFarmland implements ITTinkererBlo return new TileInfusedFarmland(); } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getBlockName() { return LibBlockNames.BLOCK_INFUSED_FARMLAND; diff --git a/src/main/java/thaumic/tinkerer/common/block/BlockInfusedGrain.java b/src/main/java/thaumic/tinkerer/common/block/BlockInfusedGrain.java index be9a7534..b069a1f7 100644 --- a/src/main/java/thaumic/tinkerer/common/block/BlockInfusedGrain.java +++ b/src/main/java/thaumic/tinkerer/common/block/BlockInfusedGrain.java @@ -200,11 +200,6 @@ public class BlockInfusedGrain extends BlockCrops implements ITTinkererBlock { return currentAspect; } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getBlockName() { return LibBlockNames.INFUSED_GRAIN_BLOCK; diff --git a/src/main/java/thaumic/tinkerer/common/block/BlockMagnet.java b/src/main/java/thaumic/tinkerer/common/block/BlockMagnet.java index d6b7f456..1783c600 100644 --- a/src/main/java/thaumic/tinkerer/common/block/BlockMagnet.java +++ b/src/main/java/thaumic/tinkerer/common/block/BlockMagnet.java @@ -11,7 +11,6 @@ */ package thaumic.tinkerer.common.block; -import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Random; @@ -191,11 +190,6 @@ public class BlockMagnet extends BlockModContainer implements IMultiTileEntityBl return (metadata & 2) == 2 ? new TileMobMagnet() : new TileMagnet(); } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getBlockName() { return LibBlockNames.MAGNET; diff --git a/src/main/java/thaumic/tinkerer/common/block/BlockMod.java b/src/main/java/thaumic/tinkerer/common/block/BlockMod.java index 2a97cf91..35cdd787 100644 --- a/src/main/java/thaumic/tinkerer/common/block/BlockMod.java +++ b/src/main/java/thaumic/tinkerer/common/block/BlockMod.java @@ -11,8 +11,6 @@ */ package thaumic.tinkerer.common.block; -import java.util.ArrayList; - import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; @@ -42,11 +40,6 @@ public abstract class BlockMod extends Block implements ITTinkererBlock { return true; } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public boolean shouldRegister() { return true; diff --git a/src/main/java/thaumic/tinkerer/common/block/BlockPlatform.java b/src/main/java/thaumic/tinkerer/common/block/BlockPlatform.java index e55340b3..2b0a30b2 100644 --- a/src/main/java/thaumic/tinkerer/common/block/BlockPlatform.java +++ b/src/main/java/thaumic/tinkerer/common/block/BlockPlatform.java @@ -11,7 +11,6 @@ */ package thaumic.tinkerer.common.block; -import java.util.ArrayList; import java.util.List; import net.minecraft.block.Block; @@ -65,11 +64,6 @@ public class BlockPlatform extends BlockCamo { return new TileCamo(); } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getBlockName() { return LibBlockNames.PLATFORM; diff --git a/src/main/java/thaumic/tinkerer/common/block/BlockRPlacer.java b/src/main/java/thaumic/tinkerer/common/block/BlockRPlacer.java index 2ba0e601..11eb11ee 100644 --- a/src/main/java/thaumic/tinkerer/common/block/BlockRPlacer.java +++ b/src/main/java/thaumic/tinkerer/common/block/BlockRPlacer.java @@ -1,6 +1,5 @@ package thaumic.tinkerer.common.block; -import java.util.ArrayList; import java.util.Random; import net.minecraft.block.Block; @@ -83,11 +82,6 @@ public class BlockRPlacer extends BlockCamo implements IWandable { return new TileRPlacer(); } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getBlockName() { return LibBlockNames.REMOTE_PLACER; diff --git a/src/main/java/thaumic/tinkerer/common/block/BlockRepairer.java b/src/main/java/thaumic/tinkerer/common/block/BlockRepairer.java index 5410b989..5054a889 100644 --- a/src/main/java/thaumic/tinkerer/common/block/BlockRepairer.java +++ b/src/main/java/thaumic/tinkerer/common/block/BlockRepairer.java @@ -11,7 +11,6 @@ */ package thaumic.tinkerer.common.block; -import java.util.ArrayList; import java.util.Random; import net.minecraft.block.Block; @@ -182,11 +181,6 @@ public class BlockRepairer extends BlockModContainer { return new TileRepairer(); } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getBlockName() { return LibBlockNames.REPAIRER; diff --git a/src/main/java/thaumic/tinkerer/common/block/BlockSummon.java b/src/main/java/thaumic/tinkerer/common/block/BlockSummon.java index 36226d3c..98fb82d7 100644 --- a/src/main/java/thaumic/tinkerer/common/block/BlockSummon.java +++ b/src/main/java/thaumic/tinkerer/common/block/BlockSummon.java @@ -11,7 +11,6 @@ */ package thaumic.tinkerer.common.block; -import java.util.ArrayList; import java.util.Random; import net.minecraft.block.Block; @@ -94,11 +93,6 @@ public class BlockSummon extends Block implements ITTinkererBlock { : par1 == ForgeDirection.DOWN.ordinal() ? Block.getBlockFromName("obsidian").getIcon(0, 0) : iconSide; } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getBlockName() { return LibBlockNames.SPAWNER; diff --git a/src/main/java/thaumic/tinkerer/common/block/BlockTravelSlab.java b/src/main/java/thaumic/tinkerer/common/block/BlockTravelSlab.java index b1eb9cb3..fc60d73b 100644 --- a/src/main/java/thaumic/tinkerer/common/block/BlockTravelSlab.java +++ b/src/main/java/thaumic/tinkerer/common/block/BlockTravelSlab.java @@ -1,8 +1,8 @@ package thaumic.tinkerer.common.block; -import java.util.ArrayList; import java.util.Random; +import net.minecraft.block.Block; import net.minecraft.block.BlockSlab; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; @@ -81,10 +81,8 @@ public class BlockTravelSlab extends BlockSlab implements ITTinkererBlock { } @Override - public ArrayList getSpecialParameters() { - ArrayList result = new ArrayList(); - result.add(true); - return result; + public Block[] getMetaBlocks() { + return new Block[] { new BlockTravelSlab(true) }; } @Override diff --git a/src/main/java/thaumic/tinkerer/common/block/BlockTravelStairs.java b/src/main/java/thaumic/tinkerer/common/block/BlockTravelStairs.java index 5a725e77..52726fa0 100644 --- a/src/main/java/thaumic/tinkerer/common/block/BlockTravelStairs.java +++ b/src/main/java/thaumic/tinkerer/common/block/BlockTravelStairs.java @@ -1,7 +1,5 @@ package thaumic.tinkerer.common.block; -import java.util.ArrayList; - import net.minecraft.block.BlockStairs; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -32,11 +30,6 @@ public class BlockTravelStairs extends BlockStairs implements ITTinkererBlock { setCreativeTab(ModCreativeTab.INSTANCE); } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getBlockName() { return LibBlockNames.TRAVEL_STAIRS; diff --git a/src/main/java/thaumic/tinkerer/common/block/BlockWardSlab.java b/src/main/java/thaumic/tinkerer/common/block/BlockWardSlab.java index f8d34175..aaa712af 100644 --- a/src/main/java/thaumic/tinkerer/common/block/BlockWardSlab.java +++ b/src/main/java/thaumic/tinkerer/common/block/BlockWardSlab.java @@ -1,9 +1,9 @@ package thaumic.tinkerer.common.block; -import java.util.ArrayList; import java.util.List; import java.util.Random; +import net.minecraft.block.Block; import net.minecraft.block.BlockSlab; import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.material.Material; @@ -88,10 +88,8 @@ public class BlockWardSlab extends BlockSlab implements ITTinkererBlock, ITileEn } @Override - public ArrayList getSpecialParameters() { - ArrayList result = new ArrayList(); - result.add(true); - return result; + public Block[] getMetaBlocks() { + return new Block[] { new BlockWardSlab(true) }; } @Override diff --git a/src/main/java/thaumic/tinkerer/common/block/fire/BlockFireBase.java b/src/main/java/thaumic/tinkerer/common/block/fire/BlockFireBase.java index e2abf276..38422238 100644 --- a/src/main/java/thaumic/tinkerer/common/block/fire/BlockFireBase.java +++ b/src/main/java/thaumic/tinkerer/common/block/fire/BlockFireBase.java @@ -7,7 +7,6 @@ import static net.minecraftforge.common.util.ForgeDirection.SOUTH; import static net.minecraftforge.common.util.ForgeDirection.UP; import static net.minecraftforge.common.util.ForgeDirection.WEST; -import java.util.ArrayList; import java.util.HashMap; import java.util.Random; @@ -389,11 +388,6 @@ public abstract class BlockFireBase extends BlockFire implements ITTinkererBlock return MapColor.tntColor; } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public boolean shouldRegister() { return true; diff --git a/src/main/java/thaumic/tinkerer/common/block/kami/BlockWarpGate.java b/src/main/java/thaumic/tinkerer/common/block/kami/BlockWarpGate.java index fa57dffd..e0dc51b5 100644 --- a/src/main/java/thaumic/tinkerer/common/block/kami/BlockWarpGate.java +++ b/src/main/java/thaumic/tinkerer/common/block/kami/BlockWarpGate.java @@ -11,7 +11,6 @@ */ package thaumic.tinkerer.common.block.kami; -import java.util.ArrayList; import java.util.Random; import net.minecraft.block.Block; @@ -151,11 +150,6 @@ public class BlockWarpGate extends BlockModContainer { return false; } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getBlockName() { return LibBlockNames.WARP_GATE; diff --git a/src/main/java/thaumic/tinkerer/common/block/quartz/BlockDarkQuartz.java b/src/main/java/thaumic/tinkerer/common/block/quartz/BlockDarkQuartz.java index 0c8ba6d9..053cd177 100644 --- a/src/main/java/thaumic/tinkerer/common/block/quartz/BlockDarkQuartz.java +++ b/src/main/java/thaumic/tinkerer/common/block/quartz/BlockDarkQuartz.java @@ -11,7 +11,6 @@ */ package thaumic.tinkerer.common.block.quartz; -import java.util.ArrayList; import java.util.List; import net.minecraft.block.material.Material; @@ -130,11 +129,6 @@ public class BlockDarkQuartz extends BlockMod { pillarDarkQuartzIcon = IconHelper.forName(par1IconRegister, "pillarDarkQuartz1"); } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getBlockName() { return LibBlockNames.DARK_QUARTZ; diff --git a/src/main/java/thaumic/tinkerer/common/block/quartz/BlockDarkQuartzSlab.java b/src/main/java/thaumic/tinkerer/common/block/quartz/BlockDarkQuartzSlab.java index f9198623..93885a59 100644 --- a/src/main/java/thaumic/tinkerer/common/block/quartz/BlockDarkQuartzSlab.java +++ b/src/main/java/thaumic/tinkerer/common/block/quartz/BlockDarkQuartzSlab.java @@ -11,9 +11,9 @@ */ package thaumic.tinkerer.common.block.quartz; -import java.util.ArrayList; import java.util.Random; +import net.minecraft.block.Block; import net.minecraft.block.BlockSlab; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; @@ -83,10 +83,8 @@ public class BlockDarkQuartzSlab extends BlockSlab implements ITTinkererBlock { } @Override - public ArrayList getSpecialParameters() { - ArrayList result = new ArrayList(); - result.add(true); - return result; + public Block[] getMetaBlocks() { + return new Block[] { new BlockDarkQuartzSlab(true) }; } @Override diff --git a/src/main/java/thaumic/tinkerer/common/block/quartz/BlockDarkQuartzStairs.java b/src/main/java/thaumic/tinkerer/common/block/quartz/BlockDarkQuartzStairs.java index a76eb440..b0690f75 100644 --- a/src/main/java/thaumic/tinkerer/common/block/quartz/BlockDarkQuartzStairs.java +++ b/src/main/java/thaumic/tinkerer/common/block/quartz/BlockDarkQuartzStairs.java @@ -11,8 +11,6 @@ */ package thaumic.tinkerer.common.block.quartz; -import java.util.ArrayList; - import net.minecraft.block.BlockStairs; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; @@ -35,11 +33,6 @@ public class BlockDarkQuartzStairs extends BlockStairs implements ITTinkererBloc setCreativeTab(ModCreativeTab.INSTANCE); } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getBlockName() { return LibBlockNames.DARK_QUARTZ_STAIRS; diff --git a/src/main/java/thaumic/tinkerer/common/block/transvector/BlockTransvectorDislocator.java b/src/main/java/thaumic/tinkerer/common/block/transvector/BlockTransvectorDislocator.java index 3860b680..dbfbff41 100644 --- a/src/main/java/thaumic/tinkerer/common/block/transvector/BlockTransvectorDislocator.java +++ b/src/main/java/thaumic/tinkerer/common/block/transvector/BlockTransvectorDislocator.java @@ -11,7 +11,6 @@ */ package thaumic.tinkerer.common.block.transvector; -import java.util.ArrayList; import java.util.Random; import net.minecraft.block.Block; @@ -134,11 +133,6 @@ public class BlockTransvectorDislocator extends BlockCamo { return new TileTransvectorDislocator(); } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getBlockName() { return LibBlockNames.DISLOCATOR; diff --git a/src/main/java/thaumic/tinkerer/common/block/transvector/BlockTransvectorInterface.java b/src/main/java/thaumic/tinkerer/common/block/transvector/BlockTransvectorInterface.java index cb7e43d0..81c6c95d 100644 --- a/src/main/java/thaumic/tinkerer/common/block/transvector/BlockTransvectorInterface.java +++ b/src/main/java/thaumic/tinkerer/common/block/transvector/BlockTransvectorInterface.java @@ -11,8 +11,6 @@ */ package thaumic.tinkerer.common.block.transvector; -import java.util.ArrayList; - import net.minecraft.block.material.Material; import net.minecraft.init.Items; import net.minecraft.item.ItemBlock; @@ -49,11 +47,6 @@ public class BlockTransvectorInterface extends BlockCamo { return new TileTransvectorInterface(); } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getBlockName() { return LibBlockNames.INTERFACE; diff --git a/src/main/java/thaumic/tinkerer/common/item/ItemBlockFire.java b/src/main/java/thaumic/tinkerer/common/item/ItemBlockFire.java index 81137da3..2607dc6a 100644 --- a/src/main/java/thaumic/tinkerer/common/item/ItemBlockFire.java +++ b/src/main/java/thaumic/tinkerer/common/item/ItemBlockFire.java @@ -1,7 +1,5 @@ package thaumic.tinkerer.common.item; -import java.util.ArrayList; - import net.minecraft.block.Block; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.item.ItemBlock; @@ -32,11 +30,6 @@ public class ItemBlockFire extends ItemBlock implements ITTinkererItem { return 0; } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getItemName() { return ((ITTinkererBlock) field_150939_a).getBlockName(); diff --git a/src/main/java/thaumic/tinkerer/common/item/ItemBlockMagnet.java b/src/main/java/thaumic/tinkerer/common/item/ItemBlockMagnet.java index 01febed7..08366fe7 100644 --- a/src/main/java/thaumic/tinkerer/common/item/ItemBlockMagnet.java +++ b/src/main/java/thaumic/tinkerer/common/item/ItemBlockMagnet.java @@ -11,8 +11,6 @@ */ package thaumic.tinkerer.common.item; -import java.util.ArrayList; - import net.minecraft.block.Block; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; @@ -39,11 +37,6 @@ public class ItemBlockMagnet extends ItemBlock implements ITTinkererItem { return "tile." + (par1ItemStack.getItemDamage() == 0 ? LibBlockNames.MAGNET : LibBlockNames.MOB_MAGNET); } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getItemName() { return LibBlockNames.MAGNET; diff --git a/src/main/java/thaumic/tinkerer/common/item/ItemBloodSword.java b/src/main/java/thaumic/tinkerer/common/item/ItemBloodSword.java index 06914539..a4049830 100644 --- a/src/main/java/thaumic/tinkerer/common/item/ItemBloodSword.java +++ b/src/main/java/thaumic/tinkerer/common/item/ItemBloodSword.java @@ -11,8 +11,6 @@ */ package thaumic.tinkerer.common.item; -import java.util.ArrayList; - import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -133,11 +131,6 @@ public class ItemBloodSword extends ItemSword implements IRepairable, ITTinkerer return cache; } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getItemName() { return LibItemNames.BLOOD_SWORD; diff --git a/src/main/java/thaumic/tinkerer/common/item/ItemGas.java b/src/main/java/thaumic/tinkerer/common/item/ItemGas.java index 7a0468c0..c909e4a4 100644 --- a/src/main/java/thaumic/tinkerer/common/item/ItemGas.java +++ b/src/main/java/thaumic/tinkerer/common/item/ItemGas.java @@ -11,10 +11,9 @@ */ package thaumic.tinkerer.common.item; -import java.util.ArrayList; - import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -48,10 +47,8 @@ public class ItemGas extends ItemBase { } @Override - public ArrayList getSpecialParameters() { - ArrayList result = new ArrayList<>(); - result.add(ThaumicTinkerer.registry.getFirstBlockFromClass(BlockGaseousLight.class)); - return result; + public Item[] getMetaItems() { + return new Item[] { new ItemGas(ThaumicTinkerer.registry.getFirstBlockFromClass(BlockGaseousLight.class)) }; } @Override diff --git a/src/main/java/thaumic/tinkerer/common/item/ItemGasRemover.java b/src/main/java/thaumic/tinkerer/common/item/ItemGasRemover.java index 43ab7e87..8db217db 100644 --- a/src/main/java/thaumic/tinkerer/common/item/ItemGasRemover.java +++ b/src/main/java/thaumic/tinkerer/common/item/ItemGasRemover.java @@ -16,6 +16,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.EnumRarity; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -65,6 +66,7 @@ public class ItemGasRemover extends ItemBase { @Override public ThaumicTinkererRecipe getRecipeItem() { + Item[] gasTypes = ThaumicTinkerer.registry.getItemArrayFromClass(ItemGas.class); return new ThaumicTinkererArcaneRecipe( LibResearch.KEY_GAS_REMOVER, LibResearch.KEY_GAS_REMOVER, @@ -76,9 +78,9 @@ public class ItemGasRemover extends ItemBase { 'D', new ItemStack(ThaumicTinkerer.registry.getFirstItemFromClass(ItemDarkQuartz.class)), 'T', - new ItemStack(ThaumicTinkerer.registry.getItemFromClass(ItemGas.class).get(0)), + new ItemStack(gasTypes[0]), 'G', - new ItemStack(ThaumicTinkerer.registry.getItemFromClass(ItemGas.class).get(1)), + new ItemStack(gasTypes[1]), 'Q', new ItemStack(Items.quartz)); } diff --git a/src/main/java/thaumic/tinkerer/common/item/ItemInfusedPotion.java b/src/main/java/thaumic/tinkerer/common/item/ItemInfusedPotion.java index 33c36995..48ffe78e 100644 --- a/src/main/java/thaumic/tinkerer/common/item/ItemInfusedPotion.java +++ b/src/main/java/thaumic/tinkerer/common/item/ItemInfusedPotion.java @@ -118,11 +118,6 @@ public class ItemInfusedPotion extends ItemPotion implements ITTinkererItem { } } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getItemName() { return LibItemNames.INFUSED_POTION; diff --git a/src/main/java/thaumic/tinkerer/common/item/ItemInfusedSeeds.java b/src/main/java/thaumic/tinkerer/common/item/ItemInfusedSeeds.java index 8c9052b3..5836cdb3 100644 --- a/src/main/java/thaumic/tinkerer/common/item/ItemInfusedSeeds.java +++ b/src/main/java/thaumic/tinkerer/common/item/ItemInfusedSeeds.java @@ -1,6 +1,5 @@ package thaumic.tinkerer.common.item; -import java.util.ArrayList; import java.util.List; import net.minecraft.block.BlockFarmland; @@ -138,11 +137,6 @@ public class ItemInfusedSeeds extends ItemSeeds implements ITTinkererItem { : icons[BlockInfusedGrain.getNumberFromAspectForTexture(getAspect(stack))]; } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getItemName() { return LibItemNames.INFUSED_SEEDS; diff --git a/src/main/java/thaumic/tinkerer/common/item/ItemRevealingHelm.java b/src/main/java/thaumic/tinkerer/common/item/ItemRevealingHelm.java index 46e4d406..aa7d3a8b 100644 --- a/src/main/java/thaumic/tinkerer/common/item/ItemRevealingHelm.java +++ b/src/main/java/thaumic/tinkerer/common/item/ItemRevealingHelm.java @@ -11,7 +11,6 @@ */ package thaumic.tinkerer.common.item; -import java.util.ArrayList; import java.util.List; import net.minecraft.client.renderer.texture.IIconRegister; @@ -112,11 +111,6 @@ public class ItemRevealingHelm extends ItemArmor return 0; } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getItemName() { return LibItemNames.REVEALING_HELM; diff --git a/src/main/java/thaumic/tinkerer/common/item/ItemTravelSlab.java b/src/main/java/thaumic/tinkerer/common/item/ItemTravelSlab.java index 8ae0892f..4863f4b3 100644 --- a/src/main/java/thaumic/tinkerer/common/item/ItemTravelSlab.java +++ b/src/main/java/thaumic/tinkerer/common/item/ItemTravelSlab.java @@ -1,7 +1,5 @@ package thaumic.tinkerer.common.item; -import java.util.ArrayList; - import net.minecraft.block.Block; import net.minecraft.block.BlockSlab; import net.minecraft.item.ItemSlab; @@ -22,15 +20,10 @@ public class ItemTravelSlab extends ItemSlab implements ITTinkererItem { super( par1, (BlockSlab) ThaumicTinkerer.registry.getFirstBlockFromClass(BlockTravelSlab.class), - (BlockSlab) ThaumicTinkerer.registry.getBlockFromClass(BlockTravelSlab.class).get(1), + (BlockSlab) ThaumicTinkerer.registry.getBlockFromClass(BlockTravelSlab.class, 1), false); } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getItemName() { return LibBlockNames.TRAVEL_SLAB; diff --git a/src/main/java/thaumic/tinkerer/common/item/ItemWardSlab.java b/src/main/java/thaumic/tinkerer/common/item/ItemWardSlab.java index 7359a0df..0bd4426e 100644 --- a/src/main/java/thaumic/tinkerer/common/item/ItemWardSlab.java +++ b/src/main/java/thaumic/tinkerer/common/item/ItemWardSlab.java @@ -1,7 +1,5 @@ package thaumic.tinkerer.common.item; -import java.util.ArrayList; - import net.minecraft.block.Block; import net.minecraft.block.BlockSlab; import net.minecraft.item.ItemSlab; @@ -22,15 +20,10 @@ public class ItemWardSlab extends ItemSlab implements ITTinkererItem { super( par1, (BlockSlab) ThaumicTinkerer.registry.getFirstBlockFromClass(BlockWardSlab.class), - (BlockSlab) ThaumicTinkerer.registry.getBlockFromClass(BlockWardSlab.class).get(1), + (BlockSlab) ThaumicTinkerer.registry.getBlockFromClass(BlockWardSlab.class, 1), false); } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getItemName() { return LibBlockNames.WARD_SLAB; diff --git a/src/main/java/thaumic/tinkerer/common/item/foci/ItemModFocus.java b/src/main/java/thaumic/tinkerer/common/item/foci/ItemModFocus.java index 629a0d43..14e89715 100644 --- a/src/main/java/thaumic/tinkerer/common/item/foci/ItemModFocus.java +++ b/src/main/java/thaumic/tinkerer/common/item/foci/ItemModFocus.java @@ -11,7 +11,6 @@ */ package thaumic.tinkerer.common.item.foci; -import java.util.ArrayList; import java.util.List; import net.minecraft.client.renderer.texture.IIconRegister; @@ -58,11 +57,6 @@ public abstract class ItemModFocus extends ItemFocusBasic implements ITTinkererI if (hasDepth()) depth = IconHelper.forItem(par1IconRegister, this, "Depth"); } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public boolean shouldRegister() { return true; diff --git a/src/main/java/thaumic/tinkerer/common/item/kami/ItemBlockWarpGate.java b/src/main/java/thaumic/tinkerer/common/item/kami/ItemBlockWarpGate.java index c242f9a6..190346ec 100644 --- a/src/main/java/thaumic/tinkerer/common/item/kami/ItemBlockWarpGate.java +++ b/src/main/java/thaumic/tinkerer/common/item/kami/ItemBlockWarpGate.java @@ -11,8 +11,6 @@ */ package thaumic.tinkerer.common.item.kami; -import java.util.ArrayList; - import net.minecraft.block.Block; import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemBlock; @@ -35,11 +33,6 @@ public class ItemBlockWarpGate extends ItemBlock implements ITTinkererItem { return TTCommonProxy.kamiRarity; } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getItemName() { return LibBlockNames.WARP_GATE; diff --git a/src/main/java/thaumic/tinkerer/common/item/kami/ItemIchorPouch.java b/src/main/java/thaumic/tinkerer/common/item/kami/ItemIchorPouch.java index fe26c4b3..19df81b3 100644 --- a/src/main/java/thaumic/tinkerer/common/item/kami/ItemIchorPouch.java +++ b/src/main/java/thaumic/tinkerer/common/item/kami/ItemIchorPouch.java @@ -11,7 +11,6 @@ */ package thaumic.tinkerer.common.item.kami; -import java.util.ArrayList; import java.util.List; import net.minecraft.client.renderer.texture.IIconRegister; @@ -147,11 +146,6 @@ public class ItemIchorPouch extends ItemFocusPouch implements IBauble, IBaubleEx return true; } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getItemName() { return LibItemNames.ICHOR_POUCH; diff --git a/src/main/java/thaumic/tinkerer/common/item/kami/armor/ItemIchorclothArmor.java b/src/main/java/thaumic/tinkerer/common/item/kami/armor/ItemIchorclothArmor.java index d867f923..3b3940b3 100644 --- a/src/main/java/thaumic/tinkerer/common/item/kami/armor/ItemIchorclothArmor.java +++ b/src/main/java/thaumic/tinkerer/common/item/kami/armor/ItemIchorclothArmor.java @@ -11,7 +11,6 @@ */ package thaumic.tinkerer.common.item.kami.armor; -import java.util.ArrayList; import java.util.List; import net.minecraft.client.renderer.texture.IIconRegister; @@ -19,6 +18,7 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumRarity; +import net.minecraft.item.Item; import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemStack; import net.minecraft.util.DamageSource; @@ -121,12 +121,8 @@ public class ItemIchorclothArmor extends ItemArmor } @Override - public ArrayList getSpecialParameters() { - ArrayList result = new ArrayList<>(); - result.add(1); - result.add(2); - result.add(3); - return result; + public Item[] getMetaItems() { + return new Item[] { new ItemIchorclothArmor(1), new ItemIchorclothArmor(2), new ItemIchorclothArmor(3) }; } @Override diff --git a/src/main/java/thaumic/tinkerer/common/item/kami/armor/ItemIchorclothArmorAdv.java b/src/main/java/thaumic/tinkerer/common/item/kami/armor/ItemIchorclothArmorAdv.java index eea5fc22..0726127d 100644 --- a/src/main/java/thaumic/tinkerer/common/item/kami/armor/ItemIchorclothArmorAdv.java +++ b/src/main/java/thaumic/tinkerer/common/item/kami/armor/ItemIchorclothArmorAdv.java @@ -11,11 +11,11 @@ */ package thaumic.tinkerer.common.item.kami.armor; -import java.util.ArrayList; import java.util.List; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.StatCollector; import net.minecraft.world.World; @@ -46,7 +46,7 @@ public abstract class ItemIchorclothArmorAdv extends ItemIchorclothArmor impleme } @Override - public ArrayList getSpecialParameters() { + public Item[] getMetaItems() { return null; } diff --git a/src/main/java/thaumic/tinkerer/common/item/kami/foci/ItemModKamiFocus.java b/src/main/java/thaumic/tinkerer/common/item/kami/foci/ItemModKamiFocus.java index e669d269..0e9b4eb3 100644 --- a/src/main/java/thaumic/tinkerer/common/item/kami/foci/ItemModKamiFocus.java +++ b/src/main/java/thaumic/tinkerer/common/item/kami/foci/ItemModKamiFocus.java @@ -11,7 +11,6 @@ */ package thaumic.tinkerer.common.item.kami.foci; -import java.util.ArrayList; import java.util.List; import net.minecraft.client.renderer.texture.IIconRegister; @@ -81,11 +80,6 @@ public abstract class ItemModKamiFocus extends ItemFocusBasic implements ITTinke return true; } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean par4) { super.addInformation(stack, player, list, par4); diff --git a/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorAxe.java b/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorAxe.java index 0927b415..61be09f1 100644 --- a/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorAxe.java +++ b/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorAxe.java @@ -11,8 +11,6 @@ */ package thaumic.tinkerer.common.item.kami.tool; -import java.util.ArrayList; - import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemAxe; @@ -60,11 +58,6 @@ public class ItemIchorAxe extends ItemAxe implements ITTinkererItem { return true; } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getItemName() { return LibItemNames.ICHOR_AXE; diff --git a/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorPick.java b/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorPick.java index 2799ceac..64f5c87d 100644 --- a/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorPick.java +++ b/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorPick.java @@ -11,8 +11,6 @@ */ package thaumic.tinkerer.common.item.kami.tool; -import java.util.ArrayList; - import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemPickaxe; @@ -64,11 +62,6 @@ public class ItemIchorPick extends ItemPickaxe implements ITTinkererItem { return true; } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getItemName() { return LibItemNames.ICHOR_PICK; diff --git a/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorShovel.java b/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorShovel.java index f6fc7aa2..ffd1a886 100644 --- a/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorShovel.java +++ b/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorShovel.java @@ -11,8 +11,6 @@ */ package thaumic.tinkerer.common.item.kami.tool; -import java.util.ArrayList; - import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemSpade; @@ -60,11 +58,6 @@ public class ItemIchorShovel extends ItemSpade implements ITTinkererItem { return true; } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getItemName() { return LibItemNames.ICHOR_SHOVEL; diff --git a/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorSword.java b/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorSword.java index 1a082694..780aaa68 100644 --- a/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorSword.java +++ b/src/main/java/thaumic/tinkerer/common/item/kami/tool/ItemIchorSword.java @@ -11,8 +11,6 @@ */ package thaumic.tinkerer.common.item.kami.tool; -import java.util.ArrayList; - import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemStack; @@ -59,11 +57,6 @@ public class ItemIchorSword extends ItemSword implements ITTinkererItem { return true; } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getItemName() { return LibItemNames.ICHOR_SWORD; diff --git a/src/main/java/thaumic/tinkerer/common/item/quartz/ItemDarkQuartzBlock.java b/src/main/java/thaumic/tinkerer/common/item/quartz/ItemDarkQuartzBlock.java index 8d017e58..2c5d6db4 100644 --- a/src/main/java/thaumic/tinkerer/common/item/quartz/ItemDarkQuartzBlock.java +++ b/src/main/java/thaumic/tinkerer/common/item/quartz/ItemDarkQuartzBlock.java @@ -11,8 +11,6 @@ */ package thaumic.tinkerer.common.item.quartz; -import java.util.ArrayList; - import net.minecraft.block.Block; import net.minecraft.item.ItemMultiTexture; import net.minecraft.item.ItemStack; @@ -40,11 +38,6 @@ public class ItemDarkQuartzBlock extends ItemMultiTexture implements ITTinkererI : LibBlockNames.DARK_QUARTZ_BLOCK_NAMES[par1ItemStack.getItemDamage()]; } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getItemName() { return LibBlockNames.DARK_QUARTZ; diff --git a/src/main/java/thaumic/tinkerer/common/item/quartz/ItemDarkQuartzSlab.java b/src/main/java/thaumic/tinkerer/common/item/quartz/ItemDarkQuartzSlab.java index feff975a..1ae2eea5 100644 --- a/src/main/java/thaumic/tinkerer/common/item/quartz/ItemDarkQuartzSlab.java +++ b/src/main/java/thaumic/tinkerer/common/item/quartz/ItemDarkQuartzSlab.java @@ -11,8 +11,6 @@ */ package thaumic.tinkerer.common.item.quartz; -import java.util.ArrayList; - import net.minecraft.block.Block; import net.minecraft.block.BlockSlab; import net.minecraft.item.ItemSlab; @@ -30,15 +28,10 @@ public class ItemDarkQuartzSlab extends ItemSlab implements ITTinkererItem { super( par1, (BlockSlab) ThaumicTinkerer.registry.getFirstBlockFromClass(BlockDarkQuartzSlab.class), - (BlockSlab) ThaumicTinkerer.registry.getBlockFromClass(BlockDarkQuartzSlab.class).get(1), + (BlockSlab) ThaumicTinkerer.registry.getBlockFromClass(BlockDarkQuartzSlab.class, 1), false); } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public String getItemName() { return LibBlockNames.DARK_QUARTZ_SLAB; diff --git a/src/main/java/thaumic/tinkerer/common/registry/ITTinkererBlock.java b/src/main/java/thaumic/tinkerer/common/registry/ITTinkererBlock.java index 2d8e0d17..a4646685 100644 --- a/src/main/java/thaumic/tinkerer/common/registry/ITTinkererBlock.java +++ b/src/main/java/thaumic/tinkerer/common/registry/ITTinkererBlock.java @@ -1,7 +1,6 @@ package thaumic.tinkerer.common.registry; -import java.util.ArrayList; - +import net.minecraft.block.Block; import net.minecraft.item.ItemBlock; import net.minecraft.tileentity.TileEntity; @@ -10,15 +9,18 @@ import net.minecraft.tileentity.TileEntity; */ public interface ITTinkererBlock extends ITTinkererRegisterable { - public ArrayList getSpecialParameters(); + String getBlockName(); - public String getBlockName(); + boolean shouldRegister(); - public boolean shouldRegister(); + boolean shouldDisplayInTab(); - public boolean shouldDisplayInTab(); + Class getItemBlock(); - public Class getItemBlock(); + Class getTileEntity(); - public Class getTileEntity(); + default Block[] getMetaBlocks() { + throw new UnsupportedOperationException( + "Called getMetaBlocks on a block without any meta blocks - this is a mistake by the developers!"); + } } diff --git a/src/main/java/thaumic/tinkerer/common/registry/ITTinkererItem.java b/src/main/java/thaumic/tinkerer/common/registry/ITTinkererItem.java index 1af7c653..25d6fab4 100644 --- a/src/main/java/thaumic/tinkerer/common/registry/ITTinkererItem.java +++ b/src/main/java/thaumic/tinkerer/common/registry/ITTinkererItem.java @@ -1,17 +1,20 @@ package thaumic.tinkerer.common.registry; -import java.util.ArrayList; +import net.minecraft.item.Item; /** * Created by localmacaccount on 6/9/14. */ public interface ITTinkererItem extends ITTinkererRegisterable { - public ArrayList getSpecialParameters(); + String getItemName(); - public String getItemName(); + boolean shouldRegister(); - public boolean shouldRegister(); + boolean shouldDisplayInTab(); - public boolean shouldDisplayInTab(); + default Item[] getMetaItems() { + throw new UnsupportedOperationException( + "Called getMetaItems on an item without any meta items - this is a mistake by the developers!"); + } } diff --git a/src/main/java/thaumic/tinkerer/common/registry/ItemBase.java b/src/main/java/thaumic/tinkerer/common/registry/ItemBase.java index 5dcdfc35..7a0981cd 100644 --- a/src/main/java/thaumic/tinkerer/common/registry/ItemBase.java +++ b/src/main/java/thaumic/tinkerer/common/registry/ItemBase.java @@ -11,8 +11,6 @@ */ package thaumic.tinkerer.common.registry; -import java.util.ArrayList; - import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.item.Item; @@ -34,11 +32,6 @@ public abstract class ItemBase extends Item implements ITTinkererItem { itemIcon = IconHelper.forItem(par1IconRegister, this); } - @Override - public ArrayList getSpecialParameters() { - return null; - } - @Override public boolean shouldRegister() { return true; diff --git a/src/main/java/thaumic/tinkerer/common/registry/TTRegistry.java b/src/main/java/thaumic/tinkerer/common/registry/TTRegistry.java index 368235b8..5ed3b1c5 100644 --- a/src/main/java/thaumic/tinkerer/common/registry/TTRegistry.java +++ b/src/main/java/thaumic/tinkerer/common/registry/TTRegistry.java @@ -1,10 +1,7 @@ package thaumic.tinkerer.common.registry; -import java.io.IOException; -import java.lang.reflect.Constructor; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Modifier; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.Map; @@ -13,232 +10,119 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraft.tileentity.TileEntity; -import com.google.common.reflect.ClassPath; +import org.apache.logging.log4j.Level; import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.FMLLog; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import thaumic.tinkerer.client.lib.LibResources; -import thaumic.tinkerer.common.ThaumicTinkerer; -import thaumic.tinkerer.common.block.BlockAnimationTablet; import thaumic.tinkerer.common.core.handler.ModCreativeTab; -import thaumic.tinkerer.common.item.kami.ItemBlockTalisman; -import thaumic.tinkerer.common.item.kami.ItemPlacementMirror; import thaumic.tinkerer.common.research.IRegisterableResearch; public class TTRegistry { - private ArrayList itemClasses = new ArrayList<>(); - private HashMap> itemRegistry = new HashMap<>(); + private final HashMap itemRegistry = new HashMap<>(); - private ArrayList blockClasses = new ArrayList<>(); - private HashMap> blockRegistry = new HashMap<>(); + private final HashMap blockRegistry = new HashMap<>(); public static Block dynamismTablet; public static Item itemPlacementMirror; public static Item itemBlackHoleTalisman; - public void registerClasses() { - try { - ClassPath classPath = ClassPath.from(this.getClass().getClassLoader()); - for (ClassPath.ClassInfo classInfo : classPath - .getTopLevelClassesRecursive("thaumic.tinkerer.common.block")) { - if (ITTinkererBlock.class.isAssignableFrom(classInfo.load()) - && !Modifier.isAbstract(classInfo.load().getModifiers())) { - blockClasses.add(classInfo.load()); - } - } - for (ClassPath.ClassInfo classInfo : classPath - .getTopLevelClassesRecursive("thaumic.tinkerer.common.item")) { - if (ITTinkererItem.class.isAssignableFrom(classInfo.load()) - && !ItemBlock.class.isAssignableFrom(classInfo.load()) - && !Modifier.isAbstract(classInfo.load().getModifiers())) { - itemClasses.add(classInfo.load()); - } - } - - } catch (IOException e) { - e.printStackTrace(); - } - } - - public void registerResearch(ITTinkererRegisterable nextItem) { - IRegisterableResearch registerableResearch = nextItem.getResearchItem(); - if (registerableResearch != null) { - registerableResearch.registerResearch(); - } - } - - public void registerRecipe(ITTinkererRegisterable nextItem) { - ThaumicTinkererRecipe thaumicTinkererRecipe = nextItem.getRecipeItem(); - if (thaumicTinkererRecipe != null) { - thaumicTinkererRecipe.registerRecipe(); - } - } - + /** + * THIS NO LONGER USES REFLECTION. IF YOU WANT TO ADD A BLOCK/ITEM, ADD THE CLASS HERE. + */ public void preInit() { - registerClasses(); - for (Class clazz : blockClasses) { - try { - Block newBlock = (Block) clazz.newInstance(); - if (((ITTinkererBlock) newBlock).shouldRegister()) { - newBlock.setBlockName(((ITTinkererBlock) newBlock).getBlockName()); - ArrayList blockList = new ArrayList<>(); - blockList.add(newBlock); - - if (newBlock == null) { - ThaumicTinkerer.log.debug(clazz.getName() + " Returned a null block upon registration"); - continue; - } - - if (((ITTinkererBlock) newBlock).getSpecialParameters() != null) { - for (Object param : ((ITTinkererBlock) newBlock).getSpecialParameters()) { - - for (Constructor constructor : clazz.getConstructors()) { - if (constructor.getParameterTypes().length > 0 - && constructor.getParameterTypes()[0].isAssignableFrom(param.getClass())) { - Block nextBlock = (Block) clazz.getConstructor(param.getClass()).newInstance(param); - nextBlock.setBlockName(((ITTinkererBlock) nextBlock).getBlockName()); - blockList.add(nextBlock); - break; - } - } - } - } - blockRegistry.put(clazz, blockList); - - if (((ITTinkererBlock) newBlock).getItemBlock() != null) { - Item newItem = ((ITTinkererBlock) newBlock).getItemBlock().getConstructor(Block.class) - .newInstance(newBlock); - newItem.setUnlocalizedName(((ITTinkererItem) newItem).getItemName()); - ArrayList itemList = new ArrayList<>(); - itemList.add(newItem); - itemRegistry.put(((ITTinkererBlock) newBlock).getItemBlock(), itemList); - } - } - } catch (InstantiationException | InvocationTargetException | NoSuchMethodException - | IllegalAccessException e) { - e.printStackTrace(); - } - } - for (Class clazz : itemClasses) { - try { - Item newItem = (Item) clazz.newInstance(); - if (((ITTinkererItem) newItem).shouldRegister()) { - newItem.setUnlocalizedName(((ITTinkererItem) newItem).getItemName()); - ArrayList itemList = new ArrayList<>(); - itemList.add(newItem); - if (newItem == null) { - ThaumicTinkerer.log.debug(clazz.getName() + " Returned a null item upon registration"); - continue; - } - if (((ITTinkererItem) newItem).getSpecialParameters() != null) { - for (Object param : ((ITTinkererItem) newItem).getSpecialParameters()) { - for (Constructor constructor : clazz.getConstructors()) { - if (constructor.getParameterTypes().length > 0 - && constructor.getParameterTypes()[0].isAssignableFrom(param.getClass())) { - Item nextItem = (Item) constructor.newInstance(param); - nextItem.setUnlocalizedName(((ITTinkererItem) nextItem).getItemName()); - itemList.add(nextItem); - break; - } - } - } - } - itemRegistry.put(clazz, itemList); - } - } catch (InstantiationException | InvocationTargetException | IllegalAccessException e) { - e.printStackTrace(); - } - } - for (ArrayList blockArrayList : blockRegistry.values()) { - for (Block block : blockArrayList) { - if (((ITTinkererBlock) block).getItemBlock() != null) { - GameRegistry.registerBlock( - block, - ((ITTinkererBlock) block).getItemBlock(), - ((ITTinkererBlock) block).getBlockName()); - } else { - GameRegistry.registerBlock(block, ((ITTinkererBlock) block).getBlockName()); - } - if (((ITTinkererBlock) block).getTileEntity() != null) { - GameRegistry.registerTileEntity( - ((ITTinkererBlock) block).getTileEntity(), - LibResources.PREFIX_MOD + ((ITTinkererBlock) block).getBlockName()); - } - if (block instanceof IMultiTileEntityBlock) { - for (Map.Entry, String> tile : ((IMultiTileEntityBlock) block) - .getAdditionalTileEntities().entrySet()) { - GameRegistry.registerTileEntity(tile.getKey(), tile.getValue()); - } - } - if (((ITTinkererBlock) block).shouldDisplayInTab() - && FMLCommonHandler.instance().getSide() == Side.CLIENT) { - ModCreativeTab.INSTANCE.addBlock(block); - } - } - } - - dynamismTablet = ThaumicTinkerer.registry.getFirstBlockFromClass(BlockAnimationTablet.class); - itemBlackHoleTalisman = getFirstItemFromClass(ItemBlockTalisman.class); - itemPlacementMirror = getFirstItemFromClass(ItemPlacementMirror.class); - } - - public ArrayList getItemFromClass(Class clazz) { - return itemRegistry.get(clazz); - } - - public Item getFirstItemFromClass(Class clazz) { - return itemRegistry.get(clazz) != null ? itemRegistry.get(clazz).get(0) : null; - } - - public Item getItemFromClassAndName(Class clazz, String s) { - if (itemRegistry.get(clazz) == null) { - return null; - } - for (Item i : getItemFromClass(clazz)) { - if (((ITTinkererItem) i).getItemName().equals(s)) { - return i; - } - } - return null; - } - - public Block getBlockFromClassAndName(Class clazz, String s) { - if (blockRegistry.get(clazz) == null) { - return null; - } - for (Block i : getBlockFromClass(clazz)) { - if (((ITTinkererBlock) i).getBlockName().equals(s)) { - return i; - } - } - return null; - } - - public ArrayList getBlockFromClass(Class clazz) { - return blockRegistry.get(clazz); - } - - public Block getFirstBlockFromClass(Class clazz) { - return blockRegistry.get(clazz) != null ? blockRegistry.get(clazz).get(0) : null; + dynamismTablet = loadSimpleBlock(new thaumic.tinkerer.common.block.BlockAnimationTablet()); + loadSimpleBlock(new thaumic.tinkerer.common.block.BlockAspectAnalyzer()); + loadSimpleBlock(new thaumic.tinkerer.common.block.BlockEnchanter()); + loadSimpleBlock(new thaumic.tinkerer.common.block.BlockForcefield()); + loadSimpleBlock(new thaumic.tinkerer.common.block.BlockFunnel()); + loadSimpleBlock(new thaumic.tinkerer.common.block.BlockGaseousLight()); + loadSimpleBlock(new thaumic.tinkerer.common.block.BlockGaseousShadow()); + loadSimpleBlock(new thaumic.tinkerer.common.block.BlockGolemConnector()); + loadSimpleBlock(new thaumic.tinkerer.common.block.BlockInfusedFarmland()); + loadSimpleBlock(new thaumic.tinkerer.common.block.BlockInfusedGrain()); + loadSimpleBlock(new thaumic.tinkerer.common.block.BlockMagnet()); + loadSimpleBlock(new thaumic.tinkerer.common.block.BlockNitorGas()); + loadSimpleBlock(new thaumic.tinkerer.common.block.BlockPlatform()); + loadSimpleBlock(new thaumic.tinkerer.common.block.BlockRepairer()); + loadSimpleBlock(new thaumic.tinkerer.common.block.BlockRPlacer()); + loadSimpleBlock(new thaumic.tinkerer.common.block.BlockSummon()); + loadMetaBlock(new thaumic.tinkerer.common.block.BlockTravelSlab()); + loadSimpleBlock(new thaumic.tinkerer.common.block.BlockTravelStairs()); + loadMetaBlock(new thaumic.tinkerer.common.block.BlockWardSlab()); + loadSimpleBlock(new thaumic.tinkerer.common.block.fire.BlockFireAir()); + loadSimpleBlock(new thaumic.tinkerer.common.block.fire.BlockFireChaos()); + loadSimpleBlock(new thaumic.tinkerer.common.block.fire.BlockFireEarth()); + loadSimpleBlock(new thaumic.tinkerer.common.block.fire.BlockFireIgnis()); + loadSimpleBlock(new thaumic.tinkerer.common.block.fire.BlockFireOrder()); + loadSimpleBlock(new thaumic.tinkerer.common.block.fire.BlockFireWater()); + loadSimpleBlock(new thaumic.tinkerer.common.block.kami.BlockBedrockPortal()); + loadSimpleBlock(new thaumic.tinkerer.common.block.kami.BlockWarpGate()); + loadSimpleBlock(new thaumic.tinkerer.common.block.mobilizer.BlockMobilizer()); + loadSimpleBlock(new thaumic.tinkerer.common.block.mobilizer.BlockMobilizerRelay()); + loadSimpleBlock(new thaumic.tinkerer.common.block.quartz.BlockDarkQuartz()); + loadMetaBlock(new thaumic.tinkerer.common.block.quartz.BlockDarkQuartzSlab()); + loadSimpleBlock(new thaumic.tinkerer.common.block.quartz.BlockDarkQuartzStairs()); + loadSimpleBlock(new thaumic.tinkerer.common.block.transvector.BlockTransvectorDislocator()); + loadSimpleBlock(new thaumic.tinkerer.common.block.transvector.BlockTransvectorInterface()); + loadSimpleItem(new thaumic.tinkerer.common.item.foci.ItemFocusDeflect()); + loadSimpleItem(new thaumic.tinkerer.common.item.foci.ItemFocusDislocation()); + loadSimpleItem(new thaumic.tinkerer.common.item.foci.ItemFocusEnderChest()); + loadSimpleItem(new thaumic.tinkerer.common.item.foci.ItemFocusFlight()); + loadSimpleItem(new thaumic.tinkerer.common.item.foci.ItemFocusHeal()); + loadSimpleItem(new thaumic.tinkerer.common.item.foci.ItemFocusSmelt()); + loadSimpleItem(new thaumic.tinkerer.common.item.foci.ItemFocusTelekinesis()); + loadSimpleItem(new thaumic.tinkerer.common.item.ItemBloodSword()); + loadSimpleItem(new thaumic.tinkerer.common.item.ItemBrightNitor()); + loadSimpleItem(new thaumic.tinkerer.common.item.ItemCleansingTalisman()); + loadSimpleItem(new thaumic.tinkerer.common.item.ItemConnector()); + loadMetaItem(new thaumic.tinkerer.common.item.ItemGas()); + loadSimpleItem(new thaumic.tinkerer.common.item.ItemGasRemover()); + loadSimpleItem(new thaumic.tinkerer.common.item.ItemInfusedGrain()); + loadSimpleItem(new thaumic.tinkerer.common.item.ItemInfusedInkwell()); + loadSimpleItem(new thaumic.tinkerer.common.item.ItemInfusedPotion()); + loadSimpleItem(new thaumic.tinkerer.common.item.ItemInfusedSeeds()); + loadSimpleItem(new thaumic.tinkerer.common.item.ItemMobAspect()); + loadSimpleItem(new thaumic.tinkerer.common.item.ItemMobDisplay()); + loadSimpleItem(new thaumic.tinkerer.common.item.ItemRevealingHelm()); + loadSimpleItem(new thaumic.tinkerer.common.item.ItemShareBook()); + loadSimpleItem(new thaumic.tinkerer.common.item.ItemSoulMould()); + loadSimpleItem(new thaumic.tinkerer.common.item.ItemSpellCloth()); + loadSimpleItem(new thaumic.tinkerer.common.item.ItemXPTalisman()); + loadSimpleItem(new thaumic.tinkerer.common.item.kami.armor.ItemGemBoots()); + loadSimpleItem(new thaumic.tinkerer.common.item.kami.armor.ItemGemChest()); + loadSimpleItem(new thaumic.tinkerer.common.item.kami.armor.ItemGemHelm()); + loadSimpleItem(new thaumic.tinkerer.common.item.kami.armor.ItemGemLegs()); + loadMetaItem(new thaumic.tinkerer.common.item.kami.armor.ItemIchorclothArmor()); + loadSimpleItem(new thaumic.tinkerer.common.item.kami.foci.ItemFocusRecall()); + loadSimpleItem(new thaumic.tinkerer.common.item.kami.foci.ItemFocusShadowbeam()); + loadSimpleItem(new thaumic.tinkerer.common.item.kami.foci.ItemFocusXPDrain()); + itemBlackHoleTalisman = loadSimpleItem(new thaumic.tinkerer.common.item.kami.ItemBlockTalisman()); + loadSimpleItem(new thaumic.tinkerer.common.item.kami.ItemCatAmulet()); + loadSimpleItem(new thaumic.tinkerer.common.item.kami.ItemIchorPouch()); + loadSimpleItem(new thaumic.tinkerer.common.item.kami.ItemKamiResource()); + itemPlacementMirror = loadSimpleItem(new thaumic.tinkerer.common.item.kami.ItemPlacementMirror()); + loadSimpleItem(new thaumic.tinkerer.common.item.kami.ItemProtoclay()); + loadSimpleItem(new thaumic.tinkerer.common.item.kami.ItemSkyPearl()); + loadSimpleItem(new thaumic.tinkerer.common.item.kami.tool.ItemIchorAxe()); + loadSimpleItem(new thaumic.tinkerer.common.item.kami.tool.ItemIchorAxeAdv()); + loadSimpleItem(new thaumic.tinkerer.common.item.kami.tool.ItemIchorPick()); + loadSimpleItem(new thaumic.tinkerer.common.item.kami.tool.ItemIchorPickAdv()); + loadSimpleItem(new thaumic.tinkerer.common.item.kami.tool.ItemIchorShovel()); + loadSimpleItem(new thaumic.tinkerer.common.item.kami.tool.ItemIchorShovelAdv()); + loadSimpleItem(new thaumic.tinkerer.common.item.kami.tool.ItemIchorSword()); + loadSimpleItem(new thaumic.tinkerer.common.item.kami.tool.ItemIchorSwordAdv()); + loadSimpleItem(new thaumic.tinkerer.common.item.quartz.ItemDarkQuartz()); } public void init() { - - for (ArrayList itemArrayList : itemRegistry.values()) { + for (Item[] itemArrayList : itemRegistry.values()) { for (Item item : itemArrayList) { registerRecipe((ITTinkererRegisterable) item); - } - } - for (ArrayList blockArrayList : blockRegistry.values()) { - for (Block block : blockArrayList) { - registerRecipe((ITTinkererRegisterable) block); - } - } - for (ArrayList itemArrayList : itemRegistry.values()) { - for (Item item : itemArrayList) { if (!(item instanceof ItemBlock)) { GameRegistry.registerItem(item, ((ITTinkererItem) item).getItemName()); @@ -249,16 +133,232 @@ public class TTRegistry { } } } + + for (Block[] blockArrayList : blockRegistry.values()) { + for (Block block : blockArrayList) { + registerRecipe((ITTinkererRegisterable) block); + } + } ModCreativeTab.INSTANCE.addAllItemsAndBlocks(); } + private void registerResearch(ITTinkererRegisterable nextItem) { + IRegisterableResearch registerableResearch = nextItem.getResearchItem(); + if (registerableResearch != null) { + registerableResearch.registerResearch(); + } + } + + private void registerRecipe(ITTinkererRegisterable nextItem) { + ThaumicTinkererRecipe thaumicTinkererRecipe = nextItem.getRecipeItem(); + if (thaumicTinkererRecipe != null) { + thaumicTinkererRecipe.registerRecipe(); + } + } + + private Block loadSimpleBlock(Block newBlock) { + try { + final ITTinkererBlock ittBlock = (ITTinkererBlock) newBlock; + if (ittBlock.shouldRegister()) { + newBlock.setBlockName(ittBlock.getBlockName()); + blockRegistry.put(newBlock.getClass(), new Block[] { newBlock }); + registerBlock(newBlock, ittBlock); + + Class itemBlock = ittBlock.getItemBlock(); + if (itemBlock != null) { + Item newItem = itemBlock.getConstructor(Block.class).newInstance(newBlock); + newItem.setUnlocalizedName(((ITTinkererItem) newItem).getItemName()); + itemRegistry.put(itemBlock, new Item[] { newItem }); + } + return newBlock; + } + } catch (Exception e) { + e.printStackTrace(); + FMLLog.log( + Level.WARN, + "Failed to load Block " + newBlock.getClass().getSimpleName() + ". This shouldn't happen!"); + } + + return null; + } + + private Block[] loadMetaBlock(Block newBlock) { + try { + final ITTinkererBlock ittBlock = (ITTinkererBlock) newBlock; + if (ittBlock.shouldRegister()) { + newBlock.setBlockName(ittBlock.getBlockName()); + + Block[] metaBlocks = ittBlock.getMetaBlocks(); + + Block[] blockList = new Block[1 + metaBlocks.length]; + blockRegistry.put(newBlock.getClass(), blockList); + blockList[0] = newBlock; + + int index = 1; + registerBlock(newBlock, ittBlock); + for (Block metaBlock : metaBlocks) { + ITTinkererBlock metaIttBlock = (ITTinkererBlock) metaBlock; + metaBlock.setBlockName(metaIttBlock.getBlockName()); + blockList[index++] = metaBlock; + registerBlock(metaBlock, metaIttBlock); + } + + Class itemBlock = ittBlock.getItemBlock(); + if (itemBlock != null) { + Item newItem = itemBlock.getConstructor(Block.class).newInstance(newBlock); + newItem.setUnlocalizedName(((ITTinkererItem) newItem).getItemName()); + itemRegistry.put(itemBlock, new Item[] { newItem }); + } + + return blockList; + } + } catch (Exception e) { + e.printStackTrace(); + FMLLog.log( + Level.WARN, + "Failed to load Block " + newBlock.getClass().getSimpleName() + ". This shouldn't happen!"); + } + return null; + } + + private Item loadSimpleItem(Item newItem) { + try { + final ITTinkererItem ittItem = (ITTinkererItem) newItem; + if (ittItem.shouldRegister()) { + newItem.setUnlocalizedName(ittItem.getItemName()); + itemRegistry.put(newItem.getClass(), new Item[] { newItem }); + + return newItem; + } + } catch (Exception e) { + e.printStackTrace(); + FMLLog.log( + Level.WARN, + "Failed to load Item " + newItem.getClass().getSimpleName() + ". This shouldn't happen!"); + } + return null; + } + + private Item[] loadMetaItem(Item newItem) { + try { + final ITTinkererItem ittItem = (ITTinkererItem) newItem; + if (ittItem.shouldRegister()) { + newItem.setUnlocalizedName(ittItem.getItemName()); + + Item[] metaItems = ittItem.getMetaItems(); + + Item[] itemList = new Item[1 + metaItems.length]; + itemList[0] = newItem; + + int index = 1; + for (Item metaItem : metaItems) { + metaItem.setUnlocalizedName(((ITTinkererItem) metaItem).getItemName()); + itemList[index++] = metaItem; + } + itemRegistry.put(newItem.getClass(), itemList); + return itemList; + } + } catch (Exception e) { + e.printStackTrace(); + FMLLog.log( + Level.WARN, + "Failed to load Item " + newItem.getClass().getSimpleName() + ". This shouldn't happen!"); + } + return null; + } + + private void registerBlock(Block block, ITTinkererBlock ittBlock) { + String blockName = ittBlock.getBlockName(); + Class itemBlock = ittBlock.getItemBlock(); + if (itemBlock != null) { + GameRegistry.registerBlock(block, itemBlock, blockName); + } else { + GameRegistry.registerBlock(block, blockName); + } + Class tileEntity = ittBlock.getTileEntity(); + if (tileEntity != null) { + GameRegistry.registerTileEntity(tileEntity, LibResources.PREFIX_MOD + blockName); + } + if (block instanceof IMultiTileEntityBlock) { + for (Map.Entry, String> tile : ((IMultiTileEntityBlock) block) + .getAdditionalTileEntities().entrySet()) { + GameRegistry.registerTileEntity(tile.getKey(), tile.getValue()); + } + } + if (FMLCommonHandler.instance().getSide() == Side.CLIENT) { + if (ittBlock.shouldDisplayInTab()) { + ModCreativeTab.INSTANCE.addBlock(block); + } + } + } + + @Deprecated // Use getItemArrayFromClass instead + public ArrayList getItemFromClass(Class clazz) { + return new ArrayList<>(Arrays.asList(getItemArrayFromClass(clazz))); + } + + public Item[] getItemArrayFromClass(Class clazz) { + return itemRegistry.get(clazz); + } + + public Item getItemFromClass(Class clazz, int index) { + return itemRegistry.get(clazz)[index]; + } + + public Item getFirstItemFromClass(Class clazz) { + final Item[] items = itemRegistry.get(clazz); + return items != null ? items[0] : null; + } + + public Item getItemFromClassAndName(Class clazz, String s) { + final Item[] itemsFromClass = itemRegistry.get(clazz); + if (itemsFromClass != null) { + for (Item i : itemsFromClass) { + if (((ITTinkererItem) i).getItemName().equals(s)) { + return i; + } + } + } + return null; + } + + public Block getBlockFromClassAndName(Class clazz, String s) { + final Block[] blocksFromClass = blockRegistry.get(clazz); + if (blocksFromClass != null) { + for (Block i : blocksFromClass) { + if (((ITTinkererBlock) i).getBlockName().equals(s)) { + return i; + } + } + } + return null; + } + + @Deprecated // Use getBlockArrayFromClass instead + public ArrayList getBlockFromClass(Class clazz) { + return new ArrayList<>(Arrays.asList(getBlockArrayFromClass(clazz))); + } + + public Block[] getBlockArrayFromClass(Class clazz) { + return blockRegistry.get(clazz); + } + + public Block getBlockFromClass(Class clazz, int index) { + return blockRegistry.get(clazz)[index]; + } + + public Block getFirstBlockFromClass(Class clazz) { + final Block[] blocks = blockRegistry.get(clazz); + return blocks != null ? blocks[0] : null; + } + public void postInit() { - for (ArrayList itemArrayList : itemRegistry.values()) { + for (Item[] itemArrayList : itemRegistry.values()) { for (Item item : itemArrayList) { registerResearch((ITTinkererRegisterable) item); } } - for (ArrayList blockArrayList : blockRegistry.values()) { + for (Block[] blockArrayList : blockRegistry.values()) { for (Block block : blockArrayList) { registerResearch((ITTinkererRegisterable) block); }