* REOPEN: REVERT: Changes faster fireman carrying from a trait on gloves to a skillchip (#58268)
Co-authored-by: SuperNovaa41 <supernovaa41@ protonmail.com>
* REOPEN: REVERT: Changes faster fireman carrying from a trait on gloves to a skillchip
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: SuperNovaa41 <supernovaa41@ protonmail.com>
* Firelocks can't close if an holofan is placed on their turf (#58332)
* Firelocks can't close if an holofan is placed on their turf
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
* Allows the connect_loc element to have a listener different from the tracked object (#58276)
* Allows the connect_loc element to have a listener different from the tracked object
Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
* Placing a fireman carried person onto a table no longer harms them (#58147)
Previously, clicking on a table with a fireman carried person while not in combat mode would start a do_after(), then harmfully smash the person you fireman carrying into the table. This harmful smash has been replaced by your character merely placing the fireman carried person onto the table, like what happens when you click on a table while not in combat mode while you have someone in a grab. You can still click on a table with a fireman carried person while in combat mode to perform a limb smash, if you wish.
* Placing a fireman carried person onto a table no longer harms them
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
* RCD now rebuilds existing constructs faster and with less resources (#58029)
* RCD now rebuilds faster
* Reconstructing now costs less
* Fix _
* Remove unused flag, use helper proc
* Add sound
* Remove previously useless, now inaccurate comment
* Add MIN_COMPILER_VERSION warning
* RCD now rebuilds existing constructs faster and with less resources
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
* Persistence now cleans up json entries (fixes a lot of runtimes involved) (#58084)
* super duper persistence cleaning
* compiles now, much better written
* Persistence now cleans up json entries (fixes a lot of runtimes involved)
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* changes most uses of SSvis_overlays.add_vis_overlay() inside of update_overlays() to true overlays (#57985)
* changes most uses of SSvis_overlays.add_vis_overlay() inside of update_overlays() to true overlays
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
* Layer overhaul (#57915)
## About The Pull Request
Changes up some layer and plane defines for no particular reason lol
## Why It's Good For The Game
Planes actually override layers, and layers control ordering within planes. A lot of the usage of plane and layer was wholly unnecessary. This refactor helps future maintainability while also being needed staging for _future features._
* Layer overhaul
* aaaaaaaaa
a
Co-authored-by: Rob Bailey <actioninja@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* Minor tramstation and train-rail-fluff fixes (#57639)
Fixes an incorrectly-shifted sprite for floor tram rails and adds some missing tram-rail fluff objects
Also does some minor renaming (railing -> rail)
cl
fix: Nanotrasen railroad engineers have done some minor repairs to their in-station tram rails.
/cl
* Minor tramstation and train-rail-fluff fixes
Co-authored-by: Emmanuel S <mrdoomboyo@gmail.com>
* Adds a plumbing layer manifold (#57494)
Adds a multilayer plumbing manifold, I also murdered the multilayer duct
You can now alt-click the plumbing RCD to change the layer it prints. I made a whole thing where right clicking changed the settings and you could use that to change machinery aswell. I even did that with the plunger, it was absolutely beautiful. Anyway that drained the life out of me because apparently there's no attack_obj_secondary and afterattack_secondary ALSO called attack_obj (left click). I just hate whoever made it with intensity
Plumbing now uses three layers. They should be easier to navigate. I tried to make layer connecting the same as cross-color connecting, but that would take more of my soul then there is to take
* Adds a plumbing layer manifold
Co-authored-by: Time-Green <timkoster1@hotmail.com>
* Ice cream revamp: Ice cream is a component and cones can hold multiple servings of ice cream now. (#57415)
* Ice cream rework WIP
* I'm done!
* i'll deal with my verbose engrish at a later date. I'm dead tired.
* linter aaaaaa
* Take a bite!
* FINALLY, A COMPONENT!
* ghost macro.
* Review, typos, beheading of a lame comsig.
* Typo. Now I'm self-obliged to test it again.
* It works.
* Ice cream revamp: Ice cream is a component and cones can hold multiple servings of ice cream now.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Fixes items in toilet cisterns being deleted / null'd on deconstruction (#57864)
* banished
* drop loc
* Fixes items in toilet cisterns being deleted / null'd on deconstruction
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* tram hotfix hopefully maybe (#57646)
The cause of the blender was the fact the UI wouldn't update properly if left open and you walked away, meaning you could tell the tram to go to a destination it was already at and brrrrrrrrrr.
TGUI really isn't my strong suite and forcing it closed guarantees the info on the UI is updated so no blender.
* tram hotfix hopefully maybe
Co-authored-by: MMMiracles <lolaccount1@hotmail.com>
* Some explosions code cleanup (#57493)
Clears out two deprecated explosions systems (explosion ids and explosion levels)
Refactors a bunch of contents_explosions procs to be maybe slightly faster.
Cleans up a bunch of ex_act code.
Slightly cleaner code
A few less unused vars on /atom and /turf
* Some explosions code cleanup
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
* More harddel fixes + Tram sanity check (#57828)
* Fixes a harddel caused by the FUCKING MACHINE VAR WHAT THE FU-
* Fixes a tram related harddel, the proc that removed things from the riders list worked on stuff passed in by Uncrossed, but failed with the qdeleting signal. I've made a wrapper proc to better support these things, added signal handlers, and removed an if check that hid nulls (If it's breaking I need to know)
* More harddel fixes + Tram sanity check
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Tramstation: choo choo MORE MAP COMIN' THROUH
* Tramstation: Skyrat Edition (#4104)
* Decals Fixed
* Modularity? Whatever
* Fuck me if I need to make a second PR for this
* Blueshield + Cryo + Ian Fursuit
* Automatic changelog generation for PR #4104 [ci skip]
Co-authored-by: MMMiracles <lolaccount1@hotmail.com>
Co-authored-by: Cheshify <73589390+Cheshify@users.noreply.github.com>
* Replace some turf in range() with RANGETURFS and fix(?) bspace trauma (#57566)
* Replace some turf in range() with RANGETURFS and fix(?) bspace trauma
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
* Adds Directional Presets To Several Common Wall Mounts For Mapping (#57463)
* Adds Directional Presets To Several Common Wall Mounts For Mapping
Co-authored-by: Paxilmaniac <57122098+Paxilmaniac@users.noreply.github.com>
* At first i thought that i was being forced to add a feature 🤮 but then i realized i was being encouraged to refactor 😄. Electrified chair is now a component instead of a failure (#57117)
* At first i thought that i was being forced to add a feature 🤮 but then i realized i was being encouraged to refactor 😄. Electrified chair is now a component instead of a failure
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
* a
* :hhh:
* reworks hotel
* iron repath eee
* modularize
* arcade
* cables
* fills unused areas
* does this fix it 🤔
* pipe
* plants and office touchup
* bruh
* manager role
* adds a little carpet
* door access reqs
* original hotel revert
* gitkraken hates me
* swaps out flooring, adds some more lights
* plating
* modularisation
Co-authored-by: KathrinBailey <53862927+KathrinBailey@users.noreply.github.com>
* Rework plumbing reaction chamber, purity support (#57071)
Currently does four things:
The reaction chamber now supports purity! It has a yellow (acid) and green (basic) input for buffers, aswell as a setting to automatically dispense either an acidic or alkalic buffer when above/below a certain pH! Now you can make a 100% pure meth factory! The buffer connects are on an alternate layer.
Probably going to be less loved, but I removed the reaction chambers ability to pick reagents from the net. Instead, it will pull untill a set volume is reached. Then it'll start reacting. While this means that players will have to be more creative and use a wider array of machinery.
Also new machine! Buffers! They fill the hole that reagent chambers left. They can be set with a threshold volume and will only start putting out chems when ALL of their neighbouring buffers also are also above this threshold. You might have a lot of one chem and have to wait for a more specialized chem to be produced, and with the cleverness of reaction chambers gone, bufferers can do just that: wait.
I also removed all but two layers. I want to make it obvious what layer the buffer connects are on. Also layers are basically unusable and I'm gonna give them a rework very soon. I'll put the things back in then when they actually have something to contribute
* Reworks plumbing reaction chamber, purity support
Co-authored-by: Time-Green <timkoster1@hotmail.com>
* Adds tourist robots that order food and drinks from the bar and cafeteria (#57010)
* Adds Tourism Economy
Co-authored-by: Emmanuel S. <emmanuelssr@ gmail.com>
Co-authored-by: ATH1909 <42606352+ATH1909@ users.noreply.github.com>
Co-authored-by: coiax <yellowbounder@ gmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Adds tourist robots that order food and drinks from the bar and cafeteria
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
Co-authored-by: Emmanuel S. <emmanuelssr@ gmail.com>
Co-authored-by: ATH1909 <42606352+ATH1909@ users.noreply.github.com>
Co-authored-by: coiax <yellowbounder@ gmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Beauty is now an element. Fixing an issue with enter/exit area comsigs. (#57147)
Co-authored-by: Ghommie <425422238+Ghommie@ users.noreply.github.com>
* Beauty is now an element. Fixing an issue with enter/exit area comsigs.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Ghommie <425422238+Ghommie@ users.noreply.github.com>
* Implements JPS (Jump Point Search) Pathfinding (#56780)
So a month or so ago I wanted to make it so dogs in my dog AI PR could path through doors if they had access, and was told I'd need to improve our pathfinding efficiency if I wanted to use full pathfinding for them. Thus, enter JPS, a pathfinding algorithm that allows for massive timesavings in systems with uniform cost grids like ours. This code is still fairly rough and needs polishing, but it's fully functional and already shows massive savings over traditional A*! I plan for this to replace A* as our default pathing method, but I'll leave the A* code in place in case someone ever needs it for whatever reason, like if a specific case needs variable cost pathing.
Note that this allows for diagonal pathing instead of the cardinal pathing our A* uses right now, and the current version of the code costs the same to move diagonally as it does to move laterally, which may change later. There's also a lot of dummy/test code in right now in general, but you should still be able to test it out for yourself by spawning a bot like a medibot and using your PDA to summon it.
Preliminary Profile Results
A preliminary profile is available here. Using one medibot by itself on Metastation, I generated a list of 500 random blob spawn points around the station, gave the medibot all access, then let each algorithm tackle the list. The old A* algorithm took a total of 86 seconds to complete the list and processed 978065 nodes, while JPS took a total of 46 seconds and processed only 100062 nodes, for a 47% decrease in total time and an almost 90% decrease in nodes processed!
Why It's Good For The Game
Significantly cheaper pathing, which will very much come in handy for the AI datums I'm looking to dig into, what's not to like?
* Implements JPS (Jump Point Search) Pathfinding
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
* Buffed atmos holofans. Added to CE locker. (#57074)
Atmos holofans can now make six holos instead of three. Swapped the (useless) engineering holo with the atmos holo in the CE locker.
* Increased holo count for atmos holofans. Added one to the CE's locker.
Co-authored-by: Cimika/Lessie/KathyRyals <65850818+KathyRyals@users.noreply.github.com>
* Updates the lifebringer flavor text to be less ambivalent about their goals (#57059)
* Updates the lifebringer flavor text to be less ambivalent about their goals
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>