Search in sources :

Example 6 with Color

use of net.silentchaos512.lib.util.Color in project SilentGems by SilentChaos512.

the class ColorHandlers method init.

public static void init() {
    ItemColors itemColors = Minecraft.getMinecraft().getItemColors();
    // Tools
    itemColors.registerItemColorHandler(new IItemColor() {

        @Override
        public int getColorFromItemstack(ItemStack stack, int tintIndex) {
            return ToolRenderHelper.getInstance().getColor(stack, ToolPartPosition.forRenderPass(tintIndex));
        }
    }, ModItems.tools.toArray(new Item[ModItems.tools.size()]));
    // Shields
    itemColors.registerItemColorHandler(new IItemColor() {

        int[] passes = { ToolRenderHelper.PASS_HEAD, ToolRenderHelper.PASS_ROD };

        @Override
        public int getColorFromItemstack(ItemStack stack, int tintIndex) {
            if (tintIndex < 0 || tintIndex >= passes.length)
                return 0xFFFFFF;
            return ToolRenderHelper.getInstance().getColor(stack, ToolPartPosition.forRenderPass(tintIndex));
        }
    }, ModItems.shield);
    // Armor (temp)
    itemColors.registerItemColorHandler(new IItemColor() {

        @Override
        public int getColorFromItemstack(ItemStack stack, int tintIndex) {
            // FIXME: Multiple passes needed?
            return ArmorHelper.getRenderColor(stack, ArmorPartPosition.NORTH);
        }
    }, ModItems.gemHelmet, ModItems.gemChestplate, ModItems.gemLeggings, ModItems.gemBoots);
    // Enchantment Tokens
    itemColors.registerItemColorHandler(new IItemColor() {

        @Override
        public int getColorFromItemstack(ItemStack stack, int tintIndex) {
            if (tintIndex == 1)
                return ModItems.enchantmentToken.getOutlineColor(stack);
            return 0xFFFFFF;
        }
    }, ModItems.enchantmentToken);
    // Return Home Charm
    itemColors.registerItemColorHandler(new IItemColor() {

        @Override
        public int getColorFromItemstack(ItemStack stack, int tintIndex) {
            if (tintIndex == 0) {
                int meta = stack.getItemDamage();
                if (meta >= 0 && meta < EnumGem.values().length) {
                    EnumGem gem = EnumGem.values()[meta];
                    return gem.color;
                }
            }
            return 0xFFFFFF;
        }
    }, ModItems.returnHomeCharm);
    // Node Mover
    itemColors.registerItemColorHandler(new IItemColor() {

        @Override
        public int getColorFromItemstack(ItemStack stack, int tintIndex) {
            return tintIndex != 1 ? 0xFFFFFF : ClientTickHandler.nodeMoverColor.getColor();
        }
    }, ModItems.nodeMover);
    // Drawing Compass
    itemColors.registerItemColorHandler(new IItemColor() {

        @Override
        public int getColorFromItemstack(ItemStack stack, int tintIndex) {
            return tintIndex == 0 ? ModItems.drawingCompass.getColor(stack).getColor() : 0xFFFFFF;
        }
    }, ModItems.drawingCompass);
    // Chaos Runes
    itemColors.registerItemColorHandler(new IItemColor() {

        @Override
        public int getColorFromItemstack(ItemStack stack, int tintIndex) {
            if (tintIndex == 1) {
                ChaosBuff buff = ModItems.chaosRune.getBuff(stack);
                if (buff != null) {
                    return buff.getColor();
                }
            }
            return 0xFFFFFF;
        }
    }, ModItems.chaosRune);
    // Holding Gem
    itemColors.registerItemColorHandler(new IItemColor() {

        @Override
        public int getColorFromItemstack(ItemStack stack, int tintIndex) {
            if (tintIndex == 1) {
                if (stack.hasTagCompound()) {
                    int id = stack.getTagCompound().getShort(ItemHoldingGem.NBT_GEM_ID);
                    if (id >= 0 && id < EnumGem.values().length)
                        return EnumGem.values()[id].color;
                }
            } else if (tintIndex == 2) {
                IBlockState state = ModItems.holdingGem.getBlockPlaced(stack);
                if (state != null) {
                    return 0xFFFFFF;
                // return state.getMapColor().colorValue;
                }
            }
            return 0xFFFFFF;
        }
    }, ModItems.holdingGem);
    // Soul Gems
    itemColors.registerItemColorHandler(new IItemColor() {

        @Override
        public int getColorFromItemstack(ItemStack stack, int tintIndex) {
            Soul soul = ModItems.soulGem.getSoul(stack);
            if (soul == null) {
                return 0xFFFFFF;
            } else if (tintIndex == 1) {
                return soul.colorSecondary;
            } else {
                return soul.colorPrimary;
            }
        }
    }, ModItems.soulGem);
    // Tool Soul
    itemColors.registerItemColorHandler(new IItemColor() {

        @Override
        public int getColorFromItemstack(ItemStack stack, int tintIndex) {
            // TODO Auto-generated method stub
            ToolSoul soul = ModItems.toolSoul.getSoul(stack);
            if (soul == null)
                return tintIndex == 1 ? 0xFF00FF : tintIndex == 2 ? 0x0 : 0xFFFFFF;
            switch(tintIndex) {
                case 0:
                    float ratio = 0.5f + MathHelper.sin((float) ClientTickHandler.ticksInGame / 15) / 6;
                    return Color.blend(soul.getPrimaryElement().color, soul.getSecondaryElement().color, ratio);
                case 1:
                    return soul.getPrimaryElement().color;
                case 2:
                    return soul.getSecondaryElement().color;
                default:
                    return 0xFFFFFF;
            }
        }
    }, ModItems.toolSoul);
    // Arrows
    itemColors.registerItemColorHandler(new IItemColor() {

        @Override
        public int getColorFromItemstack(ItemStack stack, int tintIndex) {
            // TODO Auto-generated method stub
            return 0xFFFFFF;
        }
    }, ModItems.arrow);
}
Also used : IItemColor(net.minecraft.client.renderer.color.IItemColor) Item(net.minecraft.item.Item) ToolSoul(net.silentchaos512.gems.lib.soul.ToolSoul) IBlockState(net.minecraft.block.state.IBlockState) ToolSoul(net.silentchaos512.gems.lib.soul.ToolSoul) Soul(net.silentchaos512.gems.item.ItemSoulGem.Soul) ItemColors(net.minecraft.client.renderer.color.ItemColors) ItemStack(net.minecraft.item.ItemStack)

