/* * 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 . */ 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.ConfigEditorDraggableList; import io.github.moulberry.moulconfig.annotations.ConfigEditorDropdown; import io.github.moulberry.moulconfig.annotations.ConfigEditorInfoText; import io.github.moulberry.moulconfig.annotations.ConfigEditorKeybind; import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; import io.github.moulberry.moulconfig.annotations.ConfigOption; import io.github.moulberry.notenoughupdates.core.config.Position; import org.lwjgl.input.Keyboard; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import static io.github.moulberry.notenoughupdates.overlays.FarmingSkillOverlay.CPS_WINDOW_SIZE; public class SkillOverlays { @ConfigOption( name = "Skill Overlay info", desc = "For the overlays to show you need a \u00A7bmathematical hoe\u00A77 or an axe with \u00A7bcultivating\u00A77 " + "enchant for farming, a pickaxe with \u00A7bcompact\u00A77 for mining or a rod with \u00A7bexpertise\u00A77" ) @ConfigEditorInfoText() public boolean skillInfo = false; @ConfigOption( name = "Farming", desc = "" ) @ConfigEditorAccordion(id = 0) public boolean farmingAccordion = false; @Expose @ConfigOption( name = "Enable Farming Overlay", desc = "Show an overlay while farming with useful information" ) @ConfigEditorBoolean @ConfigAccordionId(id = 0) public boolean farmingOverlay = true; @Expose @ConfigOption( name = "Farming Text", desc = "\u00a7eDrag text to change the appearance of the overlay\n" + "\u00a7rHold a mathematical hoe or use an axe with cultivating enchantment while gaining farming xp to show the overlay" ) @ConfigEditorDraggableList( exampleText = { "\u00a7bCounter: \u00a7e37,547,860", "\u00a7bCrops/s: \u00a7e732", "\u00a7bFarming: \u00a7e12\u00a77 [\u00a7e|||||||||||||||||\u00a78||||||||\u00a77] \u00a7e67%", "\u00a7bCurrent XP: \u00a7e6,734", "\u00a7bRemaining XP: \u00a7e3,265", "\u00a7bXP/h: \u00a7e238,129", "\u00a7bYaw: \u00a7e68.25\u00a7l\u1D52", "\u00a7bETA: \u00a7e13h12m", "\u00a7bPitch: \u00a7e69.42\u00a7l\u1D52", "\u00a7bCultivating: \u00a7e10,137,945/20,000,000", "\u00a7bCoins/m \u00a7e57,432", "\u00a7bContest Estimate \u00a7e342,784", } ) @ConfigAccordionId(id = 0) public List farmingText = new ArrayList<>(Arrays.asList(0, 9, 10, 1, 2, 3, 4, 5, 7, 6, 11)); @Expose @ConfigOption( name = "Use BZ Price For Coins/m", desc = "Uses the bazaar price instead of NPC price for coins/m" ) @ConfigEditorBoolean @ConfigAccordionId(id = 0) public boolean useBZPrice = true; @Expose @ConfigOption( name = "Pause Timer", desc = "How many seconds does it wait before pausing the XP/h timer" ) @ConfigAccordionId(id = 0) @ConfigEditorSlider( minValue = 1, maxValue = 20, minStep = 1 ) public int farmingPauseTimer = 3; @Expose @ConfigOption( name = "Crop rate time frame", desc = "Defines the duration in seconds over which the average crop yield is calculated" ) @ConfigAccordionId(id = 0) @ConfigEditorSlider( minValue = 1, maxValue = CPS_WINDOW_SIZE - 2, minStep = 1 ) public int farmingCropsPerSecondTimeFrame = 5; @Expose @ConfigOption( name = "Crop rate unit", desc = "Choose the unit for displaying the crop rate" ) @ConfigAccordionId(id = 0) @ConfigEditorDropdown( values = {"/s", "/m", "/h"} ) public int farmingCropRateUnit = 0; @Expose @ConfigOption( name = "Coin rate unit", desc = "Choose the unit for displaying the coin rate" ) @ConfigAccordionId(id = 0) @ConfigEditorDropdown( values = {"/s", "/m", "/h"} ) public int farmingCoinRateUnit = 0; @Expose @ConfigOption( name = "Reset crop rate", desc = "How many seconds does it wait before resetting the crop rate values when inactive" ) @ConfigAccordionId(id = 0) @ConfigEditorSlider( minValue = 1, maxValue = CPS_WINDOW_SIZE - 2, minStep = 1 ) public int farmingResetCPS = 5; @Expose public Position farmingPosition = new Position(10, 200); @Expose @ConfigOption( name = "Farming Style", desc = "Change the style of the Farming overlay" ) @ConfigEditorDropdown( values = {"Background", "No Shadow", "Shadow", "Full Shadow"} ) @ConfigAccordionId(id = 0) public int farmingStyle = 0; @ConfigOption( name = "Mining", desc = "" ) @ConfigEditorAccordion(id = 1) public boolean miningAccordion = false; @Expose @ConfigOption( name = "Enable Mining Overlay", desc = "Show an overlay while Mining with useful information" ) @ConfigEditorBoolean @ConfigAccordionId(id = 1) public boolean miningSkillOverlay = true; @Expose @ConfigOption( name = "Mining Text", desc = "\u00a7eDrag text to change the appearance of the overlay\n" + "\u00a7rHold a pickaxe with compact while gaining mining xp to show the overlay" ) @ConfigEditorDraggableList( exampleText = { "\u00a7bCompact: \u00a7e547,860", "\u00a7bBlocks/m: \u00a7e38.29", "\u00a7bMining: \u00a7e12\u00a77 [\u00a7e|||||||||||||||||\u00a78||||||||\u00a77] \u00a7e67%", "\u00a7bCurrent XP: \u00a7e6,734", "\u00a7bRemaining XP: \u00a7e3,265", "\u00a7bXP/h: \u00a7e238,129", "\u00a7bYaw: \u00a7e68.25\u00a7l\u1D52", "\u00a7bETA: \u00a7e13h12m", "\u00a7bCompact Progress: \u00a7e137,945/150,000" } ) @ConfigAccordionId(id = 1) public List miningText = new ArrayList<>(Arrays.asList(0, 8, 1, 2, 3, 4, 5, 7)); @Expose @ConfigOption( name = "Pause Timer", desc = "How many seconds does it wait before pausing" ) @ConfigAccordionId(id = 1) @ConfigEditorSlider( minValue = 1, maxValue = 20, minStep = 1 ) public int miningPauseTimer = 3; @Expose public Position miningPosition = new Position(10, 200); @Expose @ConfigOption( name = "Mining Style", desc = "Change the style of the Mining overlay" ) @ConfigEditorDropdown( values = {"Background", "No Shadow", "Shadow", "Full Shadow"} ) @ConfigAccordionId(id = 1) public int miningStyle = 0; @ConfigOption( name = "Fishing", desc = "" ) @ConfigEditorAccordion(id = 3) public boolean fishingAccordion = false; @Expose @ConfigOption( name = "Enable Fishing Overlay", desc = "Show an overlay while Fishing with useful information" ) @ConfigEditorBoolean @ConfigAccordionId(id = 3) public boolean FishingSkillOverlay = true; @Expose @ConfigOption( name = "Fishing Text", desc = "\u00a7eDrag text to change the appearance of the overlay\n" + "\u00a7rHold a fishing rod with expertise enchantment while gaining fishing xp to show the overlay" ) @ConfigEditorDraggableList( exampleText = { "\u00a7bExpertise: \u00a7e7,945/10,000", //"\u00a7bCatches/m: \u00a7e38.29", "\u00a7bFishing: \u00a7e12\u00a77 [\u00a7e|||||||||||||||||\u00a78||||||||\u00a77] \u00a7e67%", "\u00a7bCurrent XP: \u00a7e6,734", "\u00a7bRemaining XP: \u00a7e3,265", "\u00a7bXP/h: \u00a7e238,129", //"\u00a7bYaw: \u00a7e68.25\u00a7l\u1D52", "\u00a7bETA: \u00a7e13h12m", //"\u00a7bExpertise Progress: \u00a7e7,945/10,000", "\u00a7bTimer: \u00a7e1m15s" } ) @ConfigAccordionId(id = 3) public List fishingText = new ArrayList<>(Arrays.asList(0, 1, 2, 3, 4, 5, 6)); @Expose @ConfigOption( name = "Pause Timer", desc = "How many seconds does it wait before pausing" ) @ConfigAccordionId(id = 3) @ConfigEditorSlider( minValue = 1, maxValue = 20, minStep = 1 ) public int fishingPauseTimer = 3; @Expose public Position fishingPosition = new Position(10, 200); @Expose @ConfigOption( name = "Fishing Style", desc = "Change the style of the Fishing overlay" ) @ConfigEditorDropdown( values = {"Background", "No Shadow", "Shadow", "Full Shadow"} ) @ConfigAccordionId(id = 3) public int fishingStyle = 0; @Expose @ConfigOption( name = "Toggle Fishing timer", desc = "Start or stop the timer on the fishing overlay" ) @ConfigEditorKeybind(defaultKey = Keyboard.KEY_END) @ConfigAccordionId(id = 3) public int fishKey = Keyboard.KEY_END; @Expose @ConfigOption( name = "Fishing Timer Alert", desc = "Change the amount of time (seconds) until the timer dings" ) @ConfigEditorSlider( minValue = 0, maxValue = 600, minStep = 20 ) @ConfigAccordionId(id = 3) public int customFishTimer = 300; @ConfigOption( name = "Combat", desc = "" ) @ConfigEditorAccordion(id = 4) public boolean combatAccordion = false; @Expose @ConfigOption( name = "\u00A7cWarning", desc = "The combat display will only show if you have a Book of Stats or the Champion enchant" ) @ConfigEditorInfoText() @ConfigAccordionId(id = 4) public boolean combatInfo = false; @Expose @ConfigOption( name = "Enable Combat Overlay", desc = "Show an overlay while Combat with useful information" ) @ConfigEditorBoolean @ConfigAccordionId(id = 4) public boolean combatSkillOverlay = false; @Expose @ConfigOption( name = "Combat Text", desc = "\u00a7eDrag text to change the appearance of the overlay\n" + "\u00a7rHold an item with Book of Stats to show the display" ) @ConfigEditorDraggableList( exampleText = { "\u00a7bKills: \u00a7e547,860", "\u00a7bCombat: \u00a7e12\u00a77 [\u00a7e|||||||||||||||||\u00a78||||||||\u00a77] \u00a7e67%", "\u00a7bCurrent XP: \u00a7e6,734", "\u00a7bRemaining XP: \u00a7e3,265", "\u00a7bXP/h: \u00a7e238,129", "\u00a7bETA: \u00a7e13h12m", "\u00a7bChampion XP: \u00a7e3,523" } ) @ConfigAccordionId(id = 4) public List combatText = new ArrayList<>(Arrays.asList(0, 6, 1, 2, 3, 4, 5)); @Expose @ConfigOption( name = "Pause Timer", desc = "How many seconds does it wait before pausing" ) @ConfigAccordionId(id = 4) @ConfigEditorSlider( minValue = 1, maxValue = 20, minStep = 1 ) public int combatPauseTimer = 3; @Expose public Position combatPosition = new Position(10, 200); @Expose @ConfigOption( name = "Combat Style", desc = "Change the style of the Combat overlay" ) @ConfigEditorDropdown( values = {"Background", "No Shadow", "Shadow", "Full Shadow"} ) @ConfigAccordionId(id = 4) public int combatStyle = 0; @Expose @ConfigOption( name = "Always show combat overlay", desc = "Shows combat overlay even if you dont have Book of Stats or the Champion enchant" ) @ConfigEditorBoolean @ConfigAccordionId(id = 4) public boolean alwaysShowCombatOverlay = false; }