kami-blue/src/main/java/me/zeroeightsix/kami/module/modules/gui/ActiveModules.java

103 lines
5.0 KiB
Java
Raw Normal View History

2020-03-29 23:22:35 +00:00
package me.zeroeightsix.kami.module.modules.gui;
import me.zeroeightsix.kami.KamiMod;
import me.zeroeightsix.kami.module.Module;
import me.zeroeightsix.kami.setting.Setting;
import me.zeroeightsix.kami.setting.Settings;
import me.zeroeightsix.kami.util.ColourTextFormatting;
import net.minecraft.util.text.TextFormatting;
import java.awt.*;
import static me.zeroeightsix.kami.command.Command.sendDisableMessage;
import static me.zeroeightsix.kami.util.ColourConverter.rgbToInt;
import static me.zeroeightsix.kami.util.ColourTextFormatting.colourEnumMap;
import static me.zeroeightsix.kami.util.ColourTextFormatting.toTextMap;
import static me.zeroeightsix.kami.util.InfoCalculator.isNumberEven;
import static me.zeroeightsix.kami.util.InfoCalculator.reverseNumber;
/**
* @author S-B99
* Created by S-B99 on 20/03/20
* Updated by S-B99 on 25/03/20
*/
2020-03-31 17:43:33 +00:00
@Module.Info(name = "ActiveModules", category = Module.Category.CLIENT, description = "Configures ActiveModules Colour", showOnArray = Module.ShowOnArray.OFF)
2020-03-29 23:22:35 +00:00
public class ActiveModules extends Module {
private Setting<Boolean> forgeHax = register(Settings.b("ForgeHax", false));
public Setting<Mode> mode = register(Settings.e("Mode", Mode.RAINBOW));
private Setting<Integer> rainbowSpeed = register(Settings.integerBuilder().withName("Speed R").withValue(30).withMinimum(0).withMaximum(100).withVisibility(v -> mode.getValue().equals(Mode.RAINBOW)).build());
public Setting<Integer> saturationR = register(Settings.integerBuilder().withName("Saturation R").withValue(117).withMinimum(0).withMaximum(255).withVisibility(v -> mode.getValue().equals(Mode.RAINBOW)).build());
public Setting<Integer> brightnessR = register(Settings.integerBuilder().withName("Brightness R").withValue(255).withMinimum(0).withMaximum(255).withVisibility(v -> mode.getValue().equals(Mode.RAINBOW)).build());
public Setting<Integer> hueC = register(Settings.integerBuilder().withName("Hue C").withValue(178).withMinimum(0).withMaximum(255).withVisibility(v -> mode.getValue().equals(Mode.CUSTOM)).build());
public Setting<Integer> saturationC = register(Settings.integerBuilder().withName("Saturation C").withValue(156).withMinimum(0).withMaximum(255).withVisibility(v -> mode.getValue().equals(Mode.CUSTOM)).build());
public Setting<Integer> brightnessC = register(Settings.integerBuilder().withName("Brightness C").withValue(255).withMinimum(0).withMaximum(255).withVisibility(v -> mode.getValue().equals(Mode.CUSTOM)).build());
private Setting<Boolean> alternate = register(Settings.booleanBuilder().withName("Alternate").withValue(true).withVisibility(v -> mode.getValue().equals(Mode.INFO_OVERLAY)).build());
public static int getCategoryColour(Module module) {
switch (module.getCategory()) {
case CHAT: return rgbToInt(129, 171, 174);
case COMBAT: return rgbToInt(162, 25, 14);
case EXPERIMENTAL: return rgbToInt(175, 175, 31);
2020-03-31 17:43:33 +00:00
case CLIENT: return rgbToInt(158, 159, 197);
2020-03-29 23:22:35 +00:00
case RENDER: return rgbToInt(51, 197, 130);
case PLAYER: return rgbToInt(99, 202, 191);
case MOVEMENT: return rgbToInt(7, 77, 227);
case MISC: return rgbToInt(247, 215, 59);
case UTILS: return rgbToInt(46, 212, 77);
default: return rgbToInt(139, 100, 255);
}
}
public int getInfoColour(int position) {
if (!alternate.getValue()) return settingsToColour(false);
else {
if (isNumberEven(position)) {
return settingsToColour(true);
} else {
return settingsToColour(false);
}
}
}
private int settingsToColour(boolean isOne) {
Color localColor;
switch (infoGetSetting(isOne)) {
case UNDERLINE:
case ITALIC:
case RESET:
case STRIKETHROUGH:
case OBFUSCATED:
case BOLD:
localColor = colourEnumMap.get(TextFormatting.WHITE).colorLocal; break;
default:
localColor = colourEnumMap.get(infoGetSetting(isOne)).colorLocal;
}
return rgbToInt(localColor.getRed(), localColor.getGreen(), localColor.getBlue());
}
private TextFormatting infoGetSetting(boolean isOne) {
InfoOverlay infoOverlay = (InfoOverlay) KamiMod.MODULE_MANAGER.getModule(InfoOverlay.class);
if (isOne) return setToText(infoOverlay.firstColour.getValue());
else return setToText(infoOverlay.secondColour.getValue());
}
private TextFormatting setToText(ColourTextFormatting.ColourCode colourCode) {
return toTextMap.get(colourCode);
}
public int getRainbowSpeed() {
int rSpeed = reverseNumber(rainbowSpeed.getValue(), 1, 100);
if (rSpeed == 0) return 1; // can't divide by 0
else return rSpeed;
}
public String fHax() {
if (forgeHax.getValue()) return ">";
else return "";
}
public enum Mode { RAINBOW, CUSTOM, CATEGORY, INFO_OVERLAY }
public void onDisable() { sendDisableMessage(this.getClass()); }
2020-03-29 23:22:35 +00:00
}