Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
703725f
map change
PsyCommando Mar 12, 2023
28a2997
recycler wip
PsyCommando Sep 24, 2022
5e0280e
kleibkhar map
PsyCommando Mar 12, 2023
a34ac04
geothermal
PsyCommando Mar 12, 2023
4007c91
kleibkhar stuff
PsyCommando Mar 12, 2023
3561985
Update designs_misc_circuits.dm
PsyCommando Mar 12, 2023
3a30858
Overmap handling changes
PsyCommando Mar 12, 2023
5be57bf
Added vent pump variants
PsyCommando Mar 12, 2023
10780f5
materials
PsyCommando Mar 12, 2023
481c290
add test skipping
PsyCommando Mar 12, 2023
3264efa
new sound effects
PsyCommando Mar 12, 2023
1aa01b1
removed old overmap override
PsyCommando Mar 12, 2023
786e744
Outreach Map
PsyCommando Mar 12, 2023
739a4f8
Update chargen_areas.dm
PsyCommando Mar 12, 2023
3c26de1
outreach level stuff
PsyCommando Mar 12, 2023
d48d521
shuttle template
PsyCommando Mar 12, 2023
c01b647
icons
PsyCommando Mar 12, 2023
ed8f85f
Update folding.dm
PsyCommando Mar 12, 2023
5bfaf09
Minor decoration + furnishing
PsyCommando Mar 12, 2023
c920157
Update outreach-1.dmm
PsyCommando Mar 23, 2023
96797c3
recycler fixed
PsyCommando Mar 25, 2023
0128e00
Added a lot of dirt
PsyCommando Mar 25, 2023
d74f761
fixed some decals missing icons
PsyCommando Mar 25, 2023
f20897e
merge fixes
PsyCommando Mar 26, 2023
6a9da17
Moved outreach to map_template
PsyCommando Mar 26, 2023
3677faf
Cleaned up turf types.
PsyCommando Mar 26, 2023
553a717
linter hates comments in lists
PsyCommando Mar 26, 2023
9e2c524
Fix compilation after merge
PsyCommando Apr 17, 2023
2e33cc2
Mining use midnight rollover checked timeofday
PsyCommando Apr 17, 2023
dd1dd87
Update recycler.dm
PsyCommando Jul 26, 2023
c9946d5
Compile fix outreach
PsyCommando Jul 27, 2023
1d1322b
Properly use constants for network name
PsyCommando Aug 2, 2023
c1cba05
Use constants for protected area definition
PsyCommando Aug 2, 2023
c0c0911
Update outreach_areas.dm
PsyCommando Aug 2, 2023
de7ed4f
fix poster offset
PsyCommando Aug 2, 2023
c1bbc7b
fix crema switch
PsyCommando Aug 2, 2023
6aff2ad
Fix really shady override of sequential ids
PsyCommando Aug 2, 2023
3106a6e
move network stuff to own file
PsyCommando Aug 2, 2023
2c36f3f
Update recycler.dm
PsyCommando Aug 9, 2023
efc4bce
guids include in neb
PsyCommando Aug 9, 2023
dd4cefc
Moved helper code to inside modpack
PsyCommando Aug 9, 2023
ed19706
remove old strata var
PsyCommando Aug 9, 2023
d08b4e2
docking controller nuked
PsyCommando Aug 10, 2023
368bed5
Make turbolift generate last
PsyCommando Sep 12, 2023
3e3be14
properly offset wall recharger
PsyCommando Sep 12, 2023
cf33d68
Properly offset wall dispensers
PsyCommando Sep 12, 2023
2145997
comment sequential guid gen
PsyCommando Sep 12, 2023
6cd4a11
godmode check on fire acts
PsyCommando Sep 12, 2023
a6394fc
Don't save mimic edges
PsyCommando Sep 16, 2023
3327413
Update outreach_elevators.dm
PsyCommando Sep 19, 2023
54d0c46
Merge remote-tracking branch 'upstream/dev' into tweak-outreach-map
PsyCommando Oct 1, 2023
88e51b0
Update outreach-4.dmm
PsyCommando Oct 1, 2023
b1f3f4a
satisfy mapping gods
PsyCommando Oct 1, 2023
24a3caa
Update outreach_south-2.dmm
PsyCommando Oct 1, 2023
a3c6c2b
added missing unit test overrides
PsyCommando Oct 1, 2023
5be703c
fixes missing species
PsyCommando Oct 1, 2023
9a604e4
fix duplicate catwalk spawning
PsyCommando Oct 2, 2023
79cb5fd
formatting changes
PsyCommando Oct 2, 2023
a412966
Get area tests to behave
PsyCommando Oct 2, 2023
3bb3f97
Fix missing scrubber
PsyCommando Oct 2, 2023
f2ebce3
Some area fixes
PsyCommando Oct 2, 2023
bee92de
Fix list error during unit tests
PsyCommando Oct 3, 2023
8e9f9a8
Fix internet uplink templates
PsyCommando Oct 3, 2023
5770cf9
Update outreach_test.dm
PsyCommando Oct 3, 2023
dae51fd
Test
PsyCommando Oct 3, 2023
7345a84
Merge remote-tracking branch 'upstream/dev' into tweak-outreach-map
PsyCommando Dec 8, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions code/_macros.dm
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,8 @@

