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 MOST_SIG = "mostSig";
|
||||
public static final String LEAST_SIG = "leastSig";
|
||||
public static final String COLOR = "color";
|
||||
}
|
||||
|
||||
public static class Mod
|
||||
|
|
|
@ -24,7 +24,9 @@ import net.minecraft.util.math.MathHelper;
|
|||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Pair<Integer, String>> getVariants() {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -91,14 +91,24 @@ public class ClientProxy extends CommonProxy
|
|||
@Override
|
||||
public void init()
|
||||
{
|
||||
Minecraft.getMinecraft().getItemColors().registerItemColorHandler(new IItemColor()
|
||||
Minecraft.getMinecraft().getItemColors().registerItemColorHandler(
|
||||
new IItemColor()
|
||||
{
|
||||
@Override
|
||||
public int getColorFromItemstack(ItemStack stack, int tintIndex)
|
||||
{
|
||||
return stack.hasTagCompound() && stack.getTagCompound().hasKey("bloody") ? new Color(0x8B191B).getRGB() : 16777215;
|
||||
try {
|
||||
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;
|
||||
}
|
||||
}, Items.BREAD);
|
||||
return -1;
|
||||
}
|
||||
},
|
||||
ModItems.sigilHolding
|
||||
);
|
||||
|
||||
addElytraLayer();
|
||||
}
|
||||
|
|
|
@ -1,8 +1,12 @@
|
|||
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.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.client.model.ModelLoader;
|
||||
import net.minecraftforge.common.util.EnumHelper;
|
||||
import net.minecraftforge.fml.common.IFuelHandler;
|
||||
import net.minecraftforge.fml.common.registry.GameRegistry;
|
||||
|
@ -259,6 +263,23 @@ public class ModItems
|
|||
{
|
||||
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);
|
||||
OrbRegistry.registerOrbTexture(orbWeak, new ResourceLocation(Constants.Mod.DOMAIN + "ItemBloodOrbWeak"));
|
||||
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.registry.ModItems;
|
||||
import net.minecraft.init.Items;
|
||||
import net.minecraft.item.EnumDyeColor;
|
||||
import net.minecraft.item.ItemBanner;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraftforge.event.AnvilUpdateEvent;
|
||||
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())
|
||||
{
|
||||
ItemStack output = new ItemStack(ModItems.upgradeTome);
|
||||
|
|
|
@ -10,6 +10,12 @@
|
|||
"textures": {
|
||||
"layer0": "bloodmagic:items/SigilOfHolding"
|
||||
}
|
||||
},
|
||||
"color": {
|
||||
"textures": {
|
||||
"layer0": "bloodmagic:items/SigilOfHolding",
|
||||
"layer1": "bloodmagic:items/SigilOverlay"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue