Jump to content

[1.7.10] Replacing code in GuiScreen


Silly511

Recommended Posts

What I want to do is make the tooltip color of a certain item continually change. I know I can use ItemTooltipEvent and put a random EnumChatFormatting at the front of the tooltip, but I want the color to shift from one to the next, not just abruptly change from one to another.  Is there another way to do this than replacing code?

Link to comment
Share on other sites

What do dark colors have to do with this? I have a color switching algorithm that works fine, it's just I can't specify a specific color with ItemTooltipEvent. You can only put EnumChatFormattings on the tooltip, and EnumChatFormatting has RED, GREEN, BLUE, YELLOW, ect. but not a way specify a RGB value. Line 215 in GuiScreen is:

font.drawStringWithShadow(s1, j2, k2, -1);

Where the very last arrangement in drawStringWithShadow is a RGB value for the color. What I want to replace line 215 with is a if statement that checks if the tooltip has a specific string of characters in it, and if true then do drawStringWithShadow with a ever changing color value, if false then do the normal. Do you know if there is a way to change the RGB value of the tooltip from ItemTooltipEvent?

Link to comment
Share on other sites

Ok I made a custom font renderer, but what should I put for the ResourceLocation? Heres my code:

package silly511.enchantedaura.render;

import silly511.core.helpers.RenderHelper;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.renderer.texture.TextureManager;
import net.minecraft.client.settings.GameSettings;
import net.minecraft.util.ResourceLocation;

public class RainbowFontRenderer extends FontRenderer {

public RainbowFontRenderer() {
	super(Minecraft.getMinecraft().gameSettings, null, Minecraft.getMinecraft().renderEngine, true);
}

@Override
public int drawStringWithShadow(String text, int x, int y, int color) {
	if (text.endsWith("#COSMIC#"))
		return super.drawStringWithShadow(text.replaceAll("#COSMIC#", ""), x, y, RenderHelper.getRainbowColor());
	else
		return super.drawStringWithShadow(text, x, y, color);
}

}

What do I put in place of null in the constructor?

Link to comment
Share on other sites

The tooltip for my item is completely blank. Why?

 

public class RainbowFontRenderer extends FontRenderer {

public RainbowFontRenderer() {
	super(Minecraft.getMinecraft().gameSettings, new ResourceLocation("textures/font/ascii.png"), Minecraft.getMinecraft().renderEngine, false);
}

@Override
public int drawStringWithShadow(String text, int x, int y, int color) {
	if (text.substring(1, .equals("#COSMIC#"))
		return super.drawStringWithShadow(text.substring(, x, y, RenderHelper.getRainbowColor());
	else
		return super.drawStringWithShadow(text, x, y, color);
}

}

 

Item:

@Override
public FontRenderer getFontRenderer(ItemStack stack) {
	return new RainbowFontRenderer();
}

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.