Items now 'own' their own model registration!

This commit is contained in:
Vincent Lee committed 2016-07-24 15:09:05 -05:00
1 parent e7e5b1b484
commit 179ca23f6c
37 files changed
+340 -199

No files matched your search

@@ -45,6 +45,7 @@ import vazkii.botania.api.state.enums.PylonVariant;
import vazkii.botania.api.state.enums.SpreaderVariant;
import vazkii.botania.api.state.enums.StorageVariant;
import vazkii.botania.client.model.SpecialFlowerModel;
import vazkii.botania.client.render.IModelRegister;
import vazkii.botania.common.block.ModBlocks;
import vazkii.botania.common.block.ModFluffBlocks;
import vazkii.botania.common.block.decor.slabs.BlockModSlab;
@@ -101,8 +102,6 @@ import vazkii.botania.common.block.tile.corporea.TileCorporeaIndex;
import vazkii.botania.common.block.tile.mana.TileBellows;
import vazkii.botania.common.core.handler.ConfigHandler;
import vazkii.botania.common.item.ModItems;
import vazkii.botania.common.item.brew.ItemBrewBase;
import vazkii.botania.common.item.equipment.bauble.ItemFlightTiara;
import vazkii.botania.common.lib.LibBlockNames;
import vazkii.botania.common.lib.LibItemNames;
import vazkii.botania.common.lib.LibMisc;
@@ -128,7 +127,12 @@ public final class ModelHandler {
registerSlabs();
registerQuartzBlocks();
registerStandardItems();
for (Item item : Item.REGISTRY) {
if (item.getRegistryName().getResourceDomain().equalsIgnoreCase(LibMisc.MOD_ID)
&& item instanceof IModelRegister)
((IModelRegister) item).registerModels();
}
registerTESRItems();
}
@@ -271,7 +275,7 @@ public final class ModelHandler {
registerBlockStandardPath(ModBlocks.turntable);
// Register all metas to variant inventory, so the smartmodel can take over from there. See MiscellaneousIcons
registerItemModelAllMeta(Item.getItemFromBlock(ModBlocks.floatingFlower), EnumDyeColor.values().length);
registerItemAllMeta(Item.getItemFromBlock(ModBlocks.floatingFlower), EnumDyeColor.values().length);
// Item models which all use the same base model and recolored by render layer
registerBlockVariantMetas(ModBlocks.manaBeacon, EnumDyeColor.values().length, "normal");
@@ -298,174 +302,6 @@ public final class ModelHandler {
registerVariantsDefaulted(ModBlocks.storage, StorageVariant.class, "variant");
}
private static void registerStandardItems() {
registerItemModel(manasteelSword);
registerItemModel(spawnerMover);
registerItemModel(terraPick);
registerItemModel(magnetRing);
registerItemModel(magnetRingGreater);
registerItemModel(manaGun);
registerItemModel(tornadoRod);
registerItemModel(twigWand);
registerItemModel(pestleAndMortar);
registerItemModel(blackLotus);
registerItemModel(blackLotus, 1);
ModelLoader.registerItemVariants(lexicon, new ModelResourceLocation("botania:lexicon_default", "inventory"));
registerItemModel(lexicon);
registerItemModel(manasteelHelm);
registerItemModel(manasteelHelmRevealing);
registerItemModel(manasteelChest);
registerItemModel(manasteelLegs);
registerItemModel(manasteelBoots);
registerItemModel(manasteelPick);
registerItemModel(manasteelShovel);
registerItemModel(manasteelAxe);
registerItemModel(manasteelShears);
registerItemModel(manaweaveHelm);
registerItemModel(manaweaveChest);
registerItemModel(manaweaveLegs);
registerItemModel(manaweaveBoots);
registerItemModel(elementiumHelm);
registerItemModel(elementiumHelmRevealing);
registerItemModel(elementiumChest);
registerItemModel(elementiumLegs);
registerItemModel(elementiumBoots);
registerItemModel(elementiumPick);
registerItemModel(elementiumShovel);
registerItemModel(elementiumAxe);
registerItemModel(elementiumSword);
registerItemModel(elementiumShears);
registerItemModel(terrasteelHelm);
registerItemModel(terrasteelHelmRevealing);
registerItemModel(terrasteelChest);
registerItemModel(terrasteelLegs);
registerItemModel(terrasteelBoots);
registerItemModel(terraSword);
registerItemModel(terraAxe);
registerItemModel(starSword);
registerItemModel(thunderSword);
registerItemModel(crystalBow);
registerItemModel(livingwoodBow);
registerItemModel(glassPick);
registerItemModel(flowerBag);
registerItemModel(fertilizer);
registerItemModel(obedienceStick);
registerItemModel(dirtRod);
registerItemModel(waterRod);
registerItemModel(cobbleRod);
registerItemModel(fireRod);
registerItemModel(rainbowRod);
registerItemModel(skyDirtRod);
registerItemModel(terraformRod);
registerItemModel(diviningRod);
registerItemModel(gravityRod);
registerItemModel(missileRod);
registerItemModel(smeltRod);
registerItemModel(exchangeRod);
registerItemModel(openBucket);
registerItemModel(bloodPendant);
registerItemModel(manaTablet);
registerItemModel(enderDagger);
registerItemModel(slingshot);
registerItemModel(vineBall);
registerItemModel(regenIvy);
registerItemModel(keepIvy);
registerItemModel(recordGaia1);
registerItemModel(recordGaia2);
registerItemModel(overgrowthSeed);
registerItemModel(worldSeed);
registerItemModel(incenseStick);
registerItemModel(enderHand);
registerItemModel(craftingHalo);
registerItemModel(spellCloth);
registerItemModel(autocraftingHalo);
registerItemModel(sextant);
registerItemModel(cacophonium);
registerItemModel(clip);
registerItemModel(phantomInk);
registerItemModel(poolMinecart);
registerItemModel(pinkinator);
registerItemModel(dice);
registerItemModel(kingKey);
registerItemModel(flugelEye);
registerItemModel(thorRing);
registerItemModel(lokiRing);
registerItemModel(odinRing);
registerItemModel(aesirRing);
registerItemModel(baubleBox);
registerItemModel(tinyPlanet);
registerItemModelMetas(manaResource, LibItemNames.MANA_RESOURCE_NAMES.length, i -> LibItemNames.MANA_RESOURCE_NAMES[i]);
registerItemModel(manaRing);
registerItemModel(manaRingGreater);
String[] runeNames = { "water", "fire", "earth", "air", "spring", "summer", "autumn", "winter", "mana", "lust", "gluttony", "greed", "sloth", "wrath", "envy", "pride" };
registerItemModelMetas(rune, runeNames.length, i -> "rune_" + runeNames[i]);
registerItemModel(auraRing);
registerItemModel(auraRingGreater);
registerItemModel(spark);
registerItemModel(manaCookie);
registerItemModel(infiniteFruit);
registerItemModelMetas(lens, LibItemNames.LENS_NAMES.length, i -> LibItemNames.LENS_NAMES[i]);
ModelLoader.setCustomModelResourceLocation(vial, 0, new ModelResourceLocation("botania:vial", "inventory"));
ModelLoader.setCustomModelResourceLocation(vial, 1, new ModelResourceLocation("botania:flask", "inventory"));
registerItemModel(brewFlask);
registerItemModel(brewVial);
registerItemModel(waterRing);
registerItemModel(miningRing);
registerItemModel(reachRing);
registerItemModel(swapRing);
registerItemModel(pixieRing);
registerItemModel(travelBelt);
registerItemModel(superTravelBelt);
registerItemModel(speedUpBelt);
registerItemModel(knockbackBelt);
registerItemModel(itemFinder);
registerItemModel(monocle);
registerItemModel(icePendant);
registerItemModel(lavaPendant);
registerItemModel(superLavaPendant);
registerItemModel(holyCloak);
registerItemModel(unholyCloak);
registerItemModel(goldLaurel);
registerItemModel(flightTiara);
registerItemModel(divaCharm);
registerItemModel(manaMirror);
registerItemModel(manaInkwell);
registerItemModel(waterBowl);
registerItemModelAllMeta(flightTiara, ItemFlightTiara.WING_TYPES);
registerItemModelAllMeta(laputaShard, 20);
registerItemModelAllMeta(signalFlare, EnumDyeColor.values().length);
registerItemModelAllMeta(dye, EnumDyeColor.values().length);
registerItemModelAllMeta(petal, EnumDyeColor.values().length);
registerItemModelMetas(sparkUpgrade, LibItemNames.SPARK_UPGRADE, 4);
registerItemModelMetas(corporeaSpark, LibItemNames.CORPOREA_SPARK, 2);
registerItemModelMetas(manaBottle, LibItemNames.MANA_BOTTLE, 6);
registerItemModelMetas(ancientWill, LibItemNames.ANCIENT_WILL, 6);
registerItemModelMetas(temperanceStone, LibItemNames.TEMPERANCE_STONE, 2);
registerItemModelMetas(thornChakram, LibItemNames.THORN_CHAKRAM, 2);
registerItemModelMetas(blackHoleTalisman, LibItemNames.BLACK_HOLE_TALISMAN, 2);
registerItemModelMetas(slimeBottle, LibItemNames.SLIME_BOTTLE, 2);
registerItemModelMetas(grassSeeds, LibItemNames.GRASS_SEEDS, 9);
registerItemModelMetas(quartz, LibItemNames.QUARTZ, 7);
registerItemModelMetas(cosmetic, LibItemNames.COSMETIC, 32);
registerItemModelMetas(craftPattern, LibItemNames.CRAFT_PATTERN, 9);
registerItemModelMetas(virus, LibItemNames.VIRUS, 2);
registerItemModelMetas(grassHorn, LibItemNames.GRASS_HORN, 3);
}
// Only for models that absolutely can't be converted to JSON. Use VERY sparingly
@SuppressWarnings("deprecation")
private static void registerTESRItems() {
@@ -484,9 +320,6 @@ public final class ModelHandler {
registerBlockStandardPath(ModBlocks.corporeaIndex);
ForgeHooksClient.registerTESRItemStack(Item.getItemFromBlock(ModBlocks.corporeaIndex), 0, TileCorporeaIndex.class);
registerItemModel(ModItems.gaiaHead);
ForgeHooksClient.registerTESRItemStack(ModItems.gaiaHead, 0, TileGaiaHead.class);
registerBlockStandardPath(ModBlocks.hourglass);
ForgeHooksClient.registerTESRItemStack(Item.getItemFromBlock(ModBlocks.hourglass), 0, TileHourglass.class);
@@ -664,19 +497,19 @@ public final class ModelHandler {
/**
* Registers all metas of the given item to models/item/registryname.json
*/
private static void registerItemModelAllMeta(Item item, int range) {
registerItemModelMetas(item, range, i -> item.getRegistryName().getResourcePath());
public static void registerItemAllMeta(Item item, int range) {
registerItemMetas(item, range, i -> item.getRegistryName().getResourcePath());
}
/**
* Registers each meta of an item to models/item/registryname<meta>.json
* Range is exclusive upper bound
*/
private static void registerItemModelMetas(Item item, String loc, int range) {
registerItemModelMetas(item, range, i -> loc + i);
public static void registerItemAppendMeta(Item item, int maxExclusive, String loc) {
registerItemMetas(item, maxExclusive, i -> loc + i);
}
private static void registerItemModelMetas(Item item, int maxExclusive, IntFunction<String> metaToName) {
public static void registerItemMetas(Item item, int maxExclusive, IntFunction<String> metaToName) {
for (int i = 0; i < maxExclusive; i++) {
ModelLoader.setCustomModelResourceLocation(
item, i,
@@ -732,14 +565,10 @@ public final class ModelHandler {
}
}
private static void registerItemModel(Item i,int meta) {
public static void registerItemModel(Item i,int meta) {
ResourceLocation loc = i.getRegistryName();
ModelLoader.setCustomModelResourceLocation(i, meta, new ModelResourceLocation(loc, "inventory"));
}
private static void registerItemModel(Item i) {
registerItemModel(i, 0);
}
private ModelHandler() {}
}
@@ -0,0 +1,12 @@
package vazkii.botania.client.render;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public interface IModelRegister {
/**
* Do whatever needs to be done to register models
*/
@SideOnly(Side.CLIENT)
void registerModels();
}
@@ -14,6 +14,9 @@ import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.EnumDyeColor;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import vazkii.botania.client.core.handler.ModelHandler;
import javax.annotation.Nonnull;
import java.util.List;
@@ -42,6 +45,12 @@ public class Item16Colors extends ItemMod implements IColorable {
return getUnlocalizedNameLazy(par1ItemStack) + par1ItemStack.getItemDamage();
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelHandler.registerItemAllMeta(this, EnumDyeColor.values().length);
}
String getUnlocalizedNameLazy(ItemStack par1ItemStack) {
return super.getUnlocalizedName(par1ItemStack);
}
@@ -20,6 +20,7 @@ import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraftforge.oredict.RecipeSorter;
import net.minecraftforge.oredict.RecipeSorter.Category;
import vazkii.botania.client.core.handler.ModelHandler;
import vazkii.botania.common.crafting.recipe.AncientWillRecipe;
import vazkii.botania.common.lib.LibItemNames;
@@ -62,5 +63,10 @@ public class ItemAncientWill extends ItemMod {
return super.getUnlocalizedName(par1ItemStack) + par1ItemStack.getItemDamage();
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelHandler.registerItemAppendMeta(this, 6, LibItemNames.ANCIENT_WILL);
}
}
@@ -39,6 +39,7 @@ import net.minecraftforge.oredict.RecipeSorter;
import net.minecraftforge.oredict.RecipeSorter.Category;
import vazkii.botania.api.item.IBlockProvider;
import vazkii.botania.client.core.handler.ItemsRemainingRenderHandler;
import vazkii.botania.client.core.handler.ModelHandler;
import vazkii.botania.common.core.helper.InventoryHelper;
import vazkii.botania.common.core.helper.ItemNBTHelper;
import vazkii.botania.common.crafting.recipe.BlackHoleTalismanExtractRecipe;
@@ -309,4 +310,10 @@ public class ItemBlackHoleTalisman extends ItemMod implements IBlockProvider {
return 0;
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelHandler.registerItemAppendMeta(this, 2, LibItemNames.BLACK_HOLE_TALISMAN);
}
}
@@ -23,7 +23,7 @@ import vazkii.botania.api.internal.VanillaPacketDispatcher;
import vazkii.botania.api.item.IManaDissolvable;
import vazkii.botania.api.mana.IManaPool;
import vazkii.botania.api.sound.BotaniaSoundEvents;
import vazkii.botania.common.Botania;
import vazkii.botania.client.core.handler.ModelHandler;
import vazkii.botania.common.lib.LibItemNames;
import vazkii.botania.common.network.PacketBotaniaEffect;
import vazkii.botania.common.network.PacketHandler;
@@ -82,4 +82,11 @@ public class ItemBlackLotus extends ItemMod implements IManaDissolvable {
list.add(I18n.format("botaniamisc.lotusDesc"));
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelHandler.registerItemModel(this, 0);
ModelHandler.registerItemModel(this, 1);
}
}
@@ -34,6 +34,7 @@ import net.minecraft.world.World;
import net.minecraftforge.fml.common.FMLCommonHandler;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import vazkii.botania.client.core.handler.ModelHandler;
import vazkii.botania.common.core.helper.ItemNBTHelper;
import vazkii.botania.common.entity.EntityPixie;
import vazkii.botania.common.entity.EntitySignalFlare;
@@ -244,4 +245,10 @@ public class ItemBottledMana extends ItemMod {
return EnumAction.DRINK;
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelHandler.registerItemAppendMeta(this, 6, LibItemNames.MANA_BOTTLE);
}
}
@@ -20,8 +20,11 @@ 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 net.minecraftforge.items.CapabilityItemHandler;
import vazkii.botania.api.corporea.CorporeaHelper;
import vazkii.botania.client.core.handler.ModelHandler;
import vazkii.botania.common.entity.EntityCorporeaSpark;
import vazkii.botania.common.lib.LibItemNames;
@@ -67,4 +70,10 @@ public class ItemCorporeaSpark extends ItemMod {
return super.getUnlocalizedName(par1ItemStack) + par1ItemStack.getItemDamage();
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelHandler.registerItemAppendMeta(this, 2, LibItemNames.CORPOREA_SPARK);
}
}
@@ -20,6 +20,9 @@ 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 vazkii.botania.client.core.handler.ModelHandler;
import vazkii.botania.common.block.tile.TileCraftCrate;
import vazkii.botania.common.lib.LibItemNames;
@@ -59,4 +62,10 @@ public class ItemCraftPattern extends ItemMod {
return super.getUnlocalizedName(par1ItemStack) + par1ItemStack.getItemDamage();
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelHandler.registerItemAppendMeta(this, 9, LibItemNames.CRAFT_PATTERN);
}
}
@@ -28,10 +28,12 @@ import net.minecraft.util.EnumHand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.MathHelper;
import net.minecraft.world.World;
import net.minecraftforge.client.ForgeHooksClient;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import vazkii.botania.common.Botania;
import vazkii.botania.common.block.ModBlocks;
import vazkii.botania.common.block.tile.TileGaiaHead;
import vazkii.botania.common.lib.LibItemNames;
import javax.annotation.Nonnull;
@@ -54,6 +56,13 @@ public class ItemGaiaHead extends ItemMod {
return (ModelBiped) Botania.proxy.getEmptyModelBiped();
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
super.registerModels();
ForgeHooksClient.registerTESRItemStack(this, 0, TileGaiaHead.class);
}
// Copied from vanila skull itemBlock. Relevant edits are indicated.
@Nonnull
@Override
@@ -30,9 +30,12 @@ import net.minecraft.util.ResourceLocation;
import net.minecraft.util.SoundCategory;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import vazkii.botania.api.item.IHornHarvestable;
import vazkii.botania.api.item.IHornHarvestable.EnumHornType;
import vazkii.botania.api.subtile.ISpecialFlower;
import vazkii.botania.client.core.handler.ModelHandler;
import vazkii.botania.common.core.handler.ConfigHandler;
import vazkii.botania.common.lib.LibItemNames;
import vazkii.botania.common.lib.LibMisc;
@@ -69,6 +72,12 @@ public class ItemGrassHorn extends ItemMod {
return super.getUnlocalizedName(par1ItemStack) + par1ItemStack.getItemDamage();
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelHandler.registerItemAppendMeta(this, 3, LibItemNames.GRASS_HORN);
}
@Nonnull
@Override
public EnumAction getItemUseAction(ItemStack par1ItemStack) {
@@ -28,9 +28,12 @@ import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.TickEvent;
import net.minecraftforge.fml.common.gameevent.TickEvent.Phase;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import vazkii.botania.api.item.IFloatingFlower.IslandType;
import vazkii.botania.api.state.BotaniaStateProps;
import vazkii.botania.api.state.enums.AltGrassVariant;
import vazkii.botania.client.core.handler.ModelHandler;
import vazkii.botania.common.Botania;
import vazkii.botania.common.block.ModBlocks;
import vazkii.botania.common.lib.LibItemNames;
@@ -158,6 +161,12 @@ public class ItemGrassSeeds extends ItemMod implements IFloatingFlowerVariant {
return EnumActionResult.PASS;
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelHandler.registerItemAppendMeta(this, 9, LibItemNames.GRASS_SEEDS);
}
@SubscribeEvent
public void onTickEnd(TickEvent.WorldTickEvent event) {
// Block swapper updates should only occur on the server
@@ -38,7 +38,7 @@ import vazkii.botania.api.mana.ILaputaImmobile;
import vazkii.botania.api.mana.ILensEffect;
import vazkii.botania.api.mana.ITinyPlanetExcempt;
import vazkii.botania.api.sound.BotaniaSoundEvents;
import vazkii.botania.common.Botania;
import vazkii.botania.client.core.handler.ModelHandler;
import vazkii.botania.common.achievement.ModAchievements;
import vazkii.botania.common.core.helper.ItemNBTHelper;
import vazkii.botania.common.core.helper.MathHelper;
@@ -283,4 +283,10 @@ public class ItemLaputaShard extends ItemMod implements ILensEffect, ITinyPlanet
return false;
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelHandler.registerItemAllMeta(this, 20);
}
}
@@ -12,6 +12,7 @@ package vazkii.botania.common.item;
import net.minecraft.block.Block;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.client.resources.I18n;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
@@ -31,6 +32,7 @@ import net.minecraft.util.text.Style;
import net.minecraft.util.text.TextComponentTranslation;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import vazkii.botania.api.BotaniaAPI;
@@ -59,7 +61,7 @@ public class ItemLexicon extends ItemMod implements ILexicon, IElvenItem {
private static final String TAG_KNOWLEDGE_PREFIX = "knowledge.";
private static final String TAG_FORCED_MESSAGE = "forcedMessage";
private static final String TAG_QUEUE_TICKS = "queueTicks";
boolean skipSound = false;
private boolean skipSound = false;
public ItemLexicon() {
super(LibItemNames.LEXICON);
@@ -237,4 +239,11 @@ public class ItemLexicon extends ItemMod implements ILexicon, IElvenItem {
return isKnowledgeUnlocked(stack, BotaniaAPI.elvenKnowledge);
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelLoader.registerItemVariants(this, new ModelResourceLocation("botania:lexicon_default", "inventory"));
ModelLoader.setCustomModelResourceLocation(this, 0, new ModelResourceLocation(getRegistryName(), "inventory"));
}
}
@@ -10,17 +10,22 @@
*/
package vazkii.botania.common.item;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import vazkii.botania.client.lib.LibResources;
import vazkii.botania.client.render.IModelRegister;
import vazkii.botania.common.core.BotaniaCreativeTab;
import vazkii.botania.common.lib.LibMisc;
import javax.annotation.Nonnull;
public abstract class ItemMod extends Item {
public abstract class ItemMod extends Item implements IModelRegister {
public ItemMod(String name) {
setCreativeTab(BotaniaCreativeTab.INSTANCE);
@@ -38,4 +43,10 @@ public abstract class ItemMod extends Item {
public String getUnlocalizedNameInefficiently(@Nonnull ItemStack par1ItemStack) {
return super.getUnlocalizedNameInefficiently(par1ItemStack).replaceAll("item\\.", "item." + LibResources.PREFIX_MOD);
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelLoader.setCustomModelResourceLocation(this, 0, new ModelResourceLocation(getRegistryName(), "inventory"));
}
}
@@ -30,6 +30,7 @@ import net.minecraft.world.World;
import net.minecraftforge.fml.common.FMLCommonHandler;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import vazkii.botania.client.core.handler.ModelHandler;
import vazkii.botania.common.achievement.ModAchievements;
import vazkii.botania.common.core.helper.ItemNBTHelper;
import vazkii.botania.common.entity.EntitySignalFlare;
@@ -110,6 +111,12 @@ public class ItemSignalFlare extends ItemMod implements IColorable {
stacks.add(I18n.format("botaniamisc.flareColor", I18n.format("botania.color" + storedColor)));
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelHandler.registerItemAllMeta(this, EnumDyeColor.values().length);
}
public static ItemStack forColor(int color) {
ItemStack stack = new ItemStack(ModItems.signalFlare);
ItemNBTHelper.setInt(stack, TAG_COLOR, color);
@@ -14,6 +14,9 @@ import net.minecraft.entity.Entity;
import net.minecraft.item.ItemStack;
import net.minecraft.util.math.MathHelper;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import vazkii.botania.client.core.handler.ModelHandler;
import vazkii.botania.common.block.subtile.generating.SubTileNarslimmus;
import vazkii.botania.common.lib.LibItemNames;
@@ -38,4 +41,10 @@ public class ItemSlimeBottle extends ItemMod {
}
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelHandler.registerItemAppendMeta(this, 2, LibItemNames.SLIME_BOTTLE);
}
}
@@ -13,6 +13,9 @@ package vazkii.botania.common.item;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import vazkii.botania.client.core.handler.ModelHandler;
import vazkii.botania.common.lib.LibItemNames;
import javax.annotation.Nonnull;
@@ -39,6 +42,12 @@ public class ItemSparkUpgrade extends ItemMod {
return getUnlocalizedNameLazy(par1ItemStack) + par1ItemStack.getItemDamage();
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelHandler.registerItemAppendMeta(this, 4, LibItemNames.SPARK_UPGRADE);
}
String getUnlocalizedNameLazy(ItemStack par1ItemStack) {
return super.getUnlocalizedName(par1ItemStack);
}
@@ -22,6 +22,7 @@ import net.minecraft.util.SoundCategory;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import vazkii.botania.client.core.handler.ModelHandler;
import vazkii.botania.common.lib.LibItemNames;
import javax.annotation.Nonnull;
@@ -52,7 +53,13 @@ public class ItemTemperanceStone extends ItemMod {
else addStringToTooltip(I18n.format("botaniamisc.inactive"), stacks);
}
void addStringToTooltip(String s, List<String> tooltip) {
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelHandler.registerItemAppendMeta(this, 2, LibItemNames.TEMPERANCE_STONE);
}
private void addStringToTooltip(String s, List<String> tooltip) {
tooltip.add(s.replaceAll("&", "\u00a7"));
}
@@ -24,6 +24,7 @@ import net.minecraft.util.SoundCategory;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import vazkii.botania.client.core.handler.ModelHandler;
import vazkii.botania.common.achievement.ICraftAchievement;
import vazkii.botania.common.achievement.ModAchievements;
import vazkii.botania.common.entity.EntityThornChakram;
@@ -75,4 +76,10 @@ public class ItemThornChakram extends ItemMod implements ICraftAchievement {
return ModAchievements.terrasteelWeaponCraft;
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelHandler.registerItemAppendMeta(this, 2, LibItemNames.THORN_CHAKRAM);
}
}
@@ -12,6 +12,7 @@ package vazkii.botania.common.item;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.client.resources.I18n;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
@@ -33,6 +34,7 @@ import net.minecraft.util.SoundCategory;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.RayTraceResult;
import net.minecraft.world.World;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import vazkii.botania.api.internal.VanillaPacketDispatcher;
@@ -296,4 +298,10 @@ public class ItemTwigWand extends Item16Colors implements ICoordBoundItem {
return null;
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelLoader.setCustomModelResourceLocation(this, 0, new ModelResourceLocation(getRegistryName(), "inventory"));
}
}
@@ -33,6 +33,7 @@ import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraftforge.items.CapabilityItemHandler;
import net.minecraftforge.items.IItemHandler;
import vazkii.botania.client.core.handler.ModelHandler;
import vazkii.botania.common.lib.LibItemNames;
import vazkii.botania.common.lib.LibObfuscation;
@@ -121,4 +122,10 @@ public class ItemVirus extends ItemMod {
return super.getUnlocalizedName(stack) + stack.getItemDamage();
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelHandler.registerItemAppendMeta(this, 2, LibItemNames.VIRUS);
}
}
@@ -10,9 +10,13 @@
*/
package vazkii.botania.common.item.brew;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import vazkii.botania.api.brew.Brew;
import vazkii.botania.api.brew.IBrewContainer;
import vazkii.botania.common.item.ItemMod;
@@ -57,4 +61,11 @@ public class ItemVial extends ItemMod implements IBrewContainer {
return brew.getManaCost() * (stack.getItemDamage() + 1);
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelLoader.setCustomModelResourceLocation(this, 0, new ModelResourceLocation("botania:vial", "inventory"));
ModelLoader.setCustomModelResourceLocation(this, 1, new ModelResourceLocation("botania:flask", "inventory"));
}
}
@@ -12,6 +12,7 @@ package vazkii.botania.common.item.equipment.armor.manasteel;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
@@ -23,6 +24,7 @@ import net.minecraft.util.DamageSource;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.common.ISpecialArmor;
import net.minecraftforge.fml.common.Optional;
import net.minecraftforge.fml.common.registry.GameRegistry;
@@ -35,6 +37,7 @@ import vazkii.botania.api.mana.IManaUsingItem;
import vazkii.botania.api.mana.ManaItemHandler;
import vazkii.botania.client.lib.LibResources;
import vazkii.botania.client.model.armor.ModelArmorManasteel;
import vazkii.botania.client.render.IModelRegister;
import vazkii.botania.common.core.BotaniaCreativeTab;
import vazkii.botania.common.core.handler.ConfigHandler;
import vazkii.botania.common.core.helper.ItemNBTHelper;
@@ -48,7 +51,7 @@ import java.util.List;
import java.util.Map;
@Optional.Interface(modid = "Thaumcraft", iface = "thaumcraft.api.items.IRunicArmor")
public class ItemManasteelArmor extends ItemArmor implements ISpecialArmor, IManaUsingItem, IPhantomInkable, IRunicArmor {
public class ItemManasteelArmor extends ItemArmor implements ISpecialArmor, IManaUsingItem, IPhantomInkable, IRunicArmor, IModelRegister {
private static final int MANA_PER_DAMAGE = 70;
@@ -251,4 +254,10 @@ public class ItemManasteelArmor extends ItemArmor implements ISpecialArmor, IMan
public int getRunicCharge(ItemStack itemstack) {
return 0;
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelLoader.setCustomModelResourceLocation(this, 0, new ModelResourceLocation(getRegistryName(), "inventory"));
}
}
@@ -35,6 +35,7 @@ import net.minecraftforge.oredict.RecipeSorter;
import net.minecraftforge.oredict.RecipeSorter.Category;
import org.lwjgl.opengl.GL11;
import vazkii.botania.api.item.ICosmeticBauble;
import vazkii.botania.client.core.handler.ModelHandler;
import vazkii.botania.common.crafting.recipe.CosmeticAttachRecipe;
import vazkii.botania.common.crafting.recipe.CosmeticRemoveRecipe;
import vazkii.botania.common.lib.LibItemNames;
@@ -88,6 +89,12 @@ public class ItemBaubleCosmetic extends ItemBauble implements ICosmeticBauble {
super.addHiddenTooltip(par1ItemStack, player, stacks, par4);
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelHandler.registerItemAppendMeta(this, 32, LibItemNames.COSMETIC);
}
@Override
public BaubleType getBaubleType(ItemStack arg0) {
return BaubleType.AMULET;
@@ -45,6 +45,7 @@ import vazkii.botania.api.mana.IManaUsingItem;
import vazkii.botania.api.mana.ManaItemHandler;
import vazkii.botania.api.sound.BotaniaSoundEvents;
import vazkii.botania.client.core.handler.MiscellaneousIcons;
import vazkii.botania.client.core.handler.ModelHandler;
import vazkii.botania.client.core.helper.IconHelper;
import vazkii.botania.client.core.helper.RenderHelper;
import vazkii.botania.client.core.helper.ShaderHelper;
@@ -537,4 +538,10 @@ public class ItemFlightTiara extends ItemBauble implements IManaUsingItem, IBaub
return stack.getItemDamage() == 1 ? ModAchievements.tiaraWings : null;
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelHandler.registerItemAllMeta(this, WING_TYPES);
}
}
@@ -10,6 +10,7 @@
*/
package vazkii.botania.common.item.equipment.tool.bow;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
@@ -30,13 +31,17 @@ import net.minecraft.util.EnumHand;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.SoundCategory;
import net.minecraft.world.World;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.ForgeEventFactory;
import net.minecraftforge.event.entity.player.ArrowLooseEvent;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import vazkii.botania.api.mana.IManaUsingItem;
import vazkii.botania.api.mana.ManaItemHandler;
import vazkii.botania.client.lib.LibResources;
import vazkii.botania.client.render.IModelRegister;
import vazkii.botania.common.Botania;
import vazkii.botania.common.core.BotaniaCreativeTab;
import vazkii.botania.common.core.helper.PlayerHelper;
@@ -48,7 +53,7 @@ import vazkii.botania.common.lib.LibMisc;
import javax.annotation.Nonnull;
import java.util.function.Predicate;
public class ItemLivingwoodBow extends ItemBow implements IManaUsingItem {
public class ItemLivingwoodBow extends ItemBow implements IManaUsingItem, IModelRegister {
private static final Predicate<ItemStack> AMMO_FUNC = s -> s != null && s.getItem() instanceof ItemArrow;
public static final int MANA_PER_DAMAGE = 40;
@@ -219,4 +224,9 @@ public class ItemLivingwoodBow extends ItemBow implements IManaUsingItem {
else return new ItemStack(Items.ARROW);
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelLoader.setCustomModelResourceLocation(this, 0, new ModelResourceLocation(getRegistryName(), "inventory"));
}
}
@@ -12,6 +12,7 @@ package vazkii.botania.common.item.equipment.tool.manasteel;
import com.google.common.collect.ImmutableSet;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
@@ -25,13 +26,17 @@ import net.minecraft.util.EnumHand;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import vazkii.botania.api.BotaniaAPI;
import vazkii.botania.api.item.ISortableTool;
import vazkii.botania.api.mana.IManaUsingItem;
import vazkii.botania.api.mana.ManaItemHandler;
import vazkii.botania.client.core.handler.ItemsRemainingRenderHandler;
import vazkii.botania.client.lib.LibResources;
import vazkii.botania.client.render.IModelRegister;
import vazkii.botania.common.core.BotaniaCreativeTab;
import vazkii.botania.common.item.ModItems;
import vazkii.botania.common.item.equipment.tool.ToolCommons;
@@ -42,7 +47,7 @@ import javax.annotation.Nonnull;
import java.util.Set;
import java.util.regex.Pattern;
public class ItemManasteelAxe extends ItemAxe implements IManaUsingItem, ISortableTool {
public class ItemManasteelAxe extends ItemAxe implements IManaUsingItem, ISortableTool, IModelRegister {
private static final Pattern SAPLING_PATTERN = Pattern.compile("(?:(?:(?:[A-Z-_.:]|^)sapling)|(?:(?:[a-z-_.:]|^)Sapling))(?:[A-Z-_.:]|$)");
@@ -128,4 +133,9 @@ public class ItemManasteelAxe extends ItemAxe implements IManaUsingItem, ISortab
return ToolCommons.getToolPriority(stack);
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelLoader.setCustomModelResourceLocation(this, 0, new ModelResourceLocation(getRegistryName(), "inventory"));
}
}
@@ -11,6 +11,7 @@
package vazkii.botania.common.item.equipment.tool.manasteel;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
@@ -23,13 +24,17 @@ import net.minecraft.util.EnumHand;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import vazkii.botania.api.BotaniaAPI;
import vazkii.botania.api.item.ISortableTool;
import vazkii.botania.api.mana.IManaUsingItem;
import vazkii.botania.api.mana.ManaItemHandler;
import vazkii.botania.client.core.handler.ItemsRemainingRenderHandler;
import vazkii.botania.client.lib.LibResources;
import vazkii.botania.client.render.IModelRegister;
import vazkii.botania.common.core.BotaniaCreativeTab;
import vazkii.botania.common.item.ModItems;
import vazkii.botania.common.item.equipment.tool.ToolCommons;
@@ -39,7 +44,7 @@ import vazkii.botania.common.lib.LibMisc;
import javax.annotation.Nonnull;
import java.util.regex.Pattern;
public class ItemManasteelPick extends ItemPickaxe implements IManaUsingItem, ISortableTool {
public class ItemManasteelPick extends ItemPickaxe implements IManaUsingItem, ISortableTool, IModelRegister {
private static final Pattern TORCH_PATTERN = Pattern.compile("(?:(?:(?:[A-Z-_.:]|^)torch)|(?:(?:[a-z-_.:]|^)Torch))(?:[A-Z-_.:]|$)");
@@ -124,4 +129,9 @@ public class ItemManasteelPick extends ItemPickaxe implements IManaUsingItem, IS
return ToolCommons.getToolPriority(stack);
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelLoader.setCustomModelResourceLocation(this, 0, new ModelResourceLocation(getRegistryName(), "inventory"));
}
}
@@ -11,6 +11,7 @@
package vazkii.botania.common.item.equipment.tool.manasteel;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
@@ -24,11 +25,15 @@ import net.minecraft.util.EnumHand;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.common.IShearable;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import vazkii.botania.api.mana.IManaUsingItem;
import vazkii.botania.api.mana.ManaItemHandler;
import vazkii.botania.client.lib.LibResources;
import vazkii.botania.client.render.IModelRegister;
import vazkii.botania.common.core.BotaniaCreativeTab;
import vazkii.botania.common.item.ModItems;
import vazkii.botania.common.item.equipment.tool.ToolCommons;
@@ -39,7 +44,7 @@ import javax.annotation.Nonnull;
import java.util.List;
import java.util.Random;
public class ItemManasteelShears extends ItemShears implements IManaUsingItem {
public class ItemManasteelShears extends ItemShears implements IManaUsingItem, IModelRegister {
public static final int MANA_PER_DAMAGE = 30;
@@ -132,4 +137,10 @@ public class ItemManasteelShears extends ItemShears implements IManaUsingItem {
public boolean usesMana(ItemStack stack) {
return true;
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelLoader.setCustomModelResourceLocation(this, 0, new ModelResourceLocation(getRegistryName(), "inventory"));
}
}
@@ -12,6 +12,7 @@ package vazkii.botania.common.item.equipment.tool.manasteel;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
@@ -25,15 +26,19 @@ import net.minecraft.util.ResourceLocation;
import net.minecraft.util.SoundCategory;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.player.UseHoeEvent;
import net.minecraftforge.fml.common.eventhandler.Event.Result;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import vazkii.botania.api.BotaniaAPI;
import vazkii.botania.api.item.ISortableTool;
import vazkii.botania.api.mana.IManaUsingItem;
import vazkii.botania.api.mana.ManaItemHandler;
import vazkii.botania.client.lib.LibResources;
import vazkii.botania.client.render.IModelRegister;
import vazkii.botania.common.core.BotaniaCreativeTab;
import vazkii.botania.common.item.ModItems;
import vazkii.botania.common.item.equipment.tool.ToolCommons;
@@ -42,7 +47,7 @@ import vazkii.botania.common.lib.LibMisc;
import javax.annotation.Nonnull;
public class ItemManasteelShovel extends ItemSpade implements IManaUsingItem, ISortableTool {
public class ItemManasteelShovel extends ItemSpade implements IManaUsingItem, ISortableTool, IModelRegister {
private static final int MANA_PER_DAMAGE = 60;
@@ -137,4 +142,9 @@ public class ItemManasteelShovel extends ItemSpade implements IManaUsingItem, IS
return ToolCommons.getToolPriority(stack);
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelLoader.setCustomModelResourceLocation(this, 0, new ModelResourceLocation(getRegistryName(), "inventory"));
}
}
@@ -11,6 +11,7 @@
package vazkii.botania.common.item.equipment.tool.manasteel;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
@@ -20,11 +21,15 @@ import net.minecraft.item.ItemSword;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import vazkii.botania.api.BotaniaAPI;
import vazkii.botania.api.mana.IManaUsingItem;
import vazkii.botania.api.mana.ManaItemHandler;
import vazkii.botania.client.lib.LibResources;
import vazkii.botania.client.render.IModelRegister;
import vazkii.botania.common.core.BotaniaCreativeTab;
import vazkii.botania.common.item.ModItems;
import vazkii.botania.common.item.equipment.tool.ToolCommons;
@@ -33,7 +38,7 @@ import vazkii.botania.common.lib.LibMisc;
import javax.annotation.Nonnull;
public class ItemManasteelSword extends ItemSword implements IManaUsingItem {
public class ItemManasteelSword extends ItemSword implements IManaUsingItem, IModelRegister {
public static final int MANA_PER_DAMAGE = 60;
@@ -91,4 +96,9 @@ public class ItemManasteelSword extends ItemSword implements IManaUsingItem {
return true;
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelLoader.setCustomModelResourceLocation(this, 0, new ModelResourceLocation(getRegistryName(), "inventory"));
}
}
@@ -31,6 +31,7 @@ import vazkii.botania.api.mana.ILens;
import vazkii.botania.api.mana.ILensControl;
import vazkii.botania.api.mana.IManaSpreader;
import vazkii.botania.api.mana.ITinyPlanetExcempt;
import vazkii.botania.client.core.handler.ModelHandler;
import vazkii.botania.common.Botania;
import vazkii.botania.common.core.helper.ItemNBTHelper;
import vazkii.botania.common.crafting.recipe.CompositeLensRecipe;
@@ -341,4 +342,11 @@ public class ItemLens extends ItemMod implements ILensControl, ICompositableLens
public boolean isCombinable(ItemStack stack) {
return stack.getItemDamage() != NORMAL;
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelHandler.registerItemMetas(this, LibItemNames.LENS_NAMES.length, i -> LibItemNames.LENS_NAMES[i]);
}
}
@@ -33,6 +33,7 @@ import net.minecraftforge.fml.relauncher.SideOnly;
import vazkii.botania.api.item.IPetalApothecary;
import vazkii.botania.api.recipe.IElvenItem;
import vazkii.botania.api.recipe.IFlowerComponent;
import vazkii.botania.client.core.handler.ModelHandler;
import vazkii.botania.common.Botania;
import vazkii.botania.common.achievement.IPickupAchievement;
import vazkii.botania.common.achievement.ModAchievements;
@@ -172,4 +173,10 @@ public class ItemManaResource extends ItemMod implements IFlowerComponent, IElve
return stack.getItemDamage() == 4 ? ModAchievements.terrasteelPickup : null;
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelHandler.registerItemMetas(this, LibItemNames.MANA_RESOURCE_NAMES.length, i -> LibItemNames.MANA_RESOURCE_NAMES[i]);
}
}
@@ -13,7 +13,10 @@ package vazkii.botania.common.item.material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import vazkii.botania.api.recipe.IElvenItem;
import vazkii.botania.client.core.handler.ModelHandler;
import vazkii.botania.common.core.handler.ConfigHandler;
import vazkii.botania.common.item.ItemMod;
import vazkii.botania.common.lib.LibItemNames;
@@ -42,7 +45,7 @@ public class ItemQuartz extends ItemMod implements IElvenItem {
return getUnlocalizedNameLazy(par1ItemStack) + par1ItemStack.getItemDamage();
}
String getUnlocalizedNameLazy(ItemStack par1ItemStack) {
private String getUnlocalizedNameLazy(ItemStack par1ItemStack) {
return super.getUnlocalizedName(par1ItemStack);
}
@@ -50,4 +53,10 @@ public class ItemQuartz extends ItemMod implements IElvenItem {
public boolean isElvenItem(ItemStack stack) {
return stack.getItemDamage() == 5;
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelHandler.registerItemAppendMeta(this, 7, LibItemNames.QUARTZ);
}
}
@@ -16,8 +16,11 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.stats.Achievement;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import vazkii.botania.api.item.IPetalApothecary;
import vazkii.botania.api.recipe.IFlowerComponent;
import vazkii.botania.client.core.handler.ModelHandler;
import vazkii.botania.common.achievement.IPickupAchievement;
import vazkii.botania.common.achievement.ModAchievements;
import vazkii.botania.common.item.ItemMod;
@@ -64,4 +67,11 @@ public class ItemRune extends ItemMod implements IFlowerComponent, IPickupAchiev
return ModAchievements.runePickup;
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
String[] runeNames = { "water", "fire", "earth", "air", "spring", "summer", "autumn", "winter", "mana", "lust", "gluttony", "greed", "sloth", "wrath", "envy", "pride" };
ModelHandler.registerItemMetas(this, runeNames.length, i -> "rune_" + runeNames[i]);
}
}
@@ -10,18 +10,23 @@
*/
package vazkii.botania.common.item.record;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.ItemRecord;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.SoundEvent;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import vazkii.botania.client.lib.LibResources;
import vazkii.botania.client.render.IModelRegister;
import vazkii.botania.common.core.BotaniaCreativeTab;
import vazkii.botania.common.lib.LibMisc;
import javax.annotation.Nonnull;
public class ItemModRecord extends ItemRecord {
public class ItemModRecord extends ItemRecord implements IModelRegister {
private final String file;
@@ -45,4 +50,9 @@ public class ItemModRecord extends ItemRecord {
return new ResourceLocation(file);
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels() {
ModelLoader.setCustomModelResourceLocation(this, 0, new ModelResourceLocation(getRegistryName(), "inventory"));
}
}