I'll get straight into it. The mod will function the same as vanilla minecraft but a few settings are added via commands. This will be a bit of a technical post, so yeah. This doesn't add actual seasons, it's just for Day Night length changer. (Also someone explain how do I make the Math text boxes in this forum, I'm kinda new if you can see my post count xD)
Basic Attributes -
1. Year Length: Default value - 360 (Year length in in-game days, must be integer, and atleast 4)
2. Latitude: Default value - 0 (Range from -90 to +90, 0 gives regular Minecraft Day-Night Cycle. This doesn't effect the actual biomes or anything)
3. Day Length: Default value - 24000 (Day length in ticks)
4. Tilt: Default value: 22.5 (A quarter of 90 and quite close to Earth's actual tilt, can be set between 0.000001 to 89.999999 (double type would probably work)
I will be using Default values for all cases below except latitude for understanding purposes.
Sun Path -
The sky in Minecraft will be independent of the Sun. The Sun will be a seperate entity and it's path is described here. (I have images on paper and don't know how I can attach it here, but I will add it later)
The Sun's path it follows during the day is called the sun path. The path itself can be written as a locus on the sphere with a diametric plane as the horizon and the zenith on the top. The locus will make a certain angle with the diametric plane (i.e. the surface of the world), much like real life, which equals (90 - latitude) to the South. This article should help visualizing:
On the first day of each year, i.e. Day 0 or 360 and so on, the sunrise will occur perfectly East. As the year progresses into Summer, afted a quarter of the year elapses, the Sun's path moves upwards and the Sun rises further North, as you can see in the wikipedia page. The function of offset angle, from the sky sphere centre within the plane perpendicular to Sun path on Day 1, can be either Linear or Sinusoidal (neither are perfect, but Sinusoidal is better comparison to irl), with the peak angle being 22.5 degrees off on Day 90 (default). It returns to the original path by Day 180, and moves 22.5 degrees in the other direction by Day 270. This automatically causes Sunrise and Sunset timings to change every day and results in Midnight sun in places above 67.5 degrees of latitude automatically, for example. We can also tweak the twilight to occur based on Sun angle with the horizon instead of time after Sunset/before Sunrise.
A feature that can be added to debug any issues is the ability to see "time" in hours and minutes, relative to the day, with Solar Noon being at exactly 12:00 (this value should be changed using a command). I think these are all the features I would find good enough. Thank you for reading! Please let me know if you are interested, I can explain parts in more detail using proper formulae.
Hi, firstly, have you seen B3M? It also has a Curse link and does what you're after in a way that works. It allows you to set the latitude and this translates to length of day/night during different seasons. There are configs to adjust the year length.. all of that.
Secondly, if you find a mod that does this for Fabric, please let me know. I've used B3M many times over the years. It truly is great. I just wanted to play with some of the features from the 1.18 update of Minecraft.