Example 7 with Color

use of net.silentchaos512.lib.util.Color in project SilentGems by SilentChaos512.

the class ToolPartFlint method getColor.

@Override
public int getColor(ItemStack toolOrArmor, IPartPosition position, int animationFrame) {
    Item item = toolOrArmor.getItem();
    boolean isTextureUncolored = position == ToolPartPosition.ROD_DECO || item instanceof IArmor || item instanceof ItemGemBow || item instanceof ItemGemShield;
    return isTextureUncolored || ToolHelper.isBroken(toolOrArmor) ? COLOR : 0xFFFFFF;
}
Also used : Item(net.minecraft.item.Item) ItemGemShield(net.silentchaos512.gems.item.tool.ItemGemShield) ItemGemBow(net.silentchaos512.gems.item.tool.ItemGemBow) IArmor(net.silentchaos512.gems.api.IArmor)

Example 8 with Color

use of net.silentchaos512.lib.util.Color in project SilentGems by SilentChaos512.

the class ToolSoul method addInformation.

public void addInformation(ItemStack stack, World world, List<String> list, boolean advanced) {
    LocalizationHelper loc = SilentGems.localizationHelper;
    String color;
    // Level, XP, AP
    color = "" + TextFormatting.GREEN;
    list.add(color + loc.getMiscText("ToolSoul.level", level, xp, getXpToNextLevel()));
    list.add(color + loc.getMiscText("ToolSoul.actionPoints", actionPoints, getMaxActionPoints()));
    boolean skillsKeyDown = Keyboard.isKeyDown(Keyboard.KEY_S);
    if (skillsKeyDown || stack.getItem() instanceof ItemToolSoul) {
        // Display elements.
        String e1 = element1 == null ? "None" : element1.getDisplayName();
        String e2 = element2 == null ? "None" : element2.getDisplayName();
        String elements = e1 + (e2.equalsIgnoreCase("none") ? "" : ", " + e2);
        list.add(loc.getMiscText("ToolSoul.elements", elements));
    }
    if (skillsKeyDown) {
        // Display stat modifiers.
        color = "  " + TextFormatting.YELLOW;
        float durability = getDurabilityModifierForDisplay(this);
        float harvestSpeed = getHarvestSpeedModifierForDisplay(this);
        float meleeDamage = getMeleeDamageModifierForDisplay(this);
        float magicDamage = getMagicDamageModifierForDisplay(this);
        float protection = getProtectionModifierForDisplay(this);
        if (durability != 0f)
            list.add(color + TooltipHelper.getAsColoredPercentage("Durability", durability, 0, true));
        if (harvestSpeed != 0f)
            list.add(color + TooltipHelper.getAsColoredPercentage("HarvestSpeed", harvestSpeed, 0, true));
        if (meleeDamage != 0f)
            list.add(color + TooltipHelper.getAsColoredPercentage("MeleeDamage", meleeDamage, 0, true));
        if (magicDamage != 0f)
            list.add(color + TooltipHelper.getAsColoredPercentage("MagicDamage", magicDamage, 0, true));
        if (protection != 0f)
            list.add(color + TooltipHelper.getAsColoredPercentage("Protection", protection, 0, true));
        // Display skills.
        for (Entry<SoulSkill, Integer> entry : skills.entrySet()) {
            SoulSkill skill = entry.getKey();
            int level = entry.getValue();
            list.add("  " + skill.getLocalizedName(stack, level));
        }
    } else {
        list.add(TextFormatting.GOLD + loc.getMiscText("Tooltip.keyForSkills"));
    }
}
Also used : ItemToolSoul(net.silentchaos512.gems.item.ItemToolSoul) LocalizationHelper(net.silentchaos512.lib.util.LocalizationHelper)

