Removes a very large amount of world loops.
Adds a macro to painlessly generate a global list, and the needed code to modify the list when an object is made or deleted automatically.
Cleans up some commented out code.
Add /object/structure/frame to the list of objects that count as wall items. Also convert from strings to actual type paths.
... and fix the paths that haven't existed for four years. Properly speaking it should be a dynamically generated list at some point.
Add /object/structure/frame to the list of objects that count as wall items. Also convert from strings to actual type paths.
... and fix the paths that haven't existed for four years. Properly speaking it should be a dynamically generated list at some point.
* Added "Display Initialize() Log" admin debug command so you can see it mid-round.
* Ported the core of the overlays management subsystem from /tg
- Added SSoverlays subsystem for compiling overlay lists and applying them to atoms in a controlled anti-lag subsystem.
- Added vars and procs to atom which should eventually replace all direct interaction with BYOND's /atom/overlays var outside the subsystem.
- Added OVERLAY_QUEUED flag to var/atom/flags bitfield.
- Added small framework for subsystem performance tracking. So far used only by SSoverlays
- Added admin debug command "Display overlay Log" to see performance stats mid-round.
* Fix runtime on universal pipe adaptor update_icons
* Workaround for appearance_bro not initialized
Unfortuantely BYOND's initialization order is strange, and the appearance_bro var is only half initialized when map starts to load, causing errors. We temporarily fix by moving it to be a global-scoped global.
* Convert fire alarms to use add_overlay() A good first test.
* Convert turfs to use add_overlays(), eliminating the turf_overlay_holder!
- Converted as much as I could find about turf overlays to use add_overlay().
- This should be enough to stop BYOND from crashing, so we can eliminate the turf_overlay_holder hack.
- This also lets us remove the anti-corruption hacks from walls and open space.
- ZAS gas overlays can use priority overlays, so this also fixes the gas-goes-away-when-crowbarring-plating issue.
- Stuff like that
* Convert turf overlay interactions to use add_overlay.
Note: This is a plain and simple conversion of existing code to use SSoverlays. However I look at the line changed, and note that that line likely never fully worked as intended, as it has no way of re-applying itself.
I would make it use a priority overlay, but there is no code present for *removing* said overlay from neighbors when it is no longer required. That code should be implemented by original author.
- Converted as much as I could find about turf overlays to use add_overlay().
- This should be enough to stop BYOND from crashing, so we can eliminate the turf_overlay_holder hack.
- This also lets us remove the anti-corruption hacks from walls and open space.
- ZAS gas overlays can use priority overlays, so this also fixes the gas-goes-away-when-crowbarring-plating issue.
- Stuff like that
* Makes GPS units more useful, adds helper to give more useful dir strings
* Re-obfuscates PoI gps locations
They keep adir direction though, so finding them should generally be easier
* Re-obfuscates PoI gps locations
* 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.
Semi-rewrites how surgery failure works. Using an improper surface will call the surgery step's fail proc instead of just doing a melee attack.
Adds 'surgery odds' var to objs, which determines effectiveness. The numbers for operating tables/roller beds/tables remain unchanged from the previous version, however doing it this way makes it cleaner to add new surfaces in the future.
Adds a proc to get a surgery surface.
Also makes burn repair on FBPs more efficent, so that one scorched robot does not take literally all of robotic's wires.