diff --git a/runelite-api/src/main/java/net/runelite/api/Constants.java b/runelite-api/src/main/java/net/runelite/api/Constants.java index 48ff3fc4bf..5d3259ed5b 100644 --- a/runelite-api/src/main/java/net/runelite/api/Constants.java +++ b/runelite-api/src/main/java/net/runelite/api/Constants.java @@ -82,6 +82,11 @@ public class Constants public static final int TILE_FLAG_BRIDGE = 2; + /** + * The height of the overworld, in tiles. Coordinates above this are in caves and other such zones. + */ + public static final int OVERWORLD_MAX_Y = 4160; + /** * The number of milliseconds in a client tick. *
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skybox/SkyboxPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/skybox/SkyboxPlugin.java
index 55b1a37017..468e23a201 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/skybox/SkyboxPlugin.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/skybox/SkyboxPlugin.java
@@ -25,13 +25,17 @@
package net.runelite.client.plugins.skybox;
import com.google.inject.Inject;
+import com.google.inject.Provides;
+import java.awt.Color;
import java.io.IOException;
import net.runelite.api.Client;
+import net.runelite.api.Constants;
import net.runelite.api.GameState;
import net.runelite.api.Player;
import net.runelite.api.coords.LocalPoint;
import net.runelite.api.events.BeforeRender;
import net.runelite.api.events.GameStateChanged;
+import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
@@ -47,6 +51,9 @@ public class SkyboxPlugin extends Plugin
@Inject
private Client client;
+ @Inject
+ private SkyboxPluginConfig config;
+
private Skybox skybox;
@Override
@@ -62,6 +69,12 @@ public class SkyboxPlugin extends Plugin
skybox = null;
}
+ @Provides
+ SkyboxPluginConfig provideConfig(ConfigManager configManager)
+ {
+ return configManager.getConfig(SkyboxPluginConfig.class);
+ }
+
private int mapChunk(int cx, int cy, int plane)
{
cx -= client.getBaseX() / 8;
@@ -91,6 +104,14 @@ public class SkyboxPlugin extends Plugin
return;
}
+ Color overrideColor = player.getWorldLocation().getY() < Constants.OVERWORLD_MAX_Y
+ ? config.customOverworldColor() : config.customOtherColor();
+ if (overrideColor != null)
+ {
+ client.setSkyboxColor(overrideColor.getRGB());
+ return;
+ }
+
int px, py;
if (client.getOculusOrbState() == 1)
{
@@ -99,7 +120,7 @@ public class SkyboxPlugin extends Plugin
}
else
{
- LocalPoint p = client.getLocalPlayer().getLocalLocation();
+ LocalPoint p = player.getLocalLocation();
px = p.getX();
py = p.getY();
}
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skybox/SkyboxPluginConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/skybox/SkyboxPluginConfig.java
new file mode 100644
index 0000000000..3968724b72
--- /dev/null
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/skybox/SkyboxPluginConfig.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2019 logarrhytmic