scretemonge / 3d-weather Goto Github PK
View Code? Open in Web Editor NEWLicense: BSD 2-Clause "Simplified" License
License: BSD 2-Clause "Simplified" License
I've noticed of recent I've only seen snow as my weather from 3DW. I believe this is likely linked to the season type setting. It is currently set to dynamic and thus I believe it think's it's winter and must snow. However I'd like some viarety on the weather produced. Is it possible to give an "Disable" option for season type? So that it may produce any weather at any time of year?
Hi, great plug-in!
It does not seem to override the automatic seasons set bij HD117. So they still have priority over the 7 day cycle from your plug-in.
Also it would be great if the skybox could be changed dynamically instead of the skybox from the HD117 season.
Also would be amazing if it was possible to add night/day cycles by adjusting the 117HD brightness/saturation settings dynamically.
Loving everything else!
Quite annoying that I have all in game sounds muted but can still hear the rain and thunder
Nothing happens at all when the plugin is loaded and enabled. The client logs only show this message:
2023-06-28 22:16:21 AKDT [Client] WARN n.runelite.client.eventbus.EventBus - Uncaught exception in event subscriber
java.lang.IllegalArgumentException: bound must be positive
at java.base/java.util.Random.nextInt(Unknown Source)
at com.weather3d.CyclesPlugin.renderWeather(CyclesPlugin.java:704)
at com.weather3d.CyclesPlugin.handleWeatherChanges(CyclesPlugin.java:659)
at com.weather3d.CyclesPlugin.onGameTick(CyclesPlugin.java:204)
at net.runelite.client.eventbus.EventBus$Subscriber.invoke(EventBus.java:70)
at net.runelite.client.eventbus.EventBus.post(EventBus.java:223)
at net.runelite.client.callback.Hooks.tick(Hooks.java:209)
at client.pa(client.java:52780)
at client.bn(client.java)
at ba.al(ba.java:382)
at ba.run(ba.java:361)
at java.base/java.lang.Thread.run(Unknown Source)
This message will only occur once after starting the client, uninstalling and reinstalling does not cause more messages.
I really like this plugin but there are some things which I would love to see changed / fixed.
It looks like a certain pattern is being cycled, so I see a lot of patterns returning (specifically for the rain drops) which really bugs me when I'm in the same area for a little bit.
Included video:
https://gyazo.com/4e3e1a80f0dc5625555eb924fae05416
Especially in the bottom right you can see this pattern of 2 drops repeating every so often.
The option between having dynamic or set weather is really appealing to me, I am fascinated by the dynamic option in particular, naturally I was wondering how it would determine when and what to update to. The readme lists that it updates every 7 days. Which for me personally isn't often enough - I would like the weather to update multiple times a day, ideally every hour or 30 minutes - This way when playing for an extended period of time doing the same content (rooftops, multiple herb runs a day, you name it) it looks different every time because of the weather.
It should of course be possible for the same weather condition to occur multiple times in a row. I would even encourage this as it could be nicely combined with the weather density setting - think more intense rain for 30 minutes before going back to light rain and back to sunny.
It would be nice if the weather density would dynamically change so it makes more sense with the current weather pattern. Having the weather ease into it would make it more emmersive e.g. sunny to light rain -> heavy rain -> storm -> heavy rain -> light rain -> fog.
A toggleable day/night cycle would be completely next level.
Maybe if not apart of this plug-in, but a new one?
I made a github account JUST to suggest this.
The weather plug-in blew me away and figured ScreteMonge would be my best bet for a plug-in suggestion!
When it starts raining and the sound effects start playing, the sounds don't stop when leaving a rainy biome.
All weather objects spawn on the floor you're on. This always looks a little wonky but is particularly pronounced with the Rain Model/Animation due to the appearance of splashing/puddles. I do not currently know of any Rain Model/Animation that would look better, and it doesn't appear possible to set the Models to the ground floor whenever you're above the ground floor.
This may be unfixable, but will require further investigation post-release.
It's really bad the last 24 hours. All zones.
can you make it so ambient sounds from the plugin turn off when OSRS ambient sounds are turned off in game? or maybe a toggleable option to do so?
I would love to be able to keep the weather dynamic, but still enable only certain weather types. For example, I really like rainy, stormy, and snowy, but not a huge fan of cloudy, starry, or foggy. It would be perfect if I could just uncheck "cloudy", "starry" and "foggy" from the list of weather types that are chosen.
I can help implement it if that's something we'd be interested in implementing.
I think it would be great to have a Snow Storm type for heavy snowfall, thunder, and wind.
And then decreasing the lightning flash intensity so that it's not blinding, but still flashes on the screen. Or trying to link it into the skybox so just the skybox flashes.
Love the plugin either way!
Fog just doesn't feel like fog to me, looks like stink lines or wind that doesnt move or even smoke.
a better fit for it in my opinion would be to make it windy weather instead and make the animation of the fog travel in a set direction to kind of emulate a gust of wind moving across the screen instead of moving randomly.
or the option to disable certain weather cycles, like fog really takes me out of it and ruins the immersion that the other weather cycles bring.
I dont know if theres much you can do with fog due to the issues with the skybox and having to compete with more popular HD plugins.
Is it possible to implement a compact overlay variant? It could have smaller icons and not display text.
I think it's pretty unwieldy to have to adjust the volume for the ambiance via the plugin settings. If possible, tying it to the existing volume knobs or ideally even adding a separate knob in that menu would be amazing.
Due to the demands of setting up to 1400 objects on the screen and animating them, performance is not at an optimum - especially at higher Weather Densities. If you're experiencing this, could you please report the following:
I love the high density weather so much, but specifically the clouds TANK my performance. I'd love to be able to configure the density of clouds separately so I can keep them enabled on high density without dropping my FPS to sub 20.
Hey! So I noticed I was having lots of continuous snow so I opened the overlay and noticed some weird places where set to the iceberg biome. Idk if that's what its called but it's the one with the 3 floating ice blocks.
The biome of places like Lumbridge and Varrock change to that biome when set to winter, dynamic, or HD 117. When Spring, Summer, or Autumn are selected the biome changes back to the location's normal one.
Request for Dynamic Weather Type to feature varying Weather Density. The density will still have to follow the general structure of current Weather Density settings for performance (eg. if a player has WD set to Medium, Dynamic WD cannot spawn more objects than the current Medium setting)
Black tiles gradually appear underneath boats in fremennik and fish sack agility end object disappears when doing laps on the rooftop agility course, usually after doing rooftop laps for a little while, 15-20ish laps
starts with 1 or 2 tiles and gets worse every transition between overworld and rooftop until all are missing as seen above
happens on other courses as well
also does this without 117hd being active as well just to clarify
it seems to be the same objects/tiles every time that get unloaded
Thank you!
also wanted to say thank you for all the hard work you did here, this is my favorite plugin now i'll share it with all my friends
Hello,
I've really enjoyed this plugin for a long time and typically always leave it on. While doing clues recently I started to run into client freezes:
The game stops rendering and seems un-interactable, even when toggling the GPU plugin.
I found I was able to consistently recreate this by using the minecart from the GE to Keldagrim, but not in RuneLite safe mode. Iterating through my plugin hub plugins, I found 3D Weather to be the consistent problem. Seems to be independent of the GPU plugin being on or off.
It seemed to only happen when transitioning from the overworld to an underground area, as I can cause a freeze going from GE to Keldagrim, or from Edgeville to Edgeville dungeon, but not the other way around. These are my settings for the plugin (I like rain sounds):
With "Disable Weather Underground" unticked however, I don't find any issues.
It seems to have to do with the weather type setting. These ones cause the client to freeze:
Interestingly, ashfall doesn't cause any problems despite being another one-tile effect (I did enable it to test).
Happy to provide any more info that could be of help.
I absolutely love the plug in, thank you for creating it and making the game more immersive.
Was curious if additional ambience could be added, for when its sunny you can hear the sound of crickets/birds. Or windchimes during summer/windy?
Example: https://freesound.org/people/Nikodemus_Christian/sounds/266632/
Thank you again.
It would be cool if we could enable a setting that would mimic the weather outside locally within runescape.
Ex. It is raining outside, so it is raining in runescape
Ex. It is summer where I am, so it should be summer in runescape.
Other enhancements: It is 1am locally, it is dark in runescape. (Might be out of scope of 3D-weather)
Could possibly call: https://open-meteo.com/
One popular way is to use the IP geolocation service to determine the approximate location based on the IP address of the local PC.
Here's an example of how you can use the "ip-api" service to get the approximate latitude and longitude of the local PC:
Make an HTTP request to the "ip-api" service with the local PC's public IP address.
Parse the JSON response to extract the latitude and longitude.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class LocalPCGeolocation {
public static void main(String[] args) {
try {
String publicIP = getPublicIP();
if (publicIP != null) {
String geoLocationData = getGeolocationData(publicIP);
if (geoLocationData != null) {
double latitude = parseLatitude(geoLocationData);
double longitude = parseLongitude(geoLocationData);
System.out.println("Latitude: " + latitude);
System.out.println("Longitude: " + longitude);
} else {
System.out.println("Failed to fetch geolocation data.");
}
} else {
System.out.println("Failed to get public IP address.");
}
} catch (IOException e) {
e.printStackTrace();
}
}
private static String getPublicIP() throws IOException {
URL url = new URL("https://api.ipify.org?format=json");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder response = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
response.append(line);
}
reader.close();
connection.disconnect();
return response.toString();
}
private static String getGeolocationData(String publicIP) throws IOException {
URL url = new URL("http://ip-api.com/json/" + publicIP);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder response = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
response.append(line);
}
reader.close();
connection.disconnect();
return response.toString();
}
private static double parseLatitude(String geoLocationData) {
// Parse the latitude from the JSON response
// Assuming the JSON structure is {"lat": 123.456, ...}
int startIndex = geoLocationData.indexOf("\"lat\":") + 6;
int endIndex = geoLocationData.indexOf(",", startIndex);
return Double.parseDouble(geoLocationData.substring(startIndex, endIndex));
}
private static double parseLongitude(String geoLocationData) {
// Parse the longitude from the JSON response
// Assuming the JSON structure is {"lon": 123.456, ...}
int startIndex = geoLocationData.indexOf("\"lon\":") + 6;
int endIndex = geoLocationData.indexOf(",", startIndex);
return Double.parseDouble(geoLocationData.substring(startIndex, endIndex));
}
}
Not sure if plugins can adjust one another's configs but I think it'd be cool if during winter and storms the fog were automatically set to a thick black, and during summer it were clear.
Thanks for making the plugin, this is by far my new favourite feature.
I noticed that the plugin treats the inside of the clan hall as though it was outside. Maybe this is a problem on Jagex's side. If so, I think disabling weather while in the clan hall is a good workaround.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.