* Bespoke Material Backend
- Adds support for bespoke materials:
- Reimplements [/datum/material/var/id]
- Ports GetIdFromArguments from SSdcs
- Adds a wrapper define for GetMaterialRef
- Adds [MATERIAL_INIT_BESPOKE]
- Adds [/datum/material/proc/Initialize]
- Does not actually add any bespoke materials
- [ ] TODO: Code docs
- [ ] TODO: Actually adding bespoke materials
* Some has_material procs and cleaning up some spaghetti
- Adds a pair of has_material procs for use in checking whether a given atom has a given material
* Adds meat
- Adds bespoke meat variants
- Does not make them accessible
- Shuts up the linter
* Implements bespoke meat
- Makes the material container preserve bespoke materials
- Makes the sheetifier accept bespoke materials
- Makes the autolathe accept bespoke materials
- Makes the gibber produce bespoke meats
* Makes butchering produce bespoke meats
This is jank and really needs to be folded into a unified butchering and gibbing system
* Material documentation
- Adds, fixes, and touches up some documentation
* Material container insertion callback
- Changes the proc used to expand the material container's material list ot a proc used to check whether a material fits into a material container
- Instantiating new materials is no longer O(n) relative to the number of autolathes in existence.
* Makes processing meat conserve materials
- Makes bespoke meat carry over into meatballs
* Makes preserving custom materials an option
- Implements the ability to turn preserving custom materials _off_ for processor recipes
* Fixes all bespoke materials of the same type using the same singleton
- We use ids now, not just types.
* Makes the fat sucker produce bespoke meats
- Because consistency is good.
* Fixes autolathes merging bespoke stacks into normal stacks.
* Makes the callback to test materials for holdibility optional
- @Floyd
* GetMaterialRef -> GET_MATERIAL_REF
- We capitalize macros.
* Removes an extraneous callback
- Makes the sheetifier use functionality I didn't notice I implemented a few commits ago.
* Makes mob and species meat null compatible
* Fixes the ore silo
- The ore silo had really snowflake material handling that has been brought in line with the rest.
- The materials should show up in the correct order.
* Fixes minor lathe bugs
- Fixes stack_traces caused when lathes tried to fetch materials using reagent typepaths
- Fixed the selective reagent disposal topic. I have no idea how long this has been broken.
* Various documentation fixes
- Clarified a couple comments
- Removes an extraneous ?. operator
- Fixed mat floor tiles having bugged reagent temperatures
* More fixes
-/datum/material/meat/mob -> /datum/material/meat/mob_meat
- Adds atom typecheck to material containers.
* Fixes old typepaths
My original intention was just fixing an issue with the Mk-honk banana shoes but, considering I didn't want to add two new variables to a component with already lot of args and lengthy AddComponent() calls in term of text, I had to merge some TRUE/FALSE variable/args into the breakdown_flags bitfield (now named mat_container_flags) in the process.
Adds and implements alloy materials
Takes several materials that were mostly fluff and converts them into actual usable materials.
Messes with material code a bit to make alloys recycle back into their component materials.
Adds the alloy materials to their in-game stacks.
Materials added:
Plasteel
Plastitanium
Plasmaglass
Titaniumglass
Plastitanium Glass
Alien Alloy
Makes plasteel/plastitanium/plasmaglass and the rest able to have separate properties from their component materials. It doesn't make much sense that the materials used to seal off the supermatter chamber from the rest of the station would be prone to exploding when heated.
Allows for further expansion of materials, possibly including actual functional metallurgy and smelting at some point in the very distant future.
(Lemons note: Adds a regeneration component, used for alien alloy)
Removes various R&D machine requirements including circuit imprinters, protolathes, destructive analyzer and the mechfabs. All machines that previously required an R&D console to function are standalone, including omni protolathes and omni imprinters.
Replaces "production"-class R&D consoles with civilian modular computers on all maps. There are no longer "production"-class consoles.
Removes the concept of "core" R&D consoles. R&D consoles only research and handle tech disks and stuff. All existing core consoles have been switched to their basic archetype.
Because it's a pain in the ass to manage, material reclaimation has been removed from the destructive analyzer. The destructive analyzer is now ONLY for destroying items and unlocking research nodes such as illegal and alien tech.
removes materials list from items, uses custom_materials instead. This might introduce some bugs so we should testmerge this for a while (and Ill test stuff locally as much as I can)
this also adds material crafting to sheets. Test case being chairs. In the future we can add stuff like tables, walls, doors etc.
also applies materials to everything, with fixes, which can close#46299
cl Naksu
code: reagent IDs have been removed in favor using reagent typepaths where applicable
fix: mechas, borg hyposprays etc no longer display internal reagent ids to the player
/cl
Yeah yeah I know no opening too many WIP PRs but this one's [ready] and I want to make sure any furthur techweb development doesn't keep using the old reference system which will make refactoring it harder, and this makes it easier for coders to do stuff in theory (at least for me), standardizes getting a node/design, and makes stuff actually GC properly.
cl Denton
add: Added new available items to all departmental protolathes. Keep an eye out for the new "Basic Tools" and "Basic Security Equipment" research nodes.
tweak: Made the AI surveillance upgrade available through the "Illegal Technology" research node.
tweak: Created a "Tool Designs" lathe subsection and moved most tools into it.
balance: Made defibrillators easier to print by moving them to the basic biotechnology research node.
fix: Health analyzers are now properly printable once researched.
/cl
tl;dr I've heard a fair amount of complaints about departmental lathes that can be summed up with "cluttered sections, too few useful or interesting items in some lathes".
I'm trying to improve it with the following:
A) Added a new category called "Tool Designs" and grouped all tools into it. That way, they no longer clutter up the Equipment/Medical Designs sections.
B) New lathe contents:
Medical:
Surgical tools, included in the "Basic Tools" node.
These fit way better into the Medical/RnD lathes instead of a public one that also prints dishware.
Basic 50u and large 100u beakers, roundstart.
Medical spray bottles, printable with basic biotech.
Compact defibrillators, printable with Advanced Biotech.
They're fairly expensive, but obviously superior to regular defibs.
Service:
Botanical tools, printable with Basic Tools.
Spray bottles and bear traps, printable with sanitation tech.
Basic 50u and large 100u beakers, roundstart.
Security:
Seclites, pepper sprays (empty), energy bolas, zip ties, evidence bags, flashes. Printable with the new "Basic Security Equipment" node.
I've had a look at weapons as well, but the ones that aren't printable/ingame yet are either ballistics or unbalanced.
Science:
Mechanical/electric tools, printable with Basic Tools.
Illegal technology unlocks the AI surveillance software upgrade.
Installing it on an AI lets it listen to conversations through cameras.
Engineering:
Artificial bluespace crystals, alien alloy.
This is neccessary in case engineers have to rebuild a teleporter, but miners haven't brought back any bluespace crystals.
Mechanical/electric and atmos tools, printable with Basic Tools.
All lathes:
Hand labelers, destination taggers and wrapping paper.
This lets crew mail packages when the mail office isn't manned (which is 24/7).
Illegal technology unlocks Donksoft refill packs.
You can't build the Donksoft vendor without refill packs; not including them was an oversight in my earlier PR.
add: The vault now contains an ore silo where the station's minerals are stored.
add: The station's ORM, recycling, and the labor camp send materials to the silo via bluespace.
add: Protolathes, techfabs, and circuit imprinters all pull materials from the silo via bluespace.
add: Those with vault access can view mineral logs and pause or remove any machine's access, or add machines with a multitool.
tweak: The ORM's alloy recipes are now available in engineering and science protolathes.
Doing my little update piece by piece because I'm lazy and because storage PR is going to conflict everything ever.
Techfabs do not link to RND consoles, and have their own interface for producing things.
RND production machinery code refactored.
Techwebs have categories views instead of just a goddamn design list.
Old machinery will be kept in, as some places will keep them. Read: Engineering, robotics, etc.
experimental: Protolathes and circuit imprinters combined/changed to techfabs. All departments can now print related circuit boards. Engineering and science will keep their lathe/imprinter design by default at roundstart because they have specialized labs for those.