Added ColorsComponent
This commit is contained in:
parent
d9c2c311b9
commit
f3391a87cc
|
@ -25,16 +25,24 @@ public class ButtonComponent extends HudComponent {
|
|||
RenderUtil.drawGradientRect(this.getX(), this.getY(), this.getX() + this.getW(), this.getY() + this.getH(), 0x30909090, 0x00101010);
|
||||
|
||||
// draw bg
|
||||
RenderUtil.drawRect(this.getX(), this.getY(), this.getX() + this.getW(), this.getY() + this.getH(), this.enabled ? 0x45002E00 : 0x452E0000);
|
||||
RenderUtil.drawRect(this.getX(), this.getY(), this.getX() + (this.rightClickListener != null ? this.getW() - 8 : this.getW()), this.getY() + this.getH(), this.enabled ? 0x45002E00 : 0x452E0000);
|
||||
|
||||
if (this.rightClickListener != null) {
|
||||
final boolean isMousingHoveringDropdown = mouseX >= this.getX() + this.getW() - 8 && mouseX <= this.getX() + this.getW() && mouseY >= this.getY() && mouseY <= this.getY() + this.getH();
|
||||
|
||||
// draw bg behind triangles
|
||||
RenderUtil.drawRect(this.getX() + this.getW() - 8, this.getY(), this.getX() + this.getW(), this.getY() + this.getH(), 0x45202020);
|
||||
|
||||
// draw right click box
|
||||
if (this.rightClickEnabled) {
|
||||
RenderUtil.drawRect(this.getX() + this.getW() - 7, this.getY() + 2, this.getX() + this.getW() - 2, this.getY() + this.getH() - 2, 0xFF6D55FF);
|
||||
RenderUtil.drawTriangle(this.getX() + this.getW() - 4, this.getY() + 4, 3, 180, 0xFF6D55FF);
|
||||
if (isMousingHoveringDropdown)
|
||||
RenderUtil.drawTriangle(this.getX() + this.getW() - 4, this.getY() + 4, 3, 180, 0x50FFFFFF);
|
||||
} else {
|
||||
RenderUtil.drawRect(this.getX() + this.getW() - 7, this.getY() + 2, this.getX() + this.getW() - 2, this.getY() + this.getH() - 2, 0x45909090);
|
||||
RenderUtil.drawTriangle(this.getX() + this.getW() - 4, this.getY() + 4, 3, -90, 0x75909090);
|
||||
if (isMousingHoveringDropdown)
|
||||
RenderUtil.drawTriangle(this.getX() + this.getW() - 4, this.getY() + 4, 3, -90, 0x50FFFFFF);
|
||||
}
|
||||
RenderUtil.drawBorderedRect(this.getX() + this.getW() - 7, this.getY() + 2, this.getX() + this.getW() - 2, this.getY() + this.getH() - 2, 1.0f, 0x00000000, 0x7506002A);
|
||||
}
|
||||
|
||||
// draw text
|
||||
|
@ -49,10 +57,22 @@ public class ButtonComponent extends HudComponent {
|
|||
return;
|
||||
|
||||
if (button == 0) {
|
||||
// handle clicking the right click button
|
||||
if (this.rightClickListener != null) {
|
||||
// is inside button
|
||||
if (mouseX >= this.getX() + this.getW() - 8 && mouseX <= this.getX() + this.getW() && mouseY >= this.getY() && mouseY <= this.getY() + this.getH()) {
|
||||
this.rightClickListener.onComponentEvent();
|
||||
return; // cancel normal action
|
||||
}
|
||||
}
|
||||
|
||||
// enable / disable normally
|
||||
|
||||
this.enabled = !this.enabled;
|
||||
|
||||
if (this.mouseClickListener != null)
|
||||
this.mouseClickListener.onComponentEvent();
|
||||
|
||||
} else if (button == 1) {
|
||||
if (this.rightClickListener != null)
|
||||
this.rightClickListener.onComponentEvent();
|
||||
|
|
|
@ -15,12 +15,19 @@ public class ColorComponent extends TextComponent {
|
|||
private static final int TEXT_BLOCK_PADDING = 1;
|
||||
private static final int COLOR_SIZE = 7;
|
||||
|
||||
private String customDisplayValue;
|
||||
|
||||
public ColorComponent(String name, int defaultColor) {
|
||||
super(name, String.valueOf(defaultColor), false);
|
||||
this.currentColor = new Color(defaultColor);
|
||||
this.displayValue = "#" + Integer.toHexString(this.currentColor.getRGB()).toLowerCase().substring(2);
|
||||
}
|
||||
|
||||
public ColorComponent(String name, int defaultColor, String customDisplayValue) {
|
||||
this(name, defaultColor);
|
||||
this.customDisplayValue = customDisplayValue;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(int mouseX, int mouseY, float partialTicks) {
|
||||
//super.render(mouseX, mouseY, partialTicks);
|
||||
|
@ -31,7 +38,13 @@ public class ColorComponent extends TextComponent {
|
|||
RenderUtil.drawRect(this.getX(), this.getY(), this.getX() + this.getW(), this.getY() + this.getH(), 0x45303030);
|
||||
RenderUtil.drawRect(this.getX() + BORDER, this.getY() + BORDER, this.getX() + BORDER + COLOR_SIZE, this.getY() + BORDER + COLOR_SIZE, ColorUtil.changeAlpha(this.currentColor.getRGB(), 0xFF));
|
||||
|
||||
final String displayedName = this.focused ? this.displayValue : this.getName();
|
||||
// draw name / display value
|
||||
String displayedName = this.getName();
|
||||
if (this.focused) {
|
||||
displayedName = this.displayValue;
|
||||
} else if (customDisplayValue != null) {
|
||||
displayedName = customDisplayValue;
|
||||
}
|
||||
Minecraft.getMinecraft().fontRenderer.drawString(displayedName, (int) this.getX() + BORDER + COLOR_SIZE + BORDER, (int) this.getY() + BORDER, this.focused ? 0xFFFFFFFF : 0xFFAAAAAA);
|
||||
|
||||
if (this.focused) {
|
||||
|
@ -64,4 +77,12 @@ public class ColorComponent extends TextComponent {
|
|||
public void setCurrentColor(Color currentColor) {
|
||||
this.currentColor = currentColor;
|
||||
}
|
||||
|
||||
public String getCustomDisplayValue() {
|
||||
return customDisplayValue;
|
||||
}
|
||||
|
||||
public void setCustomDisplayValue(String customDisplayValue) {
|
||||
this.customDisplayValue = customDisplayValue;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,309 @@
|
|||
package me.rigamortis.seppuku.impl.gui.hud.component;
|
||||
|
||||
import com.mojang.realmsclient.gui.ChatFormatting;
|
||||
import me.rigamortis.seppuku.Seppuku;
|
||||
import me.rigamortis.seppuku.api.gui.hud.component.ColorComponent;
|
||||
import me.rigamortis.seppuku.api.gui.hud.component.ComponentListener;
|
||||
import me.rigamortis.seppuku.api.gui.hud.component.HudComponent;
|
||||
import me.rigamortis.seppuku.api.gui.hud.component.ResizableHudComponent;
|
||||
import me.rigamortis.seppuku.api.module.Module;
|
||||
import me.rigamortis.seppuku.api.util.ColorUtil;
|
||||
import me.rigamortis.seppuku.api.util.RenderUtil;
|
||||
import me.rigamortis.seppuku.api.value.Value;
|
||||
import me.rigamortis.seppuku.impl.gui.hud.GuiHudEditor;
|
||||
import net.minecraft.client.gui.ScaledResolution;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import org.lwjgl.input.Mouse;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import java.awt.*;
|
||||
|
||||
/**
|
||||
* @author noil
|
||||
*/
|
||||
public final class ColorsComponent extends ResizableHudComponent {
|
||||
|
||||
private int scroll;
|
||||
|
||||
private int totalHeight;
|
||||
|
||||
private final int MAX_WIDTH = 215;
|
||||
private final int SCROLL_WIDTH = 4;
|
||||
private final int BORDER = 2;
|
||||
private final int TEXT_GAP = 1;
|
||||
private final int TITLE_BAR_HEIGHT = mc.fontRenderer.FONT_HEIGHT + 1;
|
||||
|
||||
private ColorComponent currentColorComponent = null;
|
||||
|
||||
public ColorsComponent() {
|
||||
super("Colors", 100, 120);
|
||||
this.setVisible(true);
|
||||
this.setSnappable(false);
|
||||
this.setW(100);
|
||||
this.setH(120);
|
||||
this.setX((mc.displayWidth / 2.0f) - (this.getW() / 2));
|
||||
this.setY((mc.displayHeight / 2.0f) - (this.getH() / 2));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(int mouseX, int mouseY, float partialTicks) {
|
||||
super.render(mouseX, mouseY, partialTicks);
|
||||
|
||||
if (!(mc.currentScreen instanceof GuiHudEditor))
|
||||
return;
|
||||
|
||||
final ScaledResolution sr = new ScaledResolution(mc);
|
||||
|
||||
// Render Y pos offset (make this all modular eventually...)
|
||||
int offsetY = 0;
|
||||
|
||||
// Scrolling
|
||||
this.handleScrolling(mouseX, mouseY);
|
||||
|
||||
// No dragging inside box
|
||||
final boolean insideTitlebar = mouseY <= this.getY() + TITLE_BAR_HEIGHT + BORDER;
|
||||
if (!insideTitlebar) {
|
||||
this.setDragging(false);
|
||||
}
|
||||
|
||||
// Is mouse inside
|
||||
final boolean mouseInside = this.isMouseInside(mouseX, mouseY);
|
||||
|
||||
// clamp max width & height
|
||||
if (this.isResizeDragging()) {
|
||||
if (this.getH() > this.getTotalHeight()) {
|
||||
this.setH(this.getTotalHeight());
|
||||
this.setResizeDragging(false);
|
||||
}
|
||||
|
||||
if (this.getW() > MAX_WIDTH) {
|
||||
this.setW(MAX_WIDTH);
|
||||
}
|
||||
}
|
||||
|
||||
// Background & title
|
||||
RenderUtil.drawRect(this.getX() - 1, this.getY() - 1, this.getX() + this.getW() + 1, this.getY() + this.getH() + 1, 0x99101010);
|
||||
RenderUtil.drawRect(this.getX(), this.getY(), this.getX() + this.getW(), this.getY() + this.getH(), ColorUtil.changeAlpha(0xFF202020, mouseInside ? 0xFF : 0x99));
|
||||
mc.fontRenderer.drawStringWithShadow(this.getName(), this.getX() + BORDER, this.getY() + BORDER, ColorUtil.changeAlpha(0xFFFFFFFF, mouseInside ? 0xFF : 0x99));
|
||||
offsetY += mc.fontRenderer.FONT_HEIGHT + 1;
|
||||
|
||||
// Behind hub
|
||||
RenderUtil.drawRect(this.getX() + BORDER, this.getY() + offsetY + BORDER, this.getX() + this.getW() - SCROLL_WIDTH - BORDER, this.getY() + this.getH() - BORDER, ColorUtil.changeAlpha(0xFF101010, mouseInside ? 0xFF : 0x99));
|
||||
|
||||
// Scrollbar bg
|
||||
RenderUtil.drawRect(this.getX() + this.getW() - SCROLL_WIDTH, this.getY() + offsetY + BORDER, this.getX() + this.getW() - BORDER, this.getY() + this.getH() - BORDER, ColorUtil.changeAlpha(0xFF101010, mouseInside ? 0xFF : 0x99));
|
||||
// Scrollbar highlights
|
||||
if (mouseInside) {
|
||||
if (mouseX >= (this.getX() + this.getW() - SCROLL_WIDTH) && mouseX <= (this.getX() + this.getW() - BORDER)) { // mouse is inside scroll area on x-axis
|
||||
RenderUtil.drawGradientRect(this.getX() + this.getW() - SCROLL_WIDTH, this.getY() + offsetY + BORDER, this.getX() + this.getW() - BORDER, this.getY() + offsetY + 8 + BORDER, 0xFF909090, 0x00101010);
|
||||
RenderUtil.drawGradientRect(this.getX() + this.getW() - SCROLL_WIDTH, this.getY() + this.getH() - 8 - BORDER, this.getX() + this.getW() - BORDER, this.getY() + this.getH() - BORDER, 0x00101010, 0xFF909090);
|
||||
float diffY = this.getY() + TITLE_BAR_HEIGHT + ((this.getH() - TITLE_BAR_HEIGHT) / 2);
|
||||
if (mouseY > diffY) {
|
||||
RenderUtil.drawGradientRect(this.getX() + this.getW() - SCROLL_WIDTH, this.getY() + (this.getH() / 2) + BORDER + BORDER, this.getX() + this.getW() - BORDER, this.getY() + this.getH() - BORDER, 0x00101010, 0x90909090);
|
||||
} else {
|
||||
RenderUtil.drawGradientRect(this.getX() + this.getW() - SCROLL_WIDTH, this.getY() + offsetY + BORDER, this.getX() + this.getW() - BORDER, this.getY() + (this.getH() / 2) + BORDER + BORDER, 0x90909090, 0x00101010);
|
||||
}
|
||||
}
|
||||
}
|
||||
// Scrollbar
|
||||
RenderUtil.drawRect(this.getX() + this.getW() - SCROLL_WIDTH, MathHelper.clamp((this.getY() + offsetY + BORDER) + ((this.getH() * this.scroll) / this.totalHeight), (this.getY() + offsetY + BORDER), (this.getY() + this.getH() - BORDER)), this.getX() + this.getW() - BORDER, MathHelper.clamp((this.getY() + this.getH() - BORDER) - (this.getH() * (this.totalHeight - this.getH() - this.scroll) / this.totalHeight), (this.getY() + offsetY + BORDER), (this.getY() + this.getH() - BORDER)), ColorUtil.changeAlpha(0xFF909090, mouseInside ? 0xFF : 0x99));
|
||||
|
||||
// Begin scissoring and render the component "buttons"
|
||||
GL11.glEnable(GL11.GL_SCISSOR_TEST);
|
||||
RenderUtil.glScissor(this.getX() + BORDER, this.getY() + offsetY + BORDER, this.getX() + this.getW() - BORDER - SCROLL_WIDTH, this.getY() + this.getH() - BORDER, sr);
|
||||
for (HudComponent component : Seppuku.INSTANCE.getHudManager().getComponentList()) {
|
||||
if (component != this && component.getValueList().size() > 0) {
|
||||
for (Value value : component.getValueList()) {
|
||||
if (value.getValue().getClass() != Color.class)
|
||||
continue;
|
||||
|
||||
RenderUtil.drawRect(this.getX() + BORDER + TEXT_GAP, this.getY() + offsetY + BORDER + TEXT_GAP - this.scroll, this.getX() + BORDER + TEXT_GAP + this.getW() - BORDER - SCROLL_WIDTH - BORDER - 2, this.getY() + offsetY + BORDER + TEXT_GAP + mc.fontRenderer.FONT_HEIGHT - this.scroll, 0x45303030);
|
||||
final boolean insideComponent = mouseX >= (this.getX() + BORDER) && mouseX <= (this.getX() + this.getW() - BORDER - SCROLL_WIDTH) && mouseY >= (this.getY() + BORDER + mc.fontRenderer.FONT_HEIGHT + 1 + offsetY - this.scroll - mc.fontRenderer.FONT_HEIGHT + 1) && mouseY <= (this.getY() + BORDER + (mc.fontRenderer.FONT_HEIGHT) + 1 + offsetY - this.scroll);
|
||||
if (insideComponent) {
|
||||
RenderUtil.drawGradientRect(this.getX() + BORDER + TEXT_GAP, this.getY() + offsetY + BORDER + TEXT_GAP - this.scroll, this.getX() + BORDER + TEXT_GAP + this.getW() - BORDER - SCROLL_WIDTH - BORDER - 2, this.getY() + offsetY + BORDER + TEXT_GAP + mc.fontRenderer.FONT_HEIGHT - this.scroll, 0x30909090, 0x00101010);
|
||||
}
|
||||
|
||||
// draw button text
|
||||
final int valueColor = ((Color) value.getValue()).getRGB();
|
||||
mc.fontRenderer.drawStringWithShadow(ChatFormatting.GRAY + component.getName() + ": " + ChatFormatting.RESET + value.getName(), this.getX() + BORDER + TEXT_GAP + 1, this.getY() + offsetY + BORDER + TEXT_GAP - this.scroll, valueColor);
|
||||
|
||||
offsetY += mc.fontRenderer.FONT_HEIGHT + TEXT_GAP;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (Module module : Seppuku.INSTANCE.getModuleManager().getModuleList()) {
|
||||
if (module.getValueList().size() > 0) {
|
||||
for (Value value : module.getValueList()) {
|
||||
if (value.getValue().getClass() != Color.class)
|
||||
continue;
|
||||
|
||||
RenderUtil.drawRect(this.getX() + BORDER + TEXT_GAP, this.getY() + offsetY + BORDER + TEXT_GAP - this.scroll, this.getX() + BORDER + TEXT_GAP + this.getW() - BORDER - SCROLL_WIDTH - BORDER - 2, this.getY() + offsetY + BORDER + TEXT_GAP + mc.fontRenderer.FONT_HEIGHT - this.scroll, 0x45303030);
|
||||
final boolean insideComponent = mouseX >= (this.getX() + BORDER) && mouseX <= (this.getX() + this.getW() - BORDER - SCROLL_WIDTH) && mouseY >= (this.getY() + BORDER + mc.fontRenderer.FONT_HEIGHT + 1 + offsetY - this.scroll - mc.fontRenderer.FONT_HEIGHT + 1) && mouseY <= (this.getY() + BORDER + (mc.fontRenderer.FONT_HEIGHT) + 1 + offsetY - this.scroll);
|
||||
if (insideComponent) {
|
||||
RenderUtil.drawGradientRect(this.getX() + BORDER + TEXT_GAP, this.getY() + offsetY + BORDER + TEXT_GAP - this.scroll, this.getX() + BORDER + TEXT_GAP + this.getW() - BORDER - SCROLL_WIDTH - BORDER - 2, this.getY() + offsetY + BORDER + TEXT_GAP + mc.fontRenderer.FONT_HEIGHT - this.scroll, 0x30909090, 0x00101010);
|
||||
}
|
||||
|
||||
// draw button text
|
||||
final int valueColor = ((Color) value.getValue()).getRGB();
|
||||
mc.fontRenderer.drawStringWithShadow(ChatFormatting.GRAY + module.getDisplayName() + ": " + ChatFormatting.RESET + value.getName(), this.getX() + BORDER + TEXT_GAP + 1, this.getY() + offsetY + BORDER + TEXT_GAP - this.scroll, valueColor);
|
||||
|
||||
offsetY += mc.fontRenderer.FONT_HEIGHT + TEXT_GAP;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (this.currentColorComponent != null) {
|
||||
// draw overlay
|
||||
RenderUtil.drawRect(this.getX() + BORDER, this.getY() + BORDER + mc.fontRenderer.FONT_HEIGHT + 1, this.getX() + this.getW() - BORDER, this.getY() + this.getH() - BORDER, 0xCC101010);
|
||||
|
||||
// draw color
|
||||
RenderUtil.drawRect(this.getX() + (this.getW() / 2) - 16, this.getY() + (this.getH() / 4) - 16, this.getX() + (this.getW() / 2) + 16, this.getY() + (this.getH() / 4) + 16, this.currentColorComponent.getCurrentColor().getRGB());
|
||||
RenderUtil.drawBorderedRect(this.getX() + (this.getW() / 2) - 16, this.getY() + (this.getH() / 4) - 16, this.getX() + (this.getW() / 2) + 16, this.getY() + (this.getH() / 4) + 16, 1.0f, 0x00000000, 0xFFAAAAAA);
|
||||
mc.fontRenderer.drawStringWithShadow(this.currentColorComponent.getName(), this.getX() + (this.getW() / 2) - mc.fontRenderer.getStringWidth(this.currentColorComponent.getName()) / 2.0f, this.getY() + (this.getH() / 4) + 18, 0xFFFFFFFF);
|
||||
|
||||
if (this.getW() > 180) {
|
||||
final String hexColor = "#" + Integer.toHexString(this.currentColorComponent.getCurrentColor().getRGB()).toLowerCase().substring(2);
|
||||
final String rgbColor = String.format("r%s g%s b%s", this.currentColorComponent.getCurrentColor().getRed(), this.currentColorComponent.getCurrentColor().getGreen(), this.currentColorComponent.getCurrentColor().getBlue());
|
||||
mc.fontRenderer.drawStringWithShadow(hexColor, this.getX() + (this.getW() / 2) + 18, this.getY() + (this.getH() / 4) - 18 + mc.fontRenderer.FONT_HEIGHT, 0xFFAAAAAA);
|
||||
mc.fontRenderer.drawStringWithShadow(rgbColor, this.getX() + (this.getW() / 2) + 18, this.getY() + (this.getH() / 4) - 18 + (mc.fontRenderer.FONT_HEIGHT * 2), 0xFFAAAAAA);
|
||||
}
|
||||
}
|
||||
|
||||
// end scissoring
|
||||
GL11.glDisable(GL11.GL_SCISSOR_TEST);
|
||||
|
||||
// render current color component
|
||||
if (this.currentColorComponent != null) {
|
||||
this.currentColorComponent.setX(this.getX() + 20);
|
||||
this.currentColorComponent.setY(this.getY() + (this.getH() / 2));
|
||||
this.currentColorComponent.setW(this.getW() - 40);
|
||||
this.currentColorComponent.setH(10);
|
||||
|
||||
// draw bg
|
||||
RenderUtil.drawRect(this.currentColorComponent.getX(), this.currentColorComponent.getY(), this.currentColorComponent.getX() + this.currentColorComponent.getW(), this.currentColorComponent.getY() + this.currentColorComponent.getH(), 0xFF101010);
|
||||
this.currentColorComponent.render(mouseX, mouseY, partialTicks);
|
||||
}
|
||||
|
||||
// figures up a "total height (pixels)" of the inside of the list area (for calculating scroll height)
|
||||
this.totalHeight = BORDER + TEXT_GAP + offsetY + BORDER;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseRelease(int mouseX, int mouseY, int button) {
|
||||
if (this.currentColorComponent != null) {
|
||||
if (this.currentColorComponent.isMouseInside(mouseX, mouseY))
|
||||
this.currentColorComponent.mouseRelease(mouseX, mouseY, button);
|
||||
else if (!this.isResizeDragging()) {
|
||||
this.currentColorComponent = null;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
super.mouseRelease(mouseX, mouseY, button);
|
||||
|
||||
final boolean inside = this.isMouseInside(mouseX, mouseY);
|
||||
final boolean insideTitlebar = mouseY <= this.getY() + BORDER + TITLE_BAR_HEIGHT;
|
||||
|
||||
if (inside && button == 0 && !insideTitlebar) {
|
||||
int offsetY = BORDER;
|
||||
|
||||
for (HudComponent component : Seppuku.INSTANCE.getHudManager().getComponentList()) {
|
||||
if (component != this && component.getValueList().size() > 0) {
|
||||
for (Value value : component.getValueList()) {
|
||||
if (value.getValue().getClass() != Color.class)
|
||||
continue;
|
||||
|
||||
final boolean insideComponent = mouseX >= (this.getX() + BORDER) && mouseX <= (this.getX() + this.getW() - BORDER - SCROLL_WIDTH) && mouseY >= (this.getY() + BORDER + mc.fontRenderer.FONT_HEIGHT + 1 + offsetY - this.scroll) && mouseY <= (this.getY() + BORDER + (mc.fontRenderer.FONT_HEIGHT * 2) + 1 + offsetY - this.scroll);
|
||||
if (insideComponent && this.currentColorComponent == null) {
|
||||
ColorComponent colorComponent = new ColorComponent(component.getName() + " " + value.getName(), ((Color) value.getValue()).getRGB(), ChatFormatting.WHITE + "Click to edit...");
|
||||
colorComponent.returnListener = new ComponentListener() {
|
||||
@Override
|
||||
public void onComponentEvent() {
|
||||
value.setValue(colorComponent.getCurrentColor());
|
||||
}
|
||||
};
|
||||
this.currentColorComponent = colorComponent;
|
||||
}
|
||||
|
||||
offsetY += mc.fontRenderer.FONT_HEIGHT + TEXT_GAP;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (Module module : Seppuku.INSTANCE.getModuleManager().getModuleList()) {
|
||||
if (module.getValueList().size() > 0) {
|
||||
for (Value value : module.getValueList()) {
|
||||
if (value.getValue().getClass() != Color.class)
|
||||
continue;
|
||||
|
||||
final boolean insideComponent = mouseX >= (this.getX() + BORDER) && mouseX <= (this.getX() + this.getW() - BORDER - SCROLL_WIDTH) && mouseY >= (this.getY() + BORDER + mc.fontRenderer.FONT_HEIGHT + 1 + offsetY - this.scroll) && mouseY <= (this.getY() + BORDER + (mc.fontRenderer.FONT_HEIGHT * 2) + 1 + offsetY - this.scroll);
|
||||
if (insideComponent && this.currentColorComponent == null) {
|
||||
ColorComponent colorComponent = new ColorComponent(module.getDisplayName() + " " + value.getName(), ((Color) value.getValue()).getRGB(), ChatFormatting.WHITE + "Click to edit...");
|
||||
colorComponent.returnListener = new ComponentListener() {
|
||||
@Override
|
||||
public void onComponentEvent() {
|
||||
value.setValue(colorComponent.getCurrentColor());
|
||||
Seppuku.INSTANCE.getConfigManager().saveAll();
|
||||
}
|
||||
};
|
||||
this.currentColorComponent = colorComponent;
|
||||
}
|
||||
|
||||
offsetY += mc.fontRenderer.FONT_HEIGHT + TEXT_GAP;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (mouseX >= (this.getX() + this.getW() - SCROLL_WIDTH) && mouseX <= (this.getX() + this.getW() - BORDER)) { // mouse is inside scroll area on x-axis
|
||||
float diffY = this.getY() + TITLE_BAR_HEIGHT + ((this.getH() - TITLE_BAR_HEIGHT) / 2);
|
||||
if (mouseY > diffY) {
|
||||
scroll += 10;
|
||||
} else {
|
||||
scroll -= 10;
|
||||
}
|
||||
this.clampScroll();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseClickMove(int mouseX, int mouseY, int button) {
|
||||
super.mouseClickMove(mouseX, mouseY, button);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void keyTyped(char typedChar, int keyCode) {
|
||||
super.keyTyped(typedChar, keyCode);
|
||||
|
||||
if (this.currentColorComponent != null)
|
||||
this.currentColorComponent.keyTyped(typedChar, keyCode);
|
||||
}
|
||||
|
||||
private void clampScroll() {
|
||||
if (this.scroll < 0) {
|
||||
this.scroll = 0;
|
||||
}
|
||||
if (this.scroll > this.totalHeight - this.getH()) {
|
||||
this.scroll = this.totalHeight - (int) this.getH();
|
||||
}
|
||||
}
|
||||
|
||||
private void handleScrolling(int mouseX, int mouseY) {
|
||||
if (this.isMouseInside(mouseX, mouseY) && Mouse.hasWheel()) {
|
||||
this.scroll += -(Mouse.getDWheel() / 5);
|
||||
this.clampScroll();
|
||||
}
|
||||
}
|
||||
|
||||
public int getScroll() {
|
||||
return scroll;
|
||||
}
|
||||
|
||||
public void setScroll(int scroll) {
|
||||
this.scroll = scroll;
|
||||
}
|
||||
|
||||
public int getTotalHeight() {
|
||||
return totalHeight;
|
||||
}
|
||||
}
|
|
@ -439,6 +439,7 @@ public final class ModuleListComponent extends ResizableHudComponent {
|
|||
@Override
|
||||
public void onComponentEvent() {
|
||||
module.setColor(colorComponent.getCurrentColor().getRGB());
|
||||
Seppuku.INSTANCE.getConfigManager().saveAll();
|
||||
}
|
||||
};
|
||||
components.add(colorComponent);
|
||||
|
|
|
@ -103,6 +103,7 @@ public final class HudManager {
|
|||
add(new EntityListComponent());
|
||||
add(new TpsGraphComponent());
|
||||
add(new MovementGraphComponent());
|
||||
add(new ColorsComponent());
|
||||
|
||||
TrayComponent trayComponent = new TrayComponent();
|
||||
trayComponent.setAnchorPoint(BOTTOM_CENTER);
|
||||
|
|
Loading…
Reference in New Issue