About The Pull Request
This PR add "Bluespace Navigation Gigabeacon" that shuttles can use as a target for the jump computer.
You can customize locked status by multitool or name of beacons by multitool with unscrewed beacon.
If you, or emp, lock beacon you are still able see it in choice list like a "Locked" destination, but unable to jump to it.
Why It's Good For The Game
Now any spacemen can construct their own Space station on any Z lvl (that not reserved, centcom, away mission) and dock (by custom dock) his ship to it.
Now we actially have some shuttles that have ability to place custom dock.
That one is whiteship, but only if its not UFO, 4 ships in caravan ambush(for 2 need sindycate access), +1 for nuclear ops(sindycate access), but dont forgot that Admins can spawn "navigation computer" to any shuttle.).
Lavaland safari likers now can land anywhere where they can fit a ship, on lava, basalt, and plating turfs, also asteroid.
I drop some bombs to clear spot and land to lavaland.
http://recordit.co/qN10qfuift
Here i create dry dock near station and dock ship into it.
http://recordit.co/R4kXqN8rnt
all walls and other floors are forbidden to prevent you landing on the station
possibly more random gibberish?)
maybe change plating to reinforced (engine) floor.
Navigation computer now use trait blacklist to filter out z levels to where it can't place custom dock.
This make easy to add new z lvls where it can place dock.
Timers, signals, and components need to know when the thing they're
attached to is getting destroyed or bad things happen. Since any datum
can make use of these every destroy needs to call parent.
cl Time-Green
add: Adds plumbing pipes and some hidden plumbing related machines. They're not available in-game yet.
sprites: Geyser and geyser pump sprites created by Mey-Ha-Zah!
/cl
Adds the following objects:
Fluid ducts . Like atmos pipe, but for reagents. They're smart and can be seperated by layer and color
Geysers. They spawn on lavaland and can be harvested with liquid pumps or just beakers.
Liquid pumps. For pumping geysers. They need to be on a wire node and connected to a duct network.
Plumbable reagent dispenser subtype.
New plumbing RPD specific RPD.
Plungers. The reinforced plunger can be used for plunging geysers to activate them. They currently serve no other function and can't be worn as a hat yet.
They're all disabled and admin only.
Adds the following systems:
Ductnet datum. They pretty much say "hey, we're connected"
Plumbing component. You can turn any movable atom into a plumbable thing. Comes with overlays and everything. They're essential for everything that has input and outputs, except pipes. That means you can have machines connected to both atmospheric pipes and fluid ducts. They only connect with layer 3 ducts.
Fluid subsystem that handles the processing on the plumbing machinery and other plumbing related stuff.
Basically atmospherics but with reagents. Reagents are pressurized and thus transferred instantly, to avoid those stupid leftovers in pipes no one likes. I am PRing it now because if I were to add a dozen or so associated machines, it would be too much of a pain to manage/review in one PR. It would also be a massive waste if people didn't even want it in the first place.
Also yes all of this works (as far as I know)
Things I plan to add in later PR's
Layers / colors (maybe) done
Machinery (Stuff like chemical processors, filters, special mixing chambers and factories)
Make geysers more interesting, so chemists/atmostechs/cargotechs/assistants can go to lavaland and get some exotic stuff.
Pipe fractures. Damaged pipes could do the cartooney water soaker beam coming out to shoot at people cause why the fuck not.
Code concerns:
Connecting is handled through pipes only. Not sure if this is the best approach. This means plumbing devices cant directly connect to each other without pipes. I could add some exceptions to handle it. I could also take connecting away from pipes and make it a global proc, with alot of exceptions since it'd be handling both plumbing machinery and the ducts.
Reagent transferring. Basically the transfer is instantaneous from A to B. I did this because stuff getting stuck in pipes could pose some serious mixing problems with chemistry, since it's alot more delicate than atmos. I could understand if people would want it to be like atmos. It wouldn't be difficult to change.
Also for testing I suggest you set the pipe_dispenser to category 3 to print fluid ducts. My tests were done with
/obj/structure/geyser
/obj/structure/reagent_dispensers/plumbed/storage
/obj/item/plunger/reinforced
/obj/machinery/power/liquid_pump
/obj/item/pipe_dispenser/plumbing
that and standard tools for setting things up
If you came here thinking this was some game feature then you are in the wrong place. Here is where I ramble about code.
This adds /datum/element as a sort of sibling to components. Only one of each type gets instanced and they do not get tied directly to any particular thing like a component does. Basically they're a very lightweight component for doing simple functionality that doesn't have much state.
Originally this concept came about as a kind of component that could be shared between many parents to reduce some resource costs. Doing this would allow us to componentize more behaviors that are a part of too many things to be viable to have a whole component for every single one. For example a component on every space turf would be entirely unviable. With elements it's much more reasonable.
This implements a prety bare framework and a couple components are migrated to it. It's ready to be used but I fully expect I'm going to need to refine how it works for all the usecases we'll want it for.
Also: this fixes the qdeleted signal. This signal isn't even possible because after qdel is done there's nothing to receive a signal anyway. I've changed it to a qdeling signal instead. I need it to work for some elements to know when to clean themselves up.
In advance of eventually adding SpacemanDMM's linter to Travis, fix everything it can currently detect.
Some lists, including global lists, are given types so that L[i].foo expressions can be checked.
Some procs are given a new form of return type annotation so that DuplicateObject(O).forceMove()-type invocations can be checked.
Open to syntax suggestions on the return type annotations, and on whether the preprocessor strategy makes sense.
Return type syntax is currently roughly:
<typepath> | <paramname>([_])*(.type)?
Removes the useless split by value lists. Updates savefile after
removing invalid quirks. I'd prefer usual savefile validation but quirk
lists are built pretty late. Other solution would be hooking all prefs
to after quirk SS initializes, this seems less intrusive if ugly but
I'm open to alternative suggestions.
* Notify System
* V2
* Adds a hint
* Stoned fixes round 1
* Use grammar wells I can
* This didnt work
* I wish you could test on TGS without committing
* Jordie fixes round 1
* oops
* This took way longer than it should have taken
* Adds in endnotify for serverops
* Spacing
About The Pull Request
Same premise as #44712 but using a simple regex replace and also on the client side
Closes#44712
I was gonna PR it to #44712 but half way through I realized I had already replaced nearly all of bobbah's changes, and after I was finished the branches shared nothing.
Why It's Good For The Game
The delta is way smaller and simpler
Should solve the DoS concerns without needing a limit on bad chats because it's not a loop it's on the client side
Changelog
cl JJRcop and Bobbahbrown
tweak: When attempting to say a blocked word in character you will be notified which ones were blocked.
/cl
This makes lavaland atmos random per round. You won't get eternally burning hell worlds or vacuums but it's nice for a bit of variety.
Admins can edit the gas mixture for all of lavaland at once if they want to ruin some miners' day.
image
cl
add: Lavaland atmos is no longer a preset gas mixture and varies per round
tweak: Bonfire minimum oxygen content has been reduced
/cl
* Removes shuttle manipulator
* oops
* fuck it lets just remove it.
* Revert "fuck it lets just remove it."
This reverts commit 8a95879f21d3f4aad3d56e33fa90ebc1940c1e27.
* re-remove the old admin proc
* Make shuttles load in transit level
* Add check
* oops
* i need coffee
* Removes shuttle manipulator
* oops
* moves ui to ssshuttle
* fuck it lets just remove it.
* ooops
* Revert "fuck it lets just remove it."
This reverts commit 8a95879f21d3f4aad3d56e33fa90ebc1940c1e27.
* re-remove the old admin proc
* De-linkifies names in deadchat_broadcast(), makes deadsay css class default too
* Makes the source argument come after message, since it is optional
* Removes excess </span>
I had these on previous fix branch but seems i forgot to push whoops.
Fixes#44520
cl
add: Recipe for fabled secret sauce can now be found in the deepest reaches of space.
/cl
Changelog because i forgot one when i actually added the feature.