raid plugin: simplify timer infobox logic by overriding render

This commit is contained in:
Adam
2020-09-21 17:08:10 -04:00
parent cbf48e7ef2
commit 1777b2d6bd
2 changed files with 15 additions and 22 deletions

View File

@@ -78,12 +78,12 @@ import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.events.ChatInput; import net.runelite.client.events.ChatInput;
import net.runelite.client.events.ConfigChanged; import net.runelite.client.events.ConfigChanged;
import net.runelite.client.events.OverlayMenuClicked; import net.runelite.client.events.OverlayMenuClicked;
import net.runelite.client.plugins.raids.events.RaidReset;
import net.runelite.client.plugins.raids.events.RaidScouted;
import net.runelite.client.game.SpriteManager; import net.runelite.client.game.SpriteManager;
import net.runelite.client.input.KeyManager; import net.runelite.client.input.KeyManager;
import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginDescriptor;
import net.runelite.client.plugins.raids.events.RaidReset;
import net.runelite.client.plugins.raids.events.RaidScouted;
import net.runelite.client.plugins.raids.solver.Layout; import net.runelite.client.plugins.raids.solver.Layout;
import net.runelite.client.plugins.raids.solver.LayoutSolver; import net.runelite.client.plugins.raids.solver.LayoutSolver;
import net.runelite.client.ui.overlay.OverlayManager; import net.runelite.client.ui.overlay.OverlayManager;
@@ -236,6 +236,7 @@ public class RaidsPlugin extends Plugin
chatCommandManager.unregisterCommand(LAYOUT_COMMAND); chatCommandManager.unregisterCommand(LAYOUT_COMMAND);
overlayManager.remove(overlay); overlayManager.remove(overlay);
infoBoxManager.removeInfoBox(timer); infoBoxManager.removeInfoBox(timer);
timer = null;
inRaidChambers = false; inRaidChambers = false;
reset(); reset();
keyManager.unregisterKeyListener(screenshotHotkeyListener); keyManager.unregisterKeyListener(screenshotHotkeyListener);
@@ -299,7 +300,7 @@ public class RaidsPlugin extends Plugin
if (config.raidsTimer() && message.startsWith(RAID_START_MESSAGE)) if (config.raidsTimer() && message.startsWith(RAID_START_MESSAGE))
{ {
timer = new RaidsTimer(this, Instant.now()); timer = new RaidsTimer(this, Instant.now(), config);
spriteManager.getSpriteAsync(TAB_QUESTS_BROWN_RAIDING_PARTY, 0, timer); spriteManager.getSpriteAsync(TAB_QUESTS_BROWN_RAIDING_PARTY, 0, timer);
infoBoxManager.addInfoBox(timer); infoBoxManager.addInfoBox(timer);
} }
@@ -498,25 +499,9 @@ public class RaidsPlugin extends Plugin
private void updateInfoBoxState() private void updateInfoBoxState()
{ {
if (timer == null) if (timer != null && !inRaidChambers)
{
return;
}
if (inRaidChambers && config.raidsTimer())
{
if (!infoBoxManager.getInfoBoxes().contains(timer))
{
infoBoxManager.addInfoBox(timer);
}
}
else
{ {
infoBoxManager.removeInfoBox(timer); infoBoxManager.removeInfoBox(timer);
}
if (!inRaidChambers)
{
timer = null; timer = null;
} }
} }

View File

@@ -33,9 +33,10 @@ import lombok.Setter;
import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.Plugin;
import net.runelite.client.ui.overlay.infobox.InfoBox; import net.runelite.client.ui.overlay.infobox.InfoBox;
public class RaidsTimer extends InfoBox class RaidsTimer extends InfoBox
{ {
private final Instant startTime; private final Instant startTime;
private final RaidsConfig config;
private Instant floorTime; private Instant floorTime;
private LocalTime time; private LocalTime time;
private LocalTime firstFloorTime; private LocalTime firstFloorTime;
@@ -46,10 +47,11 @@ public class RaidsTimer extends InfoBox
@Setter @Setter
private boolean stopped; private boolean stopped;
public RaidsTimer(Plugin plugin, Instant startTime) public RaidsTimer(Plugin plugin, Instant startTime, RaidsConfig raidsConfig)
{ {
super(null, plugin); super(null, plugin);
this.startTime = startTime; this.startTime = startTime;
this.config = raidsConfig;
floorTime = startTime; floorTime = startTime;
stopped = false; stopped = false;
} }
@@ -146,4 +148,10 @@ public class RaidsTimer extends InfoBox
return builder.toString(); return builder.toString();
} }
@Override
public boolean render()
{
return config.raidsTimer();
}
} }