Skip to content

Commit

Permalink
design categories / subcategories tags (#6881)
Browse files Browse the repository at this point in the history
## About The Pull Request

attaches a category & subcategory to lathe designs.
also unfucks a few design names to be more easily searchable (gps, nif)

## Why It's Good For The Game

roadwork to making designs less ass to search through.
also sili asked, thus, i do.

## Changelog

:cl:
add: category & subcategory tags for lathe designs.
tweak: a few design names changed to be clearer.
/:cl:
  • Loading branch information
Niezann authored Nov 23, 2024
1 parent 6147dfe commit 656f809
Show file tree
Hide file tree
Showing 34 changed files with 278 additions and 4 deletions.
64 changes: 64 additions & 0 deletions code/__DEFINES/datums/design.dm
Original file line number Diff line number Diff line change
Expand Up @@ -39,3 +39,67 @@ DEFINE_BITFIELD(design_flags, list(
BITFIELD(DESIGN_NO_SCALE),
BITFIELD(DESIGN_IGNORE_RESOURCE_SANITY),
))

//design categories
//misc is the default
#define DESIGN_CATEGORY_MISC "Misc"
#define DESIGN_CATEGORY_MUNITIONS "Munitions"
#define DESIGN_CATEGORY_STORAGE "Storage"
#define DESIGN_CATEGORY_AI "AI"
#define DESIGN_CATEGORY_ATMOS "Atmospherics"
#define DESIGN_CATEGORY_MECHA "Mecha"
#define DESIGN_CATEGORY_RECREATION "Recreation"
#define DESIGN_CATEGORY_TELEPORTATION "Teleportation"
#define DESIGN_CATEGORY_POWER "Power"
#define DESIGN_CATEGORY_TELECOMMUNICATIONS "Telecommunications"
#define DESIGN_CATEGORY_MEDICAL "Medical"
#define DESIGN_CATEGORY_CARGO_MINING "Cargo / Mining"
#define DESIGN_CATEGORY_SECURITY "Security"
#define DESIGN_CATEGORY_SCIENCE "Science"
#define DESIGN_CATEGORY_COMPUTER "Computer Parts"
#define DESIGN_CATEGORY_ENGINEERING "Engineering"
#define DESIGN_CATEGORY_INTEGRATED_CIRCUITRY "Integrated Circuitry"
#define DESIGN_CATEGORY_SYNTH "Synth"
#define DESIGN_CATEGORY_PROSTHETIC "Prosthetics"
#define DESIGN_CATEGORY_DATA "Data"
#define DESIGN_CATEGORY_ATTACHMENTS "Attachments"
#define DESIGN_CATEGORY_TOOLS "Tools"
#define DESIGN_CATEGORY_HARDSUIT "Hardsuit"

//subcategories
//misc is the default
#define DESIGN_SUBCATEGORY_MISC "Misc"

//any category can go have station as a subcategory
#define DESIGN_SUBCATEGORY_STATION "Station Equipment"

//munition subcategories
#define DESIGN_SUBCATEGORY_BALLISTIC "Ballistic"
#define DESIGN_SUBCATEGORY_ENERGY "Energy"
#define DESIGN_SUBCATEGORY_MELEE "Melee"
#define DESIGN_SUBCATEGORY_AMMO "Ammo"
#define DESIGN_SUBCATEGORY_PINS "Weapon Pins"

//if it scans? it goes here.
#define DESIGN_SUBCATEGORY_SCANNING "Scanning Equipment"

//AI subcategories
#define DESIGN_SUBCATEGORY_LAWS "Laws"
#define DESIGN_SUBCATEGORY_CORE "Cores"

//Synth subcategory
#define DESIGN_SUBCATEGORY_SYNTHETIC_MINDS "Synthetic Minds"

//Power subcategories
#define DESIGN_SUBCATEGORY_CHARGING "Charger"
#define DESIGN_SUBCATEGORY_GENERATING "Generator"


#define DESIGN_SUBCATEGORY_NIF "NIF"

//if it goes in a machine / thing? it goes in here.
#define DESIGN_SUBCATEGORY_PARTS "Parts"

//science subcategories
#define DESIGN_SUBCATEGORY_XENOBIOLOGY "Xenobiology"
#define DESIGN_SUBCATEGORY_XENOARCHEOLOGY "Xenoarcheology"
4 changes: 3 additions & 1 deletion code/datums/design/design.dm
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,9 @@
/// overrides build_name for purposes of name generation.
var/design_name
/// category - string or list, or null; null results in undefined behavior depending on UI.
var/category = "Misc"
var/category = DESIGN_CATEGORY_MISC

var/subcategory = DESIGN_CATEGORY_MISC

//? Build Data
/// name of item before any name-generation is done. also shown in ui. if null, it'll be auto-detected from the build_path if possible.
Expand Down
1 change: 1 addition & 0 deletions code/modules/research/designs/HUDs.dm
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/datum/prototype/design/science/hud
abstract_type = /datum/prototype/design/science/hud
subcategory = DESIGN_SUBCATEGORY_SCANNING
materials_base = list(MAT_STEEL = 50, MAT_GLASS = 50)

/datum/prototype/design/science/hud/generate_name(template)
Expand Down
2 changes: 2 additions & 0 deletions code/modules/research/designs/ai_holders.dm
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
/datum/prototype/design/science/ai_holder
abstract_type = /datum/prototype/design/science/ai_holder
category = DESIGN_CATEGORY_SYNTH
subcategory = DESIGN_SUBCATEGORY_SYNTHETIC_MINDS

// Various AI/mind holding device
/datum/prototype/design/science/ai_holder/generate_name(template)
Expand Down
2 changes: 2 additions & 0 deletions code/modules/research/designs/bag_of_holding.dm
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
design_name = "Bag of Holding"
desc = "Using localized pockets of bluespace this bag prototype offers incredible storage capacity with the contents weighting nothing. It's a shame the bag itself is pretty heavy."
id = "bag_holding"
category = DESIGN_CATEGORY_STORAGE
req_tech = list(TECH_BLUESPACE = 4, TECH_MATERIAL = 6)
materials_base = list(MAT_GOLD = 3000, MAT_DIAMOND = 1500, MAT_URANIUM = 250)
build_path = /obj/item/storage/backpack/holding
Expand All @@ -16,6 +17,7 @@
design_name = "DuffleBag of Holding"
desc = "A minaturized prototype of the popular Bag of Holding, the Dufflebag of Holding is, functionally, identical to the bag of holding, but comes in a more stylish and compact form."
id = "duffle-holding"
category = DESIGN_CATEGORY_STORAGE
req_tech = list(TECH_BLUESPACE = 4, TECH_MATERIAL = 6)
materials_base = list(MAT_GOLD = 3000, MAT_DIAMOND = 1500, MAT_URANIUM = 250)
build_path = /obj/item/storage/backpack/holding/duffle
2 changes: 2 additions & 0 deletions code/modules/research/designs/beakers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
design_name = "cryostasis"
desc = "A cryostasis beaker that allows for chemical storage without reactions. Can hold up to 50 units."
id = "splitbeaker"
category = DESIGN_CATEGORY_STORAGE
req_tech = list(TECH_MATERIAL = 2)
materials_base = list(MAT_STEEL = 3000)
build_path = /obj/item/reagent_containers/glass/beaker/noreact
Expand All @@ -16,6 +17,7 @@
design_name = TECH_BLUESPACE
desc = "A bluespace beaker, powered by experimental bluespace technology and Element Cuban combined with the Compound Pete. Can hold up to 300 units."
id = "bluespacebeaker"
category = DESIGN_CATEGORY_STORAGE
req_tech = list(TECH_BLUESPACE = 2, TECH_MATERIAL = 6)
materials_base = list(MAT_STEEL = 3000, MAT_PHORON = 3000, MAT_DIAMOND = 500)
build_path = /obj/item/reagent_containers/glass/beaker/bluespace
14 changes: 12 additions & 2 deletions code/modules/research/designs/bio_devices.dm
Original file line number Diff line number Diff line change
Expand Up @@ -10,37 +10,43 @@
/datum/prototype/design/science/biotech/mass_spectrometer
desc = "A device for analyzing chemicals in blood."
id = "mass_spectrometer"
subcategory = DESIGN_SUBCATEGORY_SCANNING
req_tech = list(TECH_BIO = 2, TECH_MAGNET = 2)
build_path = /obj/item/mass_spectrometer

/datum/prototype/design/science/biotech/adv_mass_spectrometer
desc = "A device for analyzing chemicals in blood and their quantities."
id = "adv_mass_spectrometer"
subcategory = DESIGN_SUBCATEGORY_SCANNING
req_tech = list(TECH_BIO = 2, TECH_MAGNET = 4)
build_path = /obj/item/mass_spectrometer/adv

/datum/prototype/design/science/biotech/reagent_scanner
desc = "A device for identifying chemicals."
id = "reagent_scanner"
subcategory = DESIGN_SUBCATEGORY_SCANNING
req_tech = list(TECH_BIO = 2, TECH_MAGNET = 2)
build_path = /obj/item/reagent_scanner

/datum/prototype/design/science/biotech/adv_reagent_scanner
desc = "A device for identifying chemicals and their proportions."
id = "adv_reagent_scanner"
subcategory = DESIGN_SUBCATEGORY_SCANNING
req_tech = list(TECH_BIO = 2, TECH_MAGNET = 4)
build_path = /obj/item/reagent_scanner/adv

/datum/prototype/design/science/biotech/robot_scanner
desc = "A hand-held scanner able to diagnose robotic injuries."
id = "robot_scanner"
subcategory = DESIGN_SUBCATEGORY_SCANNING
req_tech = list(TECH_MAGNET = 3, TECH_BIO = 2, TECH_ENGINEERING = 3)
materials_base = list(MAT_STEEL = 500, MAT_GLASS = 200)
build_path = /obj/item/robotanalyzer

/datum/prototype/design/science/biotech/nanopaste
desc = "A tube of paste containing swarms of repair nanites. Very effective in repairing robotic machinery."
id = "nanopaste"
category = DESIGN_CATEGORY_SYNTH
req_tech = list(TECH_MATERIAL = 4, TECH_ENGINEERING = 3)
materials_base = list(MAT_STEEL = 7000, MAT_GLASS = 7000)
build_path = /obj/item/stack/nanopaste
Expand All @@ -49,27 +55,31 @@
/datum/prototype/design/science/biotech/plant_analyzer
desc = "A device capable of quickly scanning all relevant data about a plant."
id = "plant_analyzer"
subcategory = DESIGN_SUBCATEGORY_SCANNING
req_tech = list(TECH_MAGNET = 2, TECH_BIO = 2)
materials_base = list(MAT_STEEL = 500, MAT_GLASS = 500)
build_path = /obj/item/plant_analyzer

/datum/prototype/design/science/biotech/nif
design_name = "nanite implant framework"
design_name = "nanite implant framework (NIF)"
id = "nif"
subcategory = DESIGN_SUBCATEGORY_NIF
req_tech = list(TECH_MAGNET = 5, TECH_BLUESPACE = 5, TECH_MATERIAL = 5, TECH_ENGINEERING = 5, TECH_DATA = 5)
materials_base = list(MAT_STEEL = 5000, MAT_GLASS = 8000, MAT_URANIUM = 6000, MAT_DIAMOND = 6000)
build_path = /obj/item/nif

/datum/prototype/design/science/biotech/nifbio
design_name = "bioadaptive NIF"
design_name = "bioadaptive nanite implant framework (NIF)"
id = "bioadapnif"
subcategory = DESIGN_SUBCATEGORY_NIF
req_tech = list(TECH_MAGNET = 5, TECH_BLUESPACE = 5, TECH_MATERIAL = 5, TECH_ENGINEERING = 5, TECH_DATA = 5, TECH_BIO = 5)
materials_base = list(MAT_STEEL = 10000, MAT_GLASS = 15000, MAT_URANIUM = 10000, MAT_DIAMOND = 10000)
build_path = /obj/item/nif/bioadap

/datum/prototype/design/science/biotech/nifrepairtool
design_name = "adv. NIF repair tool"
id = "anrt"
subcategory = DESIGN_SUBCATEGORY_NIF
req_tech = list(TECH_MAGNET = 5, TECH_BLUESPACE = 5, TECH_MATERIAL = 5, TECH_ENGINEERING = 5, TECH_DATA = 5)
materials_base = list(MAT_STEEL = 200, MAT_GLASS = 3000, MAT_URANIUM = 2000, MAT_DIAMOND = 2000)
build_path = /obj/item/nifrepairer
1 change: 1 addition & 0 deletions code/modules/research/designs/circuit_assembly.dm
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/datum/prototype/design/science/integrated_circuitry
category = DESIGN_CATEGORY_INTEGRATED_CIRCUITRY
abstract_type = /datum/prototype/design/science/integrated_circuitry

/datum/prototype/design/science/integrated_circuitry/generate_name(template)
Expand Down
3 changes: 3 additions & 0 deletions code/modules/research/designs/circuits/ai_modules.dm
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
/datum/prototype/design/aimodule
abstract_type = /datum/prototype/design/aimodule
lathe_type = LATHE_TYPE_CIRCUIT
category = DESIGN_CATEGORY_AI
subcategory = DESIGN_SUBCATEGORY_LAWS
materials_base = list(MAT_GLASS = 2000, MAT_GOLD = 100)

/datum/prototype/design/aimodule/generate_name(template)
Expand Down Expand Up @@ -66,6 +68,7 @@
// Core modules
/datum/prototype/design/aimodule/core
abstract_type = /datum/prototype/design/aimodule/core
subcategory = DESIGN_SUBCATEGORY_CORE
req_tech = list(TECH_DATA = 4, TECH_MATERIAL = 6)

/datum/prototype/design/aimodule/core/generate_name(template)
Expand Down
Loading

0 comments on commit 656f809

Please sign in to comment.