From 2a1911ea07edf00d73afb7baa401aa16b4b0cc7d Mon Sep 17 00:00:00 2001 From: Nicholas Ignoffo Date: Mon, 9 Oct 2017 12:29:43 -0700 Subject: [PATCH] Improve model handling --- .../bloodmagic/block/BlockAltar.java | 7 ++-- .../bloodmagic/block/BlockBloodTank.java | 8 ++--- .../bloodmagic/block/BlockDemonCrucible.java | 7 ++-- .../block/BlockDemonCrystallizer.java | 7 ++-- .../block/BlockDemonPillarBase.java | 9 ++--- .../block/BlockDemonPillarCapBase.java | 10 ++---- .../bloodmagic/block/BlockDemonPylon.java | 7 ++-- .../block/BlockDemonStairsBase.java | 9 ++--- .../bloodmagic/block/BlockDemonWallBase.java | 9 ++--- .../bloodmagic/block/BlockIncenseAltar.java | 7 ++-- .../block/BlockInversionPillar.java | 7 ++-- .../block/BlockInversionPillarEnd.java | 7 ++-- .../bloodmagic/block/BlockPhantom.java | 7 ++-- .../bloodmagic/block/BlockRoutingNode.java | 5 +-- .../bloodmagic/block/BlockSoulForge.java | 7 ++-- .../bloodmagic/block/BlockSpectral.java | 7 ++-- .../bloodmagic/block/BlockTeleposer.java | 7 ++-- .../WayofTime/bloodmagic/block/IBMBlock.java | 3 ++ .../bloodmagic/block/base/BlockEnum.java | 10 +++--- .../bloodmagic/client/IMeshProvider.java | 10 +++--- .../bloodmagic/client/IVariantProvider.java | 9 ++++- .../item/ItemActivationCrystal.java | 11 +++---- .../bloodmagic/item/ItemAltarMaker.java | 7 ++-- .../bloodmagic/item/ItemArcaneAshes.java | 7 ++-- .../bloodmagic/item/ItemBloodShard.java | 9 +++-- .../bloodmagic/item/ItemBoundAxe.java | 27 --------------- .../bloodmagic/item/ItemBoundPickaxe.java | 27 --------------- .../bloodmagic/item/ItemBoundShovel.java | 27 --------------- .../bloodmagic/item/ItemBoundSword.java | 17 ++-------- .../bloodmagic/item/ItemBoundTool.java | 19 ++++++++++- .../item/ItemDaggerOfSacrifice.java | 7 ++-- .../bloodmagic/item/ItemDemonCrystal.java | 7 ++-- .../bloodmagic/item/ItemDemonWillGauge.java | 7 ++-- .../WayofTime/bloodmagic/item/ItemEnum.java | 8 ++--- .../bloodmagic/item/ItemExperienceBook.java | 9 +++-- .../bloodmagic/item/ItemInscriptionTool.java | 7 ++-- .../bloodmagic/item/ItemLavaCrystal.java | 7 ++-- .../bloodmagic/item/ItemPotionFlask.java | 13 ++------ .../bloodmagic/item/ItemRitualDiviner.java | 11 +++---- .../bloodmagic/item/ItemRitualReader.java | 7 ++-- .../item/ItemSacrificialDagger.java | 12 +------ .../bloodmagic/item/ItemSanguineBook.java | 5 +-- .../WayofTime/bloodmagic/item/ItemSlate.java | 15 ++++----- .../item/ItemTelepositionFocus.java | 13 ++++---- .../bloodmagic/item/ItemUpgradeTome.java | 7 ++-- .../bloodmagic/item/ItemUpgradeTrainer.java | 7 ++-- .../item/alchemy/ItemCuttingFluid.java | 7 ++-- .../ItemLivingArmourPointsUpgrade.java | 7 ++-- .../item/armour/ItemLivingArmour.java | 18 +++++----- .../item/armour/ItemSentientArmour.java | 18 +++++----- .../item/block/ItemBlockAlchemyTable.java | 5 +-- .../item/gear/ItemPackSacrifice.java | 7 ++-- .../item/gear/ItemPackSelfSacrifice.java | 7 ++-- .../item/routing/ItemFluidRouterFilter.java | 7 ++-- .../item/routing/ItemNodeRouter.java | 7 ++-- .../item/routing/ItemRouterFilter.java | 13 ++++---- .../bloodmagic/item/sigil/ItemSigilBase.java | 7 ++-- .../item/sigil/ItemSigilHolding.java | 5 +-- .../item/sigil/ItemSigilToggleableBase.java | 19 ++--------- .../item/sigil/sigil/ItemSigil.java | 24 +++++--------- .../bloodmagic/item/soul/ItemMonsterSoul.java | 11 +++---- .../item/soul/ItemSentientArmourGem.java | 26 ++++++--------- .../bloodmagic/item/soul/ItemSentientAxe.java | 18 ++-------- .../bloodmagic/item/soul/ItemSentientBow.java | 5 +-- .../item/soul/ItemSentientPickaxe.java | 18 ++-------- .../item/soul/ItemSentientShovel.java | 18 ++-------- .../item/soul/ItemSentientSword.java | 18 ++-------- .../bloodmagic/item/soul/ItemSoulGem.java | 30 +++++++---------- .../bloodmagic/item/soul/ItemSoulSnare.java | 7 ++-- .../bloodmagic/proxy/ClientProxy.java | 33 ------------------- .../bloodmagic/proxy/CommonProxy.java | 10 ------ .../bloodmagic/registry/ModRecipes.java | 3 +- .../bloodmagic/blockstates/sigil_air.json | 10 +++--- .../blockstates/sigil_blood_light.json | 10 +++--- .../blockstates/sigil_divination.json | 10 +++--- 75 files changed, 283 insertions(+), 547 deletions(-) diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockAltar.java b/src/main/java/WayofTime/bloodmagic/block/BlockAltar.java index 886bbe25..aeb13014 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockAltar.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockAltar.java @@ -16,6 +16,7 @@ import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.tile.TileAltar; import WayofTime.bloodmagic.util.Utils; import com.google.common.base.Strings; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; @@ -163,10 +164,8 @@ public class BlockAltar extends Block implements IVariantProvider, IDocumentedBl // IVariantProvider @Override - public List> getVariants() { - List> ret = new ArrayList>(); - ret.add(new ImmutablePair(0, "normal")); - return ret; + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "normal"); } // IDocumentedBlock diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockBloodTank.java b/src/main/java/WayofTime/bloodmagic/block/BlockBloodTank.java index 6637e06d..b8354f7e 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockBloodTank.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockBloodTank.java @@ -6,6 +6,7 @@ import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.item.block.ItemBlockBloodTank; import WayofTime.bloodmagic.tile.TileBloodTank; import com.google.common.collect.Lists; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; @@ -195,11 +196,8 @@ public class BlockBloodTank extends BlockInteger implements IVariantProvider, IB // IVariantProvider @Override - public List> getVariants() { - List> ret = Lists.newArrayList(); + public void populateVariants(Int2ObjectMap variants) { for (int i = 0; i < TileBloodTank.CAPACITIES.length; i++) - ret.add(Pair.of(i, "inventory")); - - return ret; + variants.put(i, "inventory"); } } diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockDemonCrucible.java b/src/main/java/WayofTime/bloodmagic/block/BlockDemonCrucible.java index b0bfcfb1..ba562cab 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockDemonCrucible.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockDemonCrucible.java @@ -6,6 +6,7 @@ import WayofTime.bloodmagic.api.soul.IDiscreteDemonWill; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.tile.TileDemonCrucible; import WayofTime.bloodmagic.util.Utils; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; @@ -100,10 +101,8 @@ public class BlockDemonCrucible extends Block implements IVariantProvider, IBMBl } @Override - public List> getVariants() { - List> ret = new ArrayList>(); - ret.add(new ImmutablePair(0, "normal")); - return ret; + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "normal"); } @Override diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockDemonCrystallizer.java b/src/main/java/WayofTime/bloodmagic/block/BlockDemonCrystallizer.java index 0b255c05..9377a5c5 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockDemonCrystallizer.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockDemonCrystallizer.java @@ -3,6 +3,7 @@ package WayofTime.bloodmagic.block; import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.tile.TileDemonCrystallizer; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; @@ -68,10 +69,8 @@ public class BlockDemonCrystallizer extends BlockContainer implements IVariantPr } @Override - public List> getVariants() { - List> ret = new ArrayList>(); - ret.add(new ImmutablePair(0, "normal")); - return ret; + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "normal"); } @Override diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockDemonPillarBase.java b/src/main/java/WayofTime/bloodmagic/block/BlockDemonPillarBase.java index 44c7f95f..5ff97e5b 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockDemonPillarBase.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockDemonPillarBase.java @@ -3,6 +3,7 @@ package WayofTime.bloodmagic.block; import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.block.base.BlockEnumPillar; import com.google.common.collect.Lists; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.util.EnumFacing; @@ -24,16 +25,12 @@ public class BlockDemonPillarBase & IStringSerializable> exten } @Override - public List> getVariants() { - List> ret = Lists.newArrayList(); - + public void populateVariants(Int2ObjectMap variants) { //This is done to make the ItemBlocks have the proper model EnumFacing.Axis[] axis = new EnumFacing.Axis[]{EnumFacing.Axis.Y, EnumFacing.Axis.X, EnumFacing.Axis.Z}; for (int i = 0; i < 3; i++) for (int j = 0; j < this.getTypes().length; j++) - ret.add(Pair.of(i * 5 + j, "axis=" + axis[i] + ",type=" + this.getTypes()[j])); - - return ret; + variants.put(i * 5 + j, "axis=" + axis[i] + ",type=" + this.getTypes()[j]); } } \ No newline at end of file diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockDemonPillarCapBase.java b/src/main/java/WayofTime/bloodmagic/block/BlockDemonPillarCapBase.java index 51ef6dbb..e18397e1 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockDemonPillarCapBase.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockDemonPillarCapBase.java @@ -3,6 +3,7 @@ package WayofTime.bloodmagic.block; import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.block.base.BlockEnumPillarCap; import com.google.common.collect.Lists; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.util.EnumFacing; @@ -24,15 +25,10 @@ public class BlockDemonPillarCapBase & IStringSerializable> ex } @Override - public List> getVariants() { - List> ret = Lists.newArrayList(); - + public void populateVariants(Int2ObjectMap variants) { //This is done to make the ItemBlocks have the proper model - for (int i = 0; i < EnumFacing.values().length; i++) for (int j = 0; j < this.getTypes().length; j++) - ret.add(Pair.of(i * 2 + j, "facing=" + EnumFacing.values()[i] + ",type=" + this.getTypes()[j])); - - return ret; + variants.put(i * 2 + j, "facing=" + EnumFacing.values()[i] + ",type=" + this.getTypes()[j]); } } \ No newline at end of file diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockDemonPylon.java b/src/main/java/WayofTime/bloodmagic/block/BlockDemonPylon.java index 28abe0f5..f25a0e35 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockDemonPylon.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockDemonPylon.java @@ -3,6 +3,7 @@ package WayofTime.bloodmagic.block; import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.tile.TileDemonPylon; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; @@ -61,9 +62,7 @@ public class BlockDemonPylon extends BlockContainer implements IVariantProvider } @Override - public List> getVariants() { - List> ret = new ArrayList>(); - ret.add(new ImmutablePair(0, "normal")); - return ret; + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "normal"); } } diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockDemonStairsBase.java b/src/main/java/WayofTime/bloodmagic/block/BlockDemonStairsBase.java index 30166d16..457a7111 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockDemonStairsBase.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockDemonStairsBase.java @@ -3,6 +3,7 @@ package WayofTime.bloodmagic.block; import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.block.base.BlockEnumStairs; import com.google.common.collect.Lists; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.util.IStringSerializable; @@ -23,12 +24,8 @@ public class BlockDemonStairsBase & IStringSerializable> exten } @Override - public List> getVariants() { - List> ret = Lists.newArrayList(); - + public void populateVariants(Int2ObjectMap variants) { for (int i = 0; i < this.getTypes().length; i++) - ret.add(Pair.of(i, "facing=south,half=bottom,shape=straight,type=" + this.getTypes()[i])); - - return ret; + variants.put(i, "facing=south,half=bottom,shape=straight,type=" + this.getTypes()[i]); } } \ No newline at end of file diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockDemonWallBase.java b/src/main/java/WayofTime/bloodmagic/block/BlockDemonWallBase.java index 2ad6bfe1..93fab1f7 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockDemonWallBase.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockDemonWallBase.java @@ -3,6 +3,7 @@ package WayofTime.bloodmagic.block; import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.block.base.BlockEnumWall; import com.google.common.collect.Lists; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.util.IStringSerializable; @@ -23,12 +24,8 @@ public class BlockDemonWallBase & IStringSerializable> extends } @Override - public List> getVariants() { - List> ret = Lists.newArrayList(); - + public void populateVariants(Int2ObjectMap variants) { for (int i = 0; i < this.getTypes().length; i++) - ret.add(Pair.of(i, "east=true,north=false,south=false,type=" + this.getTypes()[i] + ",up=true,west=true")); - - return ret; + variants.put(i, "east=true,north=false,south=false,type=" + this.getTypes()[i] + ",up=true,west=true"); } } \ No newline at end of file diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockIncenseAltar.java b/src/main/java/WayofTime/bloodmagic/block/BlockIncenseAltar.java index af051063..c6aa9870 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockIncenseAltar.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockIncenseAltar.java @@ -3,6 +3,7 @@ package WayofTime.bloodmagic.block; import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.tile.TileIncenseAltar; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; @@ -84,10 +85,8 @@ public class BlockIncenseAltar extends Block implements IVariantProvider, IBMBlo } @Override - public List> getVariants() { - List> ret = new ArrayList>(); - ret.add(new ImmutablePair(0, "normal")); - return ret; + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "normal"); } @Override diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockInversionPillar.java b/src/main/java/WayofTime/bloodmagic/block/BlockInversionPillar.java index 03040157..0b49e8db 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockInversionPillar.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockInversionPillar.java @@ -4,6 +4,7 @@ import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.block.base.BlockEnum; import WayofTime.bloodmagic.block.enums.EnumSubWillType; import WayofTime.bloodmagic.tile.TileInversionPillar; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.block.state.BlockStateContainer; @@ -73,11 +74,9 @@ public class BlockInversionPillar extends BlockEnum { } @Override - public List> getVariants() { - List> ret = new ArrayList>(); + public void populateVariants(Int2ObjectMap variants) { for (int i = 0; i < this.getTypes().length; i++) - ret.add(Pair.of(i, "static=false,type=" + this.getTypes()[i])); - return ret; + variants.put(i, "static=false,type=" + this.getTypes()[i]); } @Override diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockInversionPillarEnd.java b/src/main/java/WayofTime/bloodmagic/block/BlockInversionPillarEnd.java index 9b0e3067..d5669c54 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockInversionPillarEnd.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockInversionPillarEnd.java @@ -4,6 +4,7 @@ import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.block.base.BlockEnum; import WayofTime.bloodmagic.block.enums.EnumInversionCap; import WayofTime.bloodmagic.client.IVariantProvider; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; @@ -54,10 +55,8 @@ public class BlockInversionPillarEnd extends BlockEnum impleme } @Override - public List> getVariants() { - List> ret = new ArrayList>(); + public void populateVariants(Int2ObjectMap variants) { for (int i = 0; i < this.getTypes().length; i++) - ret.add(new ImmutablePair(i, "type=" + this.getTypes()[i])); - return ret; + variants.put(i, "type=" + this.getTypes()[i]); } } diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockPhantom.java b/src/main/java/WayofTime/bloodmagic/block/BlockPhantom.java index b488e046..12a201a1 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockPhantom.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockPhantom.java @@ -3,6 +3,7 @@ package WayofTime.bloodmagic.block; import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.tile.TilePhantomBlock; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; @@ -85,9 +86,7 @@ public class BlockPhantom extends Block implements IVariantProvider { } @Override - public List> getVariants() { - List> ret = new ArrayList>(); - ret.add(new ImmutablePair(0, "normal")); - return ret; + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "normal"); } } diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockRoutingNode.java b/src/main/java/WayofTime/bloodmagic/block/BlockRoutingNode.java index 773d98b9..f9b4fdaf 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockRoutingNode.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockRoutingNode.java @@ -5,6 +5,7 @@ import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.tile.routing.TileMasterRoutingNode; import WayofTime.bloodmagic.tile.routing.TileRoutingNode; import com.google.common.collect.Lists; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.block.properties.PropertyBool; @@ -132,7 +133,7 @@ public class BlockRoutingNode extends Block implements IBMBlock, IVariantProvide } @Override - public List> getVariants() { - return Lists.newArrayList(Pair.of(0, "inventory")); + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "inventory"); } } diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockSoulForge.java b/src/main/java/WayofTime/bloodmagic/block/BlockSoulForge.java index 2c200c2c..6fa1b227 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockSoulForge.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockSoulForge.java @@ -4,6 +4,7 @@ import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.tile.TileSoulForge; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.block.Block; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; @@ -98,10 +99,8 @@ public class BlockSoulForge extends Block implements IVariantProvider, IBMBlock } @Override - public List> getVariants() { - List> ret = new ArrayList>(); - ret.add(new ImmutablePair(0, "normal")); - return ret; + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "normal"); } @Override diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockSpectral.java b/src/main/java/WayofTime/bloodmagic/block/BlockSpectral.java index 6aa45663..61f54108 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockSpectral.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockSpectral.java @@ -4,6 +4,7 @@ import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.ConfigHandler; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.tile.TileSpectralBlock; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; @@ -108,9 +109,7 @@ public class BlockSpectral extends Block implements IVariantProvider { } @Override - public List> getVariants() { - List> ret = new ArrayList>(); - ret.add(new ImmutablePair(0, "normal")); - return ret; + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "normal"); } } diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockTeleposer.java b/src/main/java/WayofTime/bloodmagic/block/BlockTeleposer.java index 6ac92d99..e47581e9 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockTeleposer.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockTeleposer.java @@ -5,6 +5,7 @@ import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.item.ItemTelepositionFocus; import WayofTime.bloodmagic.tile.TileTeleposer; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; @@ -65,10 +66,8 @@ public class BlockTeleposer extends BlockContainer implements IVariantProvider, } @Override - public List> getVariants() { - List> ret = new ArrayList>(); - ret.add(new ImmutablePair(0, "normal")); - return ret; + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "normal"); } @Override diff --git a/src/main/java/WayofTime/bloodmagic/block/IBMBlock.java b/src/main/java/WayofTime/bloodmagic/block/IBMBlock.java index 7dd5b818..479cbcdb 100644 --- a/src/main/java/WayofTime/bloodmagic/block/IBMBlock.java +++ b/src/main/java/WayofTime/bloodmagic/block/IBMBlock.java @@ -2,7 +2,10 @@ package WayofTime.bloodmagic.block; import net.minecraft.item.ItemBlock; +import javax.annotation.Nullable; + public interface IBMBlock { + @Nullable ItemBlock getItem(); } diff --git a/src/main/java/WayofTime/bloodmagic/block/base/BlockEnum.java b/src/main/java/WayofTime/bloodmagic/block/base/BlockEnum.java index 2691f724..496bbf38 100644 --- a/src/main/java/WayofTime/bloodmagic/block/base/BlockEnum.java +++ b/src/main/java/WayofTime/bloodmagic/block/base/BlockEnum.java @@ -4,6 +4,7 @@ import WayofTime.bloodmagic.block.IBMBlock; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.item.block.base.ItemBlockEnum; import com.google.common.collect.Lists; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.block.properties.PropertyEnum; @@ -77,15 +78,12 @@ public class BlockEnum & IStringSerializable> extends Block im } @Override - public List> getVariants() { - List> variants = Lists.newArrayList(); + public void populateVariants(Int2ObjectMap variants) { if (getItem() == null) - return variants; + return; for (int i = 0; i < types.length; i++) - variants.add(Pair.of(i, getProperty().getName() + "=" + types[i].name())); - - return variants; + variants.put(i, getProperty().getName() + "=" + types[i].name()); } public E[] getTypes() { diff --git a/src/main/java/WayofTime/bloodmagic/client/IMeshProvider.java b/src/main/java/WayofTime/bloodmagic/client/IMeshProvider.java index d697da6f..a848bc65 100644 --- a/src/main/java/WayofTime/bloodmagic/client/IMeshProvider.java +++ b/src/main/java/WayofTime/bloodmagic/client/IMeshProvider.java @@ -22,11 +22,9 @@ public interface IMeshProvider { ItemMeshDefinition getMeshDefinition(); /** - * Gets all possible variants for this item - * - * @return - All possible variants for this item + * Populates a list of all possible variants for this item */ - List getVariants(); + void populateVariants(List variants); /** * If a custom ResourceLocation is required, return it here. @@ -36,5 +34,7 @@ public interface IMeshProvider { * @return - The custom ResourceLocation */ @Nullable - ResourceLocation getCustomLocation(); + default ResourceLocation getCustomLocation() { + return null; + } } diff --git a/src/main/java/WayofTime/bloodmagic/client/IVariantProvider.java b/src/main/java/WayofTime/bloodmagic/client/IVariantProvider.java index c37d9958..1d6c71e5 100644 --- a/src/main/java/WayofTime/bloodmagic/client/IVariantProvider.java +++ b/src/main/java/WayofTime/bloodmagic/client/IVariantProvider.java @@ -1,9 +1,16 @@ package WayofTime.bloodmagic.client; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import org.apache.commons.lang3.tuple.Pair; import java.util.List; public interface IVariantProvider { - List> getVariants(); + + /** + * A mapping of meta -> state variant + * + * @param variants A map to populate with all variants + */ + void populateVariants(Int2ObjectMap variants); } diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemActivationCrystal.java b/src/main/java/WayofTime/bloodmagic/item/ItemActivationCrystal.java index c0560ec7..a045bcbf 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemActivationCrystal.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemActivationCrystal.java @@ -3,6 +3,7 @@ package WayofTime.bloodmagic.item; import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.util.helper.TextHelper; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.ItemStack; @@ -50,12 +51,10 @@ public class ItemActivationCrystal extends ItemBindableBase implements IVariantP } @Override - public List> getVariants() { - List> ret = new ArrayList>(); - ret.add(new ImmutablePair(0, "type=weak")); - ret.add(new ImmutablePair(1, "type=demonic")); - ret.add(new ImmutablePair(2, "type=creative")); - return ret; + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "type=weak"); + variants.put(1, "type=demonic"); + variants.put(2, "type=creative"); } public int getCrystalLevel(ItemStack stack) { diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemAltarMaker.java b/src/main/java/WayofTime/bloodmagic/item/ItemAltarMaker.java index 442ecd96..7501b5fc 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemAltarMaker.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemAltarMaker.java @@ -12,6 +12,7 @@ import WayofTime.bloodmagic.util.ChatUtil; import WayofTime.bloodmagic.util.helper.NumeralHelper; import WayofTime.bloodmagic.util.helper.TextHelper; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.block.state.IBlockState; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.player.EntityPlayer; @@ -90,10 +91,8 @@ public class ItemAltarMaker extends Item implements IAltarManipulator, IVariantP } @Override - public List> getVariants() { - List> ret = new ArrayList>(); - ret.add(new ImmutablePair(0, "type=altarmaker")); - return ret; + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "type=altarmaker"); } public void setTierToBuild(EnumAltarTier tierToBuild) { diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemArcaneAshes.java b/src/main/java/WayofTime/bloodmagic/item/ItemArcaneAshes.java index 4734f6f9..11d010ca 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemArcaneAshes.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemArcaneAshes.java @@ -5,6 +5,7 @@ import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.core.RegistrarBloodMagicBlocks; import WayofTime.bloodmagic.tile.TileAlchemyArray; import WayofTime.bloodmagic.util.helper.TextHelper; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -61,9 +62,7 @@ public class ItemArcaneAshes extends Item implements IVariantProvider { } @Override - public List> getVariants() { - List> ret = new ArrayList>(); - ret.add(new ImmutablePair(0, "type=arcaneashes")); - return ret; + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "type=arcaneashes"); } } diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemBloodShard.java b/src/main/java/WayofTime/bloodmagic/item/ItemBloodShard.java index acbf2214..cdcda8d3 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemBloodShard.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemBloodShard.java @@ -2,6 +2,7 @@ package WayofTime.bloodmagic.item; import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.client.IVariantProvider; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -41,10 +42,8 @@ public class ItemBloodShard extends Item implements IVariantProvider { } @Override - public List> getVariants() { - List> ret = new ArrayList>(); - ret.add(new ImmutablePair(0, "type=weak")); - ret.add(new ImmutablePair(1, "type=demonic")); - return ret; + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "type=weak"); + variants.put(1, "type=demonic"); } } diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemBoundAxe.java b/src/main/java/WayofTime/bloodmagic/item/ItemBoundAxe.java index 26831f4c..ee4cdde1 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemBoundAxe.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemBoundAxe.java @@ -4,7 +4,6 @@ import WayofTime.bloodmagic.api.BlockStack; import WayofTime.bloodmagic.api.ItemStackWrapper; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; import WayofTime.bloodmagic.client.IMeshProvider; -import WayofTime.bloodmagic.client.mesh.CustomMeshDefinitionActivatable; import com.google.common.collect.HashMultiset; import com.google.common.collect.Multimap; import com.google.common.collect.Sets; @@ -12,7 +11,6 @@ import net.minecraft.block.Block; import net.minecraft.block.BlockLeaves; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; -import net.minecraft.client.renderer.ItemMeshDefinition; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; @@ -22,17 +20,12 @@ import net.minecraft.init.Blocks; import net.minecraft.init.Enchantments; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.world.BlockEvent; import net.minecraftforge.fml.common.eventhandler.Event; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import javax.annotation.Nullable; -import java.util.ArrayList; import java.util.List; import java.util.Set; @@ -116,24 +109,4 @@ public class ItemBoundAxe extends ItemBoundTool implements IMeshProvider { } return multimap; } - - @Override - @SideOnly(Side.CLIENT) - public ItemMeshDefinition getMeshDefinition() { - return new CustomMeshDefinitionActivatable("bound_axe"); - } - - @Nullable - @Override - public ResourceLocation getCustomLocation() { - return null; - } - - @Override - public List getVariants() { - List ret = new ArrayList(); - ret.add("active=true"); - ret.add("active=false"); - return ret; - } } diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemBoundPickaxe.java b/src/main/java/WayofTime/bloodmagic/item/ItemBoundPickaxe.java index bc2c47f3..21c7a231 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemBoundPickaxe.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemBoundPickaxe.java @@ -4,14 +4,12 @@ import WayofTime.bloodmagic.api.BlockStack; import WayofTime.bloodmagic.api.ItemStackWrapper; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; import WayofTime.bloodmagic.client.IMeshProvider; -import WayofTime.bloodmagic.client.mesh.CustomMeshDefinitionActivatable; import com.google.common.collect.HashMultiset; import com.google.common.collect.Multimap; import com.google.common.collect.Sets; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; -import net.minecraft.client.renderer.ItemMeshDefinition; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; @@ -21,17 +19,12 @@ import net.minecraft.init.Blocks; import net.minecraft.init.Enchantments; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.world.BlockEvent; import net.minecraftforge.fml.common.eventhandler.Event; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import javax.annotation.Nullable; -import java.util.ArrayList; import java.util.List; import java.util.Set; @@ -129,24 +122,4 @@ public class ItemBoundPickaxe extends ItemBoundTool implements IMeshProvider { } return multimap; } - - @Override - @SideOnly(Side.CLIENT) - public ItemMeshDefinition getMeshDefinition() { - return new CustomMeshDefinitionActivatable("bound_pickaxe"); - } - - @Nullable - @Override - public ResourceLocation getCustomLocation() { - return null; - } - - @Override - public List getVariants() { - List ret = new ArrayList(); - ret.add("active=true"); - ret.add("active=false"); - return ret; - } } diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemBoundShovel.java b/src/main/java/WayofTime/bloodmagic/item/ItemBoundShovel.java index c122d617..fd643888 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemBoundShovel.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemBoundShovel.java @@ -4,14 +4,12 @@ import WayofTime.bloodmagic.api.BlockStack; import WayofTime.bloodmagic.api.ItemStackWrapper; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; import WayofTime.bloodmagic.client.IMeshProvider; -import WayofTime.bloodmagic.client.mesh.CustomMeshDefinitionActivatable; import com.google.common.collect.HashMultiset; import com.google.common.collect.Multimap; import com.google.common.collect.Sets; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; -import net.minecraft.client.renderer.ItemMeshDefinition; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; @@ -21,17 +19,12 @@ import net.minecraft.init.Blocks; import net.minecraft.init.Enchantments; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.world.BlockEvent; import net.minecraftforge.fml.common.eventhandler.Event; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import javax.annotation.Nullable; -import java.util.ArrayList; import java.util.List; import java.util.Set; @@ -115,24 +108,4 @@ public class ItemBoundShovel extends ItemBoundTool implements IMeshProvider { } return multimap; } - - @Override - @SideOnly(Side.CLIENT) - public ItemMeshDefinition getMeshDefinition() { - return new CustomMeshDefinitionActivatable("bound_shovel"); - } - - @Nullable - @Override - public ResourceLocation getCustomLocation() { - return null; - } - - @Override - public List getVariants() { - List ret = new ArrayList(); - ret.add("active=true"); - ret.add("active=false"); - return ret; - } } diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemBoundSword.java b/src/main/java/WayofTime/bloodmagic/item/ItemBoundSword.java index cf6a8809..183d72ef 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemBoundSword.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemBoundSword.java @@ -30,14 +30,11 @@ import net.minecraft.item.ItemSword; import net.minecraft.util.ActionResult; import net.minecraft.util.EnumHand; import net.minecraft.util.NonNullList; -import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -import javax.annotation.Nullable; -import java.util.ArrayList; import java.util.List; public class ItemBoundSword extends ItemSword implements IBindable, IActivatable, IMeshProvider { @@ -133,18 +130,10 @@ public class ItemBoundSword extends ItemSword implements IBindable, IActivatable return new CustomMeshDefinitionActivatable("bound_sword"); } - @Nullable @Override - public ResourceLocation getCustomLocation() { - return null; - } - - @Override - public List getVariants() { - List ret = new ArrayList(); - ret.add("active=true"); - ret.add("active=false"); - return ret; + public void populateVariants(List variants) { + variants.add("active=true"); + variants.add("active=false"); } // IBindable diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemBoundTool.java b/src/main/java/WayofTime/bloodmagic/item/ItemBoundTool.java index 0bbcea86..5c830bde 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemBoundTool.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemBoundTool.java @@ -9,6 +9,8 @@ import WayofTime.bloodmagic.api.iface.IBindable; import WayofTime.bloodmagic.api.util.helper.NBTHelper; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; import WayofTime.bloodmagic.api.util.helper.PlayerHelper; +import WayofTime.bloodmagic.client.IMeshProvider; +import WayofTime.bloodmagic.client.mesh.CustomMeshDefinitionActivatable; import WayofTime.bloodmagic.core.RegistrarBloodMagicItems; import WayofTime.bloodmagic.util.Utils; import WayofTime.bloodmagic.util.helper.TextHelper; @@ -19,6 +21,7 @@ import com.google.common.collect.Multimap; import com.google.common.collect.Multiset; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; +import net.minecraft.client.renderer.ItemMeshDefinition; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; @@ -45,7 +48,7 @@ import java.util.List; import java.util.Map; import java.util.Set; -public class ItemBoundTool extends ItemTool implements IBindable, IActivatable { +public class ItemBoundTool extends ItemTool implements IBindable, IActivatable, IMeshProvider { public final int chargeTime = 30; protected final String tooltipBase; private final String name; @@ -250,6 +253,20 @@ public class ItemBoundTool extends ItemTool implements IBindable, IActivatable { return null; } + // IMeshProvider + + @Override + @SideOnly(Side.CLIENT) + public ItemMeshDefinition getMeshDefinition() { + return new CustomMeshDefinitionActivatable("bound_" + name); + } + + @Override + public void populateVariants(List variants) { + variants.add("active=true"); + variants.add("active=false"); + } + public String getTooltipBase() { return tooltipBase; } diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemDaggerOfSacrifice.java b/src/main/java/WayofTime/bloodmagic/item/ItemDaggerOfSacrifice.java index b5cdb49c..0b23856f 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemDaggerOfSacrifice.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemDaggerOfSacrifice.java @@ -6,6 +6,7 @@ import WayofTime.bloodmagic.api.util.helper.PurificationHelper; import WayofTime.bloodmagic.api_impl.BloodMagicAPI; import WayofTime.bloodmagic.client.IVariantProvider; import com.google.common.collect.Lists; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.monster.IMob; import net.minecraft.entity.passive.EntityAnimal; @@ -76,9 +77,7 @@ public class ItemDaggerOfSacrifice extends Item implements IVariantProvider { } @Override - public List> getVariants() { - List> ret = Lists.newArrayList(); - ret.add(Pair.of(0, "type=normal")); - return ret; + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "type=normal"); } } diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemDemonCrystal.java b/src/main/java/WayofTime/bloodmagic/item/ItemDemonCrystal.java index bd8143dc..169265cf 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemDemonCrystal.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemDemonCrystal.java @@ -6,6 +6,7 @@ import WayofTime.bloodmagic.api.soul.IDiscreteDemonWill; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.core.RegistrarBloodMagicItems; import com.google.common.collect.Lists; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -90,11 +91,9 @@ public class ItemDemonCrystal extends Item implements IDiscreteDemonWill, IVaria } @Override - public List> getVariants() { - List> ret = new ArrayList>(); + public void populateVariants(Int2ObjectMap variants) { for (String name : NAMES) - ret.add(new ImmutablePair(NAMES.indexOf(name), "type=" + name)); - return ret; + variants.put(NAMES.indexOf(name), "type=" + name); } public static ItemStack getStack(String name) { diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemDemonWillGauge.java b/src/main/java/WayofTime/bloodmagic/item/ItemDemonWillGauge.java index 68dcc7cf..5c3b8927 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemDemonWillGauge.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemDemonWillGauge.java @@ -4,6 +4,7 @@ import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.api.iface.IDemonWillViewer; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.util.helper.TextHelper; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -32,10 +33,8 @@ public class ItemDemonWillGauge extends Item implements IVariantProvider, IDemon } @Override - public List> getVariants() { - List> ret = new ArrayList>(); - ret.add(new ImmutablePair(0, "type=willgauge")); - return ret; + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "type=willgauge"); } @Override diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemEnum.java b/src/main/java/WayofTime/bloodmagic/item/ItemEnum.java index e3799a0f..e7ca9173 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemEnum.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemEnum.java @@ -4,6 +4,7 @@ import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.item.types.ISubItem; import com.google.common.collect.Lists; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -49,11 +50,8 @@ public class ItemEnum & ISubItem> extends Item implements IVar } @Override - public List> getVariants() { - List> variants = Lists.newArrayList(); + public void populateVariants(Int2ObjectMap variants) { for (int i = 0; i < types.length; i++) - variants.add(Pair.of(i, "type=" + types[i].getInternalName())); - - return variants; + variants.put(i, "type=" + types[i].getInternalName()); } } \ No newline at end of file diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemExperienceBook.java b/src/main/java/WayofTime/bloodmagic/item/ItemExperienceBook.java index 45fad002..1973bb51 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemExperienceBook.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemExperienceBook.java @@ -4,6 +4,7 @@ import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.api.util.helper.NBTHelper; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.util.helper.TextHelper; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.SoundEvents; @@ -59,14 +60,12 @@ public class ItemExperienceBook extends Item implements IVariantProvider { giveOneLevelExpToPlayer(stack, player); } - return new ActionResult(EnumActionResult.SUCCESS, stack); + return new ActionResult<>(EnumActionResult.SUCCESS, stack); } @Override - public List> getVariants() { - List> ret = new ArrayList>(); - ret.add(new ImmutablePair(0, "type=experiencetome")); - return ret; + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "type=experiencetome"); } public void giveOneLevelExpToPlayer(ItemStack stack, EntityPlayer player) { diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemInscriptionTool.java b/src/main/java/WayofTime/bloodmagic/item/ItemInscriptionTool.java index 4481c2a2..51186953 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemInscriptionTool.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemInscriptionTool.java @@ -7,6 +7,7 @@ import WayofTime.bloodmagic.api.util.helper.NBTHelper; import WayofTime.bloodmagic.block.BlockRitualStone; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.util.helper.TextHelper; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.block.state.IBlockState; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.creativetab.CreativeTabs; @@ -102,11 +103,9 @@ public class ItemInscriptionTool extends ItemBindableBase implements IVariantPro } @Override - public List> getVariants() { - List> ret = new ArrayList>(); + public void populateVariants(Int2ObjectMap variants) { for (int i = 1; i < EnumRuneType.values().length; i++) - ret.add(new ImmutablePair(i, "type=" + EnumRuneType.values()[i].name())); - return ret; + variants.put(i, "type=" + EnumRuneType.values()[i].name()); } public EnumRuneType getType(ItemStack stack) { diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemLavaCrystal.java b/src/main/java/WayofTime/bloodmagic/item/ItemLavaCrystal.java index c224ea7d..218f19c8 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemLavaCrystal.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemLavaCrystal.java @@ -5,6 +5,7 @@ import WayofTime.bloodmagic.api.util.helper.NetworkHelper; import WayofTime.bloodmagic.api.util.helper.PlayerHelper; import WayofTime.bloodmagic.client.IVariantProvider; import com.google.common.collect.Lists; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.MobEffects; import net.minecraft.item.ItemStack; @@ -53,9 +54,7 @@ public class ItemLavaCrystal extends ItemBindableBase implements IVariantProvide } @Override - public List> getVariants() { - List> ret = Lists.newArrayList(); - ret.add(Pair.of(0, "type=normal")); - return ret; + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "type=normal"); } } diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemPotionFlask.java b/src/main/java/WayofTime/bloodmagic/item/ItemPotionFlask.java index 3f5e15ac..4e628304 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemPotionFlask.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemPotionFlask.java @@ -4,7 +4,6 @@ import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.api.util.helper.NBTHelper; import WayofTime.bloodmagic.client.IMeshProvider; import WayofTime.bloodmagic.util.helper.TextHelper; -import com.google.common.collect.Lists; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.ItemMeshDefinition; import net.minecraft.client.renderer.block.model.ModelResourceLocation; @@ -24,7 +23,6 @@ import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -import javax.annotation.Nullable; import java.util.List; public class ItemPotionFlask extends Item implements IMeshProvider { @@ -131,14 +129,9 @@ public class ItemPotionFlask extends Item implements IMeshProvider { }; } - @Nullable @Override - public ResourceLocation getCustomLocation() { - return null; - } - - @Override - public List getVariants() { - return Lists.newArrayList("full=true", "full=false"); + public void populateVariants(List variants) { + variants.add("full=true"); + variants.add("full=false"); } } \ No newline at end of file diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemRitualDiviner.java b/src/main/java/WayofTime/bloodmagic/item/ItemRitualDiviner.java index 616b01a2..0a8c8e2f 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemRitualDiviner.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemRitualDiviner.java @@ -16,6 +16,7 @@ import WayofTime.bloodmagic.util.Utils; import WayofTime.bloodmagic.util.handler.event.ClientHandler; import WayofTime.bloodmagic.util.helper.TextHelper; import com.google.common.base.Strings; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; import net.minecraft.client.util.ITooltipFlag; @@ -332,12 +333,10 @@ public class ItemRitualDiviner extends Item implements IVariantProvider { } @Override - public List> getVariants() { - List> ret = new ArrayList>(); - ret.add(new ImmutablePair(0, "type=basic")); - ret.add(new ImmutablePair(1, "type=dusk")); - ret.add(new ImmutablePair(2, "type=dawn")); - return ret; + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "type=basic"); + variants.put(1, "type=dusk"); + variants.put(2, "type=dawn"); } public void cycleDirection(ItemStack stack, EntityPlayer player) { diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemRitualReader.java b/src/main/java/WayofTime/bloodmagic/item/ItemRitualReader.java index 455e3f1c..dfbae3ec 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemRitualReader.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemRitualReader.java @@ -10,6 +10,7 @@ import WayofTime.bloodmagic.api.util.helper.NBTHelper; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.util.ChatUtil; import WayofTime.bloodmagic.util.helper.TextHelper; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -233,9 +234,7 @@ public class ItemRitualReader extends Item implements IVariantProvider { } @Override - public List> getVariants() { - List> ret = new ArrayList>(); - ret.add(new ImmutablePair(0, "type=normal")); - return ret; + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "type=normal"); } } diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemSacrificialDagger.java b/src/main/java/WayofTime/bloodmagic/item/ItemSacrificialDagger.java index 1444de0e..f06cfe2b 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemSacrificialDagger.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemSacrificialDagger.java @@ -30,8 +30,6 @@ import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -import javax.annotation.Nullable; -import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -183,17 +181,9 @@ public class ItemSacrificialDagger extends Item implements IMeshProvider { } @Override - public List getVariants() { - List variants = new ArrayList(); + public void populateVariants(List variants) { variants.add("type=normal"); variants.add("type=creative"); variants.add("type=ceremonial"); - return variants; - } - - @Nullable - @Override - public ResourceLocation getCustomLocation() { - return null; } } \ No newline at end of file diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemSanguineBook.java b/src/main/java/WayofTime/bloodmagic/item/ItemSanguineBook.java index f17328f6..2656aaba 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemSanguineBook.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemSanguineBook.java @@ -11,6 +11,7 @@ import WayofTime.bloodmagic.tile.TileAltar; import WayofTime.bloodmagic.util.ChatUtil; import WayofTime.bloodmagic.util.helper.NumeralHelper; import WayofTime.bloodmagic.util.helper.TextHelper; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.block.state.IBlockState; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.player.EntityPlayer; @@ -109,7 +110,7 @@ public class ItemSanguineBook extends Item implements IVariantProvider, IAltarMa // IVariantProvider @Override - public List> getVariants() { - return Collections.singletonList(Pair.of(0, "type=normal")); + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "type=normal"); } } diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemSlate.java b/src/main/java/WayofTime/bloodmagic/item/ItemSlate.java index b2564ffb..ab68166d 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemSlate.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemSlate.java @@ -3,6 +3,7 @@ package WayofTime.bloodmagic.item; import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.util.helper.TextHelper; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; @@ -51,13 +52,11 @@ public class ItemSlate extends Item implements IVariantProvider { } @Override - public List> getVariants() { - List> ret = new ArrayList>(); - ret.add(new ImmutablePair(0, "type=blank")); - ret.add(new ImmutablePair(1, "type=reinforced")); - ret.add(new ImmutablePair(2, "type=imbued")); - ret.add(new ImmutablePair(3, "type=demonic")); - ret.add(new ImmutablePair(4, "type=ethereal")); - return ret; + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "type=blank"); + variants.put(1, "type=reinforced"); + variants.put(2, "type=imbued"); + variants.put(3, "type=demonic"); + variants.put(4, "type=ethereal"); } } diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemTelepositionFocus.java b/src/main/java/WayofTime/bloodmagic/item/ItemTelepositionFocus.java index 64895638..e1926357 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemTelepositionFocus.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemTelepositionFocus.java @@ -5,6 +5,7 @@ import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.util.helper.NBTHelper; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.util.helper.TextHelper; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; @@ -87,13 +88,11 @@ public class ItemTelepositionFocus extends ItemBindableBase implements IVariantP } @Override - public List> getVariants() { - List> ret = new ArrayList>(); - ret.add(new ImmutablePair(0, "type=weak")); - ret.add(new ImmutablePair(1, "type=enhanced")); - ret.add(new ImmutablePair(2, "type=reinforced")); - ret.add(new ImmutablePair(3, "type=demonic")); - return ret; + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "type=weak"); + variants.put(1, "type=enhanced"); + variants.put(2, "type=reinforced"); + variants.put(3, "type=demonic"); } public World getWorld(ItemStack stack) { diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemUpgradeTome.java b/src/main/java/WayofTime/bloodmagic/item/ItemUpgradeTome.java index c7bd3f2c..2a7e87b8 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemUpgradeTome.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemUpgradeTome.java @@ -8,6 +8,7 @@ import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.item.armour.ItemLivingArmour; import WayofTime.bloodmagic.livingArmour.LivingArmour; import WayofTime.bloodmagic.util.helper.TextHelper; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; @@ -96,10 +97,8 @@ public class ItemUpgradeTome extends Item implements IVariantProvider { } @Override - public List> getVariants() { - List> ret = new ArrayList>(); - ret.add(new ImmutablePair(0, "type=upgradetome")); - return ret; + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "type=upgradetome"); } @Override diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemUpgradeTrainer.java b/src/main/java/WayofTime/bloodmagic/item/ItemUpgradeTrainer.java index f22ac3c0..459b25ef 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemUpgradeTrainer.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemUpgradeTrainer.java @@ -7,6 +7,7 @@ import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade; import WayofTime.bloodmagic.api.util.helper.ItemHelper.LivingUpgrades; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.util.helper.TextHelper; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; @@ -82,9 +83,7 @@ public class ItemUpgradeTrainer extends Item implements IUpgradeTrainer, IVarian } @Override - public List> getVariants() { - List> ret = new ArrayList>(); - ret.add(new ImmutablePair(0, "type=upgradetrainer")); - return ret; + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "type=upgradetrainer"); } } diff --git a/src/main/java/WayofTime/bloodmagic/item/alchemy/ItemCuttingFluid.java b/src/main/java/WayofTime/bloodmagic/item/alchemy/ItemCuttingFluid.java index f65f891c..6e5e1e82 100644 --- a/src/main/java/WayofTime/bloodmagic/item/alchemy/ItemCuttingFluid.java +++ b/src/main/java/WayofTime/bloodmagic/item/alchemy/ItemCuttingFluid.java @@ -6,6 +6,7 @@ import WayofTime.bloodmagic.api.util.helper.NBTHelper; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.core.RegistrarBloodMagicItems; import WayofTime.bloodmagic.util.helper.TextHelper; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; @@ -67,11 +68,9 @@ public class ItemCuttingFluid extends Item implements IVariantProvider, ICustomA } @Override - public List> getVariants() { - List> ret = new ArrayList>(); + public void populateVariants(Int2ObjectMap variants) { for (String name : names) - ret.add(new ImmutablePair(names.indexOf(name), "type=" + name)); - return ret; + variants.put(names.indexOf(name), "type=" + name); } public int getDamageOfFluid(ItemStack stack) { diff --git a/src/main/java/WayofTime/bloodmagic/item/alchemy/ItemLivingArmourPointsUpgrade.java b/src/main/java/WayofTime/bloodmagic/item/alchemy/ItemLivingArmourPointsUpgrade.java index 30e35efd..269587c5 100644 --- a/src/main/java/WayofTime/bloodmagic/item/alchemy/ItemLivingArmourPointsUpgrade.java +++ b/src/main/java/WayofTime/bloodmagic/item/alchemy/ItemLivingArmourPointsUpgrade.java @@ -7,6 +7,7 @@ import WayofTime.bloodmagic.item.armour.ItemLivingArmour; import WayofTime.bloodmagic.livingArmour.LivingArmour; import WayofTime.bloodmagic.util.helper.TextHelper; import com.google.common.collect.Iterables; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.EntityLivingBase; @@ -118,11 +119,9 @@ public class ItemLivingArmourPointsUpgrade extends Item implements IVariantProvi } @Override - public List> getVariants() { - List> ret = new ArrayList>(); + public void populateVariants(Int2ObjectMap variants) { for (String name : names) - ret.add(new ImmutablePair(names.indexOf(name), "type=" + name)); - return ret; + variants.put(names.indexOf(name), "type=" + name); } public static ItemStack getStack(String name) { diff --git a/src/main/java/WayofTime/bloodmagic/item/armour/ItemLivingArmour.java b/src/main/java/WayofTime/bloodmagic/item/armour/ItemLivingArmour.java index 55f632f9..886202e0 100644 --- a/src/main/java/WayofTime/bloodmagic/item/armour/ItemLivingArmour.java +++ b/src/main/java/WayofTime/bloodmagic/item/armour/ItemLivingArmour.java @@ -9,7 +9,6 @@ import WayofTime.bloodmagic.api.util.helper.NBTHelper; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; import WayofTime.bloodmagic.client.IMeshProvider; import WayofTime.bloodmagic.core.RegistrarBloodMagicItems; -import WayofTime.bloodmagic.item.types.ComponentType; import WayofTime.bloodmagic.item.types.ReagentType; import WayofTime.bloodmagic.livingArmour.LivingArmour; import WayofTime.bloodmagic.livingArmour.tracker.StatTrackerRepairing; @@ -45,8 +44,11 @@ import org.lwjgl.input.Keyboard; import javax.annotation.Nullable; import java.lang.reflect.Field; -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; +import java.util.UUID; public class ItemLivingArmour extends ItemArmor implements ISpecialArmor, IMeshProvider { public static final boolean useSpecialArmourCalculation = true; @@ -367,13 +369,11 @@ public class ItemLivingArmour extends ItemArmor implements ISpecialArmor, IMeshP } @Override - public List getVariants() { - List ret = new ArrayList(); - ret.add("armour=head"); - ret.add("armour=body"); - ret.add("armour=leg"); - ret.add("armour=feet"); - return ret; + public void populateVariants(List variants) { + variants.add("armour=head"); + variants.add("armour=body"); + variants.add("armour=leg"); + variants.add("armour=feet"); } public void setLivingArmour(ItemStack stack, LivingArmour armour, boolean forceWrite) { diff --git a/src/main/java/WayofTime/bloodmagic/item/armour/ItemSentientArmour.java b/src/main/java/WayofTime/bloodmagic/item/armour/ItemSentientArmour.java index 962a6272..63662c40 100644 --- a/src/main/java/WayofTime/bloodmagic/item/armour/ItemSentientArmour.java +++ b/src/main/java/WayofTime/bloodmagic/item/armour/ItemSentientArmour.java @@ -33,7 +33,10 @@ import net.minecraftforge.common.ISpecialArmor; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -import java.util.*; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.UUID; public class ItemSentientArmour extends ItemArmor implements ISpecialArmor, IMeshProvider, IMultiWillTool { public static String[] names = {"helmet", "chest", "legs", "boots"}; @@ -297,18 +300,15 @@ public class ItemSentientArmour extends ItemArmor implements ISpecialArmor, IMes } @Override - public List getVariants() { - List ret = new ArrayList(); + public void populateVariants(List variants) { for (EnumDemonWillType type : EnumDemonWillType.values()) { String additional = "_" + type.getName().toLowerCase(); - ret.add("armour=head" + additional); - ret.add("armour=body" + additional); - ret.add("armour=leg" + additional); - ret.add("armour=feet" + additional); + variants.add("armour=head" + additional); + variants.add("armour=body" + additional); + variants.add("armour=leg" + additional); + variants.add("armour=feet" + additional); } - - return ret; } @Override diff --git a/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockAlchemyTable.java b/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockAlchemyTable.java index 6f082408..3370d29f 100644 --- a/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockAlchemyTable.java +++ b/src/main/java/WayofTime/bloodmagic/item/block/ItemBlockAlchemyTable.java @@ -3,6 +3,7 @@ package WayofTime.bloodmagic.item.block; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.tile.TileAlchemyTable; import com.google.common.collect.Lists; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; @@ -64,7 +65,7 @@ public class ItemBlockAlchemyTable extends ItemBlock implements IVariantProvider } @Override - public List> getVariants() { - return Lists.newArrayList(Pair.of(0, "inventory")); + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "inventory"); } } \ No newline at end of file diff --git a/src/main/java/WayofTime/bloodmagic/item/gear/ItemPackSacrifice.java b/src/main/java/WayofTime/bloodmagic/item/gear/ItemPackSacrifice.java index 3abdfdce..bece7301 100644 --- a/src/main/java/WayofTime/bloodmagic/item/gear/ItemPackSacrifice.java +++ b/src/main/java/WayofTime/bloodmagic/item/gear/ItemPackSacrifice.java @@ -9,6 +9,7 @@ import WayofTime.bloodmagic.api.util.helper.ItemHelper.LPContainer; import WayofTime.bloodmagic.api.util.helper.NBTHelper; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.util.helper.TextHelper; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.EntityEquipmentSlot; @@ -76,10 +77,8 @@ public class ItemPackSacrifice extends ItemArmor implements IAltarManipulator, I } @Override - public List> getVariants() { - List> ret = new ArrayList>(); - ret.add(new ImmutablePair(0, "type=normal")); - return ret; + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "type=normal"); } // IFillable diff --git a/src/main/java/WayofTime/bloodmagic/item/gear/ItemPackSelfSacrifice.java b/src/main/java/WayofTime/bloodmagic/item/gear/ItemPackSelfSacrifice.java index 1dd19a4b..9d6c36f8 100644 --- a/src/main/java/WayofTime/bloodmagic/item/gear/ItemPackSelfSacrifice.java +++ b/src/main/java/WayofTime/bloodmagic/item/gear/ItemPackSelfSacrifice.java @@ -10,6 +10,7 @@ import WayofTime.bloodmagic.api.util.helper.NBTHelper; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.util.helper.TextHelper; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.EntityEquipmentSlot; @@ -101,10 +102,8 @@ public class ItemPackSelfSacrifice extends ItemArmor implements IAltarManipulato } @Override - public List> getVariants() { - List> ret = new ArrayList>(); - ret.add(new ImmutablePair(0, "type=normal")); - return ret; + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "type=normal"); } // IFillable diff --git a/src/main/java/WayofTime/bloodmagic/item/routing/ItemFluidRouterFilter.java b/src/main/java/WayofTime/bloodmagic/item/routing/ItemFluidRouterFilter.java index 455c44c4..d88f2432 100644 --- a/src/main/java/WayofTime/bloodmagic/item/routing/ItemFluidRouterFilter.java +++ b/src/main/java/WayofTime/bloodmagic/item/routing/ItemFluidRouterFilter.java @@ -7,6 +7,7 @@ import WayofTime.bloodmagic.routing.IFluidFilter; import WayofTime.bloodmagic.routing.RoutingFluidFilter; import WayofTime.bloodmagic.util.GhostItemHelper; import WayofTime.bloodmagic.util.helper.TextHelper; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; @@ -121,10 +122,8 @@ public class ItemFluidRouterFilter extends Item implements IFluidFilterProvider, } @Override - public List> getVariants() { - List> ret = new ArrayList>(); - ret.add(new ImmutablePair(0, "type=exact")); - return ret; + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "type=exact"); } @Override diff --git a/src/main/java/WayofTime/bloodmagic/item/routing/ItemNodeRouter.java b/src/main/java/WayofTime/bloodmagic/item/routing/ItemNodeRouter.java index 3cdb1aa0..4cdc0ae6 100644 --- a/src/main/java/WayofTime/bloodmagic/item/routing/ItemNodeRouter.java +++ b/src/main/java/WayofTime/bloodmagic/item/routing/ItemNodeRouter.java @@ -8,6 +8,7 @@ import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.routing.IMasterRoutingNode; import WayofTime.bloodmagic.routing.IRoutingNode; import WayofTime.bloodmagic.util.helper.TextHelper; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -176,10 +177,8 @@ public class ItemNodeRouter extends Item implements INodeRenderer, IVariantProvi } @Override - public List> getVariants() { - List> ret = new ArrayList>(); - ret.add(new ImmutablePair(0, "type=normal")); - return ret; + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "type=normal"); } public BlockPos getBlockPos(ItemStack stack) { diff --git a/src/main/java/WayofTime/bloodmagic/item/routing/ItemRouterFilter.java b/src/main/java/WayofTime/bloodmagic/item/routing/ItemRouterFilter.java index 76cc2b48..5fa81eed 100644 --- a/src/main/java/WayofTime/bloodmagic/item/routing/ItemRouterFilter.java +++ b/src/main/java/WayofTime/bloodmagic/item/routing/ItemRouterFilter.java @@ -6,6 +6,7 @@ import WayofTime.bloodmagic.item.inventory.ItemInventory; import WayofTime.bloodmagic.routing.*; import WayofTime.bloodmagic.util.GhostItemHelper; import WayofTime.bloodmagic.util.helper.TextHelper; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; @@ -138,13 +139,11 @@ public class ItemRouterFilter extends Item implements IItemFilterProvider, IVari } @Override - public List> getVariants() { - List> ret = new ArrayList>(); - ret.add(new ImmutablePair(0, "type=exact")); - ret.add(new ImmutablePair(1, "type=ignorenbt")); - ret.add(new ImmutablePair(2, "type=moditems")); - ret.add(new ImmutablePair(3, "type=oredict")); - return ret; + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "type=exact"); + variants.put(1, "type=ignorenbt"); + variants.put(2, "type=moditems"); + variants.put(3, "type=oredict"); } @Override diff --git a/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilBase.java b/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilBase.java index 7de088ff..74157b85 100644 --- a/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilBase.java +++ b/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilBase.java @@ -6,6 +6,7 @@ import WayofTime.bloodmagic.api.util.helper.PlayerHelper; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.util.helper.TextHelper; import com.google.common.base.Strings; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -51,10 +52,8 @@ public class ItemSigilBase extends ItemSigil implements IVariantProvider { } @Override - public List> getVariants() { - List> ret = new ArrayList>(); - ret.add(Pair.of(0, "type=normal")); - return ret; + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "type=normal"); } public String getName() { diff --git a/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilHolding.java b/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilHolding.java index da59eee5..5ac4df3f 100644 --- a/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilHolding.java +++ b/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilHolding.java @@ -12,6 +12,7 @@ import WayofTime.bloodmagic.client.key.KeyBindings; import WayofTime.bloodmagic.util.Utils; import WayofTime.bloodmagic.util.helper.TextHelper; import com.google.common.base.Strings; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; @@ -167,8 +168,8 @@ public class ItemSigilHolding extends ItemSigilBase implements IKeybindable, IAl } @Override - public List> getVariants() { - return Collections.emptyList(); + public void populateVariants(Int2ObjectMap variants) { + } public static int next(int mode) { diff --git a/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilToggleableBase.java b/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilToggleableBase.java index 7590fc19..fed28625 100644 --- a/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilToggleableBase.java +++ b/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilToggleableBase.java @@ -10,14 +10,10 @@ import com.google.common.base.Strings; import net.minecraft.client.renderer.ItemMeshDefinition; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -import org.apache.commons.lang3.text.WordUtils; -import javax.annotation.Nullable; -import java.util.ArrayList; import java.util.List; import java.util.Locale; @@ -53,18 +49,9 @@ public class ItemSigilToggleableBase extends ItemSigilToggleable implements IMes return new CustomMeshDefinitionActivatable("sigil_" + name.toLowerCase(Locale.ROOT)); } - @Nullable @Override - public ResourceLocation getCustomLocation() { - return null; - } - - @Override - public List getVariants() { - List ret = new ArrayList(); - ret.add("active=false"); - ret.add("active=true"); - - return ret; + public void populateVariants(List variants) { + variants.add("active=false"); + variants.add("active=true"); } } diff --git a/src/main/java/WayofTime/bloodmagic/item/sigil/sigil/ItemSigil.java b/src/main/java/WayofTime/bloodmagic/item/sigil/sigil/ItemSigil.java index 1550549c..df087bf3 100644 --- a/src/main/java/WayofTime/bloodmagic/item/sigil/sigil/ItemSigil.java +++ b/src/main/java/WayofTime/bloodmagic/item/sigil/sigil/ItemSigil.java @@ -5,20 +5,21 @@ import WayofTime.bloodmagic.api.iface.IBindable; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; import WayofTime.bloodmagic.api.util.helper.PlayerHelper; import WayofTime.bloodmagic.client.IMeshProvider; -import com.google.common.collect.Lists; import net.minecraft.client.renderer.ItemMeshDefinition; import net.minecraft.client.renderer.block.model.ModelResourceLocation; 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.*; +import net.minecraft.util.ActionResult; +import net.minecraft.util.EnumActionResult; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -import javax.annotation.Nullable; import java.util.List; public class ItemSigil extends Item implements IBindable, IMeshProvider { @@ -131,18 +132,11 @@ public class ItemSigil extends Item implements IBindable, IMeshProvider { } @Override - public List getVariants() { + public void populateVariants(List variants) { if (sigil instanceof ISigil.Toggle) { - return Lists.newArrayList( - "active=true", - "active=false" - ); - } else return Lists.newArrayList("inventory"); - } - - @Nullable - @Override - public ResourceLocation getCustomLocation() { - return null; + variants.add("active=true"); + variants.add("active=false"); + } else + variants.add("inventory"); } } diff --git a/src/main/java/WayofTime/bloodmagic/item/soul/ItemMonsterSoul.java b/src/main/java/WayofTime/bloodmagic/item/soul/ItemMonsterSoul.java index 3be9b4be..ed35d92d 100644 --- a/src/main/java/WayofTime/bloodmagic/item/soul/ItemMonsterSoul.java +++ b/src/main/java/WayofTime/bloodmagic/item/soul/ItemMonsterSoul.java @@ -7,6 +7,7 @@ import WayofTime.bloodmagic.api.soul.IDemonWill; import WayofTime.bloodmagic.api.util.helper.NBTHelper; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.util.helper.TextHelper; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; @@ -105,13 +106,9 @@ public class ItemMonsterSoul extends Item implements IDemonWill, IVariantProvide } @Override - public List> getVariants() { - List> ret = new ArrayList>(); - for (int i = 0; i < names.length; i++) { - String name = names[i]; - ret.add(new ImmutablePair(i, "type=" + name)); - } - return ret; + public void populateVariants(Int2ObjectMap variants) { + for (int i = 0; i < names.length; i++) + variants.put(i, "type=" + names[i]); } @Override diff --git a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientArmourGem.java b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientArmourGem.java index e25ae539..3c1e9fc6 100644 --- a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientArmourGem.java +++ b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientArmourGem.java @@ -5,19 +5,20 @@ import WayofTime.bloodmagic.api.soul.EnumDemonWillType; import WayofTime.bloodmagic.api.soul.PlayerDemonWillHandler; import WayofTime.bloodmagic.client.IMeshProvider; import WayofTime.bloodmagic.item.armour.ItemSentientArmour; -import com.google.common.collect.Lists; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.ItemMeshDefinition; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.*; +import net.minecraft.util.ActionResult; +import net.minecraft.util.EnumActionResult; +import net.minecraft.util.EnumHand; +import net.minecraft.util.NonNullList; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -import javax.annotation.Nullable; import java.util.List; public class ItemSentientArmourGem extends Item implements IMeshProvider { @@ -53,7 +54,7 @@ public class ItemSentientArmourGem extends Item implements IMeshProvider { ItemSentientArmour.convertPlayerArmour(type, will, player); } - return new ActionResult(EnumActionResult.PASS, player.getHeldItem(hand)); + return new ActionResult<>(EnumActionResult.PASS, player.getHeldItem(hand)); } @SideOnly(Side.CLIENT) @@ -62,24 +63,17 @@ public class ItemSentientArmourGem extends Item implements IMeshProvider { return stack -> { boolean flag = false; NonNullList armourInventory = Minecraft.getMinecraft().player.inventory.armorInventory; - for (ItemStack armourStack : armourInventory) { - if (armourStack != null && armourStack.getItem() instanceof ItemSentientArmour) { + for (ItemStack armourStack : armourInventory) + if (!armourStack.isEmpty() && armourStack.getItem() instanceof ItemSentientArmour) flag = true; - } - } return new ModelResourceLocation(stack.getItem().getRegistryName(), "type=" + (flag ? "" : "de") + "activated"); }; } @Override - public List getVariants() { - return Lists.newArrayList("type=activated", "type=deactivated"); - } - - @Nullable - @Override - public ResourceLocation getCustomLocation() { - return null; + public void populateVariants(List variants) { + variants.add("type=activated"); + variants.add("type=deactivated"); } } diff --git a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientAxe.java b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientAxe.java index c2b82f28..24298f2a 100644 --- a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientAxe.java +++ b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientAxe.java @@ -36,13 +36,11 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.PotionEffect; import net.minecraft.util.ActionResult; import net.minecraft.util.EnumHand; -import net.minecraft.util.ResourceLocation; import net.minecraft.world.EnumDifficulty; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -import javax.annotation.Nullable; import java.util.*; public class ItemSentientAxe extends ItemAxe implements IDemonWillWeapon, IMeshProvider, IMultiWillTool, ISentientTool { @@ -300,20 +298,10 @@ public class ItemSentientAxe extends ItemAxe implements IDemonWillWeapon, IMeshP return new CustomMeshDefinitionMultiWill("sentient_axe"); } - @Nullable @Override - public ResourceLocation getCustomLocation() { - return null; - } - - @Override - public List getVariants() { - List ret = new ArrayList(); - for (EnumDemonWillType type : EnumDemonWillType.values()) { - ret.add("type=" + type.getName().toLowerCase()); - } - - return ret; + public void populateVariants(List variants) { + for (EnumDemonWillType type : EnumDemonWillType.values()) + variants.add("type=" + type.getName().toLowerCase()); } @Override diff --git a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientBow.java b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientBow.java index 97b87625..00c29dec 100644 --- a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientBow.java +++ b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientBow.java @@ -12,6 +12,7 @@ import WayofTime.bloodmagic.core.RegistrarBloodMagicItems; import WayofTime.bloodmagic.entity.mob.EntitySentientSpecter; import WayofTime.bloodmagic.entity.projectile.EntitySentientArrow; import com.google.common.collect.Lists; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -253,8 +254,8 @@ public class ItemSentientBow extends ItemBow implements IMultiWillTool, ISentien } @Override - public List> getVariants() { - return Lists.newArrayList(Pair.of(0, "inventory")); + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "inventory"); } public EntityTippedArrow getArrowEntity(World world, ItemStack stack, EntityLivingBase target, EntityLivingBase user, float velocity) { diff --git a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientPickaxe.java b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientPickaxe.java index 05c51b19..07d8690f 100644 --- a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientPickaxe.java +++ b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientPickaxe.java @@ -36,13 +36,11 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.PotionEffect; import net.minecraft.util.ActionResult; import net.minecraft.util.EnumHand; -import net.minecraft.util.ResourceLocation; import net.minecraft.world.EnumDifficulty; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -import javax.annotation.Nullable; import java.util.*; public class ItemSentientPickaxe extends ItemPickaxe implements IDemonWillWeapon, IMeshProvider, IMultiWillTool, ISentientTool { @@ -299,20 +297,10 @@ public class ItemSentientPickaxe extends ItemPickaxe implements IDemonWillWeapon return new CustomMeshDefinitionMultiWill("sentient_pickaxe"); } - @Nullable @Override - public ResourceLocation getCustomLocation() { - return null; - } - - @Override - public List getVariants() { - List ret = new ArrayList(); - for (EnumDemonWillType type : EnumDemonWillType.values()) { - ret.add("type=" + type.getName().toLowerCase()); - } - - return ret; + public void populateVariants(List variants) { + for (EnumDemonWillType type : EnumDemonWillType.values()) + variants.add("type=" + type.getName().toLowerCase()); } @Override diff --git a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientShovel.java b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientShovel.java index 2edd2b73..e6888e5d 100644 --- a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientShovel.java +++ b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientShovel.java @@ -36,13 +36,11 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.PotionEffect; import net.minecraft.util.ActionResult; import net.minecraft.util.EnumHand; -import net.minecraft.util.ResourceLocation; import net.minecraft.world.EnumDifficulty; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -import javax.annotation.Nullable; import java.util.*; public class ItemSentientShovel extends ItemSpade implements IDemonWillWeapon, IMeshProvider, IMultiWillTool, ISentientTool { @@ -300,20 +298,10 @@ public class ItemSentientShovel extends ItemSpade implements IDemonWillWeapon, I return new CustomMeshDefinitionMultiWill("sentient_shovel"); } - @Nullable @Override - public ResourceLocation getCustomLocation() { - return null; - } - - @Override - public List getVariants() { - List ret = new ArrayList(); - for (EnumDemonWillType type : EnumDemonWillType.values()) { - ret.add("type=" + type.getName().toLowerCase()); - } - - return ret; + public void populateVariants(List variants) { + for (EnumDemonWillType type : EnumDemonWillType.values()) + variants.add("type=" + type.getName().toLowerCase()); } @Override diff --git a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientSword.java b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientSword.java index 4753c957..a7a0066f 100644 --- a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientSword.java +++ b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSentientSword.java @@ -34,13 +34,11 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.PotionEffect; import net.minecraft.util.ActionResult; import net.minecraft.util.EnumHand; -import net.minecraft.util.ResourceLocation; import net.minecraft.world.EnumDifficulty; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -import javax.annotation.Nullable; import java.util.*; public class ItemSentientSword extends ItemSword implements IDemonWillWeapon, IMeshProvider, IMultiWillTool, ISentientTool { @@ -275,20 +273,10 @@ public class ItemSentientSword extends ItemSword implements IDemonWillWeapon, IM return new CustomMeshDefinitionMultiWill("sentient_shovel"); } - @Nullable @Override - public ResourceLocation getCustomLocation() { - return null; - } - - @Override - public List getVariants() { - List ret = new ArrayList(); - for (EnumDemonWillType type : EnumDemonWillType.values()) { - ret.add("type=" + type.getName().toLowerCase()); - } - - return ret; + public void populateVariants(List variants) { + for (EnumDemonWillType type : EnumDemonWillType.values()) + variants.add("type=" + type.getName().toLowerCase()); } @Override diff --git a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSoulGem.java b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSoulGem.java index a4095e15..6dde869a 100644 --- a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSoulGem.java +++ b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSoulGem.java @@ -18,14 +18,15 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.*; +import net.minecraft.util.ActionResult; +import net.minecraft.util.EnumActionResult; +import net.minecraft.util.EnumHand; +import net.minecraft.util.NonNullList; import net.minecraft.util.math.MathHelper; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -import javax.annotation.Nullable; -import java.util.ArrayList; import java.util.List; import java.util.Locale; @@ -55,7 +56,7 @@ public class ItemSoulGem extends Item implements IDemonWillGem, IMeshProvider, I double filled = PlayerDemonWillHandler.addDemonWill(type, player, drain, stack); this.drainWill(type, stack, filled, true); - return new ActionResult(EnumActionResult.PASS, stack); + return new ActionResult<>(EnumActionResult.PASS, stack); } @Override @@ -64,24 +65,15 @@ public class ItemSoulGem extends Item implements IDemonWillGem, IMeshProvider, I return new CustomMeshDefinitionWillGem("soul_gem"); } - @Nullable @Override - public ResourceLocation getCustomLocation() { - return null; - } - - @Override - public List getVariants() { - List ret = new ArrayList(); + public void populateVariants(List variants) { for (EnumDemonWillType type : EnumDemonWillType.values()) { - ret.add("type=petty_" + type.getName().toLowerCase()); - ret.add("type=lesser_" + type.getName().toLowerCase()); - ret.add("type=common_" + type.getName().toLowerCase()); - ret.add("type=greater_" + type.getName().toLowerCase()); - ret.add("type=grand_" + type.getName().toLowerCase()); + variants.add("type=petty_" + type.getName().toLowerCase()); + variants.add("type=lesser_" + type.getName().toLowerCase()); + variants.add("type=common_" + type.getName().toLowerCase()); + variants.add("type=greater_" + type.getName().toLowerCase()); + variants.add("type=grand_" + type.getName().toLowerCase()); } - - return ret; } @Override diff --git a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSoulSnare.java b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSoulSnare.java index e6d76d8c..9842603b 100644 --- a/src/main/java/WayofTime/bloodmagic/item/soul/ItemSoulSnare.java +++ b/src/main/java/WayofTime/bloodmagic/item/soul/ItemSoulSnare.java @@ -4,6 +4,7 @@ import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.entity.projectile.EntitySoulSnare; import WayofTime.bloodmagic.util.helper.TextHelper; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; @@ -75,9 +76,7 @@ public class ItemSoulSnare extends Item implements IVariantProvider { } @Override - public List> getVariants() { - List> ret = new ArrayList>(); - ret.add(new ImmutablePair(0, "type=soulsnare")); - return ret; + public void populateVariants(Int2ObjectMap variants) { + variants.put(0, "type=soulsnare"); } } diff --git a/src/main/java/WayofTime/bloodmagic/proxy/ClientProxy.java b/src/main/java/WayofTime/bloodmagic/proxy/ClientProxy.java index f414bb72..d0a496c1 100644 --- a/src/main/java/WayofTime/bloodmagic/proxy/ClientProxy.java +++ b/src/main/java/WayofTime/bloodmagic/proxy/ClientProxy.java @@ -3,8 +3,6 @@ package WayofTime.bloodmagic.proxy; import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.soul.DemonWillHolder; -import WayofTime.bloodmagic.client.IMeshProvider; -import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.client.helper.ShaderHelper; import WayofTime.bloodmagic.client.hud.HUDElementDemonWillAura; import WayofTime.bloodmagic.client.hud.HUDElementHolding; @@ -21,15 +19,11 @@ import WayofTime.bloodmagic.entity.projectile.EntitySoulSnare; import WayofTime.bloodmagic.tile.*; import WayofTime.bloodmagic.tile.routing.TileRoutingNode; import com.google.common.collect.ImmutableMap; -import net.minecraft.block.Block; import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.entity.RenderPlayer; -import net.minecraft.item.Item; import net.minecraft.potion.PotionUtils; import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.client.model.ModelLoaderRegistry; import net.minecraftforge.client.model.animation.AnimationTESR; import net.minecraftforge.client.model.obj.OBJLoader; @@ -39,7 +33,6 @@ import net.minecraftforge.common.model.animation.IAnimationStateMachine; import net.minecraftforge.fml.client.registry.ClientRegistry; import net.minecraftforge.fml.client.registry.RenderingRegistry; import net.minecraftforge.fml.common.ObfuscationReflectionHelper; -import org.apache.commons.lang3.tuple.Pair; import java.awt.Color; import java.util.Map; @@ -120,32 +113,6 @@ public class ClientProxy extends CommonProxy { new HUDElementDemonWillAura(); } - @Override - public void tryHandleBlockModel(Block block, String name) { - if (block instanceof IVariantProvider) { - IVariantProvider variantProvider = (IVariantProvider) block; - for (Pair variant : variantProvider.getVariants()) - ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(block), variant.getLeft(), new ModelResourceLocation(new ResourceLocation(BloodMagic.MODID, name), variant.getRight())); - } - } - - @Override - public void tryHandleItemModel(Item item, String name) { - if (item instanceof IMeshProvider) { - IMeshProvider meshProvider = (IMeshProvider) item; - ModelLoader.setCustomMeshDefinition(item, meshProvider.getMeshDefinition()); - ResourceLocation resourceLocation = meshProvider.getCustomLocation(); - if (resourceLocation == null) - resourceLocation = new ResourceLocation(BloodMagic.MODID, "item/" + name); - for (String variant : meshProvider.getVariants()) - ModelLoader.registerItemVariants(item, new ModelResourceLocation(resourceLocation, variant)); - } else if (item instanceof IVariantProvider) { - IVariantProvider variantProvider = (IVariantProvider) item; - for (Pair variant : variantProvider.getVariants()) - ModelLoader.setCustomModelResourceLocation(item, variant.getLeft(), new ModelResourceLocation(new ResourceLocation(BloodMagic.MODID, "item/" + name), variant.getRight())); - } - } - private void addElytraLayer() { RenderManager renderManager = Minecraft.getMinecraft().getRenderManager(); try { diff --git a/src/main/java/WayofTime/bloodmagic/proxy/CommonProxy.java b/src/main/java/WayofTime/bloodmagic/proxy/CommonProxy.java index ec248e4b..1dbea0c8 100644 --- a/src/main/java/WayofTime/bloodmagic/proxy/CommonProxy.java +++ b/src/main/java/WayofTime/bloodmagic/proxy/CommonProxy.java @@ -4,8 +4,6 @@ import WayofTime.bloodmagic.api.ritual.CapabilityRuneType; import WayofTime.bloodmagic.api.ritual.IRitualStone; import WayofTime.bloodmagic.api.teleport.TeleportQueue; import com.google.common.collect.ImmutableMap; -import net.minecraft.block.Block; -import net.minecraft.item.Item; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; @@ -36,14 +34,6 @@ public class CommonProxy { return null; } - public void tryHandleBlockModel(Block block, String name) { - // NO-OP - } - - public void tryHandleItemModel(Item item, String name) { - // NO-OP - } - public IAnimationStateMachine load(ResourceLocation location, ImmutableMap parameters) { return null; } diff --git a/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java b/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java index a1cd31a2..c1e46a44 100644 --- a/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java +++ b/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java @@ -110,7 +110,8 @@ public class ModRecipes { AlchemyArrayRecipeRegistry.registerRecipe(new ItemStack(Items.ARROW), new ItemStack(Items.FEATHER), new AlchemyArrayEffectSkeletonTurret("skeletonTurret"), new DualAlchemyCircleRenderer(new ResourceLocation("bloodmagic", "textures/models/AlchemyArrays/SkeletonTurret1.png"), new ResourceLocation("bloodmagic", "textures/models/AlchemyArrays/SkeletonTurret2.png"))); - AlchemyArrayRecipeRegistry.registerRecipe(ReagentType.REAGENT_FASTMINER.getStack(), new ItemStack(Items.IRON_PICKAXE), new AlchemyArrayEffectSigil("fastMiner", (ISigil) RegistrarBloodMagicItems.SIGIL_FAST_MINER), new SingleAlchemyCircleRenderer(new ResourceLocation("bloodmagic", "textures/models/AlchemyArrays/FastMinerSigil.png"))); + // FIXME +// AlchemyArrayRecipeRegistry.registerRecipe(ReagentType.REAGENT_FASTMINER.getStack(), new ItemStack(Items.IRON_PICKAXE), new AlchemyArrayEffectSigil("fastMiner", (ISigil) RegistrarBloodMagicItems.SIGIL_FAST_MINER), new SingleAlchemyCircleRenderer(new ResourceLocation("bloodmagic", "textures/models/AlchemyArrays/FastMinerSigil.png"))); } diff --git a/src/main/resources/assets/bloodmagic/blockstates/sigil_air.json b/src/main/resources/assets/bloodmagic/blockstates/sigil_air.json index 32f44849..caaa2b92 100644 --- a/src/main/resources/assets/bloodmagic/blockstates/sigil_air.json +++ b/src/main/resources/assets/bloodmagic/blockstates/sigil_air.json @@ -5,12 +5,10 @@ "transform": "forge:default-item" }, "variants": { - "type": { - "normal": { - "textures": { - "layer0": "bloodmagic:items/AirSigil" - } + "inventory": [{ + "textures": { + "layer0": "bloodmagic:items/AirSigil" } - } + }] } } \ No newline at end of file diff --git a/src/main/resources/assets/bloodmagic/blockstates/sigil_blood_light.json b/src/main/resources/assets/bloodmagic/blockstates/sigil_blood_light.json index dc5b4f19..c82ae4de 100644 --- a/src/main/resources/assets/bloodmagic/blockstates/sigil_blood_light.json +++ b/src/main/resources/assets/bloodmagic/blockstates/sigil_blood_light.json @@ -5,12 +5,10 @@ "transform": "forge:default-item" }, "variants": { - "type": { - "normal": { - "textures": { - "layer0": "bloodmagic:items/BloodLightSigil" - } + "inventory": [{ + "textures": { + "layer0": "bloodmagic:items/BloodLightSigil" } - } + }] } } \ No newline at end of file diff --git a/src/main/resources/assets/bloodmagic/blockstates/sigil_divination.json b/src/main/resources/assets/bloodmagic/blockstates/sigil_divination.json index 184354d6..161209bd 100644 --- a/src/main/resources/assets/bloodmagic/blockstates/sigil_divination.json +++ b/src/main/resources/assets/bloodmagic/blockstates/sigil_divination.json @@ -5,12 +5,10 @@ "transform": "forge:default-item" }, "variants": { - "type": { - "normal": { - "textures": { - "layer0": "bloodmagic:items/DivinationSigil" - } + "inventory": [{ + "textures": { + "layer0": "bloodmagic:items/DivinationSigil" } - } + }] } } \ No newline at end of file