mirror of
https://github.com/seppukudevelopment/seppuku
synced 2025-03-04 11:47:31 +00:00
Added CarouselComponent
This commit is contained in:
parent
8884cfed2d
commit
90ec06060b
@ -0,0 +1,101 @@
|
|||||||
|
package me.rigamortis.seppuku.api.gui.hud.component;
|
||||||
|
|
||||||
|
import me.rigamortis.seppuku.api.util.RenderUtil;
|
||||||
|
import me.rigamortis.seppuku.api.value.Value;
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author noil
|
||||||
|
*/
|
||||||
|
public final class CarouselComponent extends HudComponent {
|
||||||
|
|
||||||
|
private Value value;
|
||||||
|
|
||||||
|
public String displayValue;
|
||||||
|
public boolean focused;
|
||||||
|
|
||||||
|
public CarouselComponent(String name, Value value) {
|
||||||
|
super(name);
|
||||||
|
|
||||||
|
this.value = value;
|
||||||
|
this.displayValue = value.getValue().toString();
|
||||||
|
this.focused = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void render(int mouseX, int mouseY, float partialTicks) {
|
||||||
|
super.render(mouseX, mouseY, partialTicks);
|
||||||
|
|
||||||
|
if (isMouseInside(mouseX, mouseY))
|
||||||
|
RenderUtil.drawGradientRect(this.getX(), this.getY(), this.getX() + this.getW(), this.getY() + this.getH(), 0x30909090, 0x00101010);
|
||||||
|
|
||||||
|
RenderUtil.drawRect(this.getX(), this.getY(), this.getX() + this.getW(), this.getY() + this.getH(), 0x45303030);
|
||||||
|
|
||||||
|
final String displayValueText = this.getName() + ": " + this.displayValue;
|
||||||
|
Minecraft.getMinecraft().fontRenderer.drawString(displayValueText, (int) this.getX() + 1, (int) this.getY() + 1, this.focused ? 0xFFFFFFFF : 0xFFAAAAAA);
|
||||||
|
|
||||||
|
RenderUtil.drawRect(this.getX() + this.getW() - 18, this.getY(), this.getX() + this.getW(), this.getY() + this.getH(), 0xFF101010);
|
||||||
|
RenderUtil.drawTriangle(this.getX() + this.getW() - 14, this.getY() + 4, 3, -90, this.focused ? 0x75FFFFFF : 0x75909090);
|
||||||
|
RenderUtil.drawTriangle(this.getX() + this.getW() - 4, this.getY() + 4, 3, 90, this.focused ? 0x75FFFFFF : 0x75909090);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void mouseRelease(int mouseX, int mouseY, int button) {
|
||||||
|
super.mouseRelease(mouseX, mouseY, button);
|
||||||
|
|
||||||
|
if (this.isMouseInside(mouseX, mouseY) && button == 0) {
|
||||||
|
this.focus();
|
||||||
|
|
||||||
|
this.onLeftButtonPress(mouseX);
|
||||||
|
this.onRightButtonPress(mouseX);
|
||||||
|
|
||||||
|
this.displayValue = this.value.getValue().toString().toLowerCase();
|
||||||
|
} else {
|
||||||
|
this.focused = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected boolean onLeftButtonPress(int mouseX) {
|
||||||
|
if (mouseX >= this.getX() + this.getW() - 18 && mouseX <= this.getX() + this.getW() - 10) {
|
||||||
|
this.declineOption();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected boolean onRightButtonPress(int mouseX) {
|
||||||
|
if (mouseX >= this.getX() + this.getW() - 8 && mouseX <= this.getX() + this.getW()) {
|
||||||
|
this.raiseOption();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void focus() {
|
||||||
|
this.focused = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void raiseOption() {
|
||||||
|
final Enum[] options = ((Enum) this.value.getValue()).getClass().getEnumConstants();
|
||||||
|
for (int index = 0; index < options.length; index++) {
|
||||||
|
if (options[index].name().equalsIgnoreCase(value.getValue().toString())) {
|
||||||
|
index++;
|
||||||
|
if (index > options.length - 1)
|
||||||
|
index = 0;
|
||||||
|
value.setEnumValue(options[index].toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void declineOption() {
|
||||||
|
final Enum[] options = ((Enum) this.value.getValue()).getClass().getEnumConstants();
|
||||||
|
for (int index = 0; index < options.length; index++) {
|
||||||
|
if (options[index].name().equalsIgnoreCase(value.getValue().toString())) {
|
||||||
|
index--;
|
||||||
|
if (index < 0)
|
||||||
|
index = options.length - 1;
|
||||||
|
value.setEnumValue(options[index].toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -227,11 +227,11 @@ public class TextComponent extends HudComponent {
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface TextComponentListener {
|
|
||||||
void onKeyTyped(int keyCode);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void focus() {
|
public void focus() {
|
||||||
this.focused = true;
|
this.focused = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface TextComponentListener {
|
||||||
|
void onKeyTyped(int keyCode);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -70,13 +70,17 @@ public class Value<T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setEnumValue(String value) {
|
public void setEnumValue(String value) {
|
||||||
for (Enum e : ((Enum) this.value).getClass().getEnumConstants()) {
|
for (Enum<?> e : ((Enum<?>) this.value).getClass().getEnumConstants()) {
|
||||||
if (e.name().equalsIgnoreCase(value)) {
|
if (e.name().equalsIgnoreCase(value)) {
|
||||||
this.value = (T) e;
|
this.value = (T) e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getEnumReplacedName() {
|
||||||
|
return Character.toString(this.getName().charAt(0)) + this.getName().toLowerCase().replaceFirst(Character.toString(this.getName().charAt(0)).toLowerCase(), "");
|
||||||
|
}
|
||||||
|
|
||||||
public T getMin() {
|
public T getMin() {
|
||||||
return min;
|
return min;
|
||||||
}
|
}
|
||||||
|
@ -548,15 +548,15 @@ public final class ModuleListComponent extends ResizableHudComponent {
|
|||||||
this.addComponentToButtons(sliderComponent);
|
this.addComponentToButtons(sliderComponent);
|
||||||
} else if (value.getValue() instanceof Enum) {
|
} else if (value.getValue() instanceof Enum) {
|
||||||
final Enum val = (Enum) value.getValue();
|
final Enum val = (Enum) value.getValue();
|
||||||
final StringBuilder options = new StringBuilder();
|
|
||||||
final int size = val.getClass().getEnumConstants().length;
|
final int size = val.getClass().getEnumConstants().length;
|
||||||
|
final StringBuilder options = new StringBuilder();
|
||||||
|
|
||||||
for (int i = 0; i < size; i++) {
|
for (int i = 0; i < size; i++) {
|
||||||
final Enum option = val.getClass().getEnumConstants()[i];
|
final Enum option = val.getClass().getEnumConstants()[i];
|
||||||
options.append(option.name().toLowerCase()).append((i == size - 1) ? "" : ", ");
|
options.append(option.name().toLowerCase()).append((i == size - 1) ? "" : ", ");
|
||||||
}
|
}
|
||||||
|
|
||||||
TextComponent valueText = new TextComponent(value.getName(), value.getValue().toString().toLowerCase(), false);
|
/*TextComponent valueText = new TextComponent(value.getName(), value.getValue().toString().toLowerCase(), false);
|
||||||
valueText.setTooltipText(value.getDesc() + " " + ChatFormatting.GRAY + "(" + options.toString() + ")");
|
valueText.setTooltipText(value.getDesc() + " " + ChatFormatting.GRAY + "(" + options.toString() + ")");
|
||||||
valueText.returnListener = new ComponentListener() {
|
valueText.returnListener = new ComponentListener() {
|
||||||
@Override
|
@Override
|
||||||
@ -570,7 +570,12 @@ public final class ModuleListComponent extends ResizableHudComponent {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
components.add(valueText);
|
components.add(valueText);
|
||||||
this.addComponentToButtons(valueText);
|
this.addComponentToButtons(valueText);*/
|
||||||
|
|
||||||
|
CarouselComponent carouselComponent = new CarouselComponent(value.getName(), value);
|
||||||
|
carouselComponent.setTooltipText(value.getDesc() + " " + ChatFormatting.GRAY + "(" + options.toString() + ")");
|
||||||
|
components.add(carouselComponent);
|
||||||
|
this.addComponentToButtons(carouselComponent);
|
||||||
} else if (value.getValue() instanceof String) {
|
} else if (value.getValue() instanceof String) {
|
||||||
TextComponent valueText = new TextComponent(value.getName(), value.getValue().toString().toLowerCase(), false);
|
TextComponent valueText = new TextComponent(value.getName(), value.getValue().toString().toLowerCase(), false);
|
||||||
valueText.setTooltipText(value.getDesc());
|
valueText.setTooltipText(value.getDesc());
|
||||||
|
@ -38,6 +38,9 @@ public final class VelocityModule extends Module {
|
|||||||
@Listener
|
@Listener
|
||||||
public void receivePacket(EventReceivePacket event) {
|
public void receivePacket(EventReceivePacket event) {
|
||||||
if (event.getStage() == EventStageable.EventStage.PRE) {
|
if (event.getStage() == EventStageable.EventStage.PRE) {
|
||||||
|
if (mc.player == null || mc.world == null)
|
||||||
|
return;
|
||||||
|
|
||||||
if (event.getPacket() instanceof SPacketEntityStatus && this.bobbers.getValue()) {
|
if (event.getPacket() instanceof SPacketEntityStatus && this.bobbers.getValue()) {
|
||||||
final SPacketEntityStatus packet = (SPacketEntityStatus) event.getPacket();
|
final SPacketEntityStatus packet = (SPacketEntityStatus) event.getPacket();
|
||||||
if (packet.getOpCode() == 31) {
|
if (packet.getOpCode() == 31) {
|
||||||
|
Loading…
Reference in New Issue
Block a user