Commit Graph

15 Commits

Author SHA1 Message Date
Arokha Sieyes
29004fe093 Planet controller startup delay 2018-06-02 11:06:53 -04:00
Aronai Sieyes
40b1a56bdc Revert "Revert "Upgrades Planetary Weather to vis_contents (#5170)"" 2018-06-01 20:35:28 -04:00
Arokha Sieyes
4018e14d12 Revert "Upgrades Planetary Weather to vis_contents (#5170)"
This reverts commit e3e1a7ad9c.
2018-05-15 00:57:55 -04:00
Neerti
e3e1a7ad9c Upgrades Planetary Weather to vis_contents (#5170)
* Upgrades Planetary Weather to vis_contents
Makes the weather on Sif use vis_contents instead of overlays, which should fix all weather-related icon issues, and may or may not be faster.
Weather updates instantly now.
Fixes indoor PoIs having outdoor weather.

* Tries to appease Travis
2018-04-28 20:40:11 -07:00
Leshana
c4d714dea8 Replaces set_light with direct update_lumcount for planet suns.
Setting lights on every single turf takes way too long.  Instead of havingto create a light source for every single outdoor turf, we find the corners to light up and apply the sunlight to them directly.
We also make sure to avoid having planet sunlight being 4x too strong, which would happen if we naively looped over all corners of all outdoor turfs.
Note: This has the side effect of making the sun's light and color ACCURATELY reflected on turfs.  Previous code doubled up on light and appeared brighter than it should.
2018-04-18 21:54:58 -04:00
Leshana
471e544a61 Revert "Merge pull request #4779 from Neerti/2/1/2018_make_the_sun_not_lag_again"
This reverts commit f4df29713d, reversing
changes made to 337e5e7436.
2018-04-18 18:08:16 -04:00
Neerti
d81c990e22 Merge branch 'master' of https://github.com/PolarisSS13/Polaris into 2/1/2018_make_the_sun_not_lag_again 2018-04-13 11:26:12 -04:00
Aronai Sieyes
7d3aec96fd Arranges lots of things into planes (#5072)
* Rearranges a billion things into planes

* Make cryotubes fancy

* Update Travis

* Fix hiding logic
2018-03-28 12:59:12 -07:00
Neerti
b95562a2ff Planetary Lighting Optimization Attempt
Changes how lighting is applied to the Surface.

The current method works by making every tile glow in a specific color and intensity. The issue is that when it is time to change the color/intensity, it can take the light controller a considerable amount of time for it to update every tile (estimated to be around 14,000 tiles), which can take a minute or two for the lighting controller to finish.

New method is to have a special light source for the surface, with different properties to the 'regular' light source that most things use for making light. The special version doesn't care about line of sight or lighting falloff. This special light source is applied to a series of invisible 'sun' objects that get generated as the planetary controller gets created. When the lights need to change, the lighting controller has to change a much smaller group of objects instead of literally every outdoor tile.
2018-02-10 07:18:08 -05:00
Neerti
fe33977812 Adds Submap (PoI) Seeding Procedure
Mostly ports /tg/'s method of seeding submaps into specific z-levels.
Due to the low number of submaps present, all of the PoIs are guaranteed to spawn. As more are added, this should fix itself.
2017-11-21 19:21:39 -05:00
Neerti
aa454c0e1d Adds Farm PoI
Also fixes various bugs with surface tiles, hopefully.
Adds some documentation to the map file system.
Adds a new 'plane' map, ideal for testing PoIs by loading them manually.
Makes space heaters glow orange.
Adds a new grille type for fancy surface windows.
Adds self planting hydro trays/dirts if a seed is on top of them when the map is loaded.
2017-09-26 01:44:06 -04:00
Arokha Sieyes
33c28bbcf3 Allows turf unalloc in planets 2017-04-18 22:03:04 -04:00
Arokha Sieyes
d00c5941ca Controllerized Planets
Controller with deferrals and SCHECKs to be specific. Won't lag while updating the sun, weather, or temperature.

Also moved some vars around. Namely the planet walls are stored on the planet, not in the weather_holder.

Planets now have their own turfs, the controller 'gives' them to the planets each cycle if there are any unallocated turfs in the global lists, to avoid iterating over other planets' turfs if you have more than one, then cuts the lists if you were crazy and some turf added some invalid type. This saves us type-checking in the for() loops later to make them crunch faster. The former operation should only happen once at the start of the game (and maybe very rarely when turfs are added/removed from a map during the game).

With regards to the temperature updates, rebuilding the zone entirely is an intensive operation. Instead we can use this new cheaty proc to do it from over here. ZAS code outside ZAS oh noooo. Well, the option is to snowflake this case into ZAS which is maybe worse?

Only downside to all this is that if you manually set weather and time it might take between 1-60 seconds for the controller to get around to checking if you wanted to update it. That's not that big a deal. If you really want you can now debug that controller and call doWork on it.
2017-04-18 20:08:22 -04:00
Arokha Sieyes
aaeae6695a Make planets more generic
So that Sif doesn't have to be the only one!
2017-04-14 21:36:48 -04:00
Neerti
1d9e7c8c08 works on planet stuff 2017-02-06 20:45:21 -05:00