First pass at coloring Sigil of Holding (#787)

This commit is contained in:
Nicholas Ignoffo 2016-06-09 16:59:11 -07:00
parent 513bb113e1
commit 4eda0d6caa
6 changed files with 83 additions and 8 deletions

View file

@ -117,6 +117,7 @@ public class Constants
public static final String CURRENT_SIGIL = "currentSigil"; public static final String CURRENT_SIGIL = "currentSigil";
public static final String MOST_SIG = "mostSig"; public static final String MOST_SIG = "mostSig";
public static final String LEAST_SIG = "leastSig"; public static final String LEAST_SIG = "leastSig";
public static final String COLOR = "color";
} }
public static class Mod public static class Mod

View file

@ -24,7 +24,9 @@ import net.minecraft.util.math.MathHelper;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
import org.apache.commons.lang3.tuple.Pair;
import java.util.Collections;
import java.util.List; import java.util.List;
public class ItemSigilHolding extends ItemSigilBase implements IKeybindable public class ItemSigilHolding extends ItemSigilBase implements IKeybindable
@ -285,4 +287,9 @@ public class ItemSigilHolding extends ItemSigilBase implements IKeybindable
itemStack.getTagCompound().setInteger(Constants.NBT.CURRENT_SIGIL, mode); itemStack.getTagCompound().setInteger(Constants.NBT.CURRENT_SIGIL, mode);
} }
} }
@Override
public List<Pair<Integer, String>> getVariants() {
return Collections.emptyList();
}
} }

View file

@ -91,14 +91,24 @@ public class ClientProxy extends CommonProxy
@Override @Override
public void init() public void init()
{ {
Minecraft.getMinecraft().getItemColors().registerItemColorHandler(new IItemColor() Minecraft.getMinecraft().getItemColors().registerItemColorHandler(
{ new IItemColor()
@Override {
public int getColorFromItemstack(ItemStack stack, int tintIndex) @Override
{ public int getColorFromItemstack(ItemStack stack, int tintIndex)
return stack.hasTagCompound() && stack.getTagCompound().hasKey("bloody") ? new Color(0x8B191B).getRGB() : 16777215; {
} try {
}, Items.BREAD); if (stack.hasTagCompound() && stack.getTagCompound().hasKey(Constants.NBT.COLOR))
if (tintIndex == 1)
return Color.decode(stack.getTagCompound().getString(Constants.NBT.COLOR)).getRGB();
} catch (NumberFormatException e) {
return -1;
}
return -1;
}
},
ModItems.sigilHolding
);
addElytraLayer(); addElytraLayer();
} }

View file

@ -1,8 +1,12 @@
package WayofTime.bloodmagic.registry; package WayofTime.bloodmagic.registry;
import net.minecraft.client.renderer.ItemMeshDefinition;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.inventory.EntityEquipmentSlot;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.common.util.EnumHelper; import net.minecraftforge.common.util.EnumHelper;
import net.minecraftforge.fml.common.IFuelHandler; import net.minecraftforge.fml.common.IFuelHandler;
import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.common.registry.GameRegistry;
@ -259,6 +263,23 @@ public class ModItems
{ {
InventoryRenderHelper renderHelper = BloodMagic.proxy.getRenderHelper(); InventoryRenderHelper renderHelper = BloodMagic.proxy.getRenderHelper();
final ResourceLocation holdingLoc = new ResourceLocation("bloodmagic", "item/ItemSigilHolding");
ModelLoader.setCustomMeshDefinition(
sigilHolding,
new ItemMeshDefinition()
{
@Override
public ModelResourceLocation getModelLocation(ItemStack stack)
{
if (stack.hasTagCompound() && stack.getTagCompound().hasKey(Constants.NBT.COLOR))
return new ModelResourceLocation(holdingLoc, "type=color");
return new ModelResourceLocation(holdingLoc, "type=normal");
}
}
);
ModelLoader.registerItemVariants(sigilHolding, new ModelResourceLocation(holdingLoc, "type=normal"));
ModelLoader.registerItemVariants(sigilHolding, new ModelResourceLocation(holdingLoc, "type=color"));
renderHelper.itemRenderAll(bloodOrb); renderHelper.itemRenderAll(bloodOrb);
OrbRegistry.registerOrbTexture(orbWeak, new ResourceLocation(Constants.Mod.DOMAIN + "ItemBloodOrbWeak")); OrbRegistry.registerOrbTexture(orbWeak, new ResourceLocation(Constants.Mod.DOMAIN + "ItemBloodOrbWeak"));
OrbRegistry.registerOrbTexture(orbApprentice, new ResourceLocation(Constants.Mod.DOMAIN + "ItemBloodOrbApprentice")); OrbRegistry.registerOrbTexture(orbApprentice, new ResourceLocation(Constants.Mod.DOMAIN + "ItemBloodOrbApprentice"));

View file

@ -11,7 +11,10 @@ import WayofTime.bloodmagic.api.util.helper.NBTHelper;
import WayofTime.bloodmagic.item.ItemInscriptionTool; import WayofTime.bloodmagic.item.ItemInscriptionTool;
import WayofTime.bloodmagic.registry.ModItems; import WayofTime.bloodmagic.registry.ModItems;
import net.minecraft.init.Items; import net.minecraft.init.Items;
import net.minecraft.item.EnumDyeColor;
import net.minecraft.item.ItemBanner;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.event.AnvilUpdateEvent; import net.minecraftforge.event.AnvilUpdateEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
@ -57,6 +60,33 @@ public class CraftingHandler {
} }
} }
if (event.getLeft().getItem() == ModItems.sigilHolding) {
if (event.getRight().getItem() == Items.NAME_TAG) {
ItemStack output = event.getLeft().copy();
if (!output.hasTagCompound())
output.setTagCompound(new NBTTagCompound());
output.getTagCompound().setString(Constants.NBT.COLOR, event.getRight().getDisplayName());
event.setCost(1);
event.setOutput(output);
return;
}
if (event.getRight().getItem() == Items.DYE) {
EnumDyeColor dyeColor = ItemBanner.getBaseColor(event.getRight());
ItemStack output = event.getLeft().copy();
if (!output.hasTagCompound())
output.setTagCompound(new NBTTagCompound());
output.getTagCompound().setString(Constants.NBT.COLOR, String.valueOf(dyeColor.getMapColor().colorValue));
event.setCost(1);
event.setOutput(output);
return;
}
}
if (event.getLeft().getItem() == Items.BOOK && event.getRight().getItem() == Items.ELYTRA && !event.getRight().isItemDamaged()) if (event.getLeft().getItem() == Items.BOOK && event.getRight().getItem() == Items.ELYTRA && !event.getRight().isItemDamaged())
{ {
ItemStack output = new ItemStack(ModItems.upgradeTome); ItemStack output = new ItemStack(ModItems.upgradeTome);

View file

@ -10,6 +10,12 @@
"textures": { "textures": {
"layer0": "bloodmagic:items/SigilOfHolding" "layer0": "bloodmagic:items/SigilOfHolding"
} }
},
"color": {
"textures": {
"layer0": "bloodmagic:items/SigilOfHolding",
"layer1": "bloodmagic:items/SigilOverlay"
}
} }
} }
} }