#define random_id(key,min_id,max_id) uniqueness_repository.Generate(/datum/uniqueness_generator/id_random, key, min_id, max_id)

#define make_sequential_guid(key) uniqueness_repository.Generate(/datum/uniqueness_generator/guid_generator, key)

/proc/place_meta_charset(content)
if(istext(content))
content = "<meta charset=\"utf-8\">" + content
Expand Down
10 changes: 6 additions & 4 deletions code/controllers/subsystems/mapping.dm
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ SUBSYSTEM_DEF(mapping)
var/list/planetoid_data_by_id
///List of all z-levels in the world where the index corresponds to a z-level, and the key at that index is the planetoid_data datum for the associated planet
var/list/planetoid_data_by_z = list()
/// List of z-levels that regenerates mining turfs periodically
var/list/mining_levels = list()

/datum/controller/subsystem/mapping/PreInit()
reindex_lists()
Expand Down Expand Up @@ -80,10 +82,6 @@ SUBSYSTEM_DEF(mapping)
if (new_maxy > world.maxy)
world.maxy = new_maxy

// Generate turbolifts.
for(var/obj/abstract/turbolift_spawner/turbolift as anything in turbolifts_to_initialize)
turbolift.build_turbolift()

// Populate overmap.
if(length(global.using_map.overmap_ids))
for(var/overmap_id in global.using_map.overmap_ids)
Expand All @@ -109,6 +107,10 @@ SUBSYSTEM_DEF(mapping)
PRINT_STACK_TRACE("Missing z-level data object for z[num2text(z)]!")
level.setup_level_data()

// Generate turbolifts last!!!
for(var/obj/abstract/turbolift_spawner/turbolift as anything in turbolifts_to_initialize)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this something specific for Persistence or could it go upstream eventually?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it went upstream already?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not unique to outreach, any dynamically loaded maps like away_sites would have that issue if they had elevators.

turbolift.build_turbolift()

. = ..()

/datum/controller/subsystem/mapping/Recover()
Expand Down
6 changes: 4 additions & 2 deletions code/datums/proximity_trigger/proximity_trigger.dm
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,8 @@ var/global/const/PROXIMITY_EXCLUDE_HOLDER_TURF = 1 // When acquiring turfs to mo
for(var/t in seen_turfs_)
events_repository.unregister(/decl/observ/entered, t, src, /datum/proximity_trigger/proc/on_turf_entered)

call(proc_owner, on_turfs_changed)(seen_turfs_.Copy(), list())
if(on_turfs_changed)
call(proc_owner, on_turfs_changed)(seen_turfs_.Copy(), list())

