Files
k4rli-plugins/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java
2025-08-19 22:38:19 -04:00

548 lines
11 KiB
Java

package com.toofifty.easygiantsfoundry;
import java.awt.Color;
import net.runelite.client.config.Config;
import net.runelite.client.config.ConfigGroup;
import net.runelite.client.config.ConfigItem;
import net.runelite.client.config.ConfigSection;
import net.runelite.client.config.Range;
import net.runelite.client.config.Notification;
import net.runelite.client.ui.ColorScheme;
@ConfigGroup(EasyGiantsFoundryConfig.GROUP)
public interface EasyGiantsFoundryConfig extends Config
{
String GROUP = "easygiantsfoundry";
String SOUND_ID = "soundID";
String POINTS_KEY = "easygiantsfoundrypoints";
@ConfigSection(
name = "Notifications",
description = "Notifications",
position = 0
)
String notificationList = "notificationList";
@ConfigItem(
keyName = "giantsFoundryStageNotification",
name = "Notify stage changes",
description = "Notifies just before completing a stage",
position = 0,
section = notificationList
)
default Notification stageNotification()
{
return Notification.ON;
}
@ConfigItem(
keyName = "giantsFoundryHeatNotification",
name = "Notify heat changes",
description = "Notifies just before overheating/cooling when using tools",
position = 1,
section = notificationList
)
default Notification heatNotification()
{
return Notification.ON;
}
@ConfigItem(
keyName = "giantsFoundryStageThreshold",
name = "Stage threshold notification",
description = "The number of actions left required for the notification.",
position = 2,
section = notificationList
)
default int StageNotificationsThreshold()
{
return 1;
}
@ConfigItem(
keyName = "giantsFoundryHeatThreshold",
name = "Heat threshold notification",
description = "The heat level left required for the notification.",
position = 3,
section = notificationList
)
default int HeatNotificationsThreshold()
{
return 1;
}
@ConfigItem(
keyName = "bonusNotification",
name = "Notify bonus",
description = "Notifies when bonus appears",
position = 4,
section = notificationList
)
default Notification bonusNotification()
{
return Notification.OFF;
}
@ConfigItem(
keyName = "bonusSound",
name = "Bonus sound",
description = "Plays a sound when bonus appears",
position = 5,
section = notificationList
)
default boolean bonusSoundNotify()
{
return true;
}
@ConfigItem(
keyName = SOUND_ID,
name = "Bonus sound ID",
description = "Sound Effect ID to play when bonus appears",
position = 6,
section = notificationList
)
default int soundId()
{
return 4212;
}
@ConfigSection(
name = "Highlights",
description = "3D npc/object highlights",
position = 1
)
String highlightList = "highlightList";
@ConfigItem(
name = "Highlight Style",
description = "The style of the highlight",
position = 0,
section = highlightList,
keyName = "overlayOption")
default HighlightStyle highlightStyle()
{
return HighlightStyle.HIGHLIGHT_CLICKBOX;
}
@Range(
min = 1,
max = 4
)
@ConfigItem(
keyName = "borderThickness",
name = "Border Thickness",
description = "The thickness of the border",
position = 1,
section = highlightList
)
default int borderThickness()
{
return 1;
}
@Range(
min = 0,
max = 4
)
@ConfigItem(
keyName = "borderFeather",
name = "Border Feather",
description = "The feather of the border",
position = 2,
section = highlightList
)
default int borderFeather()
{
return 0;
}
// alpha
@Range(
min = 0,
max = 255
)
@ConfigItem(
keyName = "borderAlpha",
name = "Border Alpha",
description = "The alpha of the border highlight",
position = 3,
section = highlightList
)
default int borderAlpha()
{
return 255;
}
@ConfigItem(
keyName = "toolsHighlight",
name = "Highlight Tools",
description = "Highlights current tool with symbolic colors",
position = 4,
section = highlightList
)
default boolean highlightTools()
{
return true;
}
@ConfigItem(
keyName = "waterLavaHighlight",
name = "Highlight Waterfall/Lava Pool",
description = "Highlight Lava Pool / Waterfall when heat change required",
position = 5,
section = highlightList
)
default boolean highlightWaterAndLava()
{
return true;
}
@ConfigItem(
keyName = "mouldHighlight",
name = "Highlight Mould",
description = "Highlight Mould when it should be clicked",
position = 6,
section = highlightList
)
default boolean highlightMould()
{
return true;
}
@ConfigItem(
keyName = "crucibleHighlight",
name = "Highlight Crucible",
description = "Highlight Crucible when it should be filled/poured",
position = 7,
section = highlightList
)
default boolean highlightCrucible()
{
return true;
}
@ConfigItem(
keyName = "kovacHighlight",
name = "Highlight Kovac for hand in",
description = "Highlight Kovac when sword can be handed in",
position = 8,
section = highlightList
)
default boolean highlightKovac()
{
return true;
}
@ConfigItem(
keyName = "crucibleContent",
name = "Show Crucible content and quality",
description = "Show the content and quality of the crucible",
position = 9,
section = highlightList
)
default boolean showCrucibleContent()
{
return true;
}
@ConfigItem(
keyName = "storageHighlight",
name = "Highlight Preform Storage",
description = "Highlight Storage when it contains a preform.",
position = 10,
section = highlightList
)
default boolean highlightStorage()
{
return true;
}
@ConfigSection(
name = "Info Panel",
description = "Settings for the Info Panel overlay",
position = 2
)
String infoPanelList = "infoPanelList";
@ConfigItem(
keyName = "infoTitle",
name = "Title",
description = "Toggle for \"Easy Giants' Foundry\" text",
position = 0,
section = infoPanelList
)
default boolean drawTitle()
{
return true;
}
@ConfigItem(
keyName = "heatInfo",
name = "Heat",
description = "Toggle for Heat text",
position = 1,
section = infoPanelList
)
default boolean drawHeatInfo()
{
return true;
}
@ConfigItem(
keyName = "stageInfo",
name = "Stage",
description = "Toggle for Stage text",
position = 2,
section = infoPanelList
)
default boolean drawStageInfo()
{
return true;
}
@ConfigItem(
keyName = "actionLeft",
name = "Actions Left",
description = "Toggle for actions left text",
position = 3,
section = infoPanelList
)
default boolean drawActionsLeft()
{
return true;
}
@ConfigItem(
keyName = "heatLeft",
name = "Heat Left",
description = "Toggle for heat left text",
position = 4,
section = infoPanelList
)
default boolean drawHeatLeft()
{
return true;
}
@ConfigItem(
keyName = "bonusActions",
name = "Bonus Actions",
description = "Toggle for Bonus actions text",
position = 5,
section = infoPanelList
)
default boolean drawBonusActions()
{
return true;
}
@ConfigItem(
keyName = "shopPoints",
name = "Reputation",
description = "Toggle for reputation text",
position = 6,
section = infoPanelList
)
default boolean drawShopPoints()
{
return false;
}
@ConfigSection(
name = "Info Overlay",
description = "Overlay Text Info On Objects",
position = 3
)
String infoOverlay = "infoOverlay";
@ConfigItem(
keyName = "actionLeftOverlay",
name = "Actions Left Overlay",
description = "Toggle for actions left overlay",
position = 0,
section = infoOverlay
)
default boolean drawActionLeftOverlay()
{
return true;
}
@ConfigItem(
keyName = "heatLeftOverlay",
name = "Heat Left Overlay",
description = "Toggle for heat left overlay",
position = 1,
section = infoOverlay
)
default boolean drawHeatLeftOverlay()
{
return true;
}
@ConfigItem(
keyName = "crucibleInfoOverlay",
name = "Crucible Info Overlay",
description = "Toggle for crucible info overlay",
position = 2,
section = infoOverlay
)
default boolean drawCrucibleInfoOverlay()
{
return true;
}
@ConfigItem(
keyName = "mouldInfoOverlay",
name = "Mould Info Overlay",
description = "Toggle for mould info overlay",
position = 3,
section = infoOverlay
)
default boolean drawMouldInfoOverlay()
{
return true;
}
@ConfigItem(
keyName = "LavaWaterInfoOverlay",
name = "Lava/Waterfall Info Overlay",
description = "Toggle for lava/waterfall info overlay",
position = 4,
section = infoOverlay
)
default boolean drawLavaWaterInfoOverlay()
{
return true;
}
@ConfigSection(
name = "Colour",
description = "Colours",
position = 4
)
String colourList = "colourList";
@ConfigItem(
keyName = "mouldText",
name = "Mould Text",
description = "Colour for optimal mould text",
position = 0,
section = colourList
)
default Color mouldTextColour()
{
return new Color(0xdc10d);
}
@ConfigItem(
keyName = "generalColour",
name = "General",
description = "Colour for highlighting objects/npcs in general",
position = 1,
section = colourList
)
default Color generalHighlight()
{
return Color.CYAN;
}
@ConfigItem(
keyName = "lavaWaterColour",
name = "Lava/Waterfall",
description = "Colour for highlighting lava/waterfall",
position = 2,
section = colourList
)
default Color lavaWaterfallColour()
{
return ColorScheme.PROGRESS_COMPLETE_COLOR;
}
@ConfigItem(
keyName = "toolGood",
name = "Tool Good",
description = "Colour for highlighting current tool when they are usable",
position = 3,
section = colourList
)
default Color toolGood()
{
return ColorScheme.PROGRESS_COMPLETE_COLOR;
}
@ConfigItem(
keyName = "toolBad",
name = "Tool Bad",
description = "Colour for highlighting current tool when they are not usable",
position = 4,
section = colourList
)
default Color toolBad()
{
return ColorScheme.PROGRESS_ERROR_COLOR;
}
@ConfigItem(
keyName = "toolCaution",
name = "Tool Caution",
description = "Colour for highlighting current tool when they are about to be not usable",
position = 5,
section = colourList
)
default Color toolCaution()
{
return ColorScheme.PROGRESS_INPROGRESS_COLOR;
}
@ConfigItem(
keyName = "toolBonus",
name = "Tool Bonus",
description = "Colour for highlighting current tool when they have a bonus to click on",
position = 6,
section = colourList
)
default Color toolBonus()
{
return Color.CYAN;
}
@ConfigSection(
name = "Advanced",
description = "Advanced Settings",
position = 5
)
String advancedSettings = "generalSettings";
@Range(
max = 50
)
@ConfigItem(
keyName = "heatActionBuffer", // renamed to reset player's settings for previous bugged implementation
name = "Padding Ticks",
description = "Number of inefficient idle ticks between actions; calculations will pad more than optimal heat compensate for heat decay during idle/afk.",
position = 0,
section = advancedSettings
)
default int heatActionPadTicks()
{
return 3;
}
@ConfigItem(
keyName = "debugging",
name = "Show Debugging",
description = "Shows debugging visuals used for development",
position = 0,
section = advancedSettings,
warning = "Only used for development."
)
default boolean debugging()
{
return false;
}
}