Example 9 with Color

use of net.silentchaos512.lib.util.Color in project SilentGems by SilentChaos512.

the class GuiChaosBar method onRenderGameOverlay.

@SubscribeEvent
public void onRenderGameOverlay(RenderGameOverlayEvent.Pre event) {
    if (event.getType() != ElementType.AIR) {
        return;
    }
    Minecraft mc = Minecraft.getMinecraft();
    EntityPlayer player = mc.player;
    currentTime = ClientTickHandler.ticksInGame;
    if (player.capabilities.isCreativeMode || (!GemsConfig.CHAOS_BAR_SHOW_ALWAYS && currentTime > lastUpdateTime + POPUP_TIME)) {
        return;
    }
    int width = event.getResolution().getScaledWidth();
    int height = event.getResolution().getScaledHeight();
    PlayerData data = PlayerDataHandler.get(player);
    int chaos = data.getCurrentChaos();
    int maxChaos = data.getMaxChaos();
    int chaosHalves = (int) (20f * chaos / maxChaos);
    int rowHeight = 10;
    int left = width / 2 + 10;
    int top = height - GuiIngameForge.right_height;
    GuiIngameForge.right_height += rowHeight;
    final int textureX = 0;
    final int textureY = 23;
    final int textureWidth = 9;
    final int textureHeight = 9;
    GlStateManager.pushMatrix();
    GlStateManager.enableBlend();
    mc.renderEngine.bindTexture(TEXTURE);
    for (int i = 9; i >= 0; --i) {
        int row = MathHelper.ceil((i + 1) / 10f) - 1;
        int x = left + i % 10 * 8;
        int y = top - row * rowHeight;
        GlStateManager.color(1f, 1f, 1f, 1f);
        drawTexturedModalRect(x, y, textureX + 2 * textureWidth, textureY, textureWidth, textureHeight);
        Color color = new Color();
        float hue = ((currentTime + COLOR_CHANGE_STEP * i) % COLOR_CHANGE_DELAY) / COLOR_CHANGE_DELAY;
        color.fromHSB(hue, 0.6f, 1f);
        GlStateManager.color(color.getRed() / 255f, color.getGreen() / 255f, color.getBlue() / 255f, 1f);
        if (i * 2 + 1 < chaosHalves) {
            drawTexturedModalRect(x, y, textureX, textureY, textureWidth, textureHeight);
        } else if (i * 2 + 1 == chaosHalves) {
            drawTexturedModalRect(x, y, textureX + textureWidth, textureY, textureWidth, textureHeight);
        }
    }
    GlStateManager.color(1f, 1f, 1f, 1f);
    mc.renderEngine.bindTexture(Gui.ICONS);
    GlStateManager.disableBlend();
    GlStateManager.popMatrix();
}
Also used : Color(org.lwjgl.util.Color) EntityPlayer(net.minecraft.entity.player.EntityPlayer) Minecraft(net.minecraft.client.Minecraft) PlayerData(net.silentchaos512.gems.handler.PlayerDataHandler.PlayerData) SubscribeEvent(net.minecraftforge.fml.common.eventhandler.SubscribeEvent)

Example 10 with Color

use of net.silentchaos512.lib.util.Color in project SilentGems by SilentChaos512.

the class GuiToolSouls method renderAPBarForItem.

private static void renderAPBarForItem(ItemStack stack, int xPosition, int yPosition) {
    if (!stack.isEmpty()) {
        ToolSoul soul = SoulManager.getSoul(stack);
        if (soul != null) {
            // SilentGems.logHelper.debug(soul);
            GlStateManager.disableLighting();
            GlStateManager.disableDepth();
            GlStateManager.disableTexture2D();
            GlStateManager.disableAlpha();
            GlStateManager.disableBlend();
            Tessellator tessellator = Tessellator.getInstance();
            BufferBuilder bufferbuilder = tessellator.getBuffer();
            double ap = 1.0 - ((double) soul.getActionPoints() / soul.getMaxActionPoints());
            int rgbfordisplay = new Color(0f, 0.75f * (1f - (float) ap), 1f).getColor();
            int i = Math.round(13.0F - (float) ap * 13.0F);
            int j = rgbfordisplay;
            draw(bufferbuilder, xPosition + 2, yPosition + 13, 13, 2, 0, 0, 0, 255);
            draw(bufferbuilder, xPosition + 2, yPosition + 13, i, 1, j >> 16 & 255, j >> 8 & 255, j & 255, 255);
            GlStateManager.enableBlend();
            GlStateManager.enableAlpha();
            GlStateManager.enableTexture2D();
            GlStateManager.enableLighting();
            GlStateManager.enableDepth();
        }
    // EntityPlayerSP entityplayersp = Minecraft.getMinecraft().player;
    // float f3 = entityplayersp == null ? 0.0F
    // : entityplayersp.getCooldownTracker().getCooldown(stack.getItem(),
    // Minecraft.getMinecraft().getRenderPartialTicks());
    // 
    // if (f3 > 0.0F) {
    // GlStateManager.disableLighting();
    // GlStateManager.disableDepth();
    // GlStateManager.disableTexture2D();
    // Tessellator tessellator1 = Tessellator.getInstance();
    // BufferBuilder bufferbuilder1 = tessellator1.getBuffer();
    // this.draw(bufferbuilder1, xPosition, yPosition + MathHelper.floor(16.0F * (1.0F - f3)), 16,
    // MathHelper.ceil(16.0F * f3), 255, 255, 255, 127);
    // //        GlStateManager.enableTexture2D();
    // //        GlStateManager.enableLighting();
    // //        GlStateManager.enableDepth();
    // }
    }
}
Also used : ToolSoul(net.silentchaos512.gems.lib.soul.ToolSoul) Tessellator(net.minecraft.client.renderer.Tessellator) BufferBuilder(net.minecraft.client.renderer.BufferBuilder) Color(net.silentchaos512.lib.util.Color)

Aggregations

Color (net.silentchaos512.lib.util.Color)9 TextFormatting (net.minecraft.util.text.TextFormatting)5 LocalizationHelper (net.silentchaos512.lib.util.LocalizationHelper)5 ToolSoul (net.silentchaos512.gems.lib.soul.ToolSoul)4 Random (java.util.Random)3 EntityPlayer (net.minecraft.entity.player.EntityPlayer)3 Item (net.minecraft.item.Item)3 EnumMaterialGrade (net.silentchaos512.gems.api.lib.EnumMaterialGrade)3 EnumMaterialTier (net.silentchaos512.gems.api.lib.EnumMaterialTier)3 UUID (java.util.UUID)2 Minecraft (net.minecraft.client.Minecraft)2 ItemStack (net.minecraft.item.ItemStack)2 PotionEffect (net.minecraft.potion.PotionEffect)2 Vec3d (net.minecraft.util.math.Vec3d)2 SideOnly (net.minecraftforge.fml.relauncher.SideOnly)2 ToolPart (net.silentchaos512.gems.api.tool.part.ToolPart)2 ItemGemBow (net.silentchaos512.gems.item.tool.ItemGemBow)2 ItemGemShield (net.silentchaos512.gems.item.tool.ItemGemShield)2 IBlockState (net.minecraft.block.state.IBlockState)1 FontRenderer (net.minecraft.client.gui.FontRenderer)1