Improve model handling

This commit is contained in:
Nicholas Ignoffo 2017-10-09 12:29:43 -07:00
parent a0cd54969b
commit 2a1911ea07
75 changed files with 283 additions and 547 deletions

View file

@ -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<Pair<Integer, String>> getVariants() {
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
ret.add(new ImmutablePair<Integer, String>(0, "type=weak"));
ret.add(new ImmutablePair<Integer, String>(1, "type=demonic"));
ret.add(new ImmutablePair<Integer, String>(2, "type=creative"));
return ret;
public void populateVariants(Int2ObjectMap<String> variants) {
variants.put(0, "type=weak");
variants.put(1, "type=demonic");
variants.put(2, "type=creative");
}
public int getCrystalLevel(ItemStack stack) {

View file

@ -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<Pair<Integer, String>> getVariants() {
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
ret.add(new ImmutablePair<Integer, String>(0, "type=altarmaker"));
return ret;
public void populateVariants(Int2ObjectMap<String> variants) {
variants.put(0, "type=altarmaker");
}
public void setTierToBuild(EnumAltarTier tierToBuild) {

View file

@ -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<Pair<Integer, String>> getVariants() {
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
ret.add(new ImmutablePair<Integer, String>(0, "type=arcaneashes"));
return ret;
public void populateVariants(Int2ObjectMap<String> variants) {
variants.put(0, "type=arcaneashes");
}
}

View file

@ -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<Pair<Integer, String>> getVariants() {
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
ret.add(new ImmutablePair<Integer, String>(0, "type=weak"));
ret.add(new ImmutablePair<Integer, String>(1, "type=demonic"));
return ret;
public void populateVariants(Int2ObjectMap<String> variants) {
variants.put(0, "type=weak");
variants.put(1, "type=demonic");
}
}

View file

@ -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<String> getVariants() {
List<String> ret = new ArrayList<String>();
ret.add("active=true");
ret.add("active=false");
return ret;
}
}

View file

@ -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<String> getVariants() {
List<String> ret = new ArrayList<String>();
ret.add("active=true");
ret.add("active=false");
return ret;
}
}

View file

@ -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<String> getVariants() {
List<String> ret = new ArrayList<String>();
ret.add("active=true");
ret.add("active=false");
return ret;
}
}

View file

@ -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<String> getVariants() {
List<String> ret = new ArrayList<String>();
ret.add("active=true");
ret.add("active=false");
return ret;
public void populateVariants(List<String> variants) {
variants.add("active=true");
variants.add("active=false");
}
// IBindable

View file

@ -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<String> variants) {
variants.add("active=true");
variants.add("active=false");
}
public String getTooltipBase() {
return tooltipBase;
}

View file

@ -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<Pair<Integer, String>> getVariants() {
List<Pair<Integer, String>> ret = Lists.newArrayList();
ret.add(Pair.of(0, "type=normal"));
return ret;
public void populateVariants(Int2ObjectMap<String> variants) {
variants.put(0, "type=normal");
}
}

View file

@ -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<Pair<Integer, String>> getVariants() {
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
public void populateVariants(Int2ObjectMap<String> variants) {
for (String name : NAMES)
ret.add(new ImmutablePair<Integer, String>(NAMES.indexOf(name), "type=" + name));
return ret;
variants.put(NAMES.indexOf(name), "type=" + name);
}
public static ItemStack getStack(String name) {

View file

@ -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<Pair<Integer, String>> getVariants() {
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
ret.add(new ImmutablePair<Integer, String>(0, "type=willgauge"));
return ret;
public void populateVariants(Int2ObjectMap<String> variants) {
variants.put(0, "type=willgauge");
}
@Override

View file

@ -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<T extends Enum<T> & ISubItem> extends Item implements IVar
}
@Override
public List<Pair<Integer, String>> getVariants() {
List<Pair<Integer, String>> variants = Lists.newArrayList();
public void populateVariants(Int2ObjectMap<String> 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());
}
}

View file

@ -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<ItemStack>(EnumActionResult.SUCCESS, stack);
return new ActionResult<>(EnumActionResult.SUCCESS, stack);
}
@Override
public List<Pair<Integer, String>> getVariants() {
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
ret.add(new ImmutablePair<Integer, String>(0, "type=experiencetome"));
return ret;
public void populateVariants(Int2ObjectMap<String> variants) {
variants.put(0, "type=experiencetome");
}
public void giveOneLevelExpToPlayer(ItemStack stack, EntityPlayer player) {

View file

@ -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<Pair<Integer, String>> getVariants() {
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
public void populateVariants(Int2ObjectMap<String> variants) {
for (int i = 1; i < EnumRuneType.values().length; i++)
ret.add(new ImmutablePair<Integer, String>(i, "type=" + EnumRuneType.values()[i].name()));
return ret;
variants.put(i, "type=" + EnumRuneType.values()[i].name());
}
public EnumRuneType getType(ItemStack stack) {

View file

@ -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<Pair<Integer, String>> getVariants() {
List<Pair<Integer, String>> ret = Lists.newArrayList();
ret.add(Pair.of(0, "type=normal"));
return ret;
public void populateVariants(Int2ObjectMap<String> variants) {
variants.put(0, "type=normal");
}
}

View file

@ -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<String> getVariants() {
return Lists.newArrayList("full=true", "full=false");
public void populateVariants(List<String> variants) {
variants.add("full=true");
variants.add("full=false");
}
}

View file

@ -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<Pair<Integer, String>> getVariants() {
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
ret.add(new ImmutablePair<Integer, String>(0, "type=basic"));
ret.add(new ImmutablePair<Integer, String>(1, "type=dusk"));
ret.add(new ImmutablePair<Integer, String>(2, "type=dawn"));
return ret;
public void populateVariants(Int2ObjectMap<String> variants) {
variants.put(0, "type=basic");
variants.put(1, "type=dusk");
variants.put(2, "type=dawn");
}
public void cycleDirection(ItemStack stack, EntityPlayer player) {

View file

@ -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<Pair<Integer, String>> getVariants() {
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
ret.add(new ImmutablePair<Integer, String>(0, "type=normal"));
return ret;
public void populateVariants(Int2ObjectMap<String> variants) {
variants.put(0, "type=normal");
}
}

View file

@ -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<String> getVariants() {
List<String> variants = new ArrayList<String>();
public void populateVariants(List<String> variants) {
variants.add("type=normal");
variants.add("type=creative");
variants.add("type=ceremonial");
return variants;
}
@Nullable
@Override
public ResourceLocation getCustomLocation() {
return null;
}
}

View file

@ -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<Pair<Integer, String>> getVariants() {
return Collections.singletonList(Pair.of(0, "type=normal"));
public void populateVariants(Int2ObjectMap<String> variants) {
variants.put(0, "type=normal");
}
}

View file

@ -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<Pair<Integer, String>> getVariants() {
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
ret.add(new ImmutablePair<Integer, String>(0, "type=blank"));
ret.add(new ImmutablePair<Integer, String>(1, "type=reinforced"));
ret.add(new ImmutablePair<Integer, String>(2, "type=imbued"));
ret.add(new ImmutablePair<Integer, String>(3, "type=demonic"));
ret.add(new ImmutablePair<Integer, String>(4, "type=ethereal"));
return ret;
public void populateVariants(Int2ObjectMap<String> 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");
}
}

View file

@ -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<Pair<Integer, String>> getVariants() {
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
ret.add(new ImmutablePair<Integer, String>(0, "type=weak"));
ret.add(new ImmutablePair<Integer, String>(1, "type=enhanced"));
ret.add(new ImmutablePair<Integer, String>(2, "type=reinforced"));
ret.add(new ImmutablePair<Integer, String>(3, "type=demonic"));
return ret;
public void populateVariants(Int2ObjectMap<String> 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) {

View file

@ -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<Pair<Integer, String>> getVariants() {
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
ret.add(new ImmutablePair<Integer, String>(0, "type=upgradetome"));
return ret;
public void populateVariants(Int2ObjectMap<String> variants) {
variants.put(0, "type=upgradetome");
}
@Override

View file

@ -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<Pair<Integer, String>> getVariants() {
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
ret.add(new ImmutablePair<Integer, String>(0, "type=upgradetrainer"));
return ret;
public void populateVariants(Int2ObjectMap<String> variants) {
variants.put(0, "type=upgradetrainer");
}
}

View file

@ -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<Pair<Integer, String>> getVariants() {
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
public void populateVariants(Int2ObjectMap<String> variants) {
for (String name : names)
ret.add(new ImmutablePair<Integer, String>(names.indexOf(name), "type=" + name));
return ret;
variants.put(names.indexOf(name), "type=" + name);
}
public int getDamageOfFluid(ItemStack stack) {

View file

@ -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<Pair<Integer, String>> getVariants() {
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
public void populateVariants(Int2ObjectMap<String> variants) {
for (String name : names)
ret.add(new ImmutablePair<Integer, String>(names.indexOf(name), "type=" + name));
return ret;
variants.put(names.indexOf(name), "type=" + name);
}
public static ItemStack getStack(String name) {

View file

@ -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<String> getVariants() {
List<String> ret = new ArrayList<String>();
ret.add("armour=head");
ret.add("armour=body");
ret.add("armour=leg");
ret.add("armour=feet");
return ret;
public void populateVariants(List<String> 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) {

View file

@ -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<String> getVariants() {
List<String> ret = new ArrayList<String>();
public void populateVariants(List<String> 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

View file

@ -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<Pair<Integer, String>> getVariants() {
return Lists.newArrayList(Pair.of(0, "inventory"));
public void populateVariants(Int2ObjectMap<String> variants) {
variants.put(0, "inventory");
}
}

View file

@ -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<Pair<Integer, String>> getVariants() {
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
ret.add(new ImmutablePair<Integer, String>(0, "type=normal"));
return ret;
public void populateVariants(Int2ObjectMap<String> variants) {
variants.put(0, "type=normal");
}
// IFillable

View file

@ -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<Pair<Integer, String>> getVariants() {
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
ret.add(new ImmutablePair<Integer, String>(0, "type=normal"));
return ret;
public void populateVariants(Int2ObjectMap<String> variants) {
variants.put(0, "type=normal");
}
// IFillable

View file

@ -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<Pair<Integer, String>> getVariants() {
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
ret.add(new ImmutablePair<Integer, String>(0, "type=exact"));
return ret;
public void populateVariants(Int2ObjectMap<String> variants) {
variants.put(0, "type=exact");
}
@Override

View file

@ -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<Pair<Integer, String>> getVariants() {
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
ret.add(new ImmutablePair<Integer, String>(0, "type=normal"));
return ret;
public void populateVariants(Int2ObjectMap<String> variants) {
variants.put(0, "type=normal");
}
public BlockPos getBlockPos(ItemStack stack) {

View file

@ -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<Pair<Integer, String>> getVariants() {
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
ret.add(new ImmutablePair<Integer, String>(0, "type=exact"));
ret.add(new ImmutablePair<Integer, String>(1, "type=ignorenbt"));
ret.add(new ImmutablePair<Integer, String>(2, "type=moditems"));
ret.add(new ImmutablePair<Integer, String>(3, "type=oredict"));
return ret;
public void populateVariants(Int2ObjectMap<String> variants) {
variants.put(0, "type=exact");
variants.put(1, "type=ignorenbt");
variants.put(2, "type=moditems");
variants.put(3, "type=oredict");
}
@Override

View file

@ -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<Pair<Integer, String>> getVariants() {
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
ret.add(Pair.of(0, "type=normal"));
return ret;
public void populateVariants(Int2ObjectMap<String> variants) {
variants.put(0, "type=normal");
}
public String getName() {

View file

@ -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<Pair<Integer, String>> getVariants() {
return Collections.emptyList();
public void populateVariants(Int2ObjectMap<String> variants) {
}
public static int next(int mode) {

View file

@ -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<String> getVariants() {
List<String> ret = new ArrayList<String>();
ret.add("active=false");
ret.add("active=true");
return ret;
public void populateVariants(List<String> variants) {
variants.add("active=false");
variants.add("active=true");
}
}

View file

@ -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<String> getVariants() {
public void populateVariants(List<String> 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");
}
}

View file

@ -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<Pair<Integer, String>> getVariants() {
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
for (int i = 0; i < names.length; i++) {
String name = names[i];
ret.add(new ImmutablePair<Integer, String>(i, "type=" + name));
}
return ret;
public void populateVariants(Int2ObjectMap<String> variants) {
for (int i = 0; i < names.length; i++)
variants.put(i, "type=" + names[i]);
}
@Override

View file

@ -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<ItemStack>(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<ItemStack> 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<String> getVariants() {
return Lists.newArrayList("type=activated", "type=deactivated");
}
@Nullable
@Override
public ResourceLocation getCustomLocation() {
return null;
public void populateVariants(List<String> variants) {
variants.add("type=activated");
variants.add("type=deactivated");
}
}

View file

@ -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<String> getVariants() {
List<String> ret = new ArrayList<String>();
for (EnumDemonWillType type : EnumDemonWillType.values()) {
ret.add("type=" + type.getName().toLowerCase());
}
return ret;
public void populateVariants(List<String> variants) {
for (EnumDemonWillType type : EnumDemonWillType.values())
variants.add("type=" + type.getName().toLowerCase());
}
@Override

View file

@ -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<Pair<Integer, String>> getVariants() {
return Lists.newArrayList(Pair.of(0, "inventory"));
public void populateVariants(Int2ObjectMap<String> variants) {
variants.put(0, "inventory");
}
public EntityTippedArrow getArrowEntity(World world, ItemStack stack, EntityLivingBase target, EntityLivingBase user, float velocity) {

View file

@ -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<String> getVariants() {
List<String> ret = new ArrayList<String>();
for (EnumDemonWillType type : EnumDemonWillType.values()) {
ret.add("type=" + type.getName().toLowerCase());
}
return ret;
public void populateVariants(List<String> variants) {
for (EnumDemonWillType type : EnumDemonWillType.values())
variants.add("type=" + type.getName().toLowerCase());
}
@Override

View file

@ -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<String> getVariants() {
List<String> ret = new ArrayList<String>();
for (EnumDemonWillType type : EnumDemonWillType.values()) {
ret.add("type=" + type.getName().toLowerCase());
}
return ret;
public void populateVariants(List<String> variants) {
for (EnumDemonWillType type : EnumDemonWillType.values())
variants.add("type=" + type.getName().toLowerCase());
}
@Override

View file

@ -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<String> getVariants() {
List<String> ret = new ArrayList<String>();
for (EnumDemonWillType type : EnumDemonWillType.values()) {
ret.add("type=" + type.getName().toLowerCase());
}
return ret;
public void populateVariants(List<String> variants) {
for (EnumDemonWillType type : EnumDemonWillType.values())
variants.add("type=" + type.getName().toLowerCase());
}
@Override

View file

@ -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<ItemStack>(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<String> getVariants() {
List<String> ret = new ArrayList<String>();
public void populateVariants(List<String> 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

View file

@ -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<Pair<Integer, String>> getVariants() {
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
ret.add(new ImmutablePair<Integer, String>(0, "type=soulsnare"));
return ret;
public void populateVariants(Int2ObjectMap<String> variants) {
variants.put(0, "type=soulsnare");
}
}