rscadd: Circuit ntnet components buffed. Added a new low level ntnet component that can send custom data instead of just the two plaintext and one passkey format, which things will use by default. Ntnet now uses a list for their data instead of three variables. they also have lowered complexity for the now weakened normal network component, and has lower cooldowns.
* 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)
* Reorganised component controls
* Simplied menu further
Removed "rename" and "copy ref", renamed "remove" to just "-"
* Added similar changes to "built in" components and added "Rename"
Some circuits were missing parameter types allowing players to input values that would no matter what fail. Some of those also had the parameter type wrote into the name to attempt to make it look like the typing was correct however this just made two of the texts saying what type it is apear. Logic gates now output booleans rather than 1's and 0's(purely cosmetic) and had their descriptions updated accordingly.
* Fixes 0 value not being saved in constant memory circuits
* Fixes 0 value not being loaded in constant memory circuits
* Switched to isnull proc for null checks
* circuit diagnostic hud revisit
warning icon replaced with red versions of prefered icons, new icons added to the AR interface
* did this fix it?
* ok how about now
put all the new icons at the end of the file instead of at different places inside
* Standardizes access checks
* Makes SS Networks init before SS Atoms to prevent NTNet interfaces from initializing before them
* Adds passkey support to NTNet packets
* Adds NTNet support to airlocks, makes door remote use NTNet
* Access levels given by jobs are now shuffled
* Access code improvements
* Adds IC card readers
* Fixes a delay issue with opening/closing airlocks with NTNet or signalers
* code review memes
* Renames plaintext_passkey to encrypted_passkey
* death by thousand nitpicks
cl
add: Circuits integrity, charge, and overall circuit composition is displayed on diagnostic huds. If the assembly has dangerous circuits then the status icon will display exclamation points, if the assembly can communicate with something far away a wifi icon will appear next to the status icon, and if the circuit can not operate the status icon will display an 'X'.
add: AR interface circuit which can modify the status icon if it is not displaying the exclamation points or the 'X'.
tweak: Locomotive circuits can no longer be added to assemblies that can't use them.
spellcheck: Fixed a typo in the grenade primer description.
code: Added flags to circuits that help group subsets of circuits and regulate them.
/cl
The diagnostic hud addition is meant to allow more counter play to circuits by seeing the assemblies's healths and how dangerous they are. The flags are a useful addition to the code because players shouldn't be able to put circuits in assemblies if the assembly can't use that circuit (this can also be used later for other assemblies which could use unique circuits).
The following circuits are flagged as dangerous:
weapon firing mechanism
grenade primer
thrower
The following circuits are flagged as long range:
NTNet networking circuit
integrated signaler
video camera circuit
possible AR interface displays:
default
alert
move
🆑 Xhuis
tweak: Removing and printing integrated circuits will now attempt to place them into a free hand.
tweak: You can now hit an integrated circuit printer with an unsecured electronic assembly to recycle all of the parts in the assembly en masse.
tweak: You can now recycle empty electronic assemblies in an integrated circuit printer!
soundadd: Integrated circuit printers now have sounds for printing circuits and assemblies.
/🆑
Some low-hanging fruit for circuits. I was trying them earlier, and these were the main things that I was surprised didn't exist, so I added them. I'm not sure about the assembly manipulation yet (may have been intentional?) but it feels a lot smoother to use, especially since misprints can be emptied out and then recycled instead of awkwardly removing each component and then disposing of the case.