camera: add option to preserve yaw when world hopping
This commit is contained in:
@@ -191,4 +191,15 @@ public interface CameraConfig extends Config
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ConfigItem(
|
||||||
|
keyName = "preserveYaw",
|
||||||
|
name = "Preserve yaw on world hop",
|
||||||
|
description = "Preserves the camera yaw (left/right) when world hopping.",
|
||||||
|
position = 14
|
||||||
|
)
|
||||||
|
default boolean preserveYaw()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ import net.runelite.api.VarPlayer;
|
|||||||
import net.runelite.api.events.BeforeRender;
|
import net.runelite.api.events.BeforeRender;
|
||||||
import net.runelite.api.events.ClientTick;
|
import net.runelite.api.events.ClientTick;
|
||||||
import net.runelite.api.events.FocusChanged;
|
import net.runelite.api.events.FocusChanged;
|
||||||
|
import net.runelite.api.events.GameStateChanged;
|
||||||
import net.runelite.api.events.MenuEntryAdded;
|
import net.runelite.api.events.MenuEntryAdded;
|
||||||
import net.runelite.api.events.ScriptCallbackEvent;
|
import net.runelite.api.events.ScriptCallbackEvent;
|
||||||
import net.runelite.api.events.ScriptPreFired;
|
import net.runelite.api.events.ScriptPreFired;
|
||||||
@@ -89,6 +90,7 @@ public class CameraPlugin extends Plugin implements KeyListener, MouseListener
|
|||||||
* Whether or not the current menu has any non-ignored menu entries
|
* Whether or not the current menu has any non-ignored menu entries
|
||||||
*/
|
*/
|
||||||
private boolean menuHasEntries;
|
private boolean menuHasEntries;
|
||||||
|
private int savedCameraYaw;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private Client client;
|
private Client client;
|
||||||
@@ -418,6 +420,24 @@ public class CameraPlugin extends Plugin implements KeyListener, MouseListener
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Subscribe
|
||||||
|
public void onGameStateChanged(GameStateChanged gameStateChanged)
|
||||||
|
{
|
||||||
|
switch (gameStateChanged.getGameState())
|
||||||
|
{
|
||||||
|
case HOPPING:
|
||||||
|
savedCameraYaw = client.getMapAngle();
|
||||||
|
break;
|
||||||
|
case LOGGED_IN:
|
||||||
|
if (savedCameraYaw != 0 && config.preserveYaw())
|
||||||
|
{
|
||||||
|
client.setCameraYawTarget(savedCameraYaw);
|
||||||
|
}
|
||||||
|
savedCameraYaw = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The event that is triggered when a mouse button is pressed
|
* The event that is triggered when a mouse button is pressed
|
||||||
* In this method the right click is changed to a middle-click to enable rotating the camera
|
* In this method the right click is changed to a middle-click to enable rotating the camera
|
||||||
|
|||||||
Reference in New Issue
Block a user