summaryrefslogtreecommitdiff
path: root/src/main/java/com/arslaancodes/arslaansmagichax/modules/impl/Fullbright.java
blob: 2ccde1989074a24892321aa8f0c95e4eee5751fe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package com.arslaancodes.arslaansmagichax.modules.impl;

import com.arslaancodes.arslaansmagichax.modules.Category;
import com.arslaancodes.arslaansmagichax.modules.Module;
import com.arslaancodes.arslaansmagichax.modules.settings.ModeSetting;
import java.util.Objects;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.world.effect.MobEffectInstance;
import net.minecraft.world.effect.MobEffects;

public class Fullbright extends Module {
    public ModeSetting mode = new ModeSetting("Mode", "Gamma", "Effect", "Gamma", "Effect + Gamma", "Break AO Renderer");
    private double previousGamma = 1.0;
    private boolean setPreviousGamma = false;
    private String lastMode = ""; // track previous mode

    public Fullbright() {
        super("Fullbright", "Brightens up your world!", -1, Category.RENDER);
        addSetting(mode);
        lastMode = mode.getMode(); // initialize
    }

    @Override
    protected void onEnable() {
        if (mc.options == null) return;
        applyMode(mode.getMode());

        if (mc.levelExtractor != null) {
            mc.levelExtractor.allChanged();
        }
    }

    @Override
    public void tick() {
        if (!this.isEnabled() || mc.player == null) return;

        String currentMode = mode.getMode();
        if (!Objects.equals(currentMode, lastMode)) {
            applyMode(currentMode);

            if (mc.levelExtractor != null) {
                mc.levelExtractor.allChanged();
            }

            lastMode = currentMode;
        }

        if (Objects.equals(currentMode, "Effect")) {
            mc.player.addEffect(new MobEffectInstance(BuiltInRegistries.MOB_EFFECT.wrapAsHolder(MobEffects.NIGHT_VISION.value()), 1, 255));
        } else if (Objects.equals(currentMode, "Effect + Gamma")) {
            mc.player.addEffect(new MobEffectInstance(BuiltInRegistries.MOB_EFFECT.wrapAsHolder(MobEffects.NIGHT_VISION.value()), 1, 255));
        }
    }

    private void applyMode(String modeName) {
        if (Objects.equals(modeName, "Gamma")) {
            if (!setPreviousGamma) previousGamma = mc.options.gamma().get();
            setPreviousGamma = true;
            mc.options.gamma().set(1000.0);
        } else if (Objects.equals(modeName, "Effect + Gamma")) {
            if (!setPreviousGamma) previousGamma = mc.options.gamma().get();
            setPreviousGamma = true;
            mc.options.gamma().set(1000.0);
        } else if (Objects.equals(modeName, "Effect")) {
            mc.options.gamma().set(previousGamma);
            setPreviousGamma = false;
        }
    }

    @Override
    protected void onDisable() {
        if (mc.player == null) return;

        if (mc.player.hasEffect(BuiltInRegistries.MOB_EFFECT.wrapAsHolder(MobEffects.NIGHT_VISION.value()))) {
            mc.player.removeEffect(BuiltInRegistries.MOB_EFFECT.wrapAsHolder(MobEffects.NIGHT_VISION.value()));
        }

        mc.options.gamma().set(previousGamma);

        if (mc.levelExtractor != null) {
            mc.levelExtractor.allChanged();
        }
    }
}