* A few additions, tweaks, and fixes for integrated circuits, and some very minor tweaks to hydroponics and carbon/silicon examine() to support those changes.
🆑 SailorDave
rscadd: A new manipulation circuit, the Seed Extractor. Extracts seeds from produce, and outputs a list of the extracted seeds.
rscadd: A new list circuit, the List Filter. Searches through a list for anything matching the desired element and outputs two lists: one containing just the matches, and the other with matches filtered out.
rscadd: A new list circuit, the Set circuit. Removes duplicate entries from a list.
tweak: The Plant Manipulation circuit can now plant seeds, and outputs a list of harvested plants.
tweak: Reagent circuits can now irrigate connected hydroponic trays and inject blood samples into Replica pods.
tweak: The Examiner circuit outputs worn items and other examined details of carbon and silicon mobs into the description pin.
tweak: List Advanced Locator circuit now accepts refs as well as strings.
bugfix: Fixed the Power Transmitter circuit not properly displaying a message when activated.
bugfix: Medical Analyzer circuit can now properly scan non-human mobs.
/🆑
Additional details:
- Plant Manipulation: obj/item/seeds harvest() proc and obj/machinery/hydroponics attack_hand() procs were adjusted slightly to allow this, returning a list when harvested.
- Seed Extractor Module: obj/machinery/seed_extractor /proc/seedify() was adjusted to return a list of seeds.
- Hydroponics replica pod was adjusted to be injectable|drawable, and use reagents and on_reagent_change() rather than a hardcoded attackby(), so other injection methods can use it to allow blood sampling/future reagent reactions regardless of type.
- IC Examiner Module returns a list of examine() messages from mob/living/carbon, mob/living/carbon/human, mob/living/carbon/silicon, and mob/living/carbon/silicon/ai in the description data pin, rather than outputting null since they had an empty desc var. The relevant examine procs were adjusted to return their messages.
- IC get_data() and set_pin_data() adjusted to return text/num properly and to WEAKREF/un-WEAKREF the contents of passed lists.
* fixes errors from screwy merge conflicts and replaces illegal proc name
* re-added a traits tag that accidentally got removed
* review changes
* plant analyzer outputs irrigation status and connected trays, search circuit uses 2 Cx down from 6
* examiner outputs the occupied turf of the examined object and can also scan turfs
* string inputs on circuit pins now use multiline input; fixed edit/remove not working on list pins; fixed large screens not outputting visible messages when held
* locomotion now has a cooldown of 0.1sec and their complexity + pathfinder complexity reduced
* assemblies can open doors they have access to from a card reader through collision
* Merge master branch; fixes pathfinder AStar runtime; fixes tile pointer; fixes material manager self-ref; various grammar touchups
* review changes
* fixes improper weakref type checking
* fixes seed extractor merge confict, removes unnecessary weakref change
* dang ol merge undoing my changes HECK
* updated to robbym's tile pointer PR with clearer var names
* added missing "not scanned" results to tile analyzer, removes duplicate circuit entries(???? how)
* yeeeeeeeeeeap
* i turned myself into a commit morty!
* I'M COMMIT RICKKKKKKKK
* tinydwarfy was an inside job
* *reels in pain* you KNOW I DON'T LIKE PISTACHIOS
* WOO
* caps fixed, small other fixes and mushpunch
* honey, i fixed the bugs!
* STUPID YORII DUMB GIRL STINK LEAVE
* boolean is such a fun word
* zoinks
* F_XED
* fixes part 2
* TRUEs and FALSEs
* don't drink and code boys unless you're goofball or like maybe kor
* for entirely different reasons i mean
* at what point is goofball too drunk to troll but not drunk enough to shitcode
* cool your jets, travis.
* what a TRAVIS-TY
* mush added to yet another blacklist!
* Refactors anti-magic into a component
* plenty o stuff, mainly holy and antimagic traits
* fix
* fix2
* moved to components, moved some of the logic to the component
* don't blame me if the code looks copypastey
* right
🆑 coiax
add: Centcom now reports that thanks to extensive bioengineering, apples
and oranges now taste of apples and oranges, rather than nothing as they
did before.
/🆑
Basically, my hack to give hydroponic grown things flavour when I
finished my taste PR never worked, and since I've started being a chef
of recent, this has been bugging me.
I think I changed some descriptions of some foods a bit.
* small changes
* Adds a use_tool helper and changes some tools to use it
* Ports most tool operations to use_tool
* Converts more tool operations to use_tool and tool_act
* Changes some things to default_unfasten_wrench
* Improves tool_behavior support in mech construction
* Code review memes
* Fixes all instant use_tool calls failing
* Code improvements
* merge fixes
* Very temp I want to see what people believe is a more suitable size because this is ridiculous
* Damn comments being my bane when I have to redo a local branch and mess up grr
* Does the request from the maintainer
This way you can add/remove traits without fear of other sources overriding them. Now you can add TRAIT_STUNIMMUNE to somebody without what if hulk
Notable changes:
Fakedeath now updates instantly, instead of waiting for the next life tick.
Fakedeath now sets time of death when acquired.
Removed extremely snowflake code in reagents that checked if you had morphine to remove slow immunity and so on.
Hulk no longer overrides status_flag changes, in case there are any.
* It works, but is it worth it?
* bitfield helpers take 1
* Would this work?
* remove dangling debug code
* rebase & fixes
* vv bitfield stuff, reading
* DNM oceans of shitcode DNM
* honk
* honk2
* plonk
* rebase & fix
* Replaces a bunch of manual OPENCONTAINER checks with helper procs
* Removes unnecessary vars
* Updates reagent bitflags, adds some new ones
* Replaces most of the is_open_container calls with more specific ones
* Puts new AMOUNT_VISIBLE flag to use
* Uses new helper procs in more objects
* Standardizes chemicals logging
* De-snowflakes two more checks
* Fixes
* Minor fixes and improvements
I had some time free, and noticed how awful the reagent grinder code was - it used huge static lists containing types and their associated reagents from grinding.
This is now split into two new vars on /obj/item - var/list/grind_results and var/list/juice_results, as well as two new helper procs, on_grind() and on_juice() to allow those to change based on conditions like plant potency. Such checks and the like have been moved to that. If any of these procs return -1, the operation is canceled.
I also fixed some of the recipes that didn't work. The reagent IDs for them didn't exist, leading me to believe that they weren't tested. I corrected that! (I've tested every single recipe in this PR, with the exception of a few juicing-related ones.)