Make VarbitChanged only fire once, after everything has settled
This commit is contained in:
@@ -191,6 +191,8 @@ public interface Client extends GameEngine
|
||||
@VisibleForDevtools
|
||||
void setVarbitValue(int varbit, int value);
|
||||
|
||||
boolean shouldPostVarbitEvent();
|
||||
|
||||
HashTable getWidgetFlags();
|
||||
|
||||
HashTable getComponentTable();
|
||||
|
||||
@@ -64,6 +64,7 @@ import net.runelite.api.events.MenuOptionClicked;
|
||||
import net.runelite.api.events.PostItemComposition;
|
||||
import net.runelite.api.events.ProjectileMoved;
|
||||
import net.runelite.api.events.SetMessage;
|
||||
import net.runelite.api.events.VarbitChanged;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import static net.runelite.api.widgets.WidgetInfo.WORLD_MAP;
|
||||
import net.runelite.client.Notifier;
|
||||
@@ -102,6 +103,7 @@ public class Hooks
|
||||
private static final GameTick tick = new GameTick();
|
||||
private static final DrawManager renderHooks = injector.getInstance(DrawManager.class);
|
||||
private static final Notifier notifier = injector.getInstance(Notifier.class);
|
||||
private static final VarbitChanged varbitChanged = new VarbitChanged();
|
||||
|
||||
private static Dimension lastStretchedDimensions;
|
||||
private static BufferedImage stretchedImage;
|
||||
@@ -116,6 +118,11 @@ public class Hooks
|
||||
{
|
||||
shouldProcessGameTick = false;
|
||||
|
||||
if (client.shouldPostVarbitEvent())
|
||||
{
|
||||
eventBus.post(varbitChanged);
|
||||
}
|
||||
|
||||
_deferredEventBus.replay();
|
||||
|
||||
eventBus.post(tick);
|
||||
|
||||
@@ -74,7 +74,6 @@ import net.runelite.api.events.PlayerMenuOptionsChanged;
|
||||
import net.runelite.api.events.PlayerSpawned;
|
||||
import net.runelite.api.events.ResizeableChanged;
|
||||
import net.runelite.api.events.UsernameChanged;
|
||||
import net.runelite.api.events.VarbitChanged;
|
||||
import net.runelite.api.events.WidgetLoaded;
|
||||
import net.runelite.api.mixins.Copy;
|
||||
import net.runelite.api.mixins.FieldHook;
|
||||
@@ -129,6 +128,9 @@ public abstract class RSClientMixin implements RSClient
|
||||
@Inject
|
||||
private static int inventoryDragDelay;
|
||||
|
||||
@Inject
|
||||
private static boolean hasVarbitChanged;
|
||||
|
||||
@Inject
|
||||
@Override
|
||||
public boolean isInterpolatePlayerAnimations()
|
||||
@@ -815,8 +817,16 @@ public abstract class RSClientMixin implements RSClient
|
||||
@Inject
|
||||
public static void settingsChanged(int idx)
|
||||
{
|
||||
VarbitChanged varbitChanged = new VarbitChanged();
|
||||
eventBus.post(varbitChanged);
|
||||
hasVarbitChanged = true;
|
||||
}
|
||||
|
||||
@Inject
|
||||
@Override
|
||||
public boolean shouldPostVarbitEvent()
|
||||
{
|
||||
boolean ret = hasVarbitChanged;
|
||||
hasVarbitChanged = false;
|
||||
return ret;
|
||||
}
|
||||
|
||||
@FieldHook("isResized")
|
||||
|
||||
Reference in New Issue
Block a user