turfs_in_range.Cut()
seen_turfs_.Cut()
Expand All @@ -119,7 +120,8 @@ var/global/const/PROXIMITY_EXCLUDE_HOLDER_TURF = 1 // When acquiring turfs to mo
if(listequal(seen_turfs_, new_seen_turfs_))
return

call(proc_owner, on_turfs_changed)(seen_turfs_.Copy(), new_seen_turfs_.Copy())
if(on_turfs_changed)
call(proc_owner, on_turfs_changed)(seen_turfs_.Copy(), new_seen_turfs_.Copy())

for(var/t in (seen_turfs_ - new_seen_turfs_))
events_repository.unregister(/decl/observ/entered, t, src, /datum/proximity_trigger/proc/on_turf_entered)
Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/recharger.dm
Original file line number Diff line number Diff line change
Expand Up @@ -132,4 +132,4 @@

construct_state = /decl/machine_construction/wall_frame/panel_closed
frame_type = /obj/item/frame/button/wall_charger
directional_offset = "{'NORTH':{'y':-24}, 'SOUTH':{'y':32}, 'EAST':{'x':-28}, 'WEST':{'x':28}}"
directional_offset = "{'NORTH':{'y':-24}, 'SOUTH':{'y':24}, 'EAST':{'x':-28}, 'WEST':{'x':28}}"
7 changes: 6 additions & 1 deletion code/game/objects/effects/decals/Cleanable/humans.dm
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ var/global/list/image/splatter_cache=list()

/obj/effect/decal/cleanable/blood/writing
icon = 'icons/effects/writing.dmi'
icon_state = "writing"
icon_state = "writing1"
desc = "It looks like a writing in blood."
gender = NEUTER
random_icon_states = list("writing1","writing2","writing3","writing4","writing5")
Expand Down Expand Up @@ -218,18 +218,23 @@ var/global/list/image/splatter_cache=list()
overlays += giblets

/obj/effect/decal/cleanable/blood/gibs/up
icon_state = "gibup1"
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibup1","gibup1","gibup1")

/obj/effect/decal/cleanable/blood/gibs/down
icon_state = "gibdown1"
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibdown1","gibdown1","gibdown1")

/obj/effect/decal/cleanable/blood/gibs/body
icon_state = "gibtorso"
random_icon_states = list("gibhead", "gibtorso")

/obj/effect/decal/cleanable/blood/gibs/limb
icon_state = "gibarm"
random_icon_states = list("gibleg", "gibarm")

/obj/effect/decal/cleanable/blood/gibs/core
icon_state = "gibmid1"
random_icon_states = list("gibmid1", "gibmid2", "gibmid3")


Expand Down
3 changes: 3 additions & 0 deletions code/game/objects/effects/decals/Cleanable/misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@
name = "tomato smudge"
desc = "It's red."
icon = 'icons/effects/tomatodecal.dmi'
icon_state = "tomato_floor1"
random_icon_states = list("tomato_floor1", "tomato_floor2", "tomato_floor3")
persistent = TRUE
generic_filth = TRUE
Expand All @@ -100,6 +101,7 @@
name = "smashed egg"
desc = "Seems like this one won't hatch."
icon = 'icons/effects/tomatodecal.dmi'
icon_state = "smashed_egg1"
random_icon_states = list("smashed_egg1", "smashed_egg2", "smashed_egg3")
persistent = TRUE
generic_filth = TRUE
Expand All @@ -108,6 +110,7 @@
name = "smashed pie"
desc = "It's pie cream from a cream pie."
icon = 'icons/effects/tomatodecal.dmi'
icon_state = "smashed_pie"
random_icon_states = list("smashed_pie")
persistent = TRUE
generic_filth = TRUE
Expand Down
5 changes: 5 additions & 0 deletions code/game/objects/effects/decals/Cleanable/robots.dm
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,19 @@
break

