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.ConfigChanged;
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.input.KeyManager;
import net.runelite.client.plugins.Plugin;
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.LayoutSolver;
import net.runelite.client.ui.overlay.OverlayManager;
@@ -236,6 +236,7 @@ public class RaidsPlugin extends Plugin
chatCommandManager.unregisterCommand(LAYOUT_COMMAND);
overlayManager.remove(overlay);
infoBoxManager.removeInfoBox(timer);
timer = null;
inRaidChambers = false;
reset();
keyManager.unregisterKeyListener(screenshotHotkeyListener);
@@ -299,7 +300,7 @@ public class RaidsPlugin extends Plugin
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);
infoBoxManager.addInfoBox(timer);
}
@@ -498,25 +499,9 @@ public class RaidsPlugin extends Plugin
private void updateInfoBoxState()
{
if (timer == null)
{
return;
}
if (inRaidChambers && config.raidsTimer())
{
if (!infoBoxManager.getInfoBoxes().contains(timer))
{
infoBoxManager.addInfoBox(timer);
}
}
else
if (timer != null && !inRaidChambers)
{
infoBoxManager.removeInfoBox(timer);
}
if (!inRaidChambers)
{
timer = null;
}
}

View File

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