I assume these were all lazy copy-pasting. We're changing computer icons to another set in a file we'll keep separate, and these completely pointless references are annoying. They should inherit this from the `/computer/` level, which they do. Has no effect on Polaris, but cleans up code that shouldn't exist.
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.
* New icons for light switches, based on Eris light switch icons, except these ones go up/down for on/off! And have glowing button overlays.
* Added sounds to clicking buttons!
* Brought over a few more icons for objects that will likely be useful for parts lathe.
* Adds system for turfs to have "footstep sounds" that play when someone walks over them.
* Adds system for floor types (the kind of turfs where you can put tiles on them) to support the footstep sounds.
* Adds sounds to plating, tiles, wood, and carpet floor types.
* Footstep sound system is configurable in game_options.txt, it can be turned off completely or the volume adjusted.
* Railings are an ON_BORDER object that looks like a railing; you can throw and reach across it, but it stops you from falling into holes or whatever.
* Mobs can climb over them (or throw other mobs over them!)
* They are construtable/deconstructable.
* Smoothly auto-joining sprites to look like a railing.
* Changes from Eris: Converted << to to_chat(), Desnowflaked some code, Fixed being able to climb over when windows are in the way.
* Catwalks are an upgrade to lattice; instead of just a framework of wires its a mostly solid grid walkway.
* They are semi-transparent so you can see wires/pipes below them a bit.
* Smoothly auto-joining sprites to look proper.
* Constructed by upgrading lattice; like lattice it will stop you falling if build over an open space.
* Changes from Eris: Converted << to to_chat(), fix redraw on Destroy(), Fix color macros in text.
As in, the heavy scrubber controller computer. This adds a 'tag' version as well, that allows you to map in specific tagged ("scrubber_tag") computers so you can more accurately control what scrubber goes where. For example, if you had a map that was mostly phoron airlocks!!!
* Port of https://github.com/Baystation12/Baystation12/pull/16942
* Actually tell turfs when a thrown object hits them, and let them decide what to do about it!
* We do this by calling hitby(), which is how it already works for obj and mob, so this makes behavior consistent.
* This allows us to cleanly solve the problem of a thrown object landing on open space without falling.
* When water returned null from return_air_for_internal_lifeform() the life code treats that as vacuum. Instead we must return a mixture containing at least some gas.
* It will attempt to use the exhale type for the species, or fall back to carbon_dioxide if it can't find that info.
Makes the spawner object itself block air and prevent active edges before the game starts, so you can actually use these in maps now without creating tons of active edge warnings and making ZAS zones merge everywhere. Should save a loooot of time for mappers picking those window directions.