/obj/effect/decal/cleanable/blood/gibs/robot/limb
icon_state = "gibarm"
random_icon_states = list("gibarm", "gibleg")

/obj/effect/decal/cleanable/blood/gibs/robot/up
icon_state = "gibup1"
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6", "gib7","gibup1","gibup1") //2:7 is close enough to 1:4

/obj/effect/decal/cleanable/blood/gibs/robot/down
icon_state = "gibdown1"
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6", "gib7","gibdown1","gibdown1") //2:7 is close enough to 1:4

/obj/effect/decal/cleanable/blood/oil
color = SYNTH_BLOOD_COLOR
basecolor = SYNTH_BLOOD_COLOR
chemical = /decl/material/liquid/lube
cleanable_scent = "industrial lubricant"
Expand All @@ -48,5 +52,6 @@
return

/obj/effect/decal/cleanable/blood/oil/streak
icon_state = "mgibbl1"
random_icon_states = list("mgibbl1", "mgibbl2", "mgibbl3", "mgibbl4", "mgibbl5")
amount = 2
7 changes: 7 additions & 0 deletions code/game/objects/effects/decals/Cleanable/tracks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -158,10 +158,12 @@ var/global/list/image/fluidtrack_cache=list()
drydesc = "They look like dried tracks left by footwear."
coming_state = "human1"
going_state = "human2"
icon_state = "human1"

/obj/effect/decal/cleanable/blood/tracks/footprints/reversed
coming_state = "human2"
going_state = "human1"
icon_state = "human2"

/obj/effect/decal/cleanable/blood/tracks/footprints/reversed/AddTracks(var/list/DNA, var/comingdir, var/goingdir, var/bloodcolor=COLOR_BLOOD_HUMAN)
comingdir = comingdir && global.reverse_dir[comingdir]
Expand All @@ -175,6 +177,7 @@ var/global/list/image/fluidtrack_cache=list()
drydesc = "They look like dried tracks left by a giant snake."
coming_state = "snake1"
going_state = "snake2"
icon_state = "snake1"

/obj/effect/decal/cleanable/blood/tracks/paw
name = "wet tracks"
Expand All @@ -183,6 +186,7 @@ var/global/list/image/fluidtrack_cache=list()
drydesc = "They look like dried tracks left by a mammal."
coming_state = "paw1"
going_state = "paw2"
icon_state = "paw1"

/obj/effect/decal/cleanable/blood/tracks/claw
name = "wet tracks"
Expand All @@ -191,6 +195,7 @@ var/global/list/image/fluidtrack_cache=list()
drydesc = "They look like dried tracks left by a reptile."
coming_state = "claw1"
going_state = "claw2"
icon_state = "claw1"

/obj/effect/decal/cleanable/blood/tracks/wheels
name = "wet tracks"
Expand All @@ -200,6 +205,7 @@ var/global/list/image/fluidtrack_cache=list()
coming_state = "wheels"
going_state = ""
gender = PLURAL
icon_state = "wheels"

/obj/effect/decal/cleanable/blood/tracks/body
name = "wet trails"
Expand All @@ -208,3 +214,4 @@ var/global/list/image/fluidtrack_cache=list()
drydesc = "A dried trail left by someone crawling."
coming_state = "trail1"
going_state = "trail2"
icon_state = "trail1"
2 changes: 1 addition & 1 deletion code/game/objects/effects/decals/posters/_poster.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
icon = 'icons/obj/contraband.dmi'
icon_state = "poster0"
anchored = TRUE
directional_offset = "{'NORTH':{'y':32}, 'SOUTH':{'y':-32}, 'EAST':{'x':32}, 'WEST':{'x':-32}}"
directional_offset = "{'NORTH':{'y':-32}, 'SOUTH':{'y':32}, 'EAST':{'x':32}, 'WEST':{'x':-32}}"
material = /decl/material/solid/cardboard
maxhealth = 10
parts_type = /obj/item/contraband/poster
Expand Down
5 changes: 5 additions & 0 deletions code/game/objects/effects/landmarks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -154,3 +154,8 @@
/obj/abstract/landmark/costume/savagehuntress/make_costumes()
new /obj/item/clothing/mask/spirit(src.loc)
new /obj/item/clothing/under/savage_hunter/female(src.loc)

