First pass at coloring Sigil of Holding (#787)
This commit is contained in:
parent
513bb113e1
commit
4eda0d6caa
|
@ -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
|
||||||
|
|
|
@ -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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
@ -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"));
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -10,6 +10,12 @@
|
||||||
"textures": {
|
"textures": {
|
||||||
"layer0": "bloodmagic:items/SigilOfHolding"
|
"layer0": "bloodmagic:items/SigilOfHolding"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"color": {
|
||||||
|
"textures": {
|
||||||
|
"layer0": "bloodmagic:items/SigilOfHolding",
|
||||||
|
"layer1": "bloodmagic:items/SigilOverlay"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue