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);
}
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;
}
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"));
}
}
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();
}
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();
// }
}
}
Aggregations