//Map unit test skipper
/obj/abstract/landmark/skip_test
icon = 'icons/misc/map_editor.dmi'
icon_state = "skip_test"
72 changes: 72 additions & 0 deletions code/game/objects/items/stacks/dust.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
//////////////////////////////////////////////////////////
// Material Powder
//////////////////////////////////////////////////////////

///A powdered form of a material, meant to be used in further processing and useless for construction and crafting
/obj/item/stack/material/dust
name = "powder pile"
desc = "Some powdered matter."
singular_name = "pile"
plural_name = "piles"
icon_state = "lump"
plural_icon_state = "lump-mult"
max_icon_state = "lump-max"
w_class = ITEM_SIZE_LARGE //Bulky
melee_accuracy_bonus = -50
throw_speed = 1
throw_range = 2
does_spin = FALSE //Doesn't spin when thrown
max_amount = 1000 //Each dust pile is 200 units each, while normal sheets are 2,000 units each. This means we get the same amount in a full stack.
matter_multiplier = 0.1
abstract_type = /obj/item/stack/material/dust
is_spawnable_type = FALSE
pickup_sound = 'sound/foley/pebblespickup1.ogg'
drop_sound = 'sound/foley/pebblesdrop1.ogg'
attack_verb = list("splattered", "sprinkled", "dredged")

//We don't allow people to build anything from this, its just an intermediate material
/obj/item/stack/material/dust/list_recipes(mob/user, recipes_sublist)
return

/obj/item/stack/material/dust/throw_impact(atom/hit_atom, datum/thrownthing/TT)
. = ..()

//Chop down the stack into a bunch of smaller stacks
var/min_amount_needed = round(max_amount * (rand(5, 9) * 0.1)) //pick an amount to stop at between 50-90% of the stack left
while(amount > min_amount_needed && can_split())
var/percent_to_split_off = rand(20, 70) * 0.01
split(CEILING(percent_to_split_off * amount))

//Then try to apply a dusting of us onto whatever we hit
var/datum/reagents/R = new(CELL_VOLUME, global.temp_reagents_holder)
for(var/mtype in matter)
var/amount = matter[mtype]
if(amount)
R.add_reagent(mtype, amount * REAGENT_UNITS_PER_MATERIAL_UNIT)
if(R.total_volume > 0)
R.splash(hit_atom, R.total_volume)
use(amount)

// Dust override
/decl/material
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instinct tells me this should be in the base material file, but the Neb maints can decide once/if it goes upstream

var/powder_type = /obj/item/stack/material/dust

/decl/material/proc/place_dust(var/atom/target, var/matter_units, var/allow_partial_stacks = TRUE)
if(!powder_type && matter_units <= 0)
return
var/list/powder_mat = atom_info_repository.get_matter_for(powder_type, type, 1)
var/amount_per_pile = LAZYACCESS(powder_mat, type)
if(amount_per_pile < 1)
return

//Make all the shards we can
var/piles_amount = round(matter_units / amount_per_pile)
var/matter_left = round(matter_units % amount_per_pile)
LAZYADD(., create_object(target, piles_amount, powder_type))

//If we got more than expected, just make a shard with that amount
if(allow_partial_stacks && matter_left > 0)
var/list/O = create_object(target, 1, powder_type)
var/obj/S = O[O.len]
LAZYSET(S.matter, type, matter_left)
LAZYADD(., S)
3 changes: 3 additions & 0 deletions code/game/turfs/flooring/flooring_decals.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1228,12 +1228,15 @@ var/global/list/floor_decals = list()

