mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-26 10:03:45 +00:00
Merge pull request #2880 from Neerti/12/29/2016_circuit_autoresearch
Makes Circuits Make Their Own Research Designs
This commit is contained in:
@@ -1574,428 +1574,6 @@ CIRCUITS BELOW
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 40000)
|
||||
build_path = /obj/item/device/electronic_assembly/large
|
||||
|
||||
/datum/design/circuit/integrated_circuit
|
||||
req_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2)
|
||||
|
||||
/datum/design/circuit/integrated_circuit/AssembleDesignName()
|
||||
..()
|
||||
name = "Custom circuitry ([item_name])"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/AssembleDesignDesc()
|
||||
if(!desc)
|
||||
desc = "Allows for the construction of \a [name] custom circuit."
|
||||
|
||||
/datum/design/circuit/integrated_circuit/arithmetic/AssembleDesignName()
|
||||
..()
|
||||
name = "Custom circuitry \[Arithmetic\] ([item_name])"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/arithmetic/addition
|
||||
id = "cc-addition"
|
||||
build_path = /obj/item/integrated_circuit/arithmetic/addition
|
||||
sort_string = "WAAAA"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/arithmetic/subtraction
|
||||
id = "cc-subtraction"
|
||||
build_path = /obj/item/integrated_circuit/arithmetic/subtraction
|
||||
sort_string = "WAAAB"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/arithmetic/multiplication
|
||||
id = "cc-multiplication"
|
||||
build_path = /obj/item/integrated_circuit/arithmetic/multiplication
|
||||
sort_string = "WAAAC"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/arithmetic/division
|
||||
id = "cc-division"
|
||||
build_path = /obj/item/integrated_circuit/arithmetic/division
|
||||
sort_string = "WAAAD"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/arithmetic/absolute
|
||||
id = "cc-absolute"
|
||||
build_path = /obj/item/integrated_circuit/arithmetic/absolute
|
||||
sort_string = "WAAAE"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/arithmetic/average
|
||||
id = "cc-average"
|
||||
build_path = /obj/item/integrated_circuit/arithmetic/average
|
||||
sort_string = "WAAAF"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/arithmetic/pi
|
||||
id = "cc-pi"
|
||||
build_path = /obj/item/integrated_circuit/arithmetic/pi
|
||||
sort_string = "WAAAG"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/arithmetic/random
|
||||
id = "cc-random"
|
||||
build_path = /obj/item/integrated_circuit/arithmetic/random
|
||||
sort_string = "WAAAH"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/arithmetic/round
|
||||
id = "cc-round"
|
||||
build_path = /obj/item/integrated_circuit/arithmetic/round
|
||||
sort_string = "WAAAI"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/arithmetic/exponent
|
||||
id = "cc-exponent"
|
||||
build_path = /obj/item/integrated_circuit/arithmetic/exponent
|
||||
sort_string = "WAAAJ"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/arithmetic/sign
|
||||
id = "cc-sign"
|
||||
build_path = /obj/item/integrated_circuit/arithmetic/sign
|
||||
sort_string = "WAAAK"
|
||||
|
||||
|
||||
|
||||
/datum/design/circuit/integrated_circuit/converter/AssembleDesignName()
|
||||
..()
|
||||
name = "Custom circuitry \[Conversion\] ([item_name])"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/converter/num2text
|
||||
id = "cc-num2text"
|
||||
build_path = /obj/item/integrated_circuit/converter/num2text
|
||||
sort_string = "WAABA"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/converter/text2num
|
||||
id = "cc-text2num"
|
||||
build_path = /obj/item/integrated_circuit/converter/text2num
|
||||
sort_string = "WAABB"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/converter/ref2text
|
||||
id = "cc-ref2text"
|
||||
build_path = /obj/item/integrated_circuit/converter/ref2text
|
||||
sort_string = "WAABC"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/converter/lowercase
|
||||
id = "cc-lowercase"
|
||||
build_path = /obj/item/integrated_circuit/converter/lowercase
|
||||
sort_string = "WAABD"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/converter/uppercase
|
||||
id = "cc-uppercase"
|
||||
build_path = /obj/item/integrated_circuit/converter/uppercase
|
||||
sort_string = "WAABD"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/converter/concatenatior
|
||||
id = "cc-concatenatior"
|
||||
build_path = /obj/item/integrated_circuit/converter/concatenatior
|
||||
sort_string = "WAABC"
|
||||
|
||||
|
||||
|
||||
/datum/design/circuit/integrated_circuit/coordinate/AssembleDesignName()
|
||||
..()
|
||||
name = "Custom circuitry \[Coordinate\] ([item_name])"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/coordinate/gps
|
||||
id = "cc-gps"
|
||||
build_path = /obj/item/integrated_circuit/gps
|
||||
sort_string = "WAACA"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/coordinate/abs_to_rel_coords
|
||||
id = "cc-abs_to_rel_coords"
|
||||
build_path = /obj/item/integrated_circuit/abs_to_rel_coords
|
||||
sort_string = "WAACB"
|
||||
|
||||
|
||||
|
||||
/datum/design/circuit/integrated_circuit/transfer/AssembleDesignName()
|
||||
..()
|
||||
name = "Custom circuitry \[Transfer\] ([item_name])"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/transfer/splitter
|
||||
id = "cc-splitter"
|
||||
build_path = /obj/item/integrated_circuit/transfer/splitter
|
||||
sort_string = "WAADA"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/transfer/splitter4
|
||||
id = "cc-splitter4"
|
||||
build_path = /obj/item/integrated_circuit/transfer/splitter/medium
|
||||
sort_string = "WAADB"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/transfer/splitter8
|
||||
id = "cc-splitter8"
|
||||
build_path = /obj/item/integrated_circuit/transfer/splitter/large
|
||||
sort_string = "WAADC"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/transfer/activator_splitter
|
||||
id = "cc-activator_splitter"
|
||||
build_path = /obj/item/integrated_circuit/transfer/activator_splitter
|
||||
sort_string = "WAADD"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/transfer/activator_splitter4
|
||||
id = "cc-activator_splitter4"
|
||||
build_path = /obj/item/integrated_circuit/transfer/activator_splitter/medium
|
||||
sort_string = "WAADE"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/transfer/activator_splitter8
|
||||
id = "cc-activator_splitter8"
|
||||
build_path = /obj/item/integrated_circuit/transfer/activator_splitter/large
|
||||
sort_string = "WAADF"
|
||||
|
||||
|
||||
|
||||
/datum/design/circuit/integrated_circuit/input_output/AssembleDesignName()
|
||||
..()
|
||||
name = "Custom circuitry \[Input/Output\] ([item_name])"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/input_output/button
|
||||
id = "cc-button"
|
||||
build_path = /obj/item/integrated_circuit/input/button
|
||||
sort_string = "WAAEA"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/input_output/numberpad
|
||||
id = "cc-numberpad"
|
||||
build_path = /obj/item/integrated_circuit/input/numberpad
|
||||
sort_string = "WAAEB"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/input_output/textpad
|
||||
id = "cc-textpad"
|
||||
build_path = /obj/item/integrated_circuit/input/textpad
|
||||
sort_string = "WAAEC"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/input_output/screen
|
||||
id = "cc-screen"
|
||||
build_path = /obj/item/integrated_circuit/output/screen
|
||||
sort_string = "WAAED"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/input_output/med_scanner
|
||||
id = "cc-medscanner"
|
||||
build_path = /obj/item/integrated_circuit/input/med_scanner
|
||||
req_tech = list(TECH_MATERIAL = 2, TECH_MAGNETS = 2, TECH_BIOMED = 2)
|
||||
sort_string = "WAAEE"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/input_output/adv_med_scanner
|
||||
id = "cc-advmedscanner"
|
||||
build_path = /obj/item/integrated_circuit/input/adv_med_scanner
|
||||
req_tech = list(TECH_MATERIAL = 2, TECH_MAGNETS = 3, TECH_BIOMED = 4)
|
||||
sort_string = "WAAEF"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/input_output/local_locator
|
||||
id = "cc-locallocator"
|
||||
build_path = /obj/item/integrated_circuit/input/local_locator
|
||||
sort_string = "WAAEG"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/input_output/adjacent_locator
|
||||
id = "cc-adjacentlocator"
|
||||
build_path = /obj/item/integrated_circuit/input/adjacent_locator
|
||||
sort_string = "WAAEH"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/input_output/signaler
|
||||
id = "cc-signaler"
|
||||
build_path = /obj/item/integrated_circuit/input/signaler
|
||||
sort_string = "WAAEJ"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/input_output/light
|
||||
id = "cc-light"
|
||||
build_path = /obj/item/integrated_circuit/output/light
|
||||
sort_string = "WAAEH"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/input_output/adv_light
|
||||
id = "cc-adv_light"
|
||||
build_path = /obj/item/integrated_circuit/output/light/advanced
|
||||
sort_string = "WAAEI"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/input_output/beeper
|
||||
id = "cc-sound_beeper"
|
||||
build_path = /obj/item/integrated_circuit/output/sound/beeper
|
||||
sort_string = "WAAEJ"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/input_output/beepsky_sound
|
||||
id = "cc-sound_beepsky"
|
||||
build_path = /obj/item/integrated_circuit/output/sound/beepsky
|
||||
sort_string = "WAAEK"
|
||||
req_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2, TECH_ILLEGAL = 1)
|
||||
|
||||
/datum/design/circuit/integrated_circuit/input_output/EPv2
|
||||
id = "cc-epv2"
|
||||
build_path = /obj/item/integrated_circuit/input/EPv2
|
||||
sort_string = "WAAEL"
|
||||
req_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2, TECH_MAGNETS = 2, TECH_BLUESPACE = 2)
|
||||
|
||||
|
||||
/datum/design/circuit/integrated_circuit/logic/AssembleDesignName()
|
||||
..()
|
||||
name = "Custom circuitry \[Logic\] ([item_name])"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/logic/binary/equals
|
||||
id = "cc-equals"
|
||||
build_path = /obj/item/integrated_circuit/logic/binary/equals
|
||||
sort_string = "WAAFA"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/logic/unary/not
|
||||
id = "cc-not"
|
||||
build_path = /obj/item/integrated_circuit/logic/unary/not
|
||||
sort_string = "WAAFB"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/logic/binary/and
|
||||
id = "cc-and"
|
||||
build_path = /obj/item/integrated_circuit/logic/binary/and
|
||||
sort_string = "WAAFC"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/logic/binary/or
|
||||
id = "cc-or"
|
||||
build_path = /obj/item/integrated_circuit/logic/binary/or
|
||||
sort_string = "WAAFD"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/logic/binary/less_than
|
||||
id = "cc-less_than"
|
||||
build_path = /obj/item/integrated_circuit/logic/binary/less_than
|
||||
sort_string = "WAAFE"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/logic/binary/less_than_or_equal
|
||||
id = "cc-less_than_or_equal"
|
||||
build_path = /obj/item/integrated_circuit/logic/binary/less_than_or_equal
|
||||
sort_string = "WAAFF"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/logic/binary/greater_than
|
||||
id = "cc-greater_than"
|
||||
build_path = /obj/item/integrated_circuit/logic/binary/greater_than
|
||||
sort_string = "WAAFG"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/logic/binary/greater_than_or_equal
|
||||
id = "cc-greater_than_or_equal"
|
||||
build_path = /obj/item/integrated_circuit/logic/binary/greater_than_or_equal
|
||||
sort_string = "WAAFH"
|
||||
|
||||
|
||||
|
||||
/datum/design/circuit/integrated_circuit/manipulation/AssembleDesignName()
|
||||
..()
|
||||
name = "Custom circuitry \[Manipulation\] ([item_name])"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/manipulation/weapon_firing
|
||||
name = "weapon firing mechanism"
|
||||
id = "cc-weapon_firing"
|
||||
build_path = /obj/item/integrated_circuit/manipulation/weapon_firing
|
||||
sort_string = "WAAGA"
|
||||
req_tech = list(TECH_ENGINEERING = 3, TECH_DATA = 3, TECH_COMBAT = 4)
|
||||
|
||||
/datum/design/circuit/integrated_circuit/manipulation/smoke
|
||||
name = "smoke generator"
|
||||
id = "cc-smoke"
|
||||
build_path = /obj/item/integrated_circuit/manipulation/smoke
|
||||
sort_string = "WAAGB"
|
||||
req_tech = list(TECH_ENGINEERING = 3, TECH_DATA = 3, TECH_BIO = 4)
|
||||
|
||||
/datum/design/circuit/integrated_circuit/manipulation/locomotion
|
||||
name = "locomotion"
|
||||
id = "cc-locomotion"
|
||||
build_path = /obj/item/integrated_circuit/manipulation/locomotion
|
||||
sort_string = "WAAGB"
|
||||
req_tech = list(TECH_ENGINEERING = 3, TECH_DATA = 3)
|
||||
|
||||
/datum/design/circuit/integrated_circuit/manipulation/injector
|
||||
name = "injector"
|
||||
id = "cc-injector"
|
||||
build_path = /obj/item/integrated_circuit/manipulation/injector
|
||||
sort_string = "WAAGC"
|
||||
req_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2, TECH_BIO = 3)
|
||||
|
||||
/datum/design/circuit/integrated_circuit/manipulation/reagent_pump
|
||||
name = "reagent pump"
|
||||
id = "cc-reagent_pump"
|
||||
build_path = /obj/item/integrated_circuit/manipulation/reagent_pump
|
||||
sort_string = "WAAGD"
|
||||
req_tech = list(TECH_ENGINEERING = 1, TECH_DATA = 1, TECH_BIO = 2)
|
||||
|
||||
/datum/design/circuit/integrated_circuit/manipulation/reagent_storage
|
||||
name = "reagent storage"
|
||||
id = "cc-reagent_storage"
|
||||
build_path = /obj/item/integrated_circuit/manipulation/reagent_storage
|
||||
sort_string = "WAAGE"
|
||||
req_tech = list(TECH_ENGINEERING = 1, TECH_DATA = 1, TECH_BIO = 1)
|
||||
|
||||
/datum/design/circuit/integrated_circuit/manipulation/reagent_storage_cryo
|
||||
name = "cryo reagent storage"
|
||||
id = "cc-reagent_storage_cryo"
|
||||
build_path = /obj/item/integrated_circuit/manipulation/reagent_storage/cryo
|
||||
sort_string = "WAAGF"
|
||||
req_tech = list(TECH_MATERIALS = 3, TECH_ENGINEERING = 2, TECH_DATA = 2, TECH_BIO = 2)
|
||||
|
||||
/datum/design/circuit/integrated_circuit/memory/AssembleDesignName()
|
||||
..()
|
||||
name = "Custom circuitry \[Memory\] ([item_name])"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/memory
|
||||
id = "cc-memory"
|
||||
build_path = /obj/item/integrated_circuit/memory
|
||||
sort_string = "WAAHA"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/memory/medium
|
||||
id = "cc-memory4"
|
||||
build_path = /obj/item/integrated_circuit/memory/medium
|
||||
sort_string = "WAAHB"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/memory/large
|
||||
id = "cc-memory8"
|
||||
build_path = /obj/item/integrated_circuit/memory/large
|
||||
sort_string = "WAAHC"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/memory/huge
|
||||
id = "cc-memory16"
|
||||
build_path = /obj/item/integrated_circuit/memory/huge
|
||||
sort_string = "WAAHD"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/memory/constant
|
||||
id = "cc-constant"
|
||||
build_path = /obj/item/integrated_circuit/memory/constant
|
||||
sort_string = "WAAHH"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/time/AssembleDesignName()
|
||||
..()
|
||||
name = "Custom circuitry \[Time\] ([item_name])"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/time/delay
|
||||
id = "cc-delay"
|
||||
build_path = /obj/item/integrated_circuit/time/delay
|
||||
sort_string = "WAAIA"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/time/delay/five_sec
|
||||
id = "cc-five_sec_delay"
|
||||
build_path = /obj/item/integrated_circuit/time/delay/five_sec
|
||||
sort_string = "WAAIB"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/time/delay/one_sec
|
||||
id = "cc-one_sec_delay"
|
||||
build_path = /obj/item/integrated_circuit/time/delay/one_sec
|
||||
sort_string = "WAAIC"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/time/delay/half_sec
|
||||
id = "cc-half_sec_delay"
|
||||
build_path = /obj/item/integrated_circuit/time/delay/half_sec
|
||||
sort_string = "WAAID"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/time/delay/tenth_sec
|
||||
id = "cc-tenth_sec_delay"
|
||||
build_path = /obj/item/integrated_circuit/time/delay/tenth_sec
|
||||
sort_string = "WAAIF"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/time/delay/custom
|
||||
id = "cc-custom_delay"
|
||||
build_path = /obj/item/integrated_circuit/time/delay/custom
|
||||
sort_string = "WAAIG"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/time/ticker
|
||||
id = "cc-ticker"
|
||||
build_path = /obj/item/integrated_circuit/time/ticker
|
||||
sort_string = "WAAIH"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/time/ticker/slow
|
||||
id = "cc-ticker_slow"
|
||||
build_path = /obj/item/integrated_circuit/time/ticker/slow
|
||||
sort_string = "WAAII"
|
||||
|
||||
/datum/design/circuit/integrated_circuit/time/ticker/fast
|
||||
id = "cc-ticker_fast"
|
||||
build_path = /obj/item/integrated_circuit/time/ticker/fast
|
||||
sort_string = "WAAIJ"
|
||||
req_tech = list(TECH_ENGINEERING = 4, TECH_DATA = 4)
|
||||
|
||||
/datum/design/circuit/integrated_circuit/time/clock
|
||||
id = "cc-clock"
|
||||
build_path = /obj/item/integrated_circuit/time/clock
|
||||
sort_string = "WAAIK"
|
||||
|
||||
/* Uncomment if someone makes these buildable
|
||||
/datum/design/circuit/general_alert
|
||||
name = "general alert console"
|
||||
|
||||
@@ -54,6 +54,7 @@ research holder datum.
|
||||
known_tech += new T(src)
|
||||
for(var/D in typesof(/datum/design) - /datum/design)
|
||||
possible_designs += new D(src)
|
||||
generate_integrated_circuit_designs()
|
||||
RefreshResearch()
|
||||
|
||||
/datum/research/techonly
|
||||
@@ -129,6 +130,20 @@ research holder datum.
|
||||
if(initial(check_tech.id) == ID)
|
||||
return initial(check_tech.name)
|
||||
|
||||
/datum/research/proc/generate_integrated_circuit_designs()
|
||||
spawn(2 SECONDS) // So the list has time to initialize.
|
||||
for(var/obj/item/integrated_circuit/IC in all_integrated_circuits)
|
||||
if(IC.spawn_flags & IC_SPAWN_RESEARCH)
|
||||
var/datum/design/D = new /datum/design/circuit(src)
|
||||
D.name = "Custom circuitry \[[IC.category_text]\] ([IC.name])"
|
||||
D.id = "ic-[lowertext(IC.name)]"
|
||||
if(IC.origin_tech && IC.origin_tech.len)
|
||||
D.req_tech = IC.origin_tech.Copy()
|
||||
else
|
||||
D.req_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2)
|
||||
D.build_path = IC.type
|
||||
possible_designs += D
|
||||
|
||||
/***************************************************************
|
||||
** Technology Datums **
|
||||
** Includes all the various technoliges and what they make. **
|
||||
|
||||
Reference in New Issue
Block a user