* 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
Grounding rods that are anchored can be struck two turfs farther away than unanchored. This makes it possible to leapfrog towards a tesla because an unanchored one can be protected in the "shadow" of the anchored one.
- Because mirroring is now *much* easier to setup than digital remote control, we reverse the order of inheritance to de-duplicate all the radio code from digital t-valves!
- This requires changing the following type paths:
/obj/machinery/atmospherics/tvalve/mirrored/digital -> /obj/machinery/atmospherics/tvalve/digital/mirrored
/obj/machinery/atmospherics/tvalve/mirrored/digital/bypass -> /obj/machinery/atmospherics/tvalve/digital/mirrored/bypass
- Change made on all maps.
- We can eliminate any overriden methods at all on flipped trinary devices by making a `mirrored` and `tee` variable! This allows us to do things like flip them without delete/spawning.
- T-Valves are also basically trinary. Sadly they are not a subtype, so to share code with them I have to put it into an outside proc. But still worth it.
- We can eliminate any overridden methods at all on flipped trinary devices by making a `mirrored` and `tee` variable! This allows us to do things like flip them without delete/spawning.
- T-Valves are also basically trinary. Sadly they are not a subtype, so to share code with them I have to put it into an outside proc. But still worth it.
- Consolidate common functions into trinary_base
- The only real difference in atmos_init was which direction each node would connect in. Delegated that to an overridable proc, and the rest can be consolidated. Same story for update_underlays()
- Used similar patterns on tvalves which also are trinary even tho they are not subtyes of trinary (for some reason)
While pAI could open their communicator, they were unable to interact
with any of the buttons in its UI. This adds the UI of their own
built-in communicator to the other two UIs they were already explicitly
allowed to access (those of their own radio and their own interface).
* adds fireplace, makes bonfire generate heat
kinda, anyways
* adds sifwood tiles, fixes old blue carpets
old blue carpets are now known as "teal carpets." they still come in the
carpet crate from cargo.
* lets you dig up tree stumps with shovels
* changelogs in the house
* adds a delay to digging up stumps
digging up stumps is easier said than done
Alright the previous attempt didn't quite work as intended, sorry for that.
Anyway I was checking out what sorta things happen to use the legacy support regenerate_icons human proc and found out some of them had connections to circumstances I've heard of causing trouble. Found out all the update calls included in it came with a 0 to prevent each call from doing update_icons on its own before the intended calls at the bottom of the bunch, except for one, UpdateDamageIcon, which also did have the same (var/update_icons=1) skip expectation as the others, causing premature dupe updates in regenerate_icons.
- Reinforced glass windows can be upgraded to electrochromatic by hitting them with a cable coil. The window must not be unpried from its frame to upgrade it (but it can remain anchored).
- Windows can be linked with a tint button by using a multitool on the button to buffer it, then using it on the window to set the ID. The window must be completely unanchored to edit its id.
- Window tint buttons can have thier ID set *once* with a multtool.
- Inspired by Baystation12/Baystation12#20508
- Also adds a "full tile" polarized window type for use by mappers.