* Adds "typecache" utility functions. A fast way to filter lists by type.
Ported from TG
* Ports the "orbit" feature and subsystem from TG
* Adds a feature that allows mobs and objs to "orbit" around some atom. They literally are moved around in circles. See the `orbit` proc in orbit.dm.
* Adds a subsystem that processes the actual movement of orbiting items.
* Adds utility methods for common machinery behavior.
* Adds default_unfasten_wrench which handles the standard anchor/unanchor behavior of wrenches being used on machines. Together with the other default_x_tool machinery procs we can eliminate having that code duplicated in dozens of places!
* Adds is_wire_tool proc to easily detect when a machine is hit with a tool that should open its wires UI (if it has one).
Based on ideas from Paradise, with improvements for us.
* Implements the Tesla Engine
Ported from a mixture of TG and Paradise code and assets: Edison's Bane
Includes the tesla energy ball itself, the generator that makes it, tesla coils, grounding rods, the circuits and frames to build them.
* Switch dusting to zapping on impact and spin better
Ported /tg SpinAnimation which supports more than triangles.
* Polaris initial plane upstream merge
* POLARIS: Fix RIG visors with new plane system, and material scanner VIS_FULLBRIGHT
* POLARIS: Fix GetFlatIcon so that cameras and id pictures don't show the HUD overlays.
* POLARIS: Adds a 'alter values' proc for plane master ease of tweaking
Setting stuff like colorblindness variety and things.
* Remove NIF reference, fix lighting layer define
* Handle effects above lighting plane
* Moved all layer defines to planes+layers.dm
* Fixed overlays that are supposed to be above lighting to use the PLANE_LIGHTING_ABOVE
* Merge: 3000% human/update_icons() speed improvement
* Merge: Avoid ghosts pointing at things
* Adds defines for world.tick_usage
* This provides no useful benefit whatsoever, but /tg and Baystation12 have done it, so it will make porting future code easier if we do too. No real harm done either.
* Fixes human HUD init so we still get all HUD variables filled. - TODO - Make our own versions of synthetic HUD for other hud categories if we ever feel like it.
* Re-removed gameticker sound code, this time marked it as VOREStation edit (wasn't marked before)
* Removed duplicate mutable_appearance type now that it is moved to mutable_apperance.dm
Dangerous? Not any more than just leaving it, probably. I can't think of a case where player_list -= something wouldn't work, even in the case of nulls probably. And the no-depth [mob] lookup at the end is probably fine, even if it's a null, since it'll use byond's internal "what is this" handler to print the name or an icon or whatever it is.
-Disabled by default.
-One tile range as with the other bellynoises.
-10% chance to manifest when "extremely hungry", same but a little louder when "starving".
A null entry somehow got into ```player_list```, which caused an important proc called ```get_mobs_and_objs_in_view_fast()``` to fail. The cause appeared to be a brain mob failing to qdel, then failing to ```logout()```, leaving a null entry in ```player_list```.
```get_mobs_and_objs_in_view_fast()``` now makes sure every entry it iterates over exists, and this should fix the qdel issue as well.
* The cryopod simply qdel's the datacore records. Old garbage.dm hard-del()'d datums, so it was fine. Now we need to make sure they are actually removed from the data_core.
* Testing shows this fixes#1713 and in most cases the objects also GC cleanly. However some older computers still retain hard references to data_core entries. But even in the cases where that prevents a clean GC, the player is still removed from the manifest successfully and promptly, so that can wait.