/obj/effect/floor_decal/floordetail/pryhole
icon_state = "pryhole"
name = "pry hole"

/obj/effect/floor_decal/floordetail/edgedrain
icon_state = "edge"
name = "edge drain"

/obj/effect/floor_decal/floordetail/traction
icon_state = "traction"
name = "traction"

/obj/effect/floor_decal/ntlogo
icon_state = "ntlogo"
Expand Down
22 changes: 19 additions & 3 deletions code/modules/atmospherics/components/unary/vent_pump.dm
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@

/obj/machinery/atmospherics/unary/vent_pump/Initialize()
if (!id_tag)
id_tag = "[sequential_id("obj/machinery")]"
id_tag = "[make_sequential_guid("obj/machinery")]"
if(controlled)
var/area/A = get_area(src)
if(A && !A.air_vent_names[id_tag])
Expand Down Expand Up @@ -135,8 +135,17 @@
external_pressure_bound_default = 0
internal_pressure_bound = MAX_PUMP_PRESSURE
internal_pressure_bound_default = MAX_PUMP_PRESSURE
pressure_checks = 2
pressure_checks_default = 2
pressure_checks = PRESSURE_CHECK_INTERNAL
pressure_checks_default = PRESSURE_CHECK_INTERNAL

/obj/machinery/atmospherics/unary/vent_pump/siphon/atmos
use_power = POWER_USE_OFF
external_pressure_bound = 0
external_pressure_bound_default = 0
internal_pressure_bound = MAX_PUMP_PRESSURE
internal_pressure_bound_default = MAX_PUMP_PRESSURE
pressure_checks = PRESSURE_CHECK_INTERNAL
pressure_checks_default = PRESSURE_CHECK_INTERNAL

/obj/machinery/atmospherics/unary/vent_pump/Destroy()
QDEL_NULL(sound_token)
Expand Down Expand Up @@ -504,6 +513,13 @@
/decl/stock_part_preset/radio/event_transmitter/vent_pump/tank = 1
)

/obj/machinery/atmospherics/unary/vent_pump/siphon/atmos/tank
controlled = FALSE
stock_part_presets = list(
/decl/stock_part_preset/radio/receiver/vent_pump/tank = 1,
/decl/stock_part_preset/radio/event_transmitter/vent_pump/tank = 1
)

/decl/stock_part_preset/radio/receiver/vent_pump/external_air
frequency = EXTERNAL_AIR_FREQ
filter = null
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@

/obj/machinery/atmospherics/unary/vent_scrubber/Initialize()
if (!id_tag)
id_tag = "[sequential_id("obj/machinery")]"
id_tag = "[make_sequential_guid("obj/machinery")]"
if(!scrubbing_gas)
scrubbing_gas = list()
for(var/g in decls_repository.get_decl_paths_of_subtype(/decl/material/gas))
Expand Down
2 changes: 1 addition & 1 deletion code/modules/economy/worth_cash.dm
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@

/obj/item/charge_stick/Initialize(ml, material_key)
. = ..()
id = "[grade]-card-[sequential_id("charge_stick")]"
id = "[grade]-card-[make_sequential_guid("charge_stick")]"
if(!ispath(currency, /decl/currency))
currency = global.using_map.default_currency
update_name_desc()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -485,6 +485,11 @@
/datum/fabricator_recipe/imprinter/circuit/photocopier
path = /obj/item/stock_parts/circuitboard/photocopier

/datum/fabricator_recipe/imprinter/circuit/geothermal_generator
path = /obj/item/stock_parts/circuitboard/geothermal

/datum/fabricator_recipe/imprinter/circuit/radiocarbon_spectrometer
path = /obj/item/stock_parts/circuitboard/radiocarbon_spectrometer
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

New line here if you get the chance

/datum/fabricator_recipe/imprinter/circuit/holomap
path = /obj/item/stock_parts/circuitboard/holomap

Expand Down
Loading