/*
* Copyright (C) 2022 NotEnoughUpdates contributors
*
* This file is part of NotEnoughUpdates.
*
* NotEnoughUpdates is free software: you can redistribute it
* and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation, either
* version 3 of the License, or (at your option) any later version.
*
* NotEnoughUpdates is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with NotEnoughUpdates. If not, see <https://www.gnu.org/licenses/>.
*/
package io.github.moulberry.notenoughupdates.options.separatesections;
import com.google.gson.annotations.Expose;
import io.github.moulberry.moulconfig.annotations.ConfigAccordionId;
import io.github.moulberry.moulconfig.annotations.ConfigEditorAccordion;
import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean;
import io.github.moulberry.moulconfig.annotations.ConfigEditorButton;
import io.github.moulberry.moulconfig.annotations.ConfigEditorColour;
import io.github.moulberry.moulconfig.annotations.ConfigEditorDraggableList;
import io.github.moulberry.moulconfig.annotations.ConfigEditorDropdown;
import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider;
import io.github.moulberry.moulconfig.annotations.ConfigOption;
import io.github.moulberry.moulconfig.observer.Property;
import io.github.moulberry.notenoughupdates.core.config.Position;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Mining {
@ConfigOption(
name = "Waypoints",
desc = ""
)
@ConfigEditorAccordion(id = 0)
public boolean waypointsAccordion = false;
@Expose
@ConfigOption(
name = "Mines Waypoints",
desc = "Show waypoints in the Dwarven mines to the various locations\n" +
"Use \"Commissions Only\" to only show active commission locations"
)
@ConfigEditorDropdown(
values = {"Hide", "Commissions Only", "Always"}
)
@ConfigAccordionId(id = 0)
public int locWaypoints = 1;
@Expose
@ConfigOption(
name = "Hide waypoints when at Location",
desc = "Hides the Commission Waypoints if you are already at the location of the waypoint.\n" +
"Only active if Waypoints are set to \"Commissions Only\""
)
@ConfigEditorBoolean
@ConfigAccordionId(id = 0)
public boolean hideWaypointIfAtLocation = true;
@Expose
@ConfigOption(
name = "Emissary Waypoints",
desc = "Show waypoints in the Dwarven mines to emissaries\n" +
"Use \"Commission End\" to only show after finishing commissions"
)
@ConfigEditorDropdown(
values = {"Hide", "Commission End", "Always"}
)
@ConfigAccordionId(id = 0)
public int emissaryWaypoints = 1;
@Expose
@ConfigOption(
name = "Enable Powder Ghast Waypoints",
desc = "Shows a waypoint at the location of the Powder Ghast"
)
@ConfigEditorBoolean
@ConfigAccordionId(id = 0)
public boolean powderGhastWaypoint = true;
@Expose
@ConfigOption(
name = "Enable Fallen Star Waypoints",
desc = "Shows a waypoint at the location of the Fallen Star"
)
@ConfigEditorBoolean
@ConfigAccordionId(id = 0)
public boolean fallenStarWaypoint = true;
@Expose
@ConfigOption(
name = "Glacite Tunnel Waypoints",
desc = "Show waypoints in the Glacite Tunnels to the various gemstone locations, when you have a commission for them."
)
@ConfigEditorDropdown
@ConfigAccordionId(id = 0)
public @NotNull Property<GlaciteTunnelWaypointBehaviour> tunnelWaypoints = Property.of(GlaciteTunnelWaypointBehaviour.SHOW_ALL);
@Expose
@ConfigOption(
name = "Always show Glacite Tunnel Waypoints",
desc = "Always show the Gemstone waypoints in the tunnels, instead of only for your current commissions."
)
@ConfigEditorBoolean
@ConfigAccordionId(id = 0)
public boolean alwaysShowTunnelWaypoints = false;
public enum GlaciteTunnelWaypointBehaviour {
SHOW_ALL("Show all"),
SHOW_NEAREST("Show nearest"),
NONE("Show none"),
;
String text;
GlaciteTunnelWaypointBehaviour(String text) {
this.text = text;
}
@Override
public String toString() {
return text;
}
}
@ConfigOption(
name = "Drill Fuel Bar",
desc = ""
)
@ConfigEditorAccordion(id = 1)
public boolean drillAccordion = false;
@Expose
@ConfigOption(
name = "Drill Fuel Bar",
desc = "Show a fancy drill fuel bar when holding a drill in mining areas"
)
@ConfigEditorBoolean
@ConfigAccordionId(id = 1)
public boolean drillFuelBar = true;
@Expose
@ConfigOption(
name = "Fuel Bar Width",
desc = "Change the width of the drill fuel bar"
)
@ConfigEditorSlider(
minValue = 50,
maxValue = 350,
minStep = 10
)
@ConfigAccordionId(id = 1)
public int drillFuelBarWidth = 180;
@Expose
public Position drillFuelBarPosition = new Position(0,