Files
fulpstation/code/__HELPERS/global_lists.dm
Pepsilawn ed695f0248 June TGU thats so cool and awesome (#652)
* wow awesome

* pubby

* Most linters

* Selene part one

* Helio part one

* Helio part 2

* Pubby Part One

* Pubby Part 2

* Pubby Part 3

* Selene Part Two

* Selene Part Three

* Door name finale

* Bonus AI sat fixes

* Infil and BS rulesets

* Some fixes

* Selene fix test

* Selene shuttle fix

* Please work helio

* Update Heliostation.dmm

* Update PubbyStation.dmm

* debugging

* Debugging again

* Extra debugging

* Revert "Debugging again"

This reverts commit bb22d37fc9.

* restore

* fernando

* restore helio

* Selene test

* fernando2

* nericopouci zusggetion

* LOL FUCK YOU UPSTREAM I WIN IN THE END

* Updates TGU + re-adds unit test + Heliostation

* Cargo shuttle fixes

* pubby + re-adds fulp tgui

* Selene Prison

* more tgu fixes

fixes emergency shuttles, any problem I saw with pubby, and our json's having wrong area paths

* maybe fixes the rest of pubby

* Fixes some minor problems with prison shuttle

* prison shuttle fixes

* pubby fixes

* more fixes to Heliostation

* more fixes to pubby

* maybe the last pubby fix needed

* Fixes science console not having a crate location

* ports my code over so checks can not fail

* Pubby fixes

Fixes missing APCs, Air alarms, lights, and fixes AT roundstart problems

* Removes TEG, replaces with TEG boards

* Fixes problems with Heliostation

* fixes a minor screwup

* increases helio cargo shuttle by 1 tile

* test commit

* Revert "test commit"

This reverts commit dad04936d3.

* adds an extra crash to see what the problem is

* dont crash, actually

* makes proper shuttle subtypes

* another test

* Revert "another test"

This reverts commit e902c090df.

* Update monsterhunter_event.dm

* hardcodes helio

* i give up

* Update Heliostation.dmm

* add supply mapping log

* adds more mapping logs

* adds another log

* MORE logging

* swapping for another test

* Update maps.dm

* Revert "Update maps.dm"

This reverts commit 5b4433766b.

* Revert "swapping for another test"

This reverts commit f9389f54a5.

* swaps around logging

* more in-depth logging

* removes dwidth from supply port

* increases size of helio dock

* logging

* Update map_template.dm

* Update map_template.dm

* loooogs

* g

* s

* w

* Update reader.dm

* Update reader.dm

* acces helpes selene

* sry

* adds our maps to ci

* Update build.js

* Update build.js

* Have templates.dm check for child

* Revert

* We call parent instead

* Might be important idk

* woops

* restore edited file

* idk if we need this

* Revert "idk if we need this"

This reverts commit c35c532b5a.

* Revert "restore edited file"

This reverts commit 38c6bc3e35.

* Revert "woops"

This reverts commit 12c979a32b.

* Revert "Might be important idk"

This reverts commit 206f18171f.

* revert debug stuff

* test

* Revert "test"

This reverts commit 7b82ec123d.

* more fixes

* test

* Update SeleneStation.dmm

* Revert "test"

This reverts commit 26a13f61f5.

* Update SeleneStation.dmm

* my bd

* Moving shuttles to tg files

* test

* Revert "test"

This reverts commit 7912f8ac23.

* Revert "Moving shuttles to tg files"

This reverts commit d220c1a46a.

* new idea

* Revert "new idea"

This reverts commit a7d1f1a4c2.

* Revert "Revert "Moving shuttles to tg files""

This reverts commit 0b427cc070.

* possible fix?

* Docking ports

* Update SeleneStation.dmm

* Dockers

* Mining

* Arrivals

* Prison conveyor & selene cargo linters

* SHOULD BE GOOD PROBABLY?

* Update SeleneStation.dmm

* Lets Selene's supply shuttle land

* Update SeleneStation.dmm

* Saves heliostation

* Saves Selenestation

* new ordnance

* Extra fixes

* Update Heliostation.dmm

* adds heliostation permabrig shuttle

* Adds cameras

* helio fix + ports garbage day fix

* FISHING

* erm i guess

* rerun tests

* Update README.md

* Update janitor.dm

* Beef

* saves heliostation

Co-authored-by: JohnFulpWillard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: SMOSMOSMOSMOSMO <95004236+SmoSmoSmoSmok@users.noreply.github.com>
2022-06-19 07:48:06 -06:00

142 lines
6.0 KiB
Plaintext

//////////////////////////
/////Initial Building/////
//////////////////////////
/proc/make_datum_references_lists()
//hair
init_sprite_accessory_subtypes(/datum/sprite_accessory/hair, GLOB.hairstyles_list, GLOB.hairstyles_male_list, GLOB.hairstyles_female_list)
//facial hair
init_sprite_accessory_subtypes(/datum/sprite_accessory/facial_hair, GLOB.facial_hairstyles_list, GLOB.facial_hairstyles_male_list, GLOB.facial_hairstyles_female_list)
//underwear
init_sprite_accessory_subtypes(/datum/sprite_accessory/underwear, GLOB.underwear_list, GLOB.underwear_m, GLOB.underwear_f)
//undershirt
init_sprite_accessory_subtypes(/datum/sprite_accessory/undershirt, GLOB.undershirt_list, GLOB.undershirt_m, GLOB.undershirt_f)
//socks
init_sprite_accessory_subtypes(/datum/sprite_accessory/socks, GLOB.socks_list)
//bodypart accessories (blizzard intensifies)
init_sprite_accessory_subtypes(/datum/sprite_accessory/body_markings, GLOB.body_markings_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails, GLOB.tails_list, add_blank = TRUE)
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/human, GLOB.tails_list_human, add_blank = TRUE)
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/lizard, GLOB.tails_list_lizard, add_blank = TRUE)
init_sprite_accessory_subtypes(/datum/sprite_accessory/snouts, GLOB.snouts_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/horns,GLOB.horns_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/ears, GLOB.ears_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/wings, GLOB.wings_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/wings_open, GLOB.wings_open_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/frills, GLOB.frills_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/spines, GLOB.spines_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/spines_animated, GLOB.animated_spines_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/legs, GLOB.legs_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/caps, GLOB.caps_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/moth_wings, GLOB.moth_wings_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/moth_antennae, GLOB.moth_antennae_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/moth_markings, GLOB.moth_markings_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/pod_hair, GLOB.pod_hair_list)
//Species
for(var/spath in subtypesof(/datum/species))
var/datum/species/S = new spath()
GLOB.species_list[S.id] = spath
sort_list(GLOB.species_list, /proc/cmp_typepaths_asc)
//Surgeries
for(var/path in subtypesof(/datum/surgery))
GLOB.surgeries_list += new path()
sort_list(GLOB.surgeries_list, /proc/cmp_typepaths_asc)
// Hair Gradients - Initialise all /datum/sprite_accessory/hair_gradient into an list indexed by gradient-style name
for(var/path in subtypesof(/datum/sprite_accessory/gradient))
var/datum/sprite_accessory/gradient/gradient = new path()
if(gradient.gradient_category & GRADIENT_APPLIES_TO_HAIR)
GLOB.hair_gradients_list[gradient.name] = gradient
if(gradient.gradient_category & GRADIENT_APPLIES_TO_FACIAL_HAIR)
GLOB.facial_hair_gradients_list[gradient.name] = gradient
// Keybindings
init_keybindings()
GLOB.emote_list = init_emote_list()
init_crafting_recipes(GLOB.crafting_recipes)
/// Inits the crafting recipe list, sorting crafting recipe requirements in the process.
/proc/init_crafting_recipes(list/crafting_recipes)
for(var/path in subtypesof(/datum/crafting_recipe))
var/datum/crafting_recipe/recipe = new path()
recipe.reqs = sort_list(recipe.reqs, /proc/cmp_crafting_req_priority)
crafting_recipes += recipe
return crafting_recipes
//creates every subtype of prototype (excluding prototype) and adds it to list L.
//if no list/L is provided, one is created.
/proc/init_subtypes(prototype, list/L)
if(!istype(L))
L = list()
for(var/path in subtypesof(prototype))
L += new path()
return L
//returns a list of paths to every subtype of prototype (excluding prototype)
//if no list/L is provided, one is created.
/proc/init_paths(prototype, list/L)
if(!istype(L))
L = list()
for(var/path in subtypesof(prototype))
L+= path
return L
/// Functions like init_subtypes, but uses the subtype's path as a key for easy access
/proc/init_subtypes_w_path_keys(prototype, list/L)
if(!istype(L))
L = list()
for(var/path as anything in subtypesof(prototype))
L[path] = new path()
return L
/**
* Checks if that loc and dir has an item on the wall
**/
// Wall mounted machinery which are visually on the wall.
GLOBAL_LIST_INIT(WALLITEMS_INTERIOR, typecacheof(list(
/obj/item/radio/intercom,
/obj/item/storage/secure/safe,
/obj/machinery/airalarm,
/obj/machinery/bluespace_vendor,
/obj/machinery/newscaster,
/obj/machinery/button,
/obj/machinery/computer/security/telescreen,
/obj/machinery/computer/security/telescreen/entertainment,
/obj/machinery/defibrillator_mount,
/obj/machinery/door_timer,
/obj/machinery/embedded_controller/radio/simple_vent_controller,
/obj/machinery/firealarm,
/obj/machinery/flasher,
/obj/machinery/keycard_auth,
/obj/machinery/light_switch,
/obj/machinery/newscaster,
/obj/machinery/power/apc,
/obj/machinery/requests_console,
/obj/machinery/status_display,
/obj/machinery/ticket_machine,
/obj/machinery/turretid,
/obj/structure/extinguisher_cabinet,
/obj/structure/fireaxecabinet,
/obj/structure/mirror,
/obj/structure/noticeboard,
/obj/structure/reagent_dispensers/wall,
/obj/structure/sign,
/obj/structure/sign/picture_frame,
/obj/structure/sign/poster/random,
/obj/structure/sign/poster/contraband/random,
/obj/structure/sign/poster/official/random,
)))
// Wall mounted machinery which are visually coming out of the wall.
// These do not conflict with machinery which are visually placed on the wall.
GLOBAL_LIST_INIT(WALLITEMS_EXTERIOR, typecacheof(list(
/obj/machinery/camera,
/obj/machinery/light,
/obj/structure/camera_assembly,
/obj/structure/light_construct
)))