Merge pull request #3140 from deathbeam/split-overlay-renderer-and-manager
Split overlay renderer and manager
This commit is contained in:
@@ -27,9 +27,6 @@ package net.runelite.client.plugins;
|
||||
import com.google.inject.Binder;
|
||||
import com.google.inject.Injector;
|
||||
import com.google.inject.Module;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
|
||||
public abstract class Plugin implements Module
|
||||
{
|
||||
@@ -52,15 +49,4 @@ public abstract class Plugin implements Module
|
||||
{
|
||||
return injector;
|
||||
}
|
||||
|
||||
public Overlay getOverlay()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public Collection<Overlay> getOverlays()
|
||||
{
|
||||
Overlay overlay = getOverlay();
|
||||
return overlay != null ? Collections.singletonList(overlay) : Collections.EMPTY_LIST;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,8 +26,6 @@ package net.runelite.client.plugins.agility;
|
||||
|
||||
import com.google.common.eventbus.Subscribe;
|
||||
import com.google.inject.Provides;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
@@ -65,7 +63,7 @@ import net.runelite.client.Notifier;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
|
||||
|
||||
@PluginDescriptor(
|
||||
@@ -83,11 +81,13 @@ public class AgilityPlugin extends Plugin
|
||||
private Tile markOfGrace;
|
||||
|
||||
@Inject
|
||||
@Getter
|
||||
private AgilityOverlay overlay;
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private LapCounterOverlay lapOverlay;
|
||||
private AgilityOverlay agilityOverlay;
|
||||
|
||||
@Inject
|
||||
private LapCounterOverlay lapCounterOverlay;
|
||||
|
||||
@Inject
|
||||
private Notifier notifier;
|
||||
@@ -114,14 +114,17 @@ public class AgilityPlugin extends Plugin
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Overlay> getOverlays()
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
return Arrays.asList(overlay, lapOverlay);
|
||||
overlayManager.add(agilityOverlay);
|
||||
overlayManager.add(lapCounterOverlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(agilityOverlay);
|
||||
overlayManager.remove(lapCounterOverlay);
|
||||
markOfGrace = null;
|
||||
obstacles.clear();
|
||||
session = null;
|
||||
|
||||
@@ -52,6 +52,7 @@ import net.runelite.client.plugins.PluginDescriptor;
|
||||
import static net.runelite.client.plugins.attackstyles.AttackStyle.CASTING;
|
||||
import static net.runelite.client.plugins.attackstyles.AttackStyle.DEFENSIVE_CASTING;
|
||||
import static net.runelite.client.plugins.attackstyles.AttackStyle.OTHER;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
@PluginDescriptor(
|
||||
name = "Attack Styles"
|
||||
@@ -73,6 +74,9 @@ public class AttackStylesPlugin extends Plugin
|
||||
@Inject
|
||||
private AttackStylesConfig config;
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private AttackStylesOverlay overlay;
|
||||
|
||||
@@ -82,16 +86,11 @@ public class AttackStylesPlugin extends Plugin
|
||||
return configManager.getConfig(AttackStylesConfig.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AttackStylesOverlay getOverlay()
|
||||
{
|
||||
return overlay;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
overlayManager.add(overlay);
|
||||
|
||||
if (client.getGameState() == GameState.LOGGED_IN)
|
||||
{
|
||||
updateWarnedSkills(config.warnForAttack(), Skill.ATTACK);
|
||||
@@ -111,6 +110,7 @@ public class AttackStylesPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown()
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
hideWarnedStyles(false);
|
||||
processWidgets();
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.FontManager;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
@PluginDescriptor(
|
||||
name = "Barbarian Assault"
|
||||
@@ -63,6 +63,9 @@ public class BarbarianAssaultPlugin extends Plugin
|
||||
@Inject
|
||||
private Client client;
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private BarbarianAssaultConfig config;
|
||||
|
||||
@@ -78,6 +81,7 @@ public class BarbarianAssaultPlugin extends Plugin
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
overlayManager.add(overlay);
|
||||
font = FontManager.getRunescapeFont()
|
||||
.deriveFont(Font.BOLD, 24);
|
||||
|
||||
@@ -87,6 +91,12 @@ public class BarbarianAssaultPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameTick(GameTick event)
|
||||
{
|
||||
@@ -155,12 +165,6 @@ public class BarbarianAssaultPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Overlay getOverlay()
|
||||
{
|
||||
return overlay;
|
||||
}
|
||||
|
||||
public Font getFont()
|
||||
{
|
||||
return font;
|
||||
|
||||
@@ -28,7 +28,6 @@ import com.google.common.collect.Sets;
|
||||
import com.google.common.eventbus.Subscribe;
|
||||
import com.google.inject.Provides;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
@@ -64,7 +63,7 @@ import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
import net.runelite.client.util.StackFormatter;
|
||||
import net.runelite.http.api.item.ItemPrice;
|
||||
|
||||
@@ -88,26 +87,19 @@ public class BarrowsPlugin extends Plugin
|
||||
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
private final Set<WallObject> walls = new HashSet<>();
|
||||
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
private final Set<GameObject> ladders = new HashSet<>();
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private BarrowsOverlay barrowsOverlay;
|
||||
|
||||
@Inject
|
||||
private BarrowsBrotherSlainOverlay brotherOverlay;
|
||||
|
||||
@Provides
|
||||
BarrowsConfig provideConfig(ConfigManager configManager)
|
||||
{
|
||||
return configManager.getConfig(BarrowsConfig.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Overlay> getOverlays()
|
||||
{
|
||||
return Arrays.asList(barrowsOverlay, brotherOverlay);
|
||||
}
|
||||
|
||||
@Inject
|
||||
private Client client;
|
||||
|
||||
@@ -122,9 +114,24 @@ public class BarrowsPlugin extends Plugin
|
||||
|
||||
private long chestPrice;
|
||||
|
||||
@Provides
|
||||
BarrowsConfig provideConfig(ConfigManager configManager)
|
||||
{
|
||||
return configManager.getConfig(BarrowsConfig.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
overlayManager.add(barrowsOverlay);
|
||||
overlayManager.add(brotherOverlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown()
|
||||
{
|
||||
overlayManager.remove(barrowsOverlay);
|
||||
overlayManager.remove(brotherOverlay);
|
||||
walls.clear();
|
||||
ladders.clear();
|
||||
}
|
||||
|
||||
@@ -26,8 +26,6 @@ package net.runelite.client.plugins.blastfurnace;
|
||||
|
||||
import com.google.common.eventbus.Subscribe;
|
||||
import com.google.inject.Provides;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import javax.inject.Inject;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
@@ -41,7 +39,7 @@ import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
@PluginDescriptor(
|
||||
name = "Blast Furnace"
|
||||
@@ -56,6 +54,9 @@ public class BlastFurnacePlugin extends Plugin
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
private GameObject barDispenser;
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private BlastFurnaceOverlay overlay;
|
||||
|
||||
@@ -65,9 +66,20 @@ public class BlastFurnacePlugin extends Plugin
|
||||
@Inject
|
||||
private BlastFurnaceClickBoxOverlay clickBoxOverlay;
|
||||
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
overlayManager.add(overlay);
|
||||
overlayManager.add(cofferOverlay);
|
||||
overlayManager.add(clickBoxOverlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown()
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
overlayManager.remove(cofferOverlay);
|
||||
overlayManager.remove(clickBoxOverlay);
|
||||
conveyorBelt = null;
|
||||
barDispenser = null;
|
||||
}
|
||||
@@ -78,12 +90,6 @@ public class BlastFurnacePlugin extends Plugin
|
||||
return configManager.getConfig(BlastFurnaceConfig.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Overlay> getOverlays()
|
||||
{
|
||||
return Arrays.asList(overlay, cofferOverlay, clickBoxOverlay);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameObjectSpawn(GameObjectSpawned event)
|
||||
{
|
||||
|
||||
@@ -26,8 +26,6 @@ package net.runelite.client.plugins.blastmine;
|
||||
|
||||
import com.google.common.eventbus.Subscribe;
|
||||
import com.google.inject.Provides;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import javax.inject.Inject;
|
||||
@@ -44,7 +42,7 @@ import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
@PluginDescriptor(name = "Blast Mine")
|
||||
public class BlastMinePlugin extends Plugin
|
||||
@@ -52,6 +50,9 @@ public class BlastMinePlugin extends Plugin
|
||||
@Getter
|
||||
private final Map<WorldPoint, BlastMineRock> rocks = new HashMap<>();
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private Client client;
|
||||
|
||||
@@ -68,14 +69,17 @@ public class BlastMinePlugin extends Plugin
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Overlay> getOverlays()
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
return Arrays.asList(blastMineRockOverlay, blastMineOreCountOverlay);
|
||||
overlayManager.add(blastMineRockOverlay);
|
||||
overlayManager.add(blastMineOreCountOverlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(blastMineRockOverlay);
|
||||
overlayManager.remove(blastMineOreCountOverlay);
|
||||
final Widget blastMineWidget = client.getWidget(WidgetInfo.BLAST_MINE);
|
||||
|
||||
if (blastMineWidget != null)
|
||||
|
||||
@@ -44,7 +44,7 @@ import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.game.SkillIconManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
|
||||
|
||||
@PluginDescriptor(
|
||||
@@ -78,6 +78,9 @@ public class BoostsPlugin extends Plugin
|
||||
@Inject
|
||||
private InfoBoxManager infoBoxManager;
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private BoostsOverlay boostsOverlay;
|
||||
|
||||
@@ -100,15 +103,10 @@ public class BoostsPlugin extends Plugin
|
||||
return configManager.getConfig(BoostsConfig.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Overlay getOverlay()
|
||||
{
|
||||
return boostsOverlay;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void startUp()
|
||||
{
|
||||
overlayManager.add(boostsOverlay);
|
||||
updateShownSkills(config.enableSkill());
|
||||
Arrays.fill(lastSkillLevels, -1);
|
||||
overallIcon = skillIconManager.getSkillImage(Skill.OVERALL);
|
||||
@@ -117,6 +115,7 @@ public class BoostsPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(boostsOverlay);
|
||||
infoBoxManager.removeIf(t -> t instanceof BoostIndicator || t instanceof StatChangeIndicator);
|
||||
}
|
||||
|
||||
|
||||
@@ -29,8 +29,6 @@ import com.google.inject.Provides;
|
||||
import java.awt.Color;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
@@ -59,7 +57,7 @@ import net.runelite.client.game.ItemManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.task.Schedule;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
|
||||
|
||||
@PluginDescriptor(
|
||||
@@ -97,6 +95,9 @@ public class CannonPlugin extends Plugin
|
||||
@Inject
|
||||
private Notifier notifier;
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private CannonOverlay cannonOverlay;
|
||||
|
||||
@@ -119,14 +120,17 @@ public class CannonPlugin extends Plugin
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Overlay> getOverlays()
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
return Arrays.asList(cannonOverlay, cannonSpotOverlay);
|
||||
overlayManager.add(cannonOverlay);
|
||||
overlayManager.add(cannonSpotOverlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(cannonOverlay);
|
||||
overlayManager.remove(cannonSpotOverlay);
|
||||
cannonPlaced = false;
|
||||
cannonPosition = null;
|
||||
cballsLeft = 0;
|
||||
|
||||
@@ -41,7 +41,7 @@ import net.runelite.api.events.NpcDespawned;
|
||||
import net.runelite.api.events.NpcSpawned;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
@PluginDescriptor(name = "Cerberus")
|
||||
@Singleton
|
||||
@@ -50,21 +50,25 @@ public class CerberusPlugin extends Plugin
|
||||
@Getter
|
||||
private final List<NPC> ghosts = new ArrayList<>();
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private CerberusOverlay overlay;
|
||||
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
overlayManager.add(overlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
ghosts.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Overlay getOverlay()
|
||||
{
|
||||
return overlay;
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameStateChange(GameStateChanged event)
|
||||
{
|
||||
|
||||
@@ -33,7 +33,6 @@ import java.io.IOException;
|
||||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.stream.Stream;
|
||||
import javax.imageio.ImageIO;
|
||||
@@ -82,7 +81,7 @@ import net.runelite.client.plugins.cluescrolls.clues.MapClue;
|
||||
import net.runelite.client.plugins.cluescrolls.clues.NpcClueScroll;
|
||||
import net.runelite.client.plugins.cluescrolls.clues.ObjectClueScroll;
|
||||
import net.runelite.client.plugins.cluescrolls.clues.TextClueScroll;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
import net.runelite.client.ui.overlay.worldmap.WorldMapPointManager;
|
||||
import net.runelite.client.util.QueryRunner;
|
||||
import net.runelite.client.util.Text;
|
||||
@@ -128,6 +127,9 @@ public class ClueScrollPlugin extends Plugin
|
||||
@Inject
|
||||
private QueryRunner queryRunner;
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private ClueScrollOverlay clueScrollOverlay;
|
||||
|
||||
@@ -172,15 +174,20 @@ public class ClueScrollPlugin extends Plugin
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
resetClue();
|
||||
overlayManager.add(clueScrollOverlay);
|
||||
overlayManager.add(clueScrollEmoteOverlay);
|
||||
overlayManager.add(clueScrollWorldOverlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Overlay> getOverlays()
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
return Arrays.asList(clueScrollOverlay, clueScrollEmoteOverlay, clueScrollWorldOverlay);
|
||||
overlayManager.remove(clueScrollOverlay);
|
||||
overlayManager.remove(clueScrollEmoteOverlay);
|
||||
overlayManager.remove(clueScrollWorldOverlay);
|
||||
resetClue();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
|
||||
@@ -58,7 +58,7 @@ import net.runelite.api.events.ProjectileMoved;
|
||||
import net.runelite.client.callback.ClientThread;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
@PluginDescriptor(
|
||||
name = "Demonic Gorillas"
|
||||
@@ -69,6 +69,9 @@ public class DemonicGorillaPlugin extends Plugin
|
||||
@Inject
|
||||
private Client client;
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private DemonicGorillaOverlay overlay;
|
||||
|
||||
@@ -87,6 +90,7 @@ public class DemonicGorillaPlugin extends Plugin
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
overlayManager.add(overlay);
|
||||
gorillas = new HashMap<>();
|
||||
recentBoulders = new ArrayList<>();
|
||||
pendingAttacks = new ArrayList<>();
|
||||
@@ -97,18 +101,13 @@ public class DemonicGorillaPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
gorillas = null;
|
||||
recentBoulders = null;
|
||||
pendingAttacks = null;
|
||||
memorizedPlayers = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Overlay getOverlay()
|
||||
{
|
||||
return overlay;
|
||||
}
|
||||
|
||||
private void clear()
|
||||
{
|
||||
recentBoulders.clear();
|
||||
|
||||
@@ -32,8 +32,6 @@ import com.google.inject.Provides;
|
||||
import java.awt.Font;
|
||||
import java.awt.image.BufferedImage;
|
||||
import static java.lang.Math.min;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import javax.imageio.ImageIO;
|
||||
import javax.inject.Inject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -52,7 +50,7 @@ import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.FontManager;
|
||||
import net.runelite.client.ui.NavigationButton;
|
||||
import net.runelite.client.ui.PluginToolbar;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@PluginDescriptor(
|
||||
@@ -68,6 +66,9 @@ public class DevToolsPlugin extends Plugin
|
||||
@Inject
|
||||
private PluginToolbar pluginToolbar;
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private DevToolsOverlay overlay;
|
||||
|
||||
@@ -120,6 +121,12 @@ public class DevToolsPlugin extends Plugin
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
overlayManager.add(overlay);
|
||||
overlayManager.add(locationOverlay);
|
||||
overlayManager.add(sceneOverlay);
|
||||
overlayManager.add(cameraOverlay);
|
||||
overlayManager.add(worldMapLocationOverlay);
|
||||
|
||||
final DevToolsPanel panel = injector.getInstance(DevToolsPanel.class);
|
||||
|
||||
BufferedImage icon;
|
||||
@@ -144,15 +151,14 @@ public class DevToolsPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
overlayManager.remove(locationOverlay);
|
||||
overlayManager.remove(sceneOverlay);
|
||||
overlayManager.remove(cameraOverlay);
|
||||
overlayManager.remove(worldMapLocationOverlay);
|
||||
pluginToolbar.removeNavigation(navButton);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Overlay> getOverlays()
|
||||
{
|
||||
return Arrays.asList(overlay, locationOverlay, sceneOverlay, cameraOverlay, worldMapLocationOverlay);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onCommand(CommandExecuted commandExecuted)
|
||||
{
|
||||
|
||||
@@ -34,7 +34,7 @@ import net.runelite.api.queries.NPCQuery;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.task.Schedule;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
import net.runelite.client.util.QueryRunner;
|
||||
|
||||
@PluginDescriptor(
|
||||
@@ -48,15 +48,24 @@ public class FightCavePlugin extends Plugin
|
||||
@Inject
|
||||
private QueryRunner queryRunner;
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private FightCaveOverlay overlay;
|
||||
|
||||
private JadAttack attack;
|
||||
|
||||
@Override
|
||||
public Overlay getOverlay()
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
return overlay;
|
||||
overlayManager.add(overlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
}
|
||||
|
||||
@Schedule(
|
||||
|
||||
@@ -30,7 +30,6 @@ import com.google.common.primitives.Ints;
|
||||
import com.google.inject.Provides;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import javax.inject.Inject;
|
||||
@@ -50,7 +49,7 @@ import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDependency;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.plugins.xptracker.XpTrackerPlugin;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
import net.runelite.client.util.QueryRunner;
|
||||
|
||||
@PluginDescriptor(
|
||||
@@ -71,6 +70,9 @@ public class FishingPlugin extends Plugin
|
||||
@Inject
|
||||
private QueryRunner queryRunner;
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private FishingConfig config;
|
||||
|
||||
@@ -94,14 +96,18 @@ public class FishingPlugin extends Plugin
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
// Initialize overlay config
|
||||
overlayManager.add(overlay);
|
||||
overlayManager.add(spotOverlay);
|
||||
overlayManager.add(fishingSpotMinimapOverlay);
|
||||
updateConfig();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Overlay> getOverlays()
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
return Arrays.asList(overlay, spotOverlay, fishingSpotMinimapOverlay);
|
||||
overlayManager.remove(overlay);
|
||||
overlayManager.remove(spotOverlay);
|
||||
overlayManager.remove(fishingSpotMinimapOverlay);
|
||||
}
|
||||
|
||||
public FishingSession getSession()
|
||||
|
||||
@@ -33,7 +33,7 @@ import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.DrawManager;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
/**
|
||||
* FPS Control has two primary areas, this plugin class just keeps those areas up to date and handles setup / teardown.
|
||||
@@ -53,6 +53,9 @@ public class FpsPlugin extends Plugin
|
||||
{
|
||||
static final String CONFIG_GROUP_KEY = "fpscontrol";
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private FpsOverlay overlay;
|
||||
|
||||
@@ -68,12 +71,6 @@ public class FpsPlugin extends Plugin
|
||||
return configManager.getConfig(FpsConfig.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Overlay getOverlay()
|
||||
{
|
||||
return overlay;
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged event)
|
||||
{
|
||||
@@ -93,6 +90,7 @@ public class FpsPlugin extends Plugin
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
overlayManager.add(overlay);
|
||||
drawManager.registerEveryFrameListener(drawListener);
|
||||
drawListener.reloadConfig();
|
||||
}
|
||||
@@ -100,6 +98,7 @@ public class FpsPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
drawManager.unregisterEveryFrameListener(drawListener);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.game.ChatboxInputManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
import net.runelite.client.util.Text;
|
||||
|
||||
@Slf4j
|
||||
@@ -69,6 +69,9 @@ public class FriendNotesPlugin extends Plugin
|
||||
@Inject
|
||||
private ConfigManager configManager;
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private FriendNoteOverlay overlay;
|
||||
|
||||
@@ -79,9 +82,15 @@ public class FriendNotesPlugin extends Plugin
|
||||
private HoveredFriend hoveredFriend = null;
|
||||
|
||||
@Override
|
||||
public Overlay getOverlay()
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
return overlay;
|
||||
overlayManager.add(overlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -81,7 +81,7 @@ import net.runelite.client.plugins.grounditems.config.MenuHighlightMode;
|
||||
import static net.runelite.client.plugins.grounditems.config.MenuHighlightMode.BOTH;
|
||||
import static net.runelite.client.plugins.grounditems.config.MenuHighlightMode.NAME;
|
||||
import static net.runelite.client.plugins.grounditems.config.MenuHighlightMode.OPTION;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
import net.runelite.http.api.item.ItemPrice;
|
||||
|
||||
@PluginDescriptor(
|
||||
@@ -140,6 +140,9 @@ public class GroundItemsPlugin extends Plugin
|
||||
@Inject
|
||||
private ItemManager itemManager;
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private GroundItemsConfig config;
|
||||
|
||||
@@ -171,15 +174,10 @@ public class GroundItemsPlugin extends Plugin
|
||||
return configManager.getConfig(GroundItemsConfig.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Overlay getOverlay()
|
||||
{
|
||||
return overlay;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void startUp()
|
||||
{
|
||||
overlayManager.add(overlay);
|
||||
reset();
|
||||
mouseManager.registerMouseListener(inputListener);
|
||||
keyManager.registerKeyListener(inputListener);
|
||||
@@ -188,6 +186,7 @@ public class GroundItemsPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
mouseManager.unregisterMouseListener(inputListener);
|
||||
keyManager.unregisterKeyListener(inputListener);
|
||||
groundItems.clear();
|
||||
|
||||
@@ -56,6 +56,7 @@ import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.input.KeyManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
@Slf4j
|
||||
@PluginDescriptor(
|
||||
@@ -85,6 +86,9 @@ public class GroundMarkerPlugin extends Plugin
|
||||
@Inject
|
||||
private ConfigManager configManager;
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private GroundMarkerOverlay overlay;
|
||||
|
||||
@@ -286,20 +290,17 @@ public class GroundMarkerPlugin extends Plugin
|
||||
@Override
|
||||
protected void startUp()
|
||||
{
|
||||
overlayManager.add(overlay);
|
||||
keyManager.registerKeyListener(inputListener);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown()
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
keyManager.unregisterKeyListener(inputListener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public GroundMarkerOverlay getOverlay()
|
||||
{
|
||||
return overlay;
|
||||
}
|
||||
|
||||
protected void markTile(LocalPoint localPoint)
|
||||
{
|
||||
|
||||
@@ -27,7 +27,6 @@ package net.runelite.client.plugins.herbiboars;
|
||||
import com.google.common.eventbus.Subscribe;
|
||||
import com.google.inject.Provides;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
@@ -58,7 +57,7 @@ import net.runelite.api.events.VarbitChanged;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
@Slf4j
|
||||
@PluginDescriptor(
|
||||
@@ -96,24 +95,15 @@ public class HerbiboarPlugin extends Plugin
|
||||
@Inject
|
||||
private Client client;
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private HerbiboarOverlay overlay;
|
||||
|
||||
@Inject
|
||||
private HerbiboarMinimapOverlay minimapOverlay;
|
||||
|
||||
@Override
|
||||
public Collection<Overlay> getOverlays()
|
||||
{
|
||||
return Arrays.asList(overlay, minimapOverlay);
|
||||
}
|
||||
|
||||
@Provides
|
||||
HerbiboarConfig getConfig(ConfigManager configManager)
|
||||
{
|
||||
return configManager.getConfig(HerbiboarConfig.class);
|
||||
}
|
||||
|
||||
@Getter
|
||||
private boolean inHerbiboarArea;
|
||||
|
||||
@@ -145,12 +135,27 @@ public class HerbiboarPlugin extends Plugin
|
||||
@Setter
|
||||
private int finishId;
|
||||
|
||||
@Provides
|
||||
HerbiboarConfig getConfig(ConfigManager configManager)
|
||||
{
|
||||
return configManager.getConfig(HerbiboarConfig.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
overlayManager.add(overlay);
|
||||
overlayManager.add(minimapOverlay);
|
||||
inHerbiboarArea = checkArea();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
overlayManager.remove(minimapOverlay);
|
||||
}
|
||||
|
||||
private void updateTrailData()
|
||||
{
|
||||
currentTrail = null;
|
||||
|
||||
@@ -48,7 +48,7 @@ import net.runelite.client.Notifier;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.util.QueryRunner;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
@Slf4j
|
||||
@PluginDescriptor(
|
||||
@@ -60,10 +60,9 @@ public class HunterPlugin extends Plugin
|
||||
private Client client;
|
||||
|
||||
@Inject
|
||||
private QueryRunner queryRunner;
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
@Getter
|
||||
private TrapOverlay overlay;
|
||||
|
||||
@Inject
|
||||
@@ -89,12 +88,14 @@ public class HunterPlugin extends Plugin
|
||||
@Override
|
||||
protected void startUp()
|
||||
{
|
||||
overlayManager.add(overlay);
|
||||
overlay.updateConfig();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
lastActionTime = Instant.ofEpochMilli(0);
|
||||
traps.clear();
|
||||
}
|
||||
|
||||
@@ -28,8 +28,6 @@ import com.google.common.eventbus.Subscribe;
|
||||
import com.google.inject.Provides;
|
||||
import java.awt.Color;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import javax.inject.Inject;
|
||||
import lombok.AccessLevel;
|
||||
@@ -42,8 +40,7 @@ import net.runelite.api.events.NpcSpawned;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.util.QueryRunner;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
/**
|
||||
* @author robin
|
||||
@@ -56,6 +53,9 @@ public class ImplingsPlugin extends Plugin
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
private final List<NPC> implings = new ArrayList<>();
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private ImplingsOverlay overlay;
|
||||
|
||||
@@ -65,19 +65,25 @@ public class ImplingsPlugin extends Plugin
|
||||
@Inject
|
||||
private ImplingsConfig config;
|
||||
|
||||
@Inject
|
||||
private QueryRunner queryRunner;
|
||||
|
||||
@Provides
|
||||
ImplingsConfig getConfig(ConfigManager configManager)
|
||||
{
|
||||
return configManager.getConfig(ImplingsConfig.class);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Collection<Overlay> getOverlays()
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
return Arrays.asList(overlay, minimapOverlay);
|
||||
overlayManager.add(overlay);
|
||||
overlayManager.add(minimapOverlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
overlayManager.remove(minimapOverlay);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
|
||||
@@ -37,7 +37,7 @@ import net.runelite.client.menus.MenuManager;
|
||||
import net.runelite.client.menus.WidgetMenuOption;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
@PluginDescriptor(
|
||||
name = "Instance Map"
|
||||
@@ -49,6 +49,9 @@ public class InstanceMapPlugin extends Plugin
|
||||
@Inject
|
||||
private InstanceMapInputListener inputListener;
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private InstanceMapOverlay overlay;
|
||||
|
||||
@@ -80,6 +83,7 @@ public class InstanceMapPlugin extends Plugin
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
overlayManager.add(overlay);
|
||||
addCustomOptions();
|
||||
keyManager.registerKeyListener(inputListener);
|
||||
mouseManager.registerMouseListener(inputListener);
|
||||
@@ -89,6 +93,7 @@ public class InstanceMapPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
removeCustomOptions();
|
||||
keyManager.unregisterKeyListener(inputListener);
|
||||
mouseManager.registerMouseListener(inputListener);
|
||||
@@ -127,12 +132,6 @@ public class InstanceMapPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Overlay getOverlay()
|
||||
{
|
||||
return overlay;
|
||||
}
|
||||
|
||||
public void showMap()
|
||||
{
|
||||
overlay.setShowMap(true);
|
||||
|
||||
@@ -24,22 +24,25 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.itemcharges;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import net.runelite.api.ChatMessageType;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import com.google.common.eventbus.Subscribe;
|
||||
import com.google.inject.Provides;
|
||||
import javax.inject.Inject;
|
||||
import net.runelite.api.ChatMessageType;
|
||||
import net.runelite.api.events.ChatMessage;
|
||||
import net.runelite.client.Notifier;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
@PluginDescriptor(
|
||||
name = "Item Charges"
|
||||
)
|
||||
public class ItemChargePlugin extends Plugin
|
||||
{
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private ItemChargeOverlay overlay;
|
||||
|
||||
@@ -49,18 +52,24 @@ public class ItemChargePlugin extends Plugin
|
||||
@Inject
|
||||
private ItemChargeConfig config;
|
||||
|
||||
@Override
|
||||
public Overlay getOverlay()
|
||||
{
|
||||
return overlay;
|
||||
}
|
||||
|
||||
@Provides
|
||||
ItemChargeConfig getConfig(ConfigManager configManager)
|
||||
{
|
||||
return configManager.getConfig(ItemChargeConfig.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
overlayManager.add(overlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onChatMessage(ChatMessage event)
|
||||
{
|
||||
|
||||
@@ -29,7 +29,7 @@ import javax.inject.Inject;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
@PluginDescriptor(
|
||||
name = "Item Prices",
|
||||
@@ -38,7 +38,8 @@ import net.runelite.client.ui.overlay.Overlay;
|
||||
public class ItemPricesPlugin extends Plugin
|
||||
{
|
||||
@Inject
|
||||
private ItemPricesConfig config;
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private ItemPricesOverlay overlay;
|
||||
|
||||
@@ -49,8 +50,14 @@ public class ItemPricesPlugin extends Plugin
|
||||
}
|
||||
|
||||
@Override
|
||||
public Overlay getOverlay()
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
return overlay;
|
||||
overlayManager.add(overlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,13 +29,16 @@ import com.google.inject.Provides;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
@PluginDescriptor(
|
||||
name = "Item Stats"
|
||||
)
|
||||
public class ItemStatPlugin extends Plugin
|
||||
{
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private ItemStatOverlay overlay;
|
||||
|
||||
@@ -46,8 +49,14 @@ public class ItemStatPlugin extends Plugin
|
||||
}
|
||||
|
||||
@Override
|
||||
public Overlay getOverlay()
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
return overlay;
|
||||
overlayManager.add(overlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.NavigationButton;
|
||||
import net.runelite.client.ui.PluginToolbar;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
@PluginDescriptor(
|
||||
name = "Kourend Library"
|
||||
@@ -66,6 +66,9 @@ public class KourendLibraryPlugin extends Plugin
|
||||
@Inject
|
||||
private Library library;
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private KourendLibraryOverlay overlay;
|
||||
|
||||
@@ -81,6 +84,7 @@ public class KourendLibraryPlugin extends Plugin
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
overlayManager.add(overlay);
|
||||
Book.fillImages(itemManager);
|
||||
|
||||
panel = injector.getInstance(KourendLibraryPanel.class);
|
||||
@@ -105,15 +109,10 @@ public class KourendLibraryPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown()
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
pluginToolbar.removeNavigation(navButton);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Overlay getOverlay()
|
||||
{
|
||||
return overlay;
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
private void onMenuOptionClicked(MenuOptionClicked menuOpt)
|
||||
{
|
||||
|
||||
@@ -32,8 +32,6 @@ import com.google.inject.Provides;
|
||||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import javax.inject.Inject;
|
||||
@@ -72,7 +70,7 @@ import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.task.Schedule;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
@PluginDescriptor(
|
||||
name = "Motherlode Mine",
|
||||
@@ -91,6 +89,9 @@ public class MotherlodePlugin extends Plugin
|
||||
|
||||
private static final int UPPER_FLOOR_HEIGHT = -500;
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private MotherlodeOverlay overlay;
|
||||
|
||||
@@ -132,15 +133,14 @@ public class MotherlodePlugin extends Plugin
|
||||
return configManager.getConfig(MotherlodeConfig.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Overlay> getOverlays()
|
||||
{
|
||||
return Arrays.asList(overlay, rocksOverlay, motherlodeSackOverlay, motherlodeGemOverlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void startUp()
|
||||
{
|
||||
overlayManager.add(overlay);
|
||||
overlayManager.add(rocksOverlay);
|
||||
overlayManager.add(motherlodeGemOverlay);
|
||||
overlayManager.add(motherlodeSackOverlay);
|
||||
|
||||
session = new MotherlodeSession();
|
||||
inMlm = checkInMlm();
|
||||
|
||||
@@ -153,6 +153,10 @@ public class MotherlodePlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
overlayManager.remove(rocksOverlay);
|
||||
overlayManager.remove(motherlodeGemOverlay);
|
||||
overlayManager.remove(motherlodeSackOverlay);
|
||||
session = null;
|
||||
veins.clear();
|
||||
rocks.clear();
|
||||
|
||||
@@ -29,13 +29,16 @@ import javax.inject.Inject;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
@PluginDescriptor(
|
||||
name = "Mouse Tooltips"
|
||||
)
|
||||
public class MouseHighlightPlugin extends Plugin
|
||||
{
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private MouseHighlightOverlay overlay;
|
||||
|
||||
@@ -46,8 +49,14 @@ public class MouseHighlightPlugin extends Plugin
|
||||
}
|
||||
|
||||
@Override
|
||||
public Overlay getOverlay()
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
return overlay;
|
||||
overlayManager.add(overlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ import net.runelite.client.Notifier;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
import net.runelite.client.util.Text;
|
||||
|
||||
@PluginDescriptor(
|
||||
@@ -53,6 +53,9 @@ public class NightmareZonePlugin extends Plugin
|
||||
@Inject
|
||||
private Client client;
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private NightmareZoneConfig config;
|
||||
|
||||
@@ -64,8 +67,16 @@ public class NightmareZonePlugin extends Plugin
|
||||
private boolean absorptionNotificationSend = true;
|
||||
|
||||
@Override
|
||||
protected void shutDown()
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
overlayManager.add(overlay);
|
||||
overlay.removeAbsorptionCounter();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
overlay.removeAbsorptionCounter();
|
||||
}
|
||||
|
||||
@@ -81,12 +92,6 @@ public class NightmareZonePlugin extends Plugin
|
||||
return configManager.getConfig(NightmareZoneConfig.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Overlay getOverlay()
|
||||
{
|
||||
return overlay;
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameTick(GameTick event)
|
||||
{
|
||||
|
||||
@@ -30,8 +30,6 @@ import com.google.common.eventbus.Subscribe;
|
||||
import com.google.inject.Provides;
|
||||
import java.time.Instant;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
@@ -62,7 +60,7 @@ import net.runelite.client.input.KeyManager;
|
||||
import net.runelite.client.menus.MenuManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
import net.runelite.client.util.WildcardMatcher;
|
||||
|
||||
@PluginDescriptor(name = "NPC Indicators")
|
||||
@@ -85,6 +83,9 @@ public class NpcIndicatorsPlugin extends Plugin
|
||||
@Inject
|
||||
private NpcIndicatorsConfig config;
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private NpcSceneOverlay npcSceneOverlay;
|
||||
|
||||
@@ -174,6 +175,8 @@ public class NpcIndicatorsPlugin extends Plugin
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
overlayManager.add(npcSceneOverlay);
|
||||
overlayManager.add(npcMinimapOverlay);
|
||||
keyManager.registerKeyListener(inputListener);
|
||||
highlights = getHighlights();
|
||||
clientThread.invokeLater(() ->
|
||||
@@ -186,6 +189,8 @@ public class NpcIndicatorsPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(npcSceneOverlay);
|
||||
overlayManager.remove(npcMinimapOverlay);
|
||||
deadNpcsToDisplay.clear();
|
||||
memorizedNpcs.clear();
|
||||
spawnedNpcsThisTick.clear();
|
||||
@@ -321,12 +326,6 @@ public class NpcIndicatorsPlugin extends Plugin
|
||||
lastPlayerLocation = client.getLocalPlayer().getWorldLocation();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Overlay> getOverlays()
|
||||
{
|
||||
return Arrays.asList(npcSceneOverlay, npcMinimapOverlay);
|
||||
}
|
||||
|
||||
private static boolean isInViewRange(WorldPoint wp1, WorldPoint wp2)
|
||||
{
|
||||
int distance = wp1.distanceTo(wp2);
|
||||
|
||||
@@ -41,7 +41,7 @@ import net.runelite.api.WorldType;
|
||||
import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
import net.runelite.http.api.hiscore.HiscoreEndpoint;
|
||||
|
||||
@PluginDescriptor(
|
||||
@@ -52,6 +52,9 @@ public class OpponentInfoPlugin extends Plugin
|
||||
@Inject
|
||||
private Client client;
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private OpponentInfoOverlay overlay;
|
||||
|
||||
@@ -59,9 +62,15 @@ public class OpponentInfoPlugin extends Plugin
|
||||
private HiscoreEndpoint hiscoreEndpoint = HiscoreEndpoint.NORMAL;
|
||||
|
||||
@Override
|
||||
public Overlay getOverlay()
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
return overlay;
|
||||
overlayManager.add(overlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
|
||||
@@ -27,19 +27,28 @@ package net.runelite.client.plugins.pestcontrol;
|
||||
import javax.inject.Inject;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
@PluginDescriptor(
|
||||
name = "Pest Control"
|
||||
)
|
||||
public class PestControlPlugin extends Plugin
|
||||
{
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private PestControlOverlay overlay;
|
||||
|
||||
@Override
|
||||
public Overlay getOverlay()
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
return overlay;
|
||||
overlayManager.add(overlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,27 +24,14 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.playerindicators;
|
||||
|
||||
import com.google.common.collect.Sets;
|
||||
import com.google.common.eventbus.Subscribe;
|
||||
import com.google.inject.Provides;
|
||||
import java.awt.Color;
|
||||
import java.util.Collection;
|
||||
import javax.inject.Inject;
|
||||
import net.runelite.api.ClanMemberRank;
|
||||
import static net.runelite.api.ClanMemberRank.UNRANKED;
|
||||
import net.runelite.api.Client;
|
||||
import static net.runelite.api.MenuAction.FOLLOW;
|
||||
import static net.runelite.api.MenuAction.ITEM_USE_ON_PLAYER;
|
||||
import static net.runelite.api.MenuAction.PLAYER_EIGTH_OPTION;
|
||||
import static net.runelite.api.MenuAction.PLAYER_FIFTH_OPTION;
|
||||
import static net.runelite.api.MenuAction.PLAYER_FIRST_OPTION;
|
||||
import static net.runelite.api.MenuAction.PLAYER_FOURTH_OPTION;
|
||||
import static net.runelite.api.MenuAction.PLAYER_SECOND_OPTION;
|
||||
import static net.runelite.api.MenuAction.PLAYER_SEVENTH_OPTION;
|
||||
import static net.runelite.api.MenuAction.PLAYER_SIXTH_OPTION;
|
||||
import static net.runelite.api.MenuAction.PLAYER_THIRD_OPTION;
|
||||
import static net.runelite.api.MenuAction.SPELL_CAST_ON_PLAYER;
|
||||
import static net.runelite.api.MenuAction.TRADE;
|
||||
import static net.runelite.api.MenuAction.*;
|
||||
import net.runelite.api.MenuEntry;
|
||||
import net.runelite.api.Player;
|
||||
import net.runelite.api.events.MenuEntryAdded;
|
||||
@@ -52,13 +39,16 @@ import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.game.ClanManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
@PluginDescriptor(
|
||||
name = "Player Indicators"
|
||||
)
|
||||
public class PlayerIndicatorsPlugin extends Plugin
|
||||
{
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private PlayerIndicatorsConfig config;
|
||||
|
||||
@@ -81,9 +71,17 @@ public class PlayerIndicatorsPlugin extends Plugin
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Overlay> getOverlays()
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
return Sets.newHashSet(playerIndicatorsOverlay, playerIndicatorsMinimapOverlay);
|
||||
overlayManager.add(playerIndicatorsOverlay);
|
||||
overlayManager.add(playerIndicatorsMinimapOverlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(playerIndicatorsOverlay);
|
||||
overlayManager.remove(playerIndicatorsMinimapOverlay);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
|
||||
@@ -27,8 +27,6 @@ package net.runelite.client.plugins.poh;
|
||||
import com.google.common.collect.Sets;
|
||||
import com.google.common.eventbus.Subscribe;
|
||||
import com.google.inject.Provides;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
@@ -55,7 +53,7 @@ import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
@PluginDescriptor(
|
||||
name = "Player-owned House"
|
||||
@@ -68,6 +66,9 @@ public class PohPlugin extends Plugin
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
private final Map<TileObject, Tile> pohObjects = new HashMap<>();
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private PohOverlay overlay;
|
||||
|
||||
@@ -80,21 +81,19 @@ public class PohPlugin extends Plugin
|
||||
return configManager.getConfig(PohConfig.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Overlay> getOverlays()
|
||||
{
|
||||
return Arrays.asList(overlay, burnerOverlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
overlayManager.add(overlay);
|
||||
overlayManager.add(burnerOverlay);
|
||||
overlay.updateConfig();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
overlayManager.remove(burnerOverlay);
|
||||
pohObjects.clear();
|
||||
}
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.game.SpriteManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
|
||||
|
||||
@PluginDescriptor(
|
||||
@@ -55,6 +55,9 @@ public class PrayerPlugin extends Plugin
|
||||
@Inject
|
||||
private SpriteManager spriteManager;
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private PrayerFlickOverlay overlay;
|
||||
|
||||
@@ -68,15 +71,16 @@ public class PrayerPlugin extends Plugin
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown()
|
||||
protected void startUp()
|
||||
{
|
||||
removeIndicators();
|
||||
overlayManager.add(overlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Overlay getOverlay()
|
||||
protected void shutDown()
|
||||
{
|
||||
return overlay;
|
||||
overlayManager.remove(overlay);
|
||||
removeIndicators();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
|
||||
@@ -26,11 +26,11 @@
|
||||
package net.runelite.client.plugins.puzzlesolver;
|
||||
|
||||
import com.google.inject.Provides;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import javax.inject.Inject;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
@PluginDescriptor(
|
||||
name = "Puzzle Solver"
|
||||
@@ -38,10 +38,10 @@ import net.runelite.client.plugins.PluginDescriptor;
|
||||
public class PuzzleSolverPlugin extends Plugin
|
||||
{
|
||||
@Inject
|
||||
private PuzzleSolverOverlay puzzleSolverOverlay;
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private ScheduledExecutorService executorService;
|
||||
private PuzzleSolverOverlay overlay;
|
||||
|
||||
@Provides
|
||||
PuzzleSolverConfig provideConfig(ConfigManager configManager)
|
||||
@@ -50,8 +50,14 @@ public class PuzzleSolverPlugin extends Plugin
|
||||
}
|
||||
|
||||
@Override
|
||||
public PuzzleSolverOverlay getOverlay()
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
return puzzleSolverOverlay;
|
||||
overlayManager.add(overlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +33,6 @@ import java.text.DecimalFormat;
|
||||
import java.time.Instant;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import javax.imageio.ImageIO;
|
||||
@@ -66,7 +65,7 @@ import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.plugins.raids.solver.Layout;
|
||||
import net.runelite.client.plugins.raids.solver.LayoutSolver;
|
||||
import net.runelite.client.plugins.raids.solver.RotationSolver;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
|
||||
import net.runelite.client.util.Text;
|
||||
|
||||
@@ -81,7 +80,7 @@ public class RaidsPlugin extends Plugin
|
||||
private static final String LEVEL_COMPLETE_MESSAGE = "level complete!";
|
||||
private static final String RAID_COMPLETE_MESSAGE = "Congratulations - your raid is complete!";
|
||||
private static final DecimalFormat DECIMAL_FORMAT = new DecimalFormat("###.##");
|
||||
public static final DecimalFormat POINTS_FORMAT = new DecimalFormat("#,###");
|
||||
static final DecimalFormat POINTS_FORMAT = new DecimalFormat("#,###");
|
||||
private static final String SPLIT_REGEX = "\\s*,\\s*";
|
||||
private static final Pattern ROTATION_REGEX = Pattern.compile("\\[(.*?)\\]");
|
||||
|
||||
@@ -103,6 +102,9 @@ public class RaidsPlugin extends Plugin
|
||||
@Inject
|
||||
private RaidsConfig config;
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private RaidsOverlay overlay;
|
||||
|
||||
@@ -139,15 +141,12 @@ public class RaidsPlugin extends Plugin
|
||||
binder.bind(RaidsOverlay.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Overlay> getOverlays()
|
||||
{
|
||||
return Arrays.asList(overlay, pointsOverlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
overlayManager.add(overlay);
|
||||
overlayManager.add(pointsOverlay);
|
||||
|
||||
if (client.getGameState() == GameState.LOGGED_IN)
|
||||
{
|
||||
inRaidChambers = client.getVar(Varbits.IN_RAID) == 1;
|
||||
@@ -160,6 +159,9 @@ public class RaidsPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
overlayManager.remove(pointsOverlay);
|
||||
|
||||
if (timer != null)
|
||||
{
|
||||
infoBoxManager.removeInfoBox(timer);
|
||||
|
||||
@@ -33,15 +33,15 @@ import lombok.Getter;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.GameState;
|
||||
import net.runelite.api.Prayer;
|
||||
import net.runelite.api.VarPlayer;
|
||||
import net.runelite.api.Skill;
|
||||
import net.runelite.api.VarPlayer;
|
||||
import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.api.events.GameTick;
|
||||
import net.runelite.api.events.VarbitChanged;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
@PluginDescriptor(name = "Regeneration Meter")
|
||||
public class RegenMeterPlugin extends Plugin
|
||||
@@ -49,34 +49,27 @@ public class RegenMeterPlugin extends Plugin
|
||||
private static final int SPEC_REGEN_TICKS = 50;
|
||||
private static final int NORMAL_HP_REGEN_TICKS = 100;
|
||||
|
||||
@Inject
|
||||
private RegenMeterOverlay overlay;
|
||||
|
||||
@Inject
|
||||
private Client client;
|
||||
|
||||
@Inject
|
||||
RegenMeterConfig config;
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private RegenMeterOverlay overlay;
|
||||
|
||||
private int ticksSinceHPRegen;
|
||||
|
||||
private boolean wasRapidHeal;
|
||||
@Inject
|
||||
private RegenMeterConfig config;
|
||||
|
||||
@Getter
|
||||
private double hitpointsPercentage;
|
||||
|
||||
|
||||
private int ticksSinceSpecRegen;
|
||||
|
||||
@Getter
|
||||
private double specialPercentage;
|
||||
|
||||
@Override
|
||||
public Overlay getOverlay()
|
||||
{
|
||||
return overlay;
|
||||
}
|
||||
private int ticksSinceSpecRegen;
|
||||
private int ticksSinceHPRegen;
|
||||
private boolean wasRapidHeal;
|
||||
|
||||
@Provides
|
||||
RegenMeterConfig provideConfig(ConfigManager configManager)
|
||||
@@ -84,6 +77,18 @@ public class RegenMeterPlugin extends Plugin
|
||||
return configManager.getConfig(RegenMeterConfig.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
overlayManager.add(overlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
private void onGameStateChanged(GameStateChanged ev)
|
||||
{
|
||||
|
||||
@@ -49,6 +49,7 @@ import net.runelite.api.events.GroundObjectSpawned;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.task.Schedule;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
@PluginDescriptor(
|
||||
name = "Rogues' Den"
|
||||
@@ -69,12 +70,21 @@ public class RoguesDenPlugin extends Plugin
|
||||
private Client client;
|
||||
|
||||
@Inject
|
||||
@Getter
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private RoguesDenOverlay overlay;
|
||||
|
||||
@Override
|
||||
protected void shutDown()
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
overlayManager.add(overlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
obstaclesHull.clear();
|
||||
obstaclesTile.clear();
|
||||
hasGem = false;
|
||||
|
||||
@@ -26,8 +26,6 @@ package net.runelite.client.plugins.runecraft;
|
||||
|
||||
import com.google.common.eventbus.Subscribe;
|
||||
import com.google.inject.Provides;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.regex.Matcher;
|
||||
@@ -35,7 +33,15 @@ import java.util.regex.Pattern;
|
||||
import javax.inject.Inject;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import net.runelite.api.*;
|
||||
import net.runelite.api.ChatMessageType;
|
||||
import net.runelite.api.DecorativeObject;
|
||||
import net.runelite.api.GameState;
|
||||
import net.runelite.api.InventoryID;
|
||||
import net.runelite.api.Item;
|
||||
import net.runelite.api.ItemID;
|
||||
import net.runelite.api.NPC;
|
||||
import net.runelite.api.NpcID;
|
||||
import net.runelite.api.Query;
|
||||
import net.runelite.api.events.ChatMessage;
|
||||
import net.runelite.api.events.ConfigChanged;
|
||||
import net.runelite.api.events.DecorativeObjectDespawned;
|
||||
@@ -47,7 +53,7 @@ import net.runelite.api.queries.NPCQuery;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
import net.runelite.client.util.QueryRunner;
|
||||
|
||||
@PluginDescriptor(
|
||||
@@ -66,6 +72,9 @@ public class RunecraftPlugin extends Plugin
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
private NPC darkMage;
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private RunecraftOverlay overlay;
|
||||
|
||||
@@ -87,21 +96,21 @@ public class RunecraftPlugin extends Plugin
|
||||
return configManager.getConfig(RunecraftConfig.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Overlay> getOverlays()
|
||||
{
|
||||
return Arrays.asList(overlay, bindNeckOverlay, abyssOverlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
overlayManager.add(overlay);
|
||||
overlayManager.add(bindNeckOverlay);
|
||||
overlayManager.add(abyssOverlay);
|
||||
abyssOverlay.updateConfig();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
overlayManager.remove(bindNeckOverlay);
|
||||
overlayManager.remove(abyssOverlay);
|
||||
abyssObjects.clear();
|
||||
darkMage = null;
|
||||
degradedPouchInInventory = false;
|
||||
|
||||
@@ -29,7 +29,7 @@ import javax.inject.Inject;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
@PluginDescriptor(
|
||||
name = "Rune Pouch"
|
||||
@@ -37,7 +37,7 @@ import net.runelite.client.ui.overlay.Overlay;
|
||||
public class RunepouchPlugin extends Plugin
|
||||
{
|
||||
@Inject
|
||||
private ConfigManager configManager;
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private RunepouchOverlay overlay;
|
||||
@@ -49,8 +49,14 @@ public class RunepouchPlugin extends Plugin
|
||||
}
|
||||
|
||||
@Override
|
||||
public Overlay getOverlay()
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
return overlay;
|
||||
overlayManager.add(overlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,7 +36,6 @@ import java.awt.Rectangle;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.time.Instant;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
@@ -53,8 +52,7 @@ import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.plugins.screenmarkers.ui.ScreenMarkerPluginPanel;
|
||||
import net.runelite.client.ui.NavigationButton;
|
||||
import net.runelite.client.ui.PluginToolbar;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayRenderer;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
@PluginDescriptor(
|
||||
name = "Screen Markers"
|
||||
@@ -82,10 +80,10 @@ public class ScreenMarkerPlugin extends Plugin
|
||||
private PluginToolbar pluginToolbar;
|
||||
|
||||
@Inject
|
||||
private ScreenMarkerCreationOverlay overlay;
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private OverlayRenderer overlayRenderer;
|
||||
private ScreenMarkerCreationOverlay overlay;
|
||||
|
||||
private ScreenMarkerMouseListener mouseListener;
|
||||
private ScreenMarkerPluginPanel pluginPanel;
|
||||
@@ -98,20 +96,12 @@ public class ScreenMarkerPlugin extends Plugin
|
||||
private boolean creatingScreenMarker = false;
|
||||
private Point startLocation = null;
|
||||
|
||||
@Override
|
||||
public Collection<Overlay> getOverlays()
|
||||
{
|
||||
final List<Overlay> overlays = new ArrayList<>();
|
||||
overlays.add(overlay);
|
||||
overlays.addAll(screenMarkers);
|
||||
return overlays;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
overlayManager.add(overlay);
|
||||
loadConfig(configManager.getConfiguration(CONFIG_GROUP, CONFIG_KEY)).forEach(screenMarkers::add);
|
||||
overlayRenderer.rebuildOverlays();
|
||||
screenMarkers.forEach(overlayManager::add);
|
||||
|
||||
pluginPanel = injector.getInstance(ScreenMarkerPluginPanel.class);
|
||||
pluginPanel.init();
|
||||
@@ -137,10 +127,12 @@ public class ScreenMarkerPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
overlayManager.removeIf(ScreenMarkerOverlay.class::isInstance);
|
||||
screenMarkers.clear();;
|
||||
pluginToolbar.removeNavigation(navigationButton);
|
||||
setMouseListenerEnabled(false);
|
||||
creatingScreenMarker = false;
|
||||
screenMarkers.clear();
|
||||
|
||||
pluginPanel = null;
|
||||
currentMarker = null;
|
||||
@@ -154,7 +146,8 @@ public class ScreenMarkerPlugin extends Plugin
|
||||
if (screenMarkers.isEmpty() && event.getGroup().equals(CONFIG_GROUP) && event.getKey().equals(CONFIG_KEY))
|
||||
{
|
||||
loadConfig(event.getNewValue()).forEach(screenMarkers::add);
|
||||
overlayRenderer.rebuildOverlays();
|
||||
overlayManager.removeIf(ScreenMarkerOverlay.class::isInstance);
|
||||
screenMarkers.forEach(overlayManager::add);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -197,10 +190,10 @@ public class ScreenMarkerPlugin extends Plugin
|
||||
screenMarkerOverlay.setPreferredSize(overlay.getBounds().getSize());
|
||||
|
||||
screenMarkers.add(screenMarkerOverlay);
|
||||
overlayManager.add(screenMarkerOverlay);
|
||||
overlayManager.saveOverlay(screenMarkerOverlay);
|
||||
pluginPanel.rebuild();
|
||||
updateConfig();
|
||||
overlayRenderer.saveOverlay(screenMarkerOverlay);
|
||||
overlayRenderer.rebuildOverlays();
|
||||
}
|
||||
|
||||
creatingScreenMarker = false;
|
||||
@@ -219,11 +212,11 @@ public class ScreenMarkerPlugin extends Plugin
|
||||
|
||||
public void deleteMarker(final ScreenMarkerOverlay marker)
|
||||
{
|
||||
overlayRenderer.resetOverlay(marker);
|
||||
screenMarkers.remove(marker);
|
||||
overlayManager.remove(marker);
|
||||
overlayManager.resetOverlay(marker);
|
||||
pluginPanel.rebuild();
|
||||
updateConfig();
|
||||
overlayRenderer.rebuildOverlays();
|
||||
}
|
||||
|
||||
void resizeMarker(Point point)
|
||||
|
||||
@@ -81,7 +81,7 @@ import net.runelite.client.ui.ClientUI;
|
||||
import net.runelite.client.ui.DrawManager;
|
||||
import net.runelite.client.ui.NavigationButton;
|
||||
import net.runelite.client.ui.TitleToolbar;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
import net.runelite.client.util.Text;
|
||||
import net.runelite.http.api.RuneLiteAPI;
|
||||
import okhttp3.Call;
|
||||
@@ -126,6 +126,9 @@ public class ScreenshotPlugin extends Plugin
|
||||
@Inject
|
||||
private ScreenshotConfig config;
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private ScreenshotOverlay screenshotOverlay;
|
||||
|
||||
@@ -161,15 +164,10 @@ public class ScreenshotPlugin extends Plugin
|
||||
return configManager.getConfig(ScreenshotConfig.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Overlay getOverlay()
|
||||
{
|
||||
return screenshotOverlay;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
overlayManager.add(screenshotOverlay);
|
||||
SCREENSHOT_DIR.mkdirs();
|
||||
keyManager.registerKeyListener(inputListener);
|
||||
|
||||
@@ -213,6 +211,7 @@ public class ScreenshotPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(screenshotOverlay);
|
||||
titleToolbar.removeNavigation(titleBarButton);
|
||||
keyManager.unregisterKeyListener(inputListener);
|
||||
}
|
||||
|
||||
@@ -69,7 +69,7 @@ import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
|
||||
import net.runelite.client.util.QueryRunner;
|
||||
import net.runelite.client.util.Text;
|
||||
@@ -112,6 +112,9 @@ public class SlayerPlugin extends Plugin
|
||||
@Inject
|
||||
private SlayerConfig config;
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private SlayerOverlay overlay;
|
||||
|
||||
@@ -142,30 +145,46 @@ public class SlayerPlugin extends Plugin
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
private Collection<WidgetItem> slayerItems = Collections.emptyList();
|
||||
|
||||
private String taskName;
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
@Setter(AccessLevel.PACKAGE)
|
||||
private int amount;
|
||||
private TaskCounter counter;
|
||||
private int streak;
|
||||
private int points;
|
||||
private int cachedXp;
|
||||
private Instant infoTimer;
|
||||
private boolean loginFlag;
|
||||
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
@Setter(AccessLevel.PACKAGE)
|
||||
private int expeditiousChargeCount;
|
||||
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
@Setter(AccessLevel.PACKAGE)
|
||||
private int slaughterChargeCount;
|
||||
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
@Setter(AccessLevel.PACKAGE)
|
||||
private String taskName;
|
||||
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
private int streak;
|
||||
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
private int points;
|
||||
|
||||
private TaskCounter counter;
|
||||
private int cachedXp;
|
||||
private Instant infoTimer;
|
||||
private boolean loginFlag;
|
||||
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
overlayManager.add(overlay);
|
||||
overlayManager.add(targetClickboxOverlay);
|
||||
overlayManager.add(targetMinimapOverlay);
|
||||
|
||||
if (client.getGameState() == GameState.LOGGED_IN
|
||||
&& config.amount() != -1
|
||||
&& !config.taskName().isEmpty())
|
||||
{
|
||||
setPoints(config.points());
|
||||
setStreak(config.streak());
|
||||
points = config.points();
|
||||
streak = config.streak();
|
||||
setExpeditiousChargeCount(config.expeditious());
|
||||
setSlaughterChargeCount(config.slaughter());
|
||||
clientThread.invokeLater(() -> setTask(config.taskName(), config.amount()));
|
||||
@@ -175,6 +194,9 @@ public class SlayerPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
overlayManager.remove(targetClickboxOverlay);
|
||||
overlayManager.remove(targetMinimapOverlay);
|
||||
removeCounter();
|
||||
}
|
||||
|
||||
@@ -199,10 +221,10 @@ public class SlayerPlugin extends Plugin
|
||||
case LOGGED_IN:
|
||||
if (config.amount() != -1
|
||||
&& !config.taskName().isEmpty()
|
||||
&& loginFlag == true)
|
||||
&& loginFlag)
|
||||
{
|
||||
setPoints(config.points());
|
||||
setStreak(config.streak());
|
||||
points = config.points();
|
||||
streak = config.streak();
|
||||
setExpeditiousChargeCount(config.expeditious());
|
||||
setSlaughterChargeCount(config.slaughter());
|
||||
setTask(config.taskName(), config.amount());
|
||||
@@ -572,53 +594,6 @@ public class SlayerPlugin extends Plugin
|
||||
return composition;
|
||||
}
|
||||
|
||||
//Getters
|
||||
@Override
|
||||
public Collection<Overlay> getOverlays()
|
||||
{
|
||||
return Arrays.asList(overlay, targetClickboxOverlay, targetMinimapOverlay);
|
||||
}
|
||||
|
||||
public String getTaskName()
|
||||
{
|
||||
return taskName;
|
||||
}
|
||||
|
||||
void setTaskName(String taskName)
|
||||
{
|
||||
this.taskName = taskName;
|
||||
}
|
||||
|
||||
public int getAmount()
|
||||
{
|
||||
return amount;
|
||||
}
|
||||
|
||||
void setAmount(int amount)
|
||||
{
|
||||
this.amount = amount;
|
||||
}
|
||||
|
||||
public int getStreak()
|
||||
{
|
||||
return streak;
|
||||
}
|
||||
|
||||
void setStreak(int streak)
|
||||
{
|
||||
this.streak = streak;
|
||||
}
|
||||
|
||||
public int getPoints()
|
||||
{
|
||||
return points;
|
||||
}
|
||||
|
||||
void setPoints(int points)
|
||||
{
|
||||
this.points = points;
|
||||
}
|
||||
|
||||
//Utils
|
||||
private String capsString(String str)
|
||||
{
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.teamcapes;
|
||||
|
||||
import com.google.inject.Provides;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
@@ -32,7 +33,6 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
import javax.inject.Inject;
|
||||
import com.google.inject.Provides;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.GameState;
|
||||
import net.runelite.api.Player;
|
||||
@@ -40,7 +40,7 @@ import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.task.Schedule;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
@PluginDescriptor(
|
||||
name = "Team Capes",
|
||||
@@ -52,10 +52,10 @@ public class TeamCapesPlugin extends Plugin
|
||||
private Client client;
|
||||
|
||||
@Inject
|
||||
private TeamCapesConfig config;
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private TeamCapesOverlay teamCapesOverlay;
|
||||
private TeamCapesOverlay overlay;
|
||||
|
||||
// Hashmap of team capes: Key is the teamCape #, Value is the count of teamcapes in the area.
|
||||
private Map<Integer, Integer> teams = new HashMap<>();
|
||||
@@ -67,14 +67,15 @@ public class TeamCapesPlugin extends Plugin
|
||||
}
|
||||
|
||||
@Override
|
||||
public Overlay getOverlay()
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
return teamCapesOverlay;
|
||||
overlayManager.add(overlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
teams.clear();
|
||||
}
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@ package net.runelite.client.plugins.tileindicators;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Polygon;
|
||||
import javax.inject.Inject;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.Perspective;
|
||||
import net.runelite.api.coords.LocalPoint;
|
||||
@@ -41,7 +42,8 @@ public class TileIndicatorsOverlay extends Overlay
|
||||
private final Client client;
|
||||
private final TileIndicatorsConfig config;
|
||||
|
||||
TileIndicatorsOverlay(Client client, TileIndicatorsConfig config)
|
||||
@Inject
|
||||
private TileIndicatorsOverlay(Client client, TileIndicatorsConfig config)
|
||||
{
|
||||
this.client = client;
|
||||
this.config = config;
|
||||
|
||||
@@ -26,11 +26,10 @@ package net.runelite.client.plugins.tileindicators;
|
||||
|
||||
import com.google.inject.Provides;
|
||||
import javax.inject.Inject;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
@PluginDescriptor(
|
||||
name = "Tile Indicators",
|
||||
@@ -39,12 +38,10 @@ import net.runelite.client.ui.overlay.Overlay;
|
||||
public class TileIndicatorsPlugin extends Plugin
|
||||
{
|
||||
@Inject
|
||||
private Client client;
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private TileIndicatorsConfig config;
|
||||
|
||||
private TileIndicatorsOverlay tileIndicatorsOverlay;
|
||||
private TileIndicatorsOverlay overlay;
|
||||
|
||||
@Provides
|
||||
TileIndicatorsConfig provideConfig(ConfigManager configManager)
|
||||
@@ -55,12 +52,12 @@ public class TileIndicatorsPlugin extends Plugin
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
tileIndicatorsOverlay = new TileIndicatorsOverlay(client, config);
|
||||
overlayManager.add(overlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Overlay getOverlay()
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
return tileIndicatorsOverlay;
|
||||
overlayManager.remove(overlay);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,8 +26,6 @@ package net.runelite.client.plugins.tithefarm;
|
||||
|
||||
import com.google.common.eventbus.Subscribe;
|
||||
import com.google.inject.Provides;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import javax.inject.Inject;
|
||||
@@ -41,7 +39,7 @@ import net.runelite.api.events.GameTick;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
@Slf4j
|
||||
@PluginDescriptor(
|
||||
@@ -49,6 +47,9 @@ import net.runelite.client.ui.overlay.Overlay;
|
||||
)
|
||||
public class TitheFarmPlugin extends Plugin
|
||||
{
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private TitheFarmPlantOverlay titheFarmOverlay;
|
||||
|
||||
@@ -65,15 +66,18 @@ public class TitheFarmPlugin extends Plugin
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Overlay> getOverlays()
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
return Arrays.asList(titheFarmOverlay, titheFarmSackOverlay);
|
||||
overlayManager.add(titheFarmOverlay);
|
||||
overlayManager.add(titheFarmSackOverlay);
|
||||
titheFarmOverlay.updateConfig();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startUp() throws Exception
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
titheFarmOverlay.updateConfig();
|
||||
overlayManager.remove(titheFarmOverlay);
|
||||
overlayManager.remove(titheFarmSackOverlay);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
|
||||
@@ -28,8 +28,6 @@ import com.google.common.eventbus.Subscribe;
|
||||
import com.google.inject.Provides;
|
||||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import javax.inject.Inject;
|
||||
@@ -52,7 +50,7 @@ import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDependency;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.plugins.xptracker.XpTrackerPlugin;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
@PluginDescriptor(
|
||||
name = "Woodcutting"
|
||||
@@ -66,6 +64,9 @@ public class WoodcuttingPlugin extends Plugin
|
||||
@Inject
|
||||
private Client client;
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private WoodcuttingOverlay overlay;
|
||||
|
||||
@@ -91,14 +92,17 @@ public class WoodcuttingPlugin extends Plugin
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Overlay> getOverlays()
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
return Arrays.asList(overlay, treesOverlay);
|
||||
overlayManager.add(overlay);
|
||||
overlayManager.add(treesOverlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
overlayManager.remove(treesOverlay);
|
||||
treeObjects.clear();
|
||||
session = null;
|
||||
axe = null;
|
||||
|
||||
@@ -43,7 +43,7 @@ import net.runelite.client.plugins.PluginDependency;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.plugins.xptracker.XpTrackerPlugin;
|
||||
import net.runelite.client.task.Schedule;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
@PluginDescriptor(
|
||||
name = "XP Globes"
|
||||
@@ -62,6 +62,9 @@ public class XpGlobesPlugin extends Plugin
|
||||
@Inject
|
||||
private XpGlobesConfig config;
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private XpGlobesOverlay overlay;
|
||||
|
||||
@@ -72,9 +75,15 @@ public class XpGlobesPlugin extends Plugin
|
||||
}
|
||||
|
||||
@Override
|
||||
public Overlay getOverlay()
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
return overlay;
|
||||
overlayManager.add(overlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
|
||||
@@ -0,0 +1,291 @@
|
||||
/*
|
||||
* Copyright (c) 2018, Tomas Slusny <slusnucky@gmail.com>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package net.runelite.client.ui.overlay;
|
||||
|
||||
import com.google.common.annotations.VisibleForTesting;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Point;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import java.util.function.Predicate;
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import lombok.Getter;
|
||||
import net.runelite.client.config.ConfigGroup;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.config.RuneLiteConfig;
|
||||
|
||||
/**
|
||||
* Manages state of all game overlays
|
||||
*/
|
||||
@Singleton
|
||||
public class OverlayManager
|
||||
{
|
||||
private static final String OVERLAY_CONFIG_PREFERRED_LOCATION = "_preferredLocation";
|
||||
private static final String OVERLAY_CONFIG_PREFERRED_POSITION = "_preferredPosition";
|
||||
private static final String OVERLAY_CONFIG_PREFERRED_SIZE = "_preferredSize";
|
||||
private static final String RUNELITE_CONFIG_GROUP_NAME = RuneLiteConfig.class.getAnnotation(ConfigGroup.class).keyName();
|
||||
|
||||
@Getter
|
||||
private final List<Overlay> overlays = new CopyOnWriteArrayList<>();
|
||||
|
||||
@Getter
|
||||
private final Map<OverlayLayer, List<Overlay>> overlayLayers = new ConcurrentHashMap<>();
|
||||
|
||||
private final ConfigManager configManager;
|
||||
|
||||
@Inject
|
||||
private OverlayManager(final ConfigManager configManager)
|
||||
{
|
||||
this.configManager = configManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add overlay.
|
||||
*
|
||||
* @param overlay the overlay
|
||||
* @return true if overlay was added
|
||||
*/
|
||||
public boolean add(final Overlay overlay)
|
||||
{
|
||||
final boolean add = overlays.add(overlay);
|
||||
|
||||
if (add)
|
||||
{
|
||||
final Point location = loadOverlayLocation(overlay);
|
||||
overlay.setPreferredLocation(location);
|
||||
final Dimension size = loadOverlaySize(overlay);
|
||||
overlay.setPreferredSize(size);
|
||||
final OverlayPosition position = loadOverlayPosition(overlay);
|
||||
overlay.setPreferredPosition(position);
|
||||
sortOverlays(overlays);
|
||||
rebuildOverlayLayers();
|
||||
}
|
||||
|
||||
return add;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove overlay.
|
||||
*
|
||||
* @param overlay the overlay
|
||||
* @return true if overlay was removed
|
||||
*/
|
||||
public boolean remove(final Overlay overlay)
|
||||
{
|
||||
final boolean remove = overlays.remove(overlay);
|
||||
|
||||
if (remove)
|
||||
{
|
||||
sortOverlays(overlays);
|
||||
rebuildOverlayLayers();
|
||||
}
|
||||
|
||||
return remove;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove if overlay matches filter
|
||||
*
|
||||
* @param filter the filter
|
||||
* @return true if any overlay was removed
|
||||
*/
|
||||
public boolean removeIf(Predicate<Overlay> filter)
|
||||
{
|
||||
final boolean removeIf = overlays.removeIf(filter);
|
||||
sortOverlays(overlays);
|
||||
rebuildOverlayLayers();
|
||||
return removeIf;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear all overlays
|
||||
*/
|
||||
public void clear()
|
||||
{
|
||||
overlays.clear();
|
||||
sortOverlays(overlays);
|
||||
rebuildOverlayLayers();
|
||||
}
|
||||
|
||||
/**
|
||||
* Force save overlay data
|
||||
*
|
||||
* @param overlay overlay to save
|
||||
*/
|
||||
public void saveOverlay(final Overlay overlay)
|
||||
{
|
||||
saveOverlayPosition(overlay);
|
||||
saveOverlaySize(overlay);
|
||||
saveOverlayLocation(overlay);
|
||||
sortOverlays(overlays);
|
||||
rebuildOverlayLayers();
|
||||
}
|
||||
|
||||
/**
|
||||
* Resets stored overlay position data
|
||||
*
|
||||
* @param overlay overlay to reset
|
||||
*/
|
||||
public void resetOverlay(final Overlay overlay)
|
||||
{
|
||||
final String locationKey = overlay.getName() + OVERLAY_CONFIG_PREFERRED_LOCATION;
|
||||
final String positionKey = overlay.getName() + OVERLAY_CONFIG_PREFERRED_POSITION;
|
||||
final String sizeKey = overlay.getName() + OVERLAY_CONFIG_PREFERRED_SIZE;
|
||||
configManager.unsetConfiguration(RUNELITE_CONFIG_GROUP_NAME, locationKey);
|
||||
configManager.unsetConfiguration(RUNELITE_CONFIG_GROUP_NAME, positionKey);
|
||||
configManager.unsetConfiguration(RUNELITE_CONFIG_GROUP_NAME, sizeKey);
|
||||
sortOverlays(overlays);
|
||||
rebuildOverlayLayers();
|
||||
}
|
||||
|
||||
private void rebuildOverlayLayers()
|
||||
{
|
||||
overlayLayers.clear();
|
||||
|
||||
for (final Overlay overlay : overlays)
|
||||
{
|
||||
OverlayLayer layer = overlay.getLayer();
|
||||
|
||||
if (overlay.getPreferredLocation() != null && overlay.getPreferredPosition() == null)
|
||||
{
|
||||
// When UNDER_WIDGET overlays are in preferred locations, move to
|
||||
// ABOVE_WIDGETS so that it can draw over interfaces
|
||||
if (layer == OverlayLayer.UNDER_WIDGETS)
|
||||
{
|
||||
layer = OverlayLayer.ABOVE_WIDGETS;
|
||||
}
|
||||
}
|
||||
|
||||
overlayLayers.compute(layer, (key, value) ->
|
||||
{
|
||||
if (value == null)
|
||||
{
|
||||
value = new CopyOnWriteArrayList<>();
|
||||
}
|
||||
|
||||
value.add(overlay);
|
||||
return value;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void saveOverlayLocation(final Overlay overlay)
|
||||
{
|
||||
final String key = overlay.getName() + OVERLAY_CONFIG_PREFERRED_LOCATION;
|
||||
if (overlay.getPreferredLocation() != null)
|
||||
{
|
||||
configManager.setConfiguration(
|
||||
RUNELITE_CONFIG_GROUP_NAME,
|
||||
key,
|
||||
overlay.getPreferredLocation());
|
||||
}
|
||||
else
|
||||
{
|
||||
configManager.unsetConfiguration(
|
||||
RUNELITE_CONFIG_GROUP_NAME,
|
||||
key);
|
||||
}
|
||||
}
|
||||
|
||||
private void saveOverlaySize(final Overlay overlay)
|
||||
{
|
||||
final String key = overlay.getName() + OVERLAY_CONFIG_PREFERRED_SIZE;
|
||||
if (overlay.getPreferredSize() != null)
|
||||
{
|
||||
configManager.setConfiguration(
|
||||
RUNELITE_CONFIG_GROUP_NAME,
|
||||
key,
|
||||
overlay.getPreferredSize());
|
||||
}
|
||||
else
|
||||
{
|
||||
configManager.unsetConfiguration(
|
||||
RUNELITE_CONFIG_GROUP_NAME,
|
||||
key);
|
||||
}
|
||||
}
|
||||
|
||||
private void saveOverlayPosition(final Overlay overlay)
|
||||
{
|
||||
final String key = overlay.getName() + OVERLAY_CONFIG_PREFERRED_POSITION;
|
||||
if (overlay.getPreferredPosition() != null)
|
||||
{
|
||||
configManager.setConfiguration(
|
||||
RUNELITE_CONFIG_GROUP_NAME,
|
||||
key,
|
||||
overlay.getPreferredPosition());
|
||||
}
|
||||
else
|
||||
{
|
||||
configManager.unsetConfiguration(
|
||||
RUNELITE_CONFIG_GROUP_NAME,
|
||||
key);
|
||||
}
|
||||
}
|
||||
|
||||
private Point loadOverlayLocation(final Overlay overlay)
|
||||
{
|
||||
final String key = overlay.getName() + OVERLAY_CONFIG_PREFERRED_LOCATION;
|
||||
return configManager.getConfiguration(RUNELITE_CONFIG_GROUP_NAME, key, Point.class);
|
||||
}
|
||||
|
||||
private Dimension loadOverlaySize(final Overlay overlay)
|
||||
{
|
||||
final String key = overlay.getName() + OVERLAY_CONFIG_PREFERRED_SIZE;
|
||||
return configManager.getConfiguration(RUNELITE_CONFIG_GROUP_NAME, key, Dimension.class);
|
||||
}
|
||||
|
||||
private OverlayPosition loadOverlayPosition(final Overlay overlay)
|
||||
{
|
||||
final String locationKey = overlay.getName() + OVERLAY_CONFIG_PREFERRED_POSITION;
|
||||
return configManager.getConfiguration(RUNELITE_CONFIG_GROUP_NAME, locationKey, OverlayPosition.class);
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
static void sortOverlays(List<Overlay> overlays)
|
||||
{
|
||||
overlays.sort((a, b) ->
|
||||
{
|
||||
if (a.getPosition() != b.getPosition())
|
||||
{
|
||||
// This is so non-dynamic overlays render after dynamic
|
||||
// overlays, which are generally in the scene
|
||||
return a.getPosition().compareTo(b.getPosition());
|
||||
}
|
||||
|
||||
// For dynamic overlays, higher priority means to
|
||||
// draw *later* so it is on top.
|
||||
// For non-dynamic overlays, higher priority means
|
||||
// draw *first* so that they are closer to their
|
||||
// defined position.
|
||||
return a.getPosition() == OverlayPosition.DYNAMIC
|
||||
? a.getPriority().compareTo(b.getPriority())
|
||||
: b.getPriority().compareTo(a.getPriority());
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -29,5 +29,6 @@ public enum OverlayPriority
|
||||
LOW,
|
||||
NONE,
|
||||
MED,
|
||||
HIGH
|
||||
HIGH,
|
||||
HIGHEST
|
||||
}
|
||||
|
||||
@@ -33,14 +33,7 @@ import java.awt.Point;
|
||||
import java.awt.Rectangle;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Provider;
|
||||
import javax.inject.Singleton;
|
||||
@@ -49,18 +42,13 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.GameState;
|
||||
import net.runelite.api.events.FocusChanged;
|
||||
import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.client.config.ConfigGroup;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.config.RuneLiteConfig;
|
||||
import net.runelite.client.events.PluginChanged;
|
||||
import net.runelite.client.input.KeyListener;
|
||||
import net.runelite.client.input.KeyManager;
|
||||
import net.runelite.client.input.MouseListener;
|
||||
import net.runelite.client.input.MouseManager;
|
||||
import net.runelite.client.plugins.PluginManager;
|
||||
import net.runelite.client.ui.FontManager;
|
||||
import net.runelite.client.ui.overlay.infobox.InfoBoxOverlay;
|
||||
import net.runelite.client.ui.overlay.tooltip.TooltipOverlay;
|
||||
@@ -83,19 +71,9 @@ public class OverlayRenderer extends MouseListener implements KeyListener
|
||||
private static final Color SNAP_CORNER_ACTIVE_COLOR = new Color(0, 255, 0, 100);
|
||||
private static final Color MOVING_OVERLAY_COLOR = new Color(255, 255, 0, 100);
|
||||
private static final Color MOVING_OVERLAY_ACTIVE_COLOR = new Color(255, 255, 0, 200);
|
||||
private static final String OVERLAY_CONFIG_PREFERRED_LOCATION = "_preferredLocation";
|
||||
private static final String OVERLAY_CONFIG_PREFERRED_POSITION = "_preferredPosition";
|
||||
private static final String OVERLAY_CONFIG_PREFERRED_SIZE = "_preferredSize";
|
||||
|
||||
private final PluginManager pluginManager;
|
||||
private final Provider<Client> clientProvider;
|
||||
private final InfoBoxOverlay infoBoxOverlay;
|
||||
private final ConfigManager configManager;
|
||||
private final OverlayManager overlayManager;
|
||||
private final RuneLiteConfig runeLiteConfig;
|
||||
private final TooltipOverlay tooltipOverlay;
|
||||
private final WorldMapOverlay worldMapOverlay;
|
||||
private final List<Overlay> allOverlays = new CopyOnWriteArrayList<>();
|
||||
private final String runeliteGroupName = RuneLiteConfig.class.getAnnotation(ConfigGroup.class).keyName();
|
||||
|
||||
// Overlay movement variables
|
||||
private final Point overlayOffset = new Point();
|
||||
@@ -109,52 +87,28 @@ public class OverlayRenderer extends MouseListener implements KeyListener
|
||||
private boolean chatboxHidden;
|
||||
private boolean isResizeable;
|
||||
private OverlayBounds snapCorners;
|
||||
private final Map<OverlayLayer, List<Overlay>> overlayLayerOverlayMap = Collections
|
||||
.synchronizedMap(new HashMap<>());
|
||||
|
||||
@Inject
|
||||
private OverlayRenderer(
|
||||
final Provider<Client> clientProvider,
|
||||
final PluginManager pluginManager,
|
||||
final OverlayManager overlayManager,
|
||||
final RuneLiteConfig runeLiteConfig,
|
||||
final MouseManager mouseManager,
|
||||
final KeyManager keyManager,
|
||||
final TooltipOverlay tooltipOverlay,
|
||||
final InfoBoxOverlay infoBoxOverlay,
|
||||
final WorldMapOverlay worldMapOverlay,
|
||||
final ConfigManager configManager,
|
||||
final RuneLiteConfig runeLiteConfig)
|
||||
final TooltipOverlay tooltipOverlay,
|
||||
final WorldMapOverlay worldMapOverlay)
|
||||
{
|
||||
this.clientProvider = clientProvider;
|
||||
this.pluginManager = pluginManager;
|
||||
this.tooltipOverlay = tooltipOverlay;
|
||||
this.infoBoxOverlay = infoBoxOverlay;
|
||||
this.worldMapOverlay = worldMapOverlay;
|
||||
this.configManager = configManager;
|
||||
this.overlayManager = overlayManager;
|
||||
this.runeLiteConfig = runeLiteConfig;
|
||||
keyManager.registerKeyListener(this);
|
||||
mouseManager.registerMouseListener(this);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameStateChanged(GameStateChanged event)
|
||||
{
|
||||
final Client client = clientProvider.get();
|
||||
|
||||
if (client == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (event.getGameState().equals(GameState.LOGGED_IN))
|
||||
{
|
||||
rebuildOverlays();
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onPluginChanged(PluginChanged event)
|
||||
{
|
||||
rebuildOverlays();
|
||||
// Register core overlays
|
||||
overlayManager.add(infoBoxOverlay);
|
||||
overlayManager.add(worldMapOverlay);
|
||||
overlayManager.add(tooltipOverlay);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
@@ -166,129 +120,10 @@ public class OverlayRenderer extends MouseListener implements KeyListener
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Force save overlay data
|
||||
* @param overlay overlay to save
|
||||
*/
|
||||
public void saveOverlay(final Overlay overlay)
|
||||
{
|
||||
saveOverlayPosition(overlay);
|
||||
saveOverlaySize(overlay);
|
||||
saveOverlayLocation(overlay);
|
||||
}
|
||||
|
||||
/**
|
||||
* Resets stored overlay position data
|
||||
* @param overlay overlay to reset
|
||||
*/
|
||||
public void resetOverlay(final Overlay overlay)
|
||||
{
|
||||
final String locationKey = overlay.getName() + OVERLAY_CONFIG_PREFERRED_LOCATION;
|
||||
final String positionKey = overlay.getName() + OVERLAY_CONFIG_PREFERRED_POSITION;
|
||||
final String sizeKey = overlay.getName() + OVERLAY_CONFIG_PREFERRED_SIZE;
|
||||
configManager.unsetConfiguration(runeliteGroupName, locationKey);
|
||||
configManager.unsetConfiguration(runeliteGroupName, positionKey);
|
||||
configManager.unsetConfiguration(runeliteGroupName, sizeKey);
|
||||
}
|
||||
|
||||
/**
|
||||
* Rebuild overlay cache for rendering
|
||||
*/
|
||||
public void rebuildOverlays()
|
||||
{
|
||||
final List<Overlay> overlays = Stream
|
||||
.concat(
|
||||
pluginManager.getPlugins()
|
||||
.stream()
|
||||
.filter(pluginManager::isPluginEnabled)
|
||||
.flatMap(plugin -> plugin.getOverlays().stream()),
|
||||
Stream.of(infoBoxOverlay, tooltipOverlay, worldMapOverlay))
|
||||
.filter(Objects::nonNull)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
sortOverlays(overlays);
|
||||
allOverlays.clear();
|
||||
allOverlays.addAll(overlays);
|
||||
|
||||
final Client client = clientProvider.get();
|
||||
|
||||
if (client == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
for (final Overlay overlay : overlays)
|
||||
{
|
||||
final Point location = loadOverlayLocation(overlay);
|
||||
overlay.setPreferredLocation(location);
|
||||
|
||||
final Dimension size = loadOverlaySize(overlay);
|
||||
overlay.setPreferredSize(size);
|
||||
|
||||
final OverlayPosition position = loadOverlayPosition(overlay);
|
||||
overlay.setPreferredPosition(position);
|
||||
}
|
||||
|
||||
rebuildOverlayLayers();
|
||||
}
|
||||
|
||||
private void rebuildOverlayLayers()
|
||||
{
|
||||
overlayLayerOverlayMap.clear();
|
||||
|
||||
for (final Overlay overlay : allOverlays)
|
||||
{
|
||||
OverlayLayer layer = overlay.getLayer();
|
||||
|
||||
if (overlay.getPreferredLocation() != null && overlay.getPreferredPosition() == null)
|
||||
{
|
||||
// When UNDER_WIDGET overlays are in preferred locations, move to
|
||||
// ABOVE_WIDGETS so that it can draw over interfaces
|
||||
if (layer == OverlayLayer.UNDER_WIDGETS)
|
||||
{
|
||||
layer = OverlayLayer.ABOVE_WIDGETS;
|
||||
}
|
||||
}
|
||||
|
||||
overlayLayerOverlayMap.compute(layer, (key, value) ->
|
||||
{
|
||||
if (value == null)
|
||||
{
|
||||
value = new CopyOnWriteArrayList<>();
|
||||
}
|
||||
|
||||
value.add(overlay);
|
||||
return value;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
static void sortOverlays(List<Overlay> overlays)
|
||||
{
|
||||
overlays.sort((a, b) ->
|
||||
{
|
||||
if (a.getPosition() != b.getPosition())
|
||||
{
|
||||
// This is so non-dynamic overlays render after dynamic
|
||||
// overlays, which are generally in the scene
|
||||
return a.getPosition().compareTo(b.getPosition());
|
||||
}
|
||||
|
||||
// For dynamic overlays, higher priority means to
|
||||
// draw *later* so it is on top.
|
||||
// For non-dynamic overlays, higher priority means
|
||||
// draw *first* so that they are closer to their
|
||||
// defined position.
|
||||
return a.getPosition() == OverlayPosition.DYNAMIC
|
||||
? a.getPriority().compareTo(b.getPriority())
|
||||
: b.getPriority().compareTo(a.getPriority());
|
||||
});
|
||||
}
|
||||
|
||||
public void render(Graphics2D graphics, final OverlayLayer layer)
|
||||
{
|
||||
final Client client = clientProvider.get();
|
||||
final List<Overlay> overlays = overlayLayerOverlayMap.get(layer);
|
||||
final List<Overlay> overlays = overlayManager.getOverlayLayers().get(layer);
|
||||
|
||||
if (client == null
|
||||
|| overlays == null
|
||||
@@ -410,7 +245,7 @@ public class OverlayRenderer extends MouseListener implements KeyListener
|
||||
final Point mousePoint = mouseEvent.getPoint();
|
||||
mousePosition.setLocation(mousePoint);
|
||||
|
||||
for (Overlay overlay : allOverlays)
|
||||
for (Overlay overlay : overlayManager.getOverlays())
|
||||
{
|
||||
if (overlay.getBounds().contains(mousePoint))
|
||||
{
|
||||
@@ -422,15 +257,20 @@ public class OverlayRenderer extends MouseListener implements KeyListener
|
||||
overlay.setPreferredPosition(null);
|
||||
overlay.setPreferredSize(null);
|
||||
overlay.setPreferredLocation(null);
|
||||
saveOverlay(overlay);
|
||||
rebuildOverlayLayers();
|
||||
overlayManager.resetOverlay(overlay);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
mousePoint.translate(-overlay.getBounds().x, -overlay.getBounds().y);
|
||||
overlayOffset.setLocation(mousePoint);
|
||||
final Point offset = new Point(mousePoint.x, mousePoint.y);
|
||||
offset.translate(-overlay.getBounds().x, -overlay.getBounds().y);
|
||||
overlayOffset.setLocation(offset);
|
||||
|
||||
mousePoint.translate(-offset.x, -offset.y);
|
||||
movedOverlay = overlay;
|
||||
movedOverlay.setPreferredPosition(null);
|
||||
movedOverlay.setPreferredLocation(mousePoint);
|
||||
overlayManager.saveOverlay(movedOverlay);
|
||||
}
|
||||
|
||||
mouseEvent.consume();
|
||||
@@ -470,7 +310,6 @@ public class OverlayRenderer extends MouseListener implements KeyListener
|
||||
mousePoint.translate(-overlayOffset.x, -overlayOffset.y);
|
||||
movedOverlay.setPreferredPosition(null);
|
||||
movedOverlay.setPreferredLocation(mousePoint);
|
||||
rebuildOverlayLayers();
|
||||
mouseEvent.consume();
|
||||
}
|
||||
|
||||
@@ -494,11 +333,13 @@ public class OverlayRenderer extends MouseListener implements KeyListener
|
||||
if (snapCorner.contains(mouseEvent.getPoint()))
|
||||
{
|
||||
OverlayPosition position = snapCorners.fromBounds(snapCorner);
|
||||
|
||||
if (position == movedOverlay.getPosition())
|
||||
{
|
||||
// overlay moves back to default position
|
||||
position = null;
|
||||
}
|
||||
|
||||
movedOverlay.setPreferredPosition(position);
|
||||
movedOverlay.setPreferredLocation(null); // from dragging
|
||||
break;
|
||||
@@ -506,9 +347,7 @@ public class OverlayRenderer extends MouseListener implements KeyListener
|
||||
}
|
||||
}
|
||||
|
||||
saveOverlayPosition(movedOverlay);
|
||||
saveOverlayLocation(movedOverlay);
|
||||
rebuildOverlayLayers();
|
||||
overlayManager.saveOverlay(movedOverlay);
|
||||
movedOverlay = null;
|
||||
mouseEvent.consume();
|
||||
}
|
||||
@@ -650,76 +489,4 @@ public class OverlayRenderer extends MouseListener implements KeyListener
|
||||
new Rectangle(bottomRightPoint, SNAP_CORNER_SIZE),
|
||||
new Rectangle(rightChatboxPoint, SNAP_CORNER_SIZE));
|
||||
}
|
||||
|
||||
private void saveOverlayLocation(final Overlay overlay)
|
||||
{
|
||||
final String key = overlay.getName() + OVERLAY_CONFIG_PREFERRED_LOCATION;
|
||||
if (overlay.getPreferredLocation() != null)
|
||||
{
|
||||
configManager.setConfiguration(
|
||||
runeliteGroupName,
|
||||
key,
|
||||
overlay.getPreferredLocation());
|
||||
}
|
||||
else
|
||||
{
|
||||
configManager.unsetConfiguration(
|
||||
runeliteGroupName,
|
||||
key);
|
||||
}
|
||||
}
|
||||
|
||||
private void saveOverlaySize(final Overlay overlay)
|
||||
{
|
||||
final String key = overlay.getName() + OVERLAY_CONFIG_PREFERRED_SIZE;
|
||||
if (overlay.getPreferredSize() != null)
|
||||
{
|
||||
configManager.setConfiguration(
|
||||
runeliteGroupName,
|
||||
key,
|
||||
overlay.getPreferredSize());
|
||||
}
|
||||
else
|
||||
{
|
||||
configManager.unsetConfiguration(
|
||||
runeliteGroupName,
|
||||
key);
|
||||
}
|
||||
}
|
||||
|
||||
private void saveOverlayPosition(final Overlay overlay)
|
||||
{
|
||||
final String key = overlay.getName() + OVERLAY_CONFIG_PREFERRED_POSITION;
|
||||
if (overlay.getPreferredPosition() != null)
|
||||
{
|
||||
configManager.setConfiguration(
|
||||
runeliteGroupName,
|
||||
key,
|
||||
overlay.getPreferredPosition());
|
||||
}
|
||||
else
|
||||
{
|
||||
configManager.unsetConfiguration(
|
||||
runeliteGroupName,
|
||||
key);
|
||||
}
|
||||
}
|
||||
|
||||
private Point loadOverlayLocation(final Overlay overlay)
|
||||
{
|
||||
final String key = overlay.getName() + OVERLAY_CONFIG_PREFERRED_LOCATION;
|
||||
return configManager.getConfiguration(runeliteGroupName, key, Point.class);
|
||||
}
|
||||
|
||||
private Dimension loadOverlaySize(final Overlay overlay)
|
||||
{
|
||||
final String key = overlay.getName() + OVERLAY_CONFIG_PREFERRED_SIZE;
|
||||
return configManager.getConfiguration(runeliteGroupName, key, Dimension.class);
|
||||
}
|
||||
|
||||
private OverlayPosition loadOverlayPosition(final Overlay overlay)
|
||||
{
|
||||
final String locationKey = overlay.getName() + OVERLAY_CONFIG_PREFERRED_POSITION;
|
||||
return configManager.getConfiguration(runeliteGroupName, locationKey, OverlayPosition.class);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,13 +54,17 @@ public class InfoBoxOverlay extends Overlay
|
||||
private final RuneLiteConfig config;
|
||||
|
||||
@Inject
|
||||
public InfoBoxOverlay(InfoBoxManager infoboxManager, TooltipManager tooltipManager, Provider<Client> clientProvider, RuneLiteConfig config)
|
||||
private InfoBoxOverlay(
|
||||
InfoBoxManager infoboxManager,
|
||||
TooltipManager tooltipManager,
|
||||
Provider<Client> clientProvider,
|
||||
RuneLiteConfig config)
|
||||
{
|
||||
setPosition(OverlayPosition.TOP_LEFT);
|
||||
this.tooltipManager = tooltipManager;
|
||||
this.infoboxManager = infoboxManager;
|
||||
this.clientProvider = clientProvider;
|
||||
this.config = config;
|
||||
setPosition(OverlayPosition.TOP_LEFT);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -50,12 +50,12 @@ public class TooltipOverlay extends Overlay
|
||||
private final Provider<Client> clientProvider;
|
||||
|
||||
@Inject
|
||||
public TooltipOverlay(Provider<Client> clientProvider, TooltipManager tooltipManager)
|
||||
private TooltipOverlay(Provider<Client> clientProvider, TooltipManager tooltipManager)
|
||||
{
|
||||
this.clientProvider = clientProvider;
|
||||
this.tooltipManager = tooltipManager;
|
||||
setPosition(OverlayPosition.TOOLTIP);
|
||||
setPriority(OverlayPriority.HIGH);
|
||||
setPriority(OverlayPriority.HIGHEST);
|
||||
setLayer(OverlayLayer.ALWAYS_ON_TOP);
|
||||
}
|
||||
|
||||
|
||||
@@ -63,13 +63,16 @@ public class WorldMapOverlay extends Overlay
|
||||
private final Provider<Client> clientProvider;
|
||||
|
||||
@Inject
|
||||
private WorldMapOverlay(Provider<Client> clientProvider, WorldMapPointManager worldMapPointManager,
|
||||
MouseManager mouseManager, WorldMapOverlayMouseListener worldMapOverlayMouseListener)
|
||||
private WorldMapOverlay(
|
||||
Provider<Client> clientProvider,
|
||||
WorldMapPointManager worldMapPointManager,
|
||||
MouseManager mouseManager,
|
||||
WorldMapOverlayMouseListener worldMapOverlayMouseListener)
|
||||
{
|
||||
this.clientProvider = clientProvider;
|
||||
this.worldMapPointManager = worldMapPointManager;
|
||||
setPosition(OverlayPosition.DYNAMIC);
|
||||
setPriority(OverlayPriority.HIGH);
|
||||
setPriority(OverlayPriority.HIGHEST);
|
||||
setLayer(OverlayLayer.ALWAYS_ON_TOP);
|
||||
mouseManager.registerMouseListener(worldMapOverlayMouseListener);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user