I'd like to see minecraft SMP servers capable of swapping between different sky configurations. The net result: a server admin could create the illusion that the world has moved to a different solar system or drifted away from its star. The command to switch would accept different options based on what the first option is; no options for "normal" and "transit" in the first argument; no 3rd argument if "sun","pulsar" is chosen; appropriate arguments for the rest as example'd below.
The different sky states could be:
Normal (one sun, one moon)
Transiting (no sun, no moon, faster scrolling of stars, without change in the speed of time ticks)
Custom (which would take data values for sun and moon as below)
Star values:
Normal
Binary Star (two suns) - options for sizes/colors
Dying Star - one greatly expanding star, pre-collapse, less light in daytime than normal; options for color, and noon light level (from 0.1 to 0.9)
Pulsar - slow pulsing of daylight, tiny white star, looks like it's spinning, pulse peaks brighter than normal; no options (already too CPU intensive)
Moon options:
Normal
X qty of moons
Material list (each material is the skin on one moon; if list is shorter than X qty, the last one is repeated)
Scale (list, with 1 = normal moon)
Angle (list of angles from which to offset this moon from center; 0 allowed only if distance is also 0)
Distance (list of distances from whichi to offset moon from center; 0 always allowed)
Examples:
Two moons, one a large normal-looking one, one smaller made of smooth stone and offset 24 degrees / 10 pixels from center of "normal moon path")
setSky("moon", 2, "moon,stone", "1.2,0.9", "0,24", "0,10")
The planet is wandering in space; sun and moon absent; morning will not happen until a new command is given
setSky("transit")
Admin is happy with his changes; server should enact edits made since last commit (according to internal rules appropriate to the change, such as "enact for next sunset" for moon/transit, or "enact for next sunrise" for suns changes):
setSkyCommit()
(A different admin might not want to wait for internal rules)
setSkyCommit("now")
When it completes transit, let's have two suns, one red and one green:
setSky("sun", "binary", "1,1.2", "#522,#263")
The admin wants to schedule the commit, skipping two in-game days before enacting according to internal rules:
setSkyCommit("2days")
The icing on the cake: the suns/moons should recede / approach as appropriate when the change is enacted. i.e. if I go from a normal sky, to transiting, the sun will set over the horizon whiled receding into the distance.
-Posted by forums user Augustus