mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-25 22:12:58 +01:00
Materials Repath (#22388)
Soft-ish port of https://github.com/NebulaSS13/Nebula/pull/540. Except we call them singletons. Repaths all materials as singletons instead of datums, and replaces material defines from strings to paths so that we can just run GET_SINGLETON instead of needing to use SSMaterials. This is Step One. This PR has no player-facing changes. changes: - refactor: "Repaths /material to /singleton/material." - refactor: "Replaces all material string defines to path defines, replacing SSmaterials procs w/ GET_SINGLETON instead." - refactor: "Removes all material var edited objects from all maps, adding new presets where necessary." - refactor: "Updates recipes unit test to run all recipes against all material singletons." --------- Signed-off-by: Batrachophreno <Batrochophreno@gmail.com> Co-authored-by: kano-dot <bhutanlikanoxy@gmail.com>
This commit is contained in:
co-authored by
kano-dot
parent
2e61d8fd15
commit
eebb8b971c
+75
-74
@@ -1,84 +1,85 @@
|
||||
// Metals, glasses, rocks, and crystals.
|
||||
#define MATERIAL_PLASTIC "plastic"
|
||||
#define MATERIAL_PLASTIC_HOLO "holoplastic"
|
||||
#define MATERIAL_PLASTEEL "plasteel"
|
||||
#define MATERIAL_STEEL "steel"
|
||||
#define MATERIAL_GLASS "glass"
|
||||
#define MATERIAL_GLASS_REINFORCED "reinforced glass"
|
||||
#define MATERIAL_GLASS_WIRED "wired glass"
|
||||
#define MATERIAL_GLASS_PHORON "borosilicate glass"
|
||||
#define MATERIAL_GLASS_REINFORCED_PHORON "reinforced borosilicate glass"
|
||||
#define MATERIAL_GOLD "gold"
|
||||
#define MATERIAL_SILVER "silver"
|
||||
#define MATERIAL_DIAMOND "diamond"
|
||||
#define MATERIAL_PHORON "phoron"
|
||||
#define MATERIAL_URANIUM "uranium"
|
||||
#define MATERIAL_SANDSTONE "sandstone"
|
||||
#define MATERIAL_CONCRETE "concrete"
|
||||
#define MATERIAL_IRON "iron"
|
||||
#define MATERIAL_PLATINUM "platinum"
|
||||
#define MATERIAL_BRONZE "bronze"
|
||||
#define MATERIAL_OSMIUM "osmium"
|
||||
#define MATERIAL_MARBLE "marble"
|
||||
#define MATERIAL_BRICK "brick"
|
||||
#define MATERIAL_CULT "cult"
|
||||
#define MATERIAL_CULT_REINFORCED "cult_reinforced"
|
||||
#define MATERIAL_TITANIUM "titanium"
|
||||
#define MATERIAL_SAND "sand"
|
||||
#define MATERIAL_DIONA "biomass"
|
||||
#define MATERIAL_VAURCA "alien biomass"
|
||||
#define MATERIAL_TRITIUM "tritium"
|
||||
#define MATERIAL_HYDROGEN_METALLIC "metallic hydrogen"
|
||||
#define MATERIAL_ELEVATOR "elevatorium"
|
||||
#define MATERIAL_SHUTTLE "shuttle"
|
||||
#define MATERIAL_SHUTTLE_SKRELL "skrell"
|
||||
#define MATERIAL_RUST "rust"
|
||||
#define MATERIAL_CARDBOARD "cardboard"
|
||||
#define MATERIAL_GRAPHITE "graphite"
|
||||
#define MATERIAL_DEUTERIUM "deuterium"
|
||||
#define MATERIAL_SUPERMATTER "supermatter"
|
||||
#define MATERIAL_ALUMINIUM "aluminium"
|
||||
#define MATERIAL_LEAD "lead"
|
||||
#define MATERIAL_BORON "boron"
|
||||
#define MATERIAL_PLASTIC /singleton/material/plastic
|
||||
#define MATERIAL_PLASTIC_HOLO /singleton/material/plastic/holographic
|
||||
#define MATERIAL_PLASTEEL /singleton/material/plasteel
|
||||
#define MATERIAL_STEEL /singleton/material/steel
|
||||
#define MATERIAL_GLASS /singleton/material/glass
|
||||
#define MATERIAL_GLASS_REINFORCED /singleton/material/glass/reinforced
|
||||
#define MATERIAL_GLASS_WIRED /singleton/material/glass/wired
|
||||
#define MATERIAL_GLASS_PHORON /singleton/material/glass/phoron
|
||||
#define MATERIAL_GLASS_REINFORCED_PHORON /singleton/material/glass/phoron/reinforced
|
||||
#define MATERIAL_GOLD /singleton/material/gold
|
||||
#define MATERIAL_SILVER /singleton/material/silver
|
||||
#define MATERIAL_DIAMOND /singleton/material/diamond
|
||||
#define MATERIAL_PHORON /singleton/material/phoron
|
||||
#define MATERIAL_URANIUM /singleton/material/uranium
|
||||
#define MATERIAL_SANDSTONE /singleton/material/stone
|
||||
#define MATERIAL_CONCRETE /singleton/material/concrete
|
||||
#define MATERIAL_IRON /singleton/material/iron
|
||||
#define MATERIAL_PLATINUM /singleton/material/platinum
|
||||
#define MATERIAL_BRONZE /singleton/material/bronze
|
||||
#define MATERIAL_OSMIUM /singleton/material/osmium
|
||||
#define MATERIAL_MARBLE /singleton/material/stone/marble
|
||||
#define MATERIAL_BRICK /singleton/material/stone/brick
|
||||
#define MATERIAL_CULT /singleton/material/cult
|
||||
#define MATERIAL_CULT_REINFORCED /singleton/material/cult/reinf
|
||||
#define MATERIAL_TITANIUM /singleton/material/plasteel/titanium
|
||||
#define MATERIAL_SAND /singleton/material/sand
|
||||
#define MATERIAL_DIONA /singleton/material/diona
|
||||
#define MATERIAL_VAURCA /singleton/material/vaurca
|
||||
#define MATERIAL_TRITIUM /singleton/material/tritium
|
||||
#define MATERIAL_HYDROGEN_METALLIC /singleton/material/mhydrogen
|
||||
#define MATERIAL_ELEVATOR /singleton/material/elevatorium
|
||||
#define MATERIAL_SHUTTLE /singleton/material/shuttle
|
||||
#define MATERIAL_SHUTTLE_SKRELL /singleton/material/shuttle/skrell
|
||||
#define MATERIAL_RUST /singleton/material/rust
|
||||
#define MATERIAL_CARDBOARD /singleton/material/cardboard
|
||||
#define MATERIAL_GRAPHITE /singleton/material/graphite
|
||||
#define MATERIAL_DEUTERIUM /singleton/material/deuterium
|
||||
#define MATERIAL_SUPERMATTER /singleton/material/phoron/supermatter
|
||||
#define MATERIAL_ALUMINIUM /singleton/material/aluminium
|
||||
#define MATERIAL_LEAD /singleton/material/lead
|
||||
#define MATERIAL_BORON /singleton/material/boron
|
||||
|
||||
// Leathers and related.
|
||||
#define MATERIAL_RESIN "resin"
|
||||
#define MATERIAL_LEATHER "leather"
|
||||
#define MATERIAL_LEATHER_FINE "fine leather"
|
||||
#define MATERIAL_BONE "bone"
|
||||
#define MATERIAL_BONE_CURSED "cursed bone"
|
||||
#define MATERIAL_HIDE "hide"
|
||||
#define MATERIAL_HIDE_CORGI "corgi hide"
|
||||
#define MATERIAL_HIDE_CAT "cat hide"
|
||||
#define MATERIAL_HIDE_MONKEY "monkey hide"
|
||||
#define MATERIAL_HIDE_LIZARD "lizard hide"
|
||||
#define MATERIAL_HIDE_ALIEN "alien hide"
|
||||
#define MATERIAL_HIDE_HUMAN "human hide"
|
||||
#define MATERIAL_RESIN /singleton/material/resin
|
||||
#define MATERIAL_LEATHER /singleton/material/leather
|
||||
#define MATERIAL_LEATHER_FINE /singleton/material/leather/fine
|
||||
#define MATERIAL_BONE /singleton/material/bone
|
||||
#define MATERIAL_BONE_CURSED /singleton/material/bone/necromancer
|
||||
#define MATERIAL_HIDE /singleton/material/hide
|
||||
#define MATERIAL_HIDE_CORGI /singleton/material/hide/corgi
|
||||
#define MATERIAL_HIDE_CAT /singleton/material/hide/cat
|
||||
#define MATERIAL_HIDE_MONKEY /singleton/material/hide/monkey
|
||||
#define MATERIAL_HIDE_LIZARD /singleton/material/hide/lizard
|
||||
#define MATERIAL_HIDE_HUMAN /singleton/material/hide/human
|
||||
#define MATERIAL_HIDE_BARE /singleton/material/hide/barehide
|
||||
#define MATERIAL_WET_LEATHER /singleton/material/hide/wetleather
|
||||
|
||||
// Wood.
|
||||
#define MATERIAL_WOOD "wood"
|
||||
#define MATERIAL_BIRCH "birch wood"
|
||||
#define MATERIAL_MAHOGANY "mahogany wood"
|
||||
#define MATERIAL_MAPLE "maple wood"
|
||||
#define MATERIAL_BAMBOO "bamboo wood"
|
||||
#define MATERIAL_EBONY "ebony wood"
|
||||
#define MATERIAL_WALNUT "walnut wood"
|
||||
#define MATERIAL_YEW "yew wood"
|
||||
#define MATERIAL_WOOD_HOLO "holowood"
|
||||
#define MATERIAL_WOOD_LOG "log"
|
||||
#define MATERIAL_WOOD_BRANCH "branch"
|
||||
#define MATERIAL_WOOD /singleton/material/wood
|
||||
#define MATERIAL_BIRCH /singleton/material/wood/birch
|
||||
#define MATERIAL_MAHOGANY /singleton/material/wood/mahogany
|
||||
#define MATERIAL_MAPLE /singleton/material/wood/maple
|
||||
#define MATERIAL_BAMBOO /singleton/material/wood/bamboo
|
||||
#define MATERIAL_EBONY /singleton/material/wood/ebony
|
||||
#define MATERIAL_WALNUT /singleton/material/wood/walnut
|
||||
#define MATERIAL_YEW /singleton/material/wood/yew
|
||||
#define MATERIAL_WOOD_HOLO /singleton/material/wood/holographic
|
||||
#define MATERIAL_WOOD_LOG /singleton/material/wood/log
|
||||
#define MATERIAL_WOOD_BRANCH /singleton/material/wood/branch
|
||||
|
||||
// Cloth and related.
|
||||
#define MATERIAL_CLOTH "cloth"
|
||||
#define MATERIAL_COTTON "cotton"
|
||||
#define MATERIAL_CARPET "carpet"
|
||||
#define MATERIAL_CARPET_BLACK "carpet_black"
|
||||
#define MATERIAL_CARPET_BLUE "carpet_blue"
|
||||
#define MATERIAL_CARPET_CYAN "carpet_cyan"
|
||||
#define MATERIAL_CARPET_GREEN "carpet_green"
|
||||
#define MATERIAL_CARPET_ORANGE "carpet_orange"
|
||||
#define MATERIAL_CARPET_PURPLE "carpet_purple"
|
||||
#define MATERIAL_CARPET_RED "carpet_red"
|
||||
#define MATERIAL_CLOTH /singleton/material/cloth
|
||||
#define MATERIAL_COTTON /singleton/material/cotton
|
||||
#define MATERIAL_CARPET /singleton/material/carpet
|
||||
#define MATERIAL_CARPET_BLACK /singleton/material/carpet/black
|
||||
#define MATERIAL_CARPET_BLUE /singleton/material/carpet/blue
|
||||
#define MATERIAL_CARPET_CYAN /singleton/material/carpet/cyan
|
||||
#define MATERIAL_CARPET_GREEN /singleton/material/carpet/green
|
||||
#define MATERIAL_CARPET_ORANGE /singleton/material/carpet/orange
|
||||
#define MATERIAL_CARPET_PURPLE /singleton/material/carpet/purple
|
||||
#define MATERIAL_CARPET_RED /singleton/material/carpet/red
|
||||
|
||||
#define MATERIAL_ALTERATION_NONE 0
|
||||
#define MATERIAL_ALTERATION_NAME 1
|
||||
|
||||
@@ -55,6 +55,14 @@ This calls [atom/proc/tool_act], among others.
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/**
|
||||
* Handles HARM intent attackbys, handling click cooldown, attack anim, visible messaging, and any sounds.
|
||||
*
|
||||
* When executed without the HARM intent, it calls base_item_interaction(), which generally handles tool use.
|
||||
*
|
||||
* This proc will always return FALSE, letting us proceed to execute child attackby code, except in the case of
|
||||
* an ITEM_INTERACT_SUCCESS result. That is to say, if we successfully used a tool, we don't do anything else.
|
||||
*/
|
||||
/atom/movable/attackby(obj/item/attacking_item, mob/user, params)
|
||||
if(..())
|
||||
return TRUE
|
||||
@@ -77,6 +85,7 @@ This calls [atom/proc/tool_act], among others.
|
||||
if(item_interact_result & ITEM_INTERACT_BLOCKING)
|
||||
return FALSE
|
||||
|
||||
/// Handles surgery behaviors.
|
||||
/mob/living/attackby(obj/item/attacking_item, mob/user, params)
|
||||
if(..())
|
||||
return TRUE
|
||||
@@ -99,6 +108,7 @@ This calls [atom/proc/tool_act], among others.
|
||||
else
|
||||
return attacking_item.attack(src, user, selected_zone)
|
||||
|
||||
/// Handles DEVOURING THINGS! Used when on Grab intent and targeting your own mouth!
|
||||
/mob/living/carbon/human/attackby(obj/item/attacking_item, mob/user, params)
|
||||
if(user == src && user.a_intent == I_GRAB && zone_sel?.selecting == BP_MOUTH && can_devour(attacking_item, silent = TRUE))
|
||||
var/obj/item/blocked = src.check_mouth_coverage()
|
||||
@@ -109,8 +119,8 @@ This calls [atom/proc/tool_act], among others.
|
||||
return TRUE
|
||||
return ..()
|
||||
|
||||
// Proximity_flag is 1 if this afterattack was called on something adjacent, in your square, or on your person.
|
||||
// Click parameters is the params string from byond Click() code, see that documentation.
|
||||
/// Proximity_flag is 1 if this afterattack was called on something adjacent, in your square, or on your person.
|
||||
/// Click parameters is the params string from byond Click() code, see that documentation.
|
||||
/obj/item/proc/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
|
||||
return
|
||||
|
||||
|
||||
@@ -3,30 +3,25 @@ SUBSYSTEM_DEF(materials)
|
||||
init_order = INIT_ORDER_MISC_FIRST
|
||||
flags = SS_NO_FIRE
|
||||
|
||||
var/list/materials
|
||||
var/list/materials_by_name
|
||||
|
||||
var/list/autolathe_categories
|
||||
|
||||
/datum/controller/subsystem/materials/Initialize()
|
||||
create_material_lists()
|
||||
create_material_names_list()
|
||||
|
||||
return SS_INIT_SUCCESS
|
||||
|
||||
/**
|
||||
* Initialize the lists of materials, if they are not initialized already
|
||||
*/
|
||||
/datum/controller/subsystem/materials/proc/create_material_lists()
|
||||
if(LAZYLEN(materials))
|
||||
/datum/controller/subsystem/materials/proc/create_material_names_list()
|
||||
if(LAZYLEN(materials_by_name))
|
||||
return
|
||||
|
||||
materials = list()
|
||||
materials_by_name = list()
|
||||
|
||||
for(var/M in subtypesof(/material))
|
||||
var/material/material = new M
|
||||
for(var/M in subtypesof(/singleton/material))
|
||||
var/singleton/material/material = new M
|
||||
if(material.name)
|
||||
materials += material
|
||||
materials_by_name[lowertext(material.name)] = material
|
||||
|
||||
/**
|
||||
@@ -36,7 +31,7 @@ SUBSYSTEM_DEF(materials)
|
||||
*/
|
||||
/datum/controller/subsystem/materials/proc/get_material_by_name(var/material_name)
|
||||
if(!materials_by_name)
|
||||
create_material_lists()
|
||||
create_material_names_list()
|
||||
. = materials_by_name[material_name]
|
||||
if(!.)
|
||||
stack_trace("SSmaterials received a request for a material that was not found: [material_name].")
|
||||
@@ -47,6 +42,6 @@ SUBSYSTEM_DEF(materials)
|
||||
* * material_name - A string, lowercase, representing the display name of the material
|
||||
*/
|
||||
/datum/controller/subsystem/materials/proc/material_display_name(var/material_name)
|
||||
var/material/material = get_material_by_name(material_name)
|
||||
var/singleton/material/material = get_material_by_name(material_name)
|
||||
if(material)
|
||||
return material.display_name
|
||||
return material
|
||||
|
||||
@@ -143,10 +143,10 @@
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/table/cultify()
|
||||
if(material == SSmaterials.get_material_by_name(MATERIAL_CULT) || reinforced == SSmaterials.get_material_by_name(MATERIAL_CULT))
|
||||
if(material == GET_SINGLETON(MATERIAL_CULT) || reinforced == GET_SINGLETON(MATERIAL_CULT))
|
||||
return
|
||||
material = SSmaterials.get_material_by_name(MATERIAL_CULT)
|
||||
reinforced = SSmaterials.get_material_by_name(MATERIAL_CULT)
|
||||
material = GET_SINGLETON(MATERIAL_CULT)
|
||||
reinforced = GET_SINGLETON(MATERIAL_CULT)
|
||||
update_desc()
|
||||
update_connections(1)
|
||||
update_icon()
|
||||
|
||||
@@ -3,15 +3,15 @@
|
||||
desc = "A wall that had a hole burnt into it. Nasty."
|
||||
icon = 'icons/turf/flooring/plating.dmi'
|
||||
icon_state = "wall_thermite"
|
||||
var/material/material
|
||||
var/material/reinf_material
|
||||
var/singleton/material/material
|
||||
var/singleton/material/reinf_material
|
||||
|
||||
/obj/effect/overlay/burnt_wall/Initialize(mapload, new_name, new_mat, new_reinf_mat)
|
||||
. = ..()
|
||||
name = "burnt [new_name]"
|
||||
material = SSmaterials.get_material_by_name(new_mat)
|
||||
material = GET_SINGLETON(new_mat)
|
||||
if(new_reinf_mat)
|
||||
reinf_material = SSmaterials.get_material_by_name(new_reinf_mat)
|
||||
reinf_material = GET_SINGLETON(new_reinf_mat)
|
||||
color = material.icon_colour
|
||||
if(material.opacity < 0.5)
|
||||
alpha = 125
|
||||
|
||||
@@ -208,7 +208,7 @@
|
||||
to_chat(user, SPAN_NOTICE("There isn't enough material here to construct a wall."))
|
||||
return TRUE
|
||||
|
||||
var/material/M = SSmaterials.get_material_by_name(S.default_type)
|
||||
var/singleton/material/M = GET_SINGLETON(S.default_type)
|
||||
if(!istype(M))
|
||||
return TRUE
|
||||
if(M.integrity < 50)
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
/obj/structure/easel/Initialize(ml, _mat, _reinf_mat)
|
||||
. = ..()
|
||||
RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(move_painting))
|
||||
material = SSmaterials.get_material_by_name(MATERIAL_WOOD)
|
||||
material = GET_SINGLETON(MATERIAL_WOOD)
|
||||
|
||||
/obj/structure/easel/Destroy()
|
||||
painting = null
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
var/created_window = /obj/structure/window/basic
|
||||
var/is_reinforced = 0
|
||||
var/list/construction_options = list("One Direction", "Full Window")
|
||||
default_type = "glass"
|
||||
default_type = MATERIAL_GLASS
|
||||
icon_has_variants = TRUE
|
||||
drop_sound = 'sound/items/drop/glass_sheet.ogg'
|
||||
pickup_sound = 'sound/items/pickup/glass_sheet.ogg'
|
||||
@@ -112,7 +112,7 @@
|
||||
name = "reinforced glass"
|
||||
singular_name = "reinforced glass sheet"
|
||||
icon_state = "sheet-rglass"
|
||||
default_type = "reinforced glass"
|
||||
default_type = MATERIAL_GLASS_REINFORCED
|
||||
created_window = /obj/structure/window/reinforced
|
||||
is_reinforced = 1
|
||||
construction_options = list("One Direction", "Full Window", "Windoor")
|
||||
@@ -127,7 +127,7 @@
|
||||
icon = 'icons/obj/item/stacks/tiles.dmi'
|
||||
icon_state = "glass_wire"
|
||||
created_window = null
|
||||
default_type = "wired glass"
|
||||
default_type = MATERIAL_GLASS_WIRED
|
||||
construction_options = list()
|
||||
icon_has_variants = FALSE
|
||||
|
||||
@@ -160,7 +160,7 @@
|
||||
singular_name = "phoron glass sheet"
|
||||
icon_state = "sheet-phoronglass"
|
||||
created_window = /obj/structure/window/borosilicate
|
||||
default_type = "phoron glass"
|
||||
default_type = MATERIAL_GLASS_PHORON
|
||||
icon_has_variants = FALSE
|
||||
|
||||
/*
|
||||
@@ -170,7 +170,7 @@
|
||||
name = "reinforced phoron glass"
|
||||
singular_name = "reinforced phoron glass sheet"
|
||||
icon_state = "sheet-phoronrglass"
|
||||
default_type = "reinforced phoron glass"
|
||||
default_type = MATERIAL_GLASS_REINFORCED_PHORON
|
||||
created_window = /obj/structure/window/borosilicate/reinforced
|
||||
is_reinforced = 1
|
||||
icon_has_variants = FALSE
|
||||
|
||||
@@ -19,14 +19,14 @@
|
||||
name = "human skin"
|
||||
desc = "The by-product of human farming."
|
||||
singular_name = "human skin piece"
|
||||
default_type = "human hide"
|
||||
default_type = MATERIAL_HIDE_HUMAN
|
||||
|
||||
/obj/item/stack/material/animalhide/corgi
|
||||
name = "corgi hide"
|
||||
desc = "The by-product of corgi farming."
|
||||
singular_name = "corgi hide piece"
|
||||
icon_state = "sheet-corgi"
|
||||
default_type = "corgi hide"
|
||||
default_type = MATERIAL_HIDE_CORGI
|
||||
icon_has_variants = FALSE
|
||||
|
||||
/obj/item/stack/material/animalhide/cat
|
||||
@@ -34,7 +34,7 @@
|
||||
desc = "The by-product of cat farming."
|
||||
icon_state = "sheet-cat"
|
||||
singular_name = "cat hide piece"
|
||||
default_type = "cat hide"
|
||||
default_type = MATERIAL_HIDE_CAT
|
||||
icon_has_variants = FALSE
|
||||
|
||||
/obj/item/stack/material/animalhide/monkey
|
||||
@@ -42,7 +42,7 @@
|
||||
desc = "The by-product of monkey farming."
|
||||
singular_name = "monkey hide piece"
|
||||
icon_state = "sheet-monkey"
|
||||
default_type = "monkey hide"
|
||||
default_type = MATERIAL_HIDE_MONKEY
|
||||
icon_has_variants = FALSE
|
||||
|
||||
/obj/item/stack/material/animalhide/lizard
|
||||
@@ -50,7 +50,7 @@
|
||||
desc = "Sssssss..."
|
||||
singular_name = "lizard skin piece"
|
||||
icon_state = "sheet-lizard"
|
||||
default_type = "lizard hide"
|
||||
default_type = MATERIAL_HIDE_LIZARD
|
||||
icon_has_variants = FALSE
|
||||
hide_type = "scales"
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
desc = "A hide without fur or scales. Can be tanned into leather."
|
||||
singular_name = "bare hide piece"
|
||||
icon_state = "sheet-hairlesshide"
|
||||
default_type = "bare hide"
|
||||
default_type = MATERIAL_HIDE_BARE
|
||||
bare = TRUE
|
||||
|
||||
/obj/item/stack/material/animalhide/barehide/mechanics_hints(mob/user, distance, is_adjacent)
|
||||
@@ -71,7 +71,7 @@
|
||||
desc = "This leather has been cleaned but still needs to be dried."
|
||||
singular_name = "wet leather piece"
|
||||
icon_state = "sheet-wetleather"
|
||||
default_type = "wet leather"
|
||||
default_type = MATERIAL_WET_LEATHER
|
||||
icon_has_variants = TRUE
|
||||
bare = TRUE
|
||||
var/wetness = 30 //Reduced when exposed to high temperautres or manually dried with a welding tool.
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
/obj/item/material/butterflyconstruction/attackby(obj/item/attacking_item, mob/user)
|
||||
if(attacking_item.tool_behaviour == TOOL_SCREWDRIVER)
|
||||
to_chat(user, "You finish the concealed blade weapon.")
|
||||
new /obj/item/material/knife/butterfly(user.loc, material.name)
|
||||
new /obj/item/material/knife/butterfly(user.loc, material.type)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
if(istype(attacking_item, /obj/item/material/butterflyblade))
|
||||
var/obj/item/material/butterflyblade/B = attacking_item
|
||||
to_chat(user, "You attach the two concealed blade parts.")
|
||||
var/finished = new /obj/item/material/butterflyconstruction(user.loc, B.material.name)
|
||||
var/finished = new /obj/item/material/butterflyconstruction(user.loc, B.material.type)
|
||||
qdel(attacking_item)
|
||||
qdel(src)
|
||||
user.put_in_hands(finished)
|
||||
@@ -72,7 +72,7 @@
|
||||
var/obj/item/finished
|
||||
if(istype(attacking_item, /obj/item/material/shard) || istype(attacking_item, /obj/item/material/spearhead))
|
||||
var/obj/item/material/tmp_shard = attacking_item
|
||||
finished = new /obj/item/material/twohanded/spear(get_turf(user), tmp_shard.material.name)
|
||||
finished = new /obj/item/material/twohanded/spear(get_turf(user), tmp_shard.material.type)
|
||||
to_chat(user, SPAN_NOTICE("You fasten \the [attacking_item] to the top of the rod with the cable."))
|
||||
else if(attacking_item.tool_behaviour == TOOL_WIRECUTTER)
|
||||
finished = new /obj/item/melee/baton/cattleprod(get_turf(user), forward_cable_color)
|
||||
@@ -101,14 +101,14 @@
|
||||
attack_verb = list("hit", "bludgeoned", "whacked", "bonked")
|
||||
force_divisor = 0.1
|
||||
thrown_force_divisor = 0.1
|
||||
default_material = "wood"
|
||||
default_material = MATERIAL_WOOD
|
||||
|
||||
/obj/item/material/shaft/attackby(obj/item/attacking_item, mob/user)
|
||||
..()
|
||||
var/obj/item/finished
|
||||
if(istype(attacking_item, /obj/item/material/spearhead))
|
||||
var/obj/item/material/spearhead/tip = attacking_item
|
||||
finished = new /obj/item/material/twohanded/pike(get_turf(user), tip.material.name)
|
||||
finished = new /obj/item/material/twohanded/pike(get_turf(user), tip.material.type)
|
||||
to_chat(user, SPAN_NOTICE("You attach \the [attacking_item] to the top of \the [src]."))
|
||||
if(finished)
|
||||
user.drop_from_inventory(src,finished)
|
||||
@@ -130,8 +130,7 @@
|
||||
attack_verb = list("attacked", "poked")
|
||||
force_divisor = 0.1
|
||||
thrown_force_divisor = 0.1
|
||||
default_material = "steel"
|
||||
|
||||
default_material = MATERIAL_STEEL
|
||||
|
||||
/obj/item/material/woodenshield
|
||||
name = "shield donut"
|
||||
@@ -140,14 +139,14 @@
|
||||
icon_state = "shield_fitting_inner"
|
||||
force_divisor = 0.1
|
||||
thrown_force_divisor = 0.1
|
||||
default_material = "wood"
|
||||
default_material = MATERIAL_WOOD
|
||||
|
||||
/obj/item/material/woodenshield/attackby(obj/item/attacking_item, mob/user)
|
||||
..()
|
||||
var/obj/item/finished
|
||||
if(istype(attacking_item, /obj/item/material/shieldbits))
|
||||
var/obj/item/material/woodenshield/donut = attacking_item
|
||||
finished = new /obj/item/shield/buckler(get_turf(user), donut.material.name)
|
||||
finished = new /obj/item/shield/buckler(get_turf(user), donut.material.type)
|
||||
to_chat(user, SPAN_NOTICE("You attach \the [attacking_item] to \the [src]."))
|
||||
if(finished)
|
||||
user.drop_from_inventory(src)
|
||||
@@ -164,7 +163,7 @@
|
||||
icon_state = "shield_fitting_outer"
|
||||
force_divisor = 0.1
|
||||
thrown_force_divisor = 0.1
|
||||
default_material = "steel"
|
||||
default_material = MATERIAL_STEEL
|
||||
|
||||
/obj/item/woodcirclet
|
||||
name = "wood circlet"
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
/obj/item/material/ashtray/persistent_objects_get_content()
|
||||
var/list/content = list()
|
||||
content["fill_count"] = length(contents)
|
||||
content["material"] = material.name
|
||||
content["material"] = material.type
|
||||
return content
|
||||
|
||||
/obj/item/material/ashtray/persistent_objects_apply_content(content, x, y, z)
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
item_state = "metalbat"
|
||||
throwforce = 7
|
||||
attack_verb = list("smashed", "beaten", "slammed", "smacked", "struck", "battered", "bonked")
|
||||
default_material = "wood"
|
||||
default_material = MATERIAL_WOOD
|
||||
force_divisor = 1.1 // 22 when wielded with weight 20 (steel)
|
||||
unwielded_force_divisor = 0.7 // 15 when unwielded based on above.
|
||||
slot_flags = SLOT_BACK
|
||||
|
||||
@@ -224,7 +224,7 @@
|
||||
icon_state = "rolling_pin"
|
||||
item_state = "rolling_pin"
|
||||
attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked")
|
||||
default_material = "wood"
|
||||
default_material = MATERIAL_WOOD
|
||||
force_divisor = 0.7 // 10 when wielded with weight 15 (wood)
|
||||
thrown_force_divisor = 1 // as above
|
||||
use_material_name = TRUE
|
||||
|
||||
@@ -22,7 +22,7 @@ Protectiveness | Armor %
|
||||
|
||||
/obj/item/clothing/suit/armor/material
|
||||
name = "armor"
|
||||
default_material = DEFAULT_WALL_MATERIAL
|
||||
default_material = MATERIAL_STEEL
|
||||
|
||||
/obj/item/clothing/suit/armor/material/makeshift
|
||||
name = "sheet armor"
|
||||
@@ -37,10 +37,10 @@ Protectiveness | Armor %
|
||||
pocket_slots = 1
|
||||
|
||||
/obj/item/clothing/suit/armor/material/makeshift/plasteel
|
||||
default_material = "plasteel"
|
||||
default_material = MATERIAL_PLASTEEL
|
||||
|
||||
/obj/item/clothing/suit/armor/material/makeshift/glass
|
||||
default_material = "glass"
|
||||
default_material = MATERIAL_GLASS
|
||||
|
||||
/obj/item/material/armor_plating
|
||||
name = "armor plating"
|
||||
@@ -75,7 +75,7 @@ Protectiveness | Armor %
|
||||
to_chat(user, SPAN_WARNING("Both plates need to be the same type of material."))
|
||||
return
|
||||
//TODO: Possible better animations
|
||||
var/obj/item/clothing/suit/armor/material/makeshift/new_armor = new(src.loc, src.material.name)
|
||||
var/obj/item/clothing/suit/armor/material/makeshift/new_armor = new(src.loc, src.material)
|
||||
user.drop_from_inventory(src,new_armor)
|
||||
user.drop_from_inventory(second_plate,new_armor)
|
||||
user.put_in_hands(new_armor)
|
||||
@@ -116,7 +116,7 @@ Protectiveness | Armor %
|
||||
var/obj/item/stack/material/S = attacking_item
|
||||
if(S.use(2))
|
||||
to_chat(user, SPAN_NOTICE("You apply some [S.material.use_name] to \the [src]. "))
|
||||
var/obj/item/clothing/head/helmet/material/makeshift/helmet = new(null, S.material.name)
|
||||
var/obj/item/clothing/head/helmet/material/makeshift/helmet = new(null, S.material.type)
|
||||
user.put_in_hands(helmet)
|
||||
user.drop_from_inventory(src)
|
||||
qdel(src)
|
||||
@@ -129,7 +129,7 @@ Protectiveness | Armor %
|
||||
/obj/item/clothing/head/helmet/material
|
||||
name = "helmet"
|
||||
flags_inv = HIDEEARS|HIDEEYES|BLOCKHAIR
|
||||
default_material = DEFAULT_WALL_MATERIAL
|
||||
default_material = MATERIAL_STEEL
|
||||
has_storage = FALSE
|
||||
|
||||
/obj/item/clothing/head/helmet/material/makeshift
|
||||
@@ -141,7 +141,7 @@ Protectiveness | Armor %
|
||||
contained_sprite = 1
|
||||
|
||||
/obj/item/clothing/head/helmet/material/makeshift/plasteel
|
||||
default_material = "plasteel"
|
||||
default_material = MATERIAL_PLASTEEL
|
||||
|
||||
/obj/item/clothing/suit/armor/material/makeshift/trenchcoat
|
||||
name = "armored trenchcoat"
|
||||
@@ -156,7 +156,7 @@ Protectiveness | Armor %
|
||||
var/obj/item/clothing/suit/storage/toggle/trench/kelly = attacking_item
|
||||
user.drop_from_inventory(src)
|
||||
user.drop_from_inventory(kelly)
|
||||
var/obj/item/clothing/suit/armor/material/makeshift/trenchcoat/new_armor = new(null, src.material.name)
|
||||
var/obj/item/clothing/suit/armor/material/makeshift/trenchcoat/new_armor = new(null, src.material.type)
|
||||
user.put_in_hands(new_armor)
|
||||
qdel(src)
|
||||
qdel(kelly)
|
||||
|
||||
@@ -20,8 +20,8 @@
|
||||
var/max_force = 40 //any damage above this is added to armor penetration value
|
||||
var/max_pen = 100 //any penetration above this value is ignored
|
||||
var/thrown_force_divisor = 0.5
|
||||
var/default_material = DEFAULT_WALL_MATERIAL
|
||||
var/material/material
|
||||
var/default_material = MATERIAL_STEEL
|
||||
var/singleton/material/material
|
||||
var/drops_debris = TRUE
|
||||
|
||||
/// Multiplies the amount this item is worth with the following calculation: material.value * worth_multiplier
|
||||
@@ -59,7 +59,7 @@
|
||||
throwforce = round(material.get_blunt_damage()*thrown_force_divisor)
|
||||
|
||||
/obj/item/material/proc/set_material(var/new_material)
|
||||
material = SSmaterials.get_material_by_name(new_material)
|
||||
material = GET_SINGLETON(new_material)
|
||||
if(!material)
|
||||
qdel(src)
|
||||
else
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
thrown_force_divisor = 0.4 // 4 with weight 15 (glass)
|
||||
item_state = "shard-glass"
|
||||
attack_verb = list("stabbed", "slashed", "sliced", "cut")
|
||||
default_material = "glass"
|
||||
default_material = MATERIAL_GLASS
|
||||
unbreakable = 1 //It's already broken.
|
||||
drops_debris = FALSE
|
||||
drop_sound = 'sound/effects/glass_step.ogg'
|
||||
|
||||
@@ -196,7 +196,7 @@
|
||||
/obj/item/material/sword_hilt/attackby(obj/item/attacking_item, mob/user)
|
||||
if(istype(attacking_item, /obj/item/material/sword_blade))
|
||||
var/obj/item/material/sword_blade/blade = attacking_item
|
||||
var/obj/item/material/sword/improvised_sword/new_sword = new(src.loc, blade.material.name)
|
||||
var/obj/item/material/sword/improvised_sword/new_sword = new(src.loc, blade.material.type)
|
||||
new_sword.hilt = src
|
||||
user.drop_from_inventory(src,new_sword)
|
||||
user.drop_from_inventory(blade,new_sword)
|
||||
@@ -219,7 +219,7 @@
|
||||
/obj/item/material/sword_blade/attackby(obj/item/attacking_item, mob/user)
|
||||
if(istype(attacking_item, /obj/item/material/sword_hilt))
|
||||
var/obj/item/material/sword_hilt/hilt = attacking_item
|
||||
var/obj/item/material/sword/improvised_sword/new_sword = new(src.loc, src.material.name)
|
||||
var/obj/item/material/sword/improvised_sword/new_sword = new(src.loc, src.material.type)
|
||||
new_sword.hilt = hilt.material
|
||||
new_sword.assignDescription()
|
||||
user.drop_from_inventory(src,new_sword)
|
||||
|
||||
@@ -172,7 +172,7 @@
|
||||
w_class = WEIGHT_CLASS_HUGE
|
||||
icon_state = "offhand"
|
||||
name = "offhand"
|
||||
default_material = "placeholder"
|
||||
default_material = MATERIAL_STEEL
|
||||
drop_sound = null
|
||||
pickup_sound = null
|
||||
equip_sound = null
|
||||
@@ -258,7 +258,7 @@
|
||||
sharp = 0
|
||||
mob_throw_hit_sound = 'sound/weapons/pierce.ogg'
|
||||
attack_verb = list("attacked", "poked", "jabbed", "torn", "gored")
|
||||
default_material = "glass"
|
||||
default_material = MATERIAL_GLASS
|
||||
var/obj/item/grenade/explosive = null
|
||||
use_material_sound = FALSE
|
||||
worth_multiplier = 7 //blade + stuff
|
||||
@@ -290,7 +290,7 @@
|
||||
MA.layer = FLOAT_LAYER
|
||||
HS.AddOverlays(MA)
|
||||
HS.name = "[attacking_item.name] on a spear"
|
||||
HS.material = material.name
|
||||
HS.material = material.type
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
@@ -374,7 +374,7 @@
|
||||
attack_verb = list("chopped", "sliced", "shredded", "slashed", "cut", "ripped")
|
||||
can_embed = FALSE
|
||||
applies_material_colour = FALSE
|
||||
default_material = "steel"
|
||||
default_material = MATERIAL_STEEL
|
||||
parry_chance = 5
|
||||
var/fuel_type = /singleton/reagent/fuel
|
||||
var/opendelay = 30 // How long it takes to perform a door opening action with this chainsaw, in seconds.
|
||||
@@ -418,7 +418,7 @@
|
||||
fuel_cost = 0.5
|
||||
unbreakable = TRUE
|
||||
parry_chance = 100 //Gotta punish those validhunters
|
||||
default_material = "plasteel"
|
||||
default_material = MATERIAL_PLASTEEL
|
||||
|
||||
/obj/item/material/twohanded/chainsaw/op/Initialize()
|
||||
. = ..()
|
||||
@@ -560,7 +560,7 @@
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
slot_flags = SLOT_BACK
|
||||
attack_verb = list("attacked", "poked", "jabbed", "gored", "stabbed")
|
||||
default_material = "steel"
|
||||
default_material = MATERIAL_STEEL
|
||||
reach = 2
|
||||
applies_material_colour = 0
|
||||
can_embed = 0
|
||||
@@ -599,7 +599,7 @@
|
||||
desc = "For the republic!"
|
||||
icon_state = "flag_biesel0"
|
||||
base_icon = "flag_biesel"
|
||||
default_material = "bronze"
|
||||
default_material = MATERIAL_STEEL
|
||||
can_embed = 1
|
||||
use_material_name = FALSE
|
||||
unbreakable = TRUE
|
||||
@@ -665,7 +665,7 @@
|
||||
edge = TRUE
|
||||
sharp = 1
|
||||
attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut")
|
||||
default_material = "steel"
|
||||
default_material = MATERIAL_STEEL
|
||||
parry_chance = 60
|
||||
can_embed = 0
|
||||
worth_multiplier = 35
|
||||
|
||||
@@ -14,17 +14,16 @@
|
||||
/// Footstep sounds when stepped on
|
||||
var/list/footstep_sound
|
||||
|
||||
var/material/material
|
||||
var/singleton/material/material
|
||||
/// Used by some structures to determine into how many pieces they should disassemble into or be made with
|
||||
var/build_amt = 2
|
||||
|
||||
/// Amount that pulling mobs have their movement delayed by
|
||||
var/slowdown = 0
|
||||
|
||||
/obj/structure/Initialize(mapload)
|
||||
. = ..()
|
||||
if(!isnull(material) && !istype(material))
|
||||
material = SSmaterials.get_material_by_name(material)
|
||||
material = GET_SINGLETON(material)
|
||||
if (!mapload)
|
||||
updateVisibility(src) // No point checking this before visualnet initializes.
|
||||
if(climbable)
|
||||
@@ -101,9 +100,9 @@
|
||||
add_damage(maxhealth * 0.25)
|
||||
|
||||
/obj/structure/proc/dismantle()
|
||||
var/material/dismantle_material
|
||||
var/singleton/material/dismantle_material
|
||||
if(!get_material())
|
||||
dismantle_material = SSmaterials.get_material_by_name(DEFAULT_WALL_MATERIAL) //if there is no defined material, it will use steel
|
||||
dismantle_material = GET_SINGLETON(MATERIAL_STEEL)
|
||||
else
|
||||
dismantle_material = get_material()
|
||||
if(should_use_health && health <= 0)
|
||||
|
||||
@@ -117,19 +117,19 @@ Class Procs:
|
||||
var/power_init_complete = FALSE
|
||||
/// What power channel does this fall under in APCs? Possible channels include: AREA_USAGE_EQUIP, AREA_USAGE_ENVIRON or AREA_USAGE_LIGHT
|
||||
var/power_channel = AREA_USAGE_EQUIP
|
||||
|
||||
/* List of types that should be spawned as component_parts for this machine.
|
||||
Structure:
|
||||
type -> num_objects
|
||||
|
||||
num_objects is optional, and will be treated as 1 if omitted.
|
||||
|
||||
example:
|
||||
component_types = list(
|
||||
/obj/foo/bar,
|
||||
/obj/baz = 2
|
||||
)
|
||||
*/
|
||||
/**
|
||||
* List of types that should be spawned as component_parts for this machine.
|
||||
* Structure:
|
||||
* type -> num_objects
|
||||
*
|
||||
* num_objects is optional, and will be treated as 1 if omitted.
|
||||
*
|
||||
* example:
|
||||
* component_types = list(
|
||||
* /obj/foo/bar,
|
||||
* /obj/baz = 2
|
||||
* )
|
||||
**/
|
||||
var/list/component_types
|
||||
/// List of all the parts used to build it, if made from certain kinds of frames.
|
||||
var/list/component_parts = null
|
||||
|
||||
@@ -102,7 +102,7 @@ GLOBAL_LIST_EMPTY(total_active_bonfires)
|
||||
return
|
||||
else if(istype(attacking_item, /obj/item/material))
|
||||
var/obj/item/material/M = attacking_item
|
||||
if(M.material.name in burnable_materials)
|
||||
if(M.material.type in burnable_materials)
|
||||
var/fuel_add = burnable_materials[M.material] * (M.w_class / 5) //if you crafted a small item, it's not worth as much fuel
|
||||
fuel = min(fuel + fuel_add, max_fuel)
|
||||
user.visible_message(SPAN_NOTICE("\The [user] tosses \the [M] into \the [src]."))
|
||||
@@ -359,7 +359,7 @@ GLOBAL_LIST_EMPTY(total_active_bonfires)
|
||||
fuel = 0 //don't start with fuel
|
||||
if(!material_name)
|
||||
material_name = MATERIAL_MARBLE
|
||||
material = SSmaterials.get_material_by_name(material_name)
|
||||
material = GET_SINGLETON(material_name)
|
||||
if(!material)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
@@ -6,7 +6,7 @@ ABSTRACT_TYPE(/obj/structure/cart)
|
||||
density = TRUE
|
||||
climbable = TRUE
|
||||
build_amt = 15
|
||||
material = DEFAULT_WALL_MATERIAL
|
||||
material = MATERIAL_STEEL
|
||||
slowdown = 0
|
||||
atom_flags = CRITICAL_ATOM
|
||||
var/movesound = 'sound/effects/roll.ogg'
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
/obj/structure/curtain/Initialize()
|
||||
. = ..()
|
||||
material = SSmaterials.get_material_by_name(curtain_material)
|
||||
material = GET_SINGLETON(curtain_material)
|
||||
AddComponent(/datum/component/turf_hand)
|
||||
|
||||
/obj/structure/curtain/open
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
anchored = TRUE
|
||||
opacity = TRUE
|
||||
climbable = TRUE
|
||||
material = DEFAULT_WALL_MATERIAL
|
||||
material = MATERIAL_STEEL
|
||||
|
||||
/obj/structure/fluff/evidenceshelf/attackby(obj/item/attacking_item, mob/user)
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
/// How much cover the girder provides against projectiles.
|
||||
var/cover = 50
|
||||
build_amt = 2
|
||||
var/material/reinf_material
|
||||
var/singleton/material/reinf_material
|
||||
var/reinforcing = 0
|
||||
var/plating = FALSE
|
||||
|
||||
@@ -232,7 +232,7 @@
|
||||
to_chat(user, SPAN_NOTICE("There isn't enough material here to construct a wall."))
|
||||
return 0
|
||||
|
||||
var/material/material = SSmaterials.get_material_by_name(mat_stack.default_type)
|
||||
var/singleton/material/material = GET_SINGLETON(mat_stack.default_type)
|
||||
if(!istype(material))
|
||||
return 0
|
||||
|
||||
@@ -282,7 +282,7 @@
|
||||
to_chat(user, SPAN_NOTICE("There isn't enough material here to reinforce the girder."))
|
||||
return 0
|
||||
|
||||
var/material/material = SSmaterials.get_material_by_name(mat_stack.default_type)
|
||||
var/singleton/material/material = GET_SINGLETON(mat_stack.default_type)
|
||||
if(!istype(material) || material.integrity < 50)
|
||||
to_chat(user, "You cannot reinforce \the [src] with that; it is too soft.")
|
||||
return 0
|
||||
|
||||
@@ -31,7 +31,7 @@ Deployable Kits
|
||||
/obj/structure/blocker/proc/set_material(var/material_name)
|
||||
if(force_material)
|
||||
material_name = force_material
|
||||
material = SSmaterials.get_material_by_name(material_name)
|
||||
material = GET_SINGLETON(material_name)
|
||||
if(!material)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
@@ -54,8 +54,6 @@
|
||||
var/obj/structure/machinery/door/airlock/close_other
|
||||
/// The ID of the connected door to close.
|
||||
var/close_other_id
|
||||
/// String (One of `MATERIAL_*`). The material the door is made from. If not set, defaults to steel.
|
||||
var/mineral
|
||||
/// Boolean. Whether or not the door's safeties are enabled. Tied to the safety wire.
|
||||
var/safe = TRUE
|
||||
/// Airlock electronics.
|
||||
@@ -127,7 +125,7 @@
|
||||
/// String (One of `MATERIAL_*`). The material used for the door's window if `glass` is set. Used to set `window_material` during init.
|
||||
var/init_material_window = MATERIAL_GLASS
|
||||
/// The material of the door's window.
|
||||
var/material/window_material
|
||||
var/singleton/material/window_material
|
||||
|
||||
hashatch = TRUE
|
||||
|
||||
@@ -243,7 +241,7 @@
|
||||
|
||||
if (glass)
|
||||
paintable |= AIRLOCK_PAINTABLE_WINDOW
|
||||
window_material = SSmaterials.get_material_by_name(init_material_window)
|
||||
window_material = GET_SINGLETON(init_material_window)
|
||||
opacity = FALSE
|
||||
update_icon()
|
||||
|
||||
@@ -284,9 +282,9 @@
|
||||
..()
|
||||
|
||||
/obj/structure/machinery/door/airlock/get_material()
|
||||
if(mineral)
|
||||
return SSmaterials.get_material_by_name(mineral)
|
||||
return SSmaterials.get_material_by_name(DEFAULT_WALL_MATERIAL)
|
||||
if(material)
|
||||
return GET_SINGLETON(material)
|
||||
return GET_SINGLETON(MATERIAL_STEEL)
|
||||
|
||||
/obj/structure/machinery/door/airlock/external//External airlocks start here
|
||||
name = "external airlock"
|
||||
@@ -718,23 +716,23 @@
|
||||
/obj/structure/machinery/door/airlock/gold
|
||||
name = "Gold Airlock"
|
||||
door_color = COLOR_GOLD
|
||||
mineral = "gold"
|
||||
material = MATERIAL_GOLD
|
||||
|
||||
/obj/structure/machinery/door/airlock/silver
|
||||
name = "Silver Airlock"
|
||||
door_color = COLOR_SILVER
|
||||
mineral = "silver"
|
||||
material = MATERIAL_SILVER
|
||||
|
||||
/obj/structure/machinery/door/airlock/diamond
|
||||
name = "Diamond Airlock"
|
||||
door_color = COLOR_DIAMOND
|
||||
mineral = "diamond"
|
||||
material = MATERIAL_DIAMOND
|
||||
maxhealth = OBJECT_HEALTH_EXTREMELY_HIGH
|
||||
|
||||
/obj/structure/machinery/door/airlock/sandstone
|
||||
name = "Sandstone Airlock"
|
||||
door_color = COLOR_BEIGE
|
||||
mineral = "sandstone"
|
||||
material = MATERIAL_SANDSTONE
|
||||
|
||||
/obj/structure/machinery/door/airlock/palepurple
|
||||
door_color = COLOR_PURPLE
|
||||
@@ -784,6 +782,7 @@
|
||||
MELEE = ARMOR_MELEE_MINOR,
|
||||
BULLET = ARMOR_BALLISTIC_MINOR
|
||||
)
|
||||
material = MATERIAL_DIONA
|
||||
|
||||
/// Placeholder object until it gets new sprites.
|
||||
/obj/structure/machinery/door/airlock/diona/external
|
||||
@@ -794,7 +793,7 @@
|
||||
name = "Uranium Airlock"
|
||||
desc = "And they said I was crazy."
|
||||
door_color = COLOR_GREEN
|
||||
mineral = "uranium"
|
||||
material = MATERIAL_URANIUM
|
||||
var/last_event = 0
|
||||
|
||||
/obj/structure/machinery/door/airlock/uranium/process()
|
||||
@@ -809,7 +808,7 @@
|
||||
name = "Phoron Airlock"
|
||||
desc = "No way this can end badly."
|
||||
door_color = COLOR_VIOLET
|
||||
mineral = MATERIAL_PHORON
|
||||
material = MATERIAL_PHORON
|
||||
|
||||
/obj/structure/machinery/door/airlock/phoron/fire_act(exposed_temperature, exposed_volume)
|
||||
. = ..()
|
||||
@@ -1719,8 +1718,8 @@ About the new airlock wires panel:
|
||||
da.set_dir(src.dir)
|
||||
|
||||
da.anchored = 1
|
||||
if(mineral)
|
||||
da.glass = mineral
|
||||
if(material)
|
||||
da.glass = material
|
||||
else if(glass && !da.glass)
|
||||
da.glass = 1
|
||||
da.state = 1
|
||||
|
||||
@@ -204,7 +204,7 @@
|
||||
..()
|
||||
|
||||
/obj/structure/machinery/door/firedoor/get_material()
|
||||
return SSmaterials.get_material_by_name(DEFAULT_WALL_MATERIAL)
|
||||
return GET_SINGLETON(DEFAULT_WALL_MATERIAL)
|
||||
|
||||
/obj/structure/machinery/door/firedoor/CollidedWith(atom/bumped_atom)
|
||||
if(p_open || operating)
|
||||
|
||||
@@ -231,7 +231,7 @@
|
||||
var/obj/item/stack/material/M = attacking_item
|
||||
if(!M.material)
|
||||
return ..()
|
||||
if(!(M.material.name in list(MATERIAL_STEEL, MATERIAL_GLASS, MATERIAL_GOLD, MATERIAL_SILVER, MATERIAL_DIAMOND, MATERIAL_PHORON, MATERIAL_URANIUM, MATERIAL_PLASTEEL, MATERIAL_ALUMINIUM, MATERIAL_LEAD)))
|
||||
if(!(M.material.type in list(MATERIAL_STEEL, MATERIAL_GLASS, MATERIAL_GOLD, MATERIAL_SILVER, MATERIAL_DIAMOND, MATERIAL_PHORON, MATERIAL_URANIUM, MATERIAL_PLASTEEL, MATERIAL_ALUMINIUM, MATERIAL_LEAD)))
|
||||
to_chat(user, SPAN_WARNING("\The [src] cannot hold [M.material.name]."))
|
||||
return TRUE
|
||||
|
||||
@@ -465,7 +465,7 @@
|
||||
if(!amount)
|
||||
return
|
||||
material = lowertext(material)
|
||||
var/material/mattype = SSmaterials.get_material_by_name(material)
|
||||
var/singleton/material/mattype = GET_SINGLETON(material)
|
||||
var/stack_type = mattype.stack_type
|
||||
|
||||
var/real_amount = round(amount / SHEET_MATERIAL_AMOUNT)
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
/obj/structure/plasticflaps/Initialize()
|
||||
. = ..()
|
||||
material = SSmaterials.get_material_by_name(MATERIAL_PLASTIC)
|
||||
material = GET_SINGLETON(MATERIAL_PLASTIC)
|
||||
update_icon()
|
||||
|
||||
/obj/structure/plasticflaps/update_icon()
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
/obj/structure/railing/mapped/no_density/low
|
||||
icon_state = "railing0-0"
|
||||
|
||||
/obj/structure/railing/New(var/newloc, var/material_key = DEFAULT_WALL_MATERIAL)
|
||||
/obj/structure/railing/New(var/newloc, var/material_key = MATERIAL_STEEL)
|
||||
material = material_key // Converted to datum in initialize().
|
||||
..(newloc)
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
|
||||
if(!non_material_object)
|
||||
if(!isnull(material) && !istype(material))
|
||||
material = SSmaterials.get_material_by_name(material)
|
||||
material = GET_SINGLETON(material)
|
||||
if(!istype(material))
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
|
||||
@@ -30,11 +30,11 @@
|
||||
health -= material.combustion_effect(get_turf(src),temperature, 0.3)
|
||||
CheckHealth()
|
||||
|
||||
/obj/structure/simple_door/New(var/newloc, var/material_name, var/locked)
|
||||
/obj/structure/simple_door/New(var/newloc, var/newmaterial, var/locked)
|
||||
..()
|
||||
if(!material_name)
|
||||
material_name = DEFAULT_WALL_MATERIAL
|
||||
material = SSmaterials.get_material_by_name(material_name)
|
||||
if(!newmaterial)
|
||||
newmaterial = MATERIAL_STEEL
|
||||
material = GET_SINGLETON(newmaterial)
|
||||
if(!material)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
@@ -25,23 +25,27 @@
|
||||
buckle_lying = 1
|
||||
build_amt = 2
|
||||
pass_flags_self = PASSTABLE
|
||||
var/material/padding_material
|
||||
var/singleton/material/padding_material
|
||||
|
||||
var/base_icon = "bed"
|
||||
var/buckling_sound = 'sound/effects/buckle.ogg'
|
||||
|
||||
var/painted_colour // Used for paint gun and preset colours. I know this name sucks.
|
||||
/// Used for paint gun and preset colours. I know this name sucks.
|
||||
var/painted_colour
|
||||
|
||||
var/can_dismantle = TRUE
|
||||
var/can_pad = TRUE
|
||||
|
||||
var/makes_rolling_sound = FALSE
|
||||
var/held_item = null // Set to null if you don't want people to pick this up.
|
||||
/// Set to null if you don't want people to pick this up.
|
||||
var/held_item = null
|
||||
slowdown = 2.5
|
||||
|
||||
var/driving = FALSE // Shit for wheelchairs. Doesn't really get used here, but it's for code cleanliness.
|
||||
/// Shit for wheelchairs. Doesn't really get used here, but it's for code cleanliness.
|
||||
var/driving = FALSE
|
||||
var/mob/living/pulling = null
|
||||
var/propelled = 0 // Check for fire-extinguisher-driven chairs
|
||||
/// Check for fire-extinguisher-driven chairs
|
||||
var/propelled = 0
|
||||
|
||||
/obj/structure/bed/mechanics_hints()
|
||||
. = list()
|
||||
@@ -76,12 +80,12 @@
|
||||
|
||||
/obj/structure/bed/New(newloc, new_material = MATERIAL_STEEL, new_padding_material, new_painted_colour)
|
||||
..(newloc)
|
||||
material = SSmaterials.get_material_by_name(new_material)
|
||||
material = GET_SINGLETON(new_material)
|
||||
if(!istype(material))
|
||||
qdel(src)
|
||||
return
|
||||
if(new_padding_material)
|
||||
padding_material = SSmaterials.get_material_by_name(new_padding_material)
|
||||
padding_material = GET_SINGLETON(new_padding_material)
|
||||
if(new_painted_colour)
|
||||
painted_colour = new_painted_colour
|
||||
update_icon()
|
||||
@@ -104,7 +108,7 @@
|
||||
generate_overlay_cache(padding_material, CACHE_TYPE_PADDING, apply_painted_colour = TRUE)
|
||||
|
||||
/obj/structure/bed/proc/generate_overlay_cache(var/new_material, var/cache_type, var/cache_layer = layer, var/apply_painted_colour = FALSE) // Cache type refers to what cache we're making. Material type refers if we're taking from the padding or the chair material itself.
|
||||
var/material/overlay_material = new_material
|
||||
var/singleton/material/overlay_material = new_material
|
||||
var/list/furniture_cache = SSicon_cache.furniture_cache
|
||||
var/cache_key = "[base_icon]-[overlay_material.name]" // Basically, generates a cache key for an overlay.
|
||||
if(cache_type)
|
||||
@@ -180,7 +184,7 @@
|
||||
else if(istype(attacking_item,/obj/item/stack/material))
|
||||
var/obj/item/stack/material/M = attacking_item
|
||||
if(M.material && (M.material.flags & MATERIAL_PADDING))
|
||||
padding_type = "[M.material.name]"
|
||||
padding_type = M.material.type
|
||||
if(!padding_type)
|
||||
to_chat(user, "You cannot pad \the [src] with that.")
|
||||
return
|
||||
@@ -249,8 +253,8 @@
|
||||
generate_strings(TRUE)
|
||||
update_icon()
|
||||
|
||||
/obj/structure/bed/proc/add_padding(padding_type)
|
||||
padding_material = SSmaterials.get_material_by_name(padding_type)
|
||||
/obj/structure/bed/proc/add_padding(var/padding_type)
|
||||
padding_material = GET_SINGLETON(padding_type)
|
||||
generate_strings(TRUE)
|
||||
update_icon()
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
if(!held_item || use_check_and_message(user) || buckled || (anchored && padding_material)) // Make sure held_item = null if you don't want it to get picked up.
|
||||
return
|
||||
user.visible_message(SPAN_NOTICE("[user] [withdraw_verb]s \the [src.name]."), SPAN_NOTICE("You [withdraw_verb] \the [src.name]."))
|
||||
var/obj/item/material/stool/S = new held_item(src.loc, material.name, padding_material?.name, painted_colour) // Handles all the material code so you don't have to.
|
||||
var/obj/item/material/stool/S = new held_item(src.loc, material.type, padding_material?.type, painted_colour) // Handles all the material code so you don't have to.
|
||||
if(material_alteration & MATERIAL_ALTERATION_COLOR) // For snowflakes like wood chairs.
|
||||
S.color = material.icon_colour
|
||||
if(material_alteration & MATERIAL_ALTERATION_NAME)
|
||||
@@ -182,7 +182,7 @@
|
||||
force_divisor = 0.4
|
||||
w_class = WEIGHT_CLASS_HUGE
|
||||
contained_sprite = TRUE
|
||||
var/material/padding_material
|
||||
var/singleton/material/padding_material
|
||||
var/obj/structure/bed/stool/origin_type = /obj/structure/bed/stool
|
||||
var/deploy_verb = "right"
|
||||
var/painted_colour
|
||||
@@ -194,7 +194,7 @@
|
||||
/obj/item/material/stool/New(var/newloc, var/new_material, var/new_padding_material, var/new_painted_colour)
|
||||
..(newloc, new_material) // new_material handled in material_weapons.dm
|
||||
if(new_padding_material)
|
||||
padding_material = SSmaterials.get_material_by_name(new_padding_material)
|
||||
padding_material = GET_SINGLETON(new_padding_material)
|
||||
if(new_painted_colour)
|
||||
painted_colour = new_painted_colour
|
||||
update_icon()
|
||||
@@ -242,7 +242,7 @@
|
||||
user.visible_message(SPAN_NOTICE("[user] [deploy_verb]s \the [src.name]."), SPAN_NOTICE("You [deploy_verb] \the [name]."))
|
||||
// playsound(src, deploy_sound ? deploy_sound : drop_sound, DROP_SOUND_VOLUME)
|
||||
user.drop_from_inventory(src)
|
||||
var/obj/structure/bed/stool/S = new origin_type(get_turf(loc), material?.name, padding_material?.name, painted_colour) // Fuck me.
|
||||
var/obj/structure/bed/stool/S = new origin_type(get_turf(loc), material?.type, padding_material?.type, painted_colour) // Fuck me.
|
||||
S.dir = user.dir // Plant it where the user's facing
|
||||
if(blood_DNA)
|
||||
S.blood_DNA |= blood_DNA // Transfer blood.
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
/obj/structure/target_stake/Initialize(mapload)
|
||||
. = ..()
|
||||
material = SSmaterials.get_material_by_name(MATERIAL_STEEL)
|
||||
material = GET_SINGLETON(MATERIAL_STEEL)
|
||||
|
||||
/obj/structure/target_stake/attackby(obj/item/attacking_item, mob/user)
|
||||
if(istype(attacking_item, /obj/item/target))
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
var/flooring_override
|
||||
var/initial_flooring
|
||||
var/singleton/flooring/flooring
|
||||
var/mineral = DEFAULT_WALL_MATERIAL
|
||||
var/mineral = MATERIAL_STEEL
|
||||
|
||||
thermal_conductivity = 0.040
|
||||
heat_capacity = 10000
|
||||
|
||||
@@ -164,7 +164,7 @@
|
||||
color = COLOR_MUTED_BROWN
|
||||
|
||||
/turf/simulated/wall/shuttle/skrell/Initialize(mapload)
|
||||
. = ..(mapload,"skrell")
|
||||
. = ..(mapload, MATERIAL_SHUTTLE_SKRELL)
|
||||
|
||||
/turf/simulated/wall/shuttle/scc
|
||||
color = "#AAAFC7"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
else
|
||||
construction_stage = null
|
||||
if(!material)
|
||||
material = SSmaterials.get_material_by_name(DEFAULT_WALL_MATERIAL)
|
||||
material = GET_SINGLETON(MATERIAL_STEEL)
|
||||
if(material)
|
||||
explosion_resistance = material.explosion_resistance
|
||||
if (material.wall_icon)
|
||||
@@ -38,7 +38,7 @@
|
||||
|
||||
update_icon()
|
||||
|
||||
/turf/simulated/wall/proc/set_material(var/material/newmaterial, var/material/newrmaterial)
|
||||
/turf/simulated/wall/proc/set_material(var/singleton/material/newmaterial, var/singleton/material/newrmaterial)
|
||||
material = newmaterial
|
||||
reinf_material = newrmaterial
|
||||
update_material()
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
Pry off the sheath with a crowbar to expose the girder."
|
||||
|
||||
/turf/simulated/wall/r_wall/Initialize(mapload)
|
||||
. = ..(mapload, "plasteel","plasteel") //3strong
|
||||
. = ..(mapload, MATERIAL_PLASTEEL,MATERIAL_PLASTEEL) //3strong
|
||||
|
||||
/turf/simulated/wall/cult
|
||||
icon_state = "cult"
|
||||
|
||||
@@ -31,8 +31,8 @@
|
||||
var/global/damage_overlays[16]
|
||||
var/active
|
||||
var/can_open = 0
|
||||
var/material/material
|
||||
var/material/reinf_material
|
||||
var/singleton/material/material
|
||||
var/singleton/material/reinf_material
|
||||
var/last_state
|
||||
var/construction_stage
|
||||
var/use_set_icon_state
|
||||
@@ -100,10 +100,10 @@
|
||||
if(!use_set_icon_state)
|
||||
icon_state = "blank"
|
||||
if(!materialtype)
|
||||
materialtype = DEFAULT_WALL_MATERIAL
|
||||
material = SSmaterials.get_material_by_name(materialtype)
|
||||
materialtype = MATERIAL_STEEL
|
||||
material = GET_SINGLETON(materialtype)
|
||||
if(!isnull(rmaterialtype))
|
||||
reinf_material = SSmaterials.get_material_by_name(rmaterialtype)
|
||||
reinf_material = GET_SINGLETON(rmaterialtype)
|
||||
update_material()
|
||||
hitsound = material.hitsound
|
||||
set_maxhealth(material.integrity + (reinf_material ? reinf_material.integrity : 0), TRUE)
|
||||
@@ -233,7 +233,7 @@
|
||||
|
||||
INVOKE_ASYNC(src, PROC_REF(clear_plants))
|
||||
clear_bulletholes()
|
||||
material = SSmaterials.get_material_by_name("placeholder")
|
||||
material = GET_SINGLETON(MATERIAL_STEEL)
|
||||
reinf_material = null
|
||||
|
||||
if (!no_change)
|
||||
|
||||
@@ -127,7 +127,7 @@
|
||||
carbon_stored += co2_intake * carbon_efficiency
|
||||
while (carbon_stored >= carbon_moles_per_piece)
|
||||
carbon_stored -= carbon_moles_per_piece
|
||||
var/material/M = SSmaterials.get_material_by_name(MATERIAL_GRAPHITE)
|
||||
var/singleton/material/M = GET_SINGLETON(MATERIAL_GRAPHITE)
|
||||
M.place_sheet(get_turf(src), 1, M.name)
|
||||
power_draw = power_rating * co2_intake
|
||||
last_power_draw = power_draw
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
var/list/refittable_species //used with modkits, which species it can be refit to
|
||||
|
||||
//material things
|
||||
var/material/material = null
|
||||
var/singleton/material/material = null
|
||||
var/applies_material_color = TRUE
|
||||
var/unbreakable = FALSE
|
||||
var/default_material = null // Set this to something else if you want material attributes on init.
|
||||
@@ -287,7 +287,7 @@
|
||||
return material
|
||||
|
||||
/obj/item/clothing/proc/set_material(var/new_material)
|
||||
material = SSmaterials.get_material_by_name(new_material)
|
||||
material = GET_SINGLETON(new_material)
|
||||
if(!material)
|
||||
qdel(src)
|
||||
else
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
/obj/item/clothing/ring/material/Initialize(var/mapload, var/new_material)
|
||||
. = ..(mapload)
|
||||
if(!new_material)
|
||||
new_material = DEFAULT_WALL_MATERIAL
|
||||
material = SSmaterials.get_material_by_name(new_material)
|
||||
new_material = MATERIAL_STEEL
|
||||
material = GET_SINGLETON(new_material)
|
||||
if(!istype(material))
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
@@ -184,10 +184,10 @@
|
||||
|
||||
/obj/item/reagent_containers/cooking_container/skillet/Initialize(var/mapload, var/mat_key)
|
||||
. = ..(mapload)
|
||||
var/material/material = SSmaterials.get_material_by_name(mat_key || MATERIAL_STEEL)
|
||||
var/singleton/material/material = GET_SINGLETON(mat_key || MATERIAL_STEEL)
|
||||
if(!material)
|
||||
return
|
||||
if(material.name != MATERIAL_STEEL)
|
||||
if(material.type != MATERIAL_STEEL)
|
||||
color = material.icon_colour
|
||||
name = "[material.display_name] [initial(name)]"
|
||||
|
||||
@@ -205,10 +205,10 @@
|
||||
|
||||
/obj/item/reagent_containers/cooking_container/saucepan/Initialize(var/mapload, var/mat_key)
|
||||
. = ..(mapload)
|
||||
var/material/material = SSmaterials.get_material_by_name(mat_key || MATERIAL_STEEL)
|
||||
var/singleton/material/material = GET_SINGLETON(mat_key || MATERIAL_STEEL)
|
||||
if(!material)
|
||||
return
|
||||
if(material.name != MATERIAL_STEEL)
|
||||
if(material.type != MATERIAL_STEEL)
|
||||
color = material.icon_colour
|
||||
name = "[material.display_name] [initial(name)]"
|
||||
|
||||
@@ -227,7 +227,7 @@
|
||||
|
||||
/obj/item/reagent_containers/cooking_container/pot/Initialize(mapload, mat_key)
|
||||
. = ..(mapload)
|
||||
var/material/material = SSmaterials.get_material_by_name(mat_key || MATERIAL_STEEL)
|
||||
var/singleton/material/material = GET_SINGLETON(mat_key || MATERIAL_STEEL)
|
||||
if(!material)
|
||||
return
|
||||
if(mat_key && mat_key != MATERIAL_STEEL)
|
||||
|
||||
@@ -11,7 +11,7 @@ Plates that can hold your cooking stuff
|
||||
icon = 'icons/obj/kitchen.dmi'
|
||||
icon_state = "bowl"
|
||||
fragile = 3
|
||||
shatter_material = DEFAULT_TABLE_MATERIAL // Slight typecasting abuse here, gets converted to a material in Initialize().
|
||||
shatter_material = MATERIAL_PLASTIC
|
||||
can_be_placed_into = list()
|
||||
atom_flags = ATOM_FLAG_OPEN_CONTAINER
|
||||
var/grease = FALSE
|
||||
|
||||
@@ -19,7 +19,7 @@ ABSTRACT_TYPE(/obj/structure/machinery/fabricator)
|
||||
var/list/storage_capacity = list()
|
||||
/// Base storage capacity, which is modified by default by the amount and tier of matter bins.
|
||||
var/list/base_storage_capacity = list(
|
||||
DEFAULT_WALL_MATERIAL = 25000,
|
||||
MATERIAL_STEEL = 25000,
|
||||
MATERIAL_ALUMINIUM = 25000,
|
||||
MATERIAL_GLASS = 12500,
|
||||
MATERIAL_PLASTIC = 12500,
|
||||
@@ -82,9 +82,9 @@ ABSTRACT_TYPE(/obj/structure/machinery/fabricator)
|
||||
|
||||
// Update global type to string cache.
|
||||
if(!stored_substances_to_names[mat])
|
||||
if(ispath(mat, /material))
|
||||
var/material/mat_instance = mat
|
||||
mat_instance = SSmaterials.get_material_by_name(initial(mat_instance.name))
|
||||
if(ispath(mat, /singleton/material))
|
||||
var/singleton/material/mat_instance = mat
|
||||
mat_instance = GET_SINGLETON(mat_instance)
|
||||
if(istype(mat_instance))
|
||||
stored_substances_to_names[mat] = mat_instance.display_name
|
||||
else if(ispath(mat, /singleton/reagent))
|
||||
@@ -275,7 +275,7 @@ ABSTRACT_TYPE(/obj/structure/machinery/fabricator)
|
||||
|
||||
/obj/structure/machinery/fabricator/dismantle()
|
||||
for(var/mat in stored_material)
|
||||
var/material/M = SSmaterials.get_material_by_name(mat)
|
||||
var/singleton/material/M = GET_SINGLETON(mat)
|
||||
if(!istype(M))
|
||||
continue
|
||||
var/obj/item/stack/material/S = new M.stack_type(get_turf(src))
|
||||
|
||||
@@ -215,7 +215,7 @@
|
||||
// Installing metal.
|
||||
else if(istype(attacking_item, /obj/item/stack/material))
|
||||
var/obj/item/stack/material/M = attacking_item
|
||||
if(M.material?.name == MATERIAL_STEEL)
|
||||
if(M.material?.type == MATERIAL_STEEL)
|
||||
if(is_reinforced)
|
||||
to_chat(user, SPAN_WARNING("There is already metal reinforcement installed in \the [src]."))
|
||||
return
|
||||
|
||||
@@ -451,7 +451,7 @@
|
||||
|
||||
/obj/item/mecha_equipment/drill/Initialize()
|
||||
. = ..()
|
||||
drill_head = new /obj/item/material/drill_head(src, DEFAULT_WALL_MATERIAL)//You start with a basic steel head
|
||||
drill_head = new /obj/item/material/drill_head(src, MATERIAL_STEEL)//You start with a basic steel head
|
||||
|
||||
/obj/item/mecha_equipment/drill/Destroy()
|
||||
QDEL_NULL(drill_head)
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
var/loudening = FALSE // whether we're increasing the speech volume of our pilot
|
||||
|
||||
// Material
|
||||
var/material/material
|
||||
var/singleton/material/material
|
||||
|
||||
// Cockpit access vars.
|
||||
var/hatch_closed = FALSE
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
add_parts()
|
||||
do_decals()
|
||||
if(!material)
|
||||
material = SSmaterials.get_material_by_name(MATERIAL_STEEL)
|
||||
material = GET_SINGLETON(MATERIAL_STEEL)
|
||||
update_icon()
|
||||
. = ..()
|
||||
INVOKE_ASYNC(src, PROC_REF(spawn_mech_equipment))
|
||||
|
||||
@@ -123,7 +123,7 @@
|
||||
|
||||
/mob/living/heavy_vehicle/premade/firefighter/Initialize()
|
||||
. = ..()
|
||||
material = SSmaterials.get_material_by_name(MATERIAL_PLASTEEL)
|
||||
material = GET_SINGLETON(MATERIAL_PLASTEEL)
|
||||
|
||||
/obj/item/mech_component/sensors/firefighter/prebuild()
|
||||
..()
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
/obj/item/integrated_circuit_printer/attackby(obj/item/attacking_item, mob/user)
|
||||
if(istype(attacking_item,/obj/item/stack/material))
|
||||
var/obj/item/stack/material/stack = attacking_item
|
||||
if(stack.material.name == DEFAULT_WALL_MATERIAL)
|
||||
if(stack.material.type == MATERIAL_STEEL)
|
||||
var/num = min((max_metal - metal) / metal_per_sheet, stack.amount)
|
||||
if(num < 1)
|
||||
to_chat(user, SPAN_WARNING("\The [src] is too full to add more metal."))
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
return material.value * amount
|
||||
|
||||
/obj/item/ore/Value()
|
||||
var/material/mat = SSmaterials.get_material_by_name(material)
|
||||
var/singleton/material/mat = GET_SINGLETON(material)
|
||||
if(mat)
|
||||
return mat.value
|
||||
return 0
|
||||
|
||||
@@ -1,50 +1,51 @@
|
||||
/material/proc/get_recipes()
|
||||
/singleton/material/proc/get_recipes()
|
||||
if(!recipes)
|
||||
generate_recipes()
|
||||
return recipes
|
||||
|
||||
/material/proc/generate_recipes()
|
||||
/singleton/material/proc/generate_recipes()
|
||||
recipes = list()
|
||||
|
||||
// If is_brittle() returns true, these are only good for a single strike.
|
||||
recipes += new /datum/stack_recipe_list("generic crafts",
|
||||
list(
|
||||
new /datum/stack_recipe("[display_name] baseball bat", /obj/item/material/twohanded/baseballbat, 10, time = 20, one_per_turf = 0, on_floor = 1, supplied_material = "[name]", required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_TRAINED)),
|
||||
new /datum/stack_recipe("[display_name] sword hilt", /obj/item/material/sword_hilt, 10, time = 100, one_per_turf = 0, on_floor = 1, supplied_material = "[name]", required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_TRAINED)),
|
||||
new /datum/stack_recipe("[display_name] sword blade", /obj/item/material/sword_blade, 15, time = 100, one_per_turf = 0, on_floor = 1, supplied_material = "[name]", required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_TRAINED)),
|
||||
new /datum/stack_recipe("[display_name] ring", /obj/item/clothing/ring/material, 1, on_floor = 1, supplied_material = "[name]", required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_TRAINED)),
|
||||
new /datum/stack_recipe("[display_name] armor plating", /obj/item/material/armor_plating, 3, time = 20, on_floor = 1, supplied_material = "[name]", required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_TRAINED))
|
||||
))
|
||||
if(integrity >= 15 && hardness >= 10)
|
||||
recipes += new /datum/stack_recipe_list("generic crafts",
|
||||
list(
|
||||
new /datum/stack_recipe("[display_name] baseball bat", /obj/item/material/twohanded/baseballbat, 10, time = 20, one_per_turf = 0, on_floor = 1, supplied_material = src.type, required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_TRAINED)),
|
||||
new /datum/stack_recipe("[display_name] sword hilt", /obj/item/material/sword_hilt, 10, time = 100, one_per_turf = 0, on_floor = 1, supplied_material = src.type, required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_TRAINED)),
|
||||
new /datum/stack_recipe("[display_name] sword blade", /obj/item/material/sword_blade, 15, time = 100, one_per_turf = 0, on_floor = 1, supplied_material = src.type, required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_TRAINED)),
|
||||
new /datum/stack_recipe("[display_name] ring", /obj/item/clothing/ring/material, 1, on_floor = 1, supplied_material = src.type, required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_TRAINED)),
|
||||
new /datum/stack_recipe("[display_name] armor plating", /obj/item/material/armor_plating, 3, time = 20, on_floor = 1, supplied_material = src.type, required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_TRAINED))
|
||||
))
|
||||
|
||||
if(integrity >= 50)
|
||||
if(integrity >= 50 && hardness >= 10)
|
||||
recipes += new /datum/stack_recipe_list("generic construction",
|
||||
list(
|
||||
new /datum/stack_recipe("[display_name] door", /obj/structure/simple_door, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1, supplied_material = "[name]", required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_FAMILIAR)),
|
||||
new /datum/stack_recipe("[display_name] blocker", /obj/structure/blocker, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1, supplied_material = "[name]", required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_FAMILIAR)),
|
||||
new /datum/stack_recipe("[display_name] railing", /obj/structure/railing, BUILD_AMT, time = 25, one_per_turf = FALSE, on_floor = TRUE, supplied_material = "[name]", required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_FAMILIAR)),
|
||||
new /datum/stack_recipe("[display_name] stool", /obj/structure/bed/stool, BUILD_AMT, one_per_turf = 1, on_floor = 1, supplied_material = "[name]", required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_FAMILIAR)),
|
||||
new /datum/stack_recipe("[display_name] chair", /obj/structure/bed/stool/chair, BUILD_AMT, one_per_turf = 1, on_floor = 1, supplied_material = "[name]", required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_FAMILIAR)),
|
||||
new /datum/stack_recipe("[display_name] bed", /obj/structure/bed, BUILD_AMT, one_per_turf = 1, on_floor = 1, supplied_material = "[name]", required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_FAMILIAR)),
|
||||
new /datum/stack_recipe("[display_name] lock", /obj/item/material/lock_construct, 1, time = 20, one_per_turf = 0, on_floor = 1, supplied_material = "[name]", required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_FAMILIAR)),
|
||||
new /datum/stack_recipe("[display_name] urn", /obj/item/material/urn, 10, time = 30, one_per_turf = FALSE, on_floor = 1, supplied_material = "[name]", required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_FAMILIAR))
|
||||
new /datum/stack_recipe("[display_name] door", /obj/structure/simple_door, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1, supplied_material = src.type, required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_FAMILIAR)),
|
||||
new /datum/stack_recipe("[display_name] blocker", /obj/structure/blocker, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1, supplied_material = src.type, required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_FAMILIAR)),
|
||||
new /datum/stack_recipe("[display_name] railing", /obj/structure/railing, BUILD_AMT, time = 25, one_per_turf = FALSE, on_floor = TRUE, supplied_material = src.type, required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_FAMILIAR)),
|
||||
new /datum/stack_recipe("[display_name] stool", /obj/structure/bed/stool, BUILD_AMT, one_per_turf = 1, on_floor = 1, supplied_material = src.type, required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_FAMILIAR)),
|
||||
new /datum/stack_recipe("[display_name] chair", /obj/structure/bed/stool/chair, BUILD_AMT, one_per_turf = 1, on_floor = 1, supplied_material = src.type, required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_FAMILIAR)),
|
||||
new /datum/stack_recipe("[display_name] bed", /obj/structure/bed, BUILD_AMT, one_per_turf = 1, on_floor = 1, supplied_material = src.type, required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_FAMILIAR)),
|
||||
new /datum/stack_recipe("[display_name] lock", /obj/item/material/lock_construct, 1, time = 20, one_per_turf = 0, on_floor = 1, supplied_material = src.type, required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_FAMILIAR)),
|
||||
new /datum/stack_recipe("[display_name] urn", /obj/item/material/urn, 10, time = 30, one_per_turf = FALSE, on_floor = 1, supplied_material = src.type, required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_FAMILIAR))
|
||||
))
|
||||
|
||||
var/list/hardness_craftables = list()
|
||||
if(hardness >= 10)
|
||||
hardness_craftables += new /datum/stack_recipe("[display_name] ashtray", /obj/item/material/ashtray, 2, one_per_turf = 1, on_floor = 1, supplied_material = "[name]", required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_FAMILIAR))
|
||||
hardness_craftables += new /datum/stack_recipe("[display_name] ashtray", /obj/item/material/ashtray, 2, one_per_turf = 1, on_floor = 1, supplied_material = src.type, required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_FAMILIAR))
|
||||
|
||||
if(hardness > 50)
|
||||
hardness_craftables += new /datum/stack_recipe("[display_name] fork", /obj/item/material/kitchen/utensil/fork/plastic, 1, on_floor = 1, supplied_material = "[name]", required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_FAMILIAR))
|
||||
hardness_craftables += new /datum/stack_recipe("[display_name] spoon", /obj/item/material/kitchen/utensil/spoon/plastic, 1, on_floor = 1, supplied_material = "[name]", required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_FAMILIAR))
|
||||
hardness_craftables += new /datum/stack_recipe("[display_name] knife", /obj/item/material/kitchen/utensil/knife/plastic, 1, on_floor = 1, supplied_material = "[name]", required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_FAMILIAR))
|
||||
hardness_craftables += new /datum/stack_recipe("[display_name] blade", /obj/item/material/butterflyblade, 6, time = 20, one_per_turf = 0, on_floor = 1, supplied_material = "[name]", required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_TRAINED))
|
||||
hardness_craftables += new /datum/stack_recipe("[display_name] spearhead", /obj/item/material/spearhead, 6, time = 20, one_per_turf = 0, on_floor = 1, supplied_material = "[name]", required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_TRAINED))
|
||||
hardness_craftables += new /datum/stack_recipe("[display_name] drill head", /obj/item/material/drill_head, 6, time = 20, one_per_turf = 0, on_floor = 1, supplied_material = "[name]", required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_TRAINED))
|
||||
hardness_craftables += new /datum/stack_recipe("[display_name] fork", /obj/item/material/kitchen/utensil/fork/plastic, 1, on_floor = 1, supplied_material = src.type, required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_FAMILIAR))
|
||||
hardness_craftables += new /datum/stack_recipe("[display_name] spoon", /obj/item/material/kitchen/utensil/spoon/plastic, 1, on_floor = 1, supplied_material = src.type, required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_FAMILIAR))
|
||||
hardness_craftables += new /datum/stack_recipe("[display_name] knife", /obj/item/material/kitchen/utensil/knife/plastic, 1, on_floor = 1, supplied_material = src.type, required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_FAMILIAR))
|
||||
hardness_craftables += new /datum/stack_recipe("[display_name] blade", /obj/item/material/butterflyblade, 6, time = 20, one_per_turf = 0, on_floor = 1, supplied_material = src.type, required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_TRAINED))
|
||||
hardness_craftables += new /datum/stack_recipe("[display_name] spearhead", /obj/item/material/spearhead, 6, time = 20, one_per_turf = 0, on_floor = 1, supplied_material = src.type, required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_TRAINED))
|
||||
hardness_craftables += new /datum/stack_recipe("[display_name] drill head", /obj/item/material/drill_head, 6, time = 20, one_per_turf = 0, on_floor = 1, supplied_material = src.type, required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_TRAINED))
|
||||
|
||||
if(length(hardness_craftables))
|
||||
recipes += new /datum/stack_recipe_list("generic miscellaneous", hardness_craftables)
|
||||
|
||||
/material/steel/generate_recipes()
|
||||
/singleton/material/steel/generate_recipes()
|
||||
..()
|
||||
recipes += new /datum/stack_recipe_list("construction recipes",
|
||||
list(
|
||||
@@ -124,18 +125,18 @@
|
||||
new /datum/stack_recipe("large trap foundation", /obj/item/large_trap_foundation, 4, time = 40, required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_FAMILIAR))
|
||||
))
|
||||
|
||||
/material/plasteel/generate_recipes()
|
||||
/singleton/material/plasteel/generate_recipes()
|
||||
..()
|
||||
recipes += new /datum/stack_recipe_list("[display_name] recipes",
|
||||
list(
|
||||
new /datum/stack_recipe("AI core", /obj/structure/AIcore, BUILD_AMT, time = 50, one_per_turf = 1, required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_TRAINED)),
|
||||
new /datum/stack_recipe("plateel barricade", /obj/structure/barricade/plasteel, BUILD_AMT, time = 12 SECONDS, one_per_turf = 1, required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_TRAINED)),
|
||||
new /datum/stack_recipe("knife grip", /obj/item/material/butterflyhandle, 4, time = 20, one_per_turf = 0, on_floor = 1, supplied_material = "[name]", required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_FAMILIAR)),
|
||||
new /datum/stack_recipe("knife grip", /obj/item/material/butterflyhandle, 4, time = 20, one_per_turf = 0, on_floor = 1, supplied_material = src.type, required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_FAMILIAR)),
|
||||
new /datum/stack_recipe("dark floor tile", /obj/item/stack/tile/floor_dark, 1, 4, 20, required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_FAMILIAR)),
|
||||
new /datum/stack_recipe("full dark floor tile", /obj/item/stack/tile/floor_dark/full, 1, 4, 20, required_skills_soft = alist(MECHANICAL_ENGINEERING_SKILL_COMPONENT = SKILL_LEVEL_FAMILIAR))
|
||||
))
|
||||
|
||||
/material/plastic/generate_recipes()
|
||||
/singleton/material/plastic/generate_recipes()
|
||||
..()
|
||||
recipes += new /datum/stack_recipe_list("[display_name] recipes",
|
||||
list(
|
||||
@@ -153,7 +154,7 @@
|
||||
new /datum/stack_recipe("plastic flaps", /obj/structure/plasticflaps, BUILD_AMT, 1, 1)
|
||||
))
|
||||
|
||||
/material/wood/generate_recipes()
|
||||
/singleton/material/wood/generate_recipes()
|
||||
..()
|
||||
recipes += new /datum/stack_recipe_list("[display_name] recipes",
|
||||
list(
|
||||
@@ -177,14 +178,14 @@
|
||||
new /datum/stack_recipe("easel", /obj/structure/easel, BUILD_AMT, time = 15, one_per_turf = 1, on_floor = 1)
|
||||
))
|
||||
|
||||
/material/stone/generate_recipes()
|
||||
/singleton/material/stone/generate_recipes()
|
||||
..()
|
||||
recipes += new /datum/stack_recipe_list("[display_name] recipes",
|
||||
list(
|
||||
new /datum/stack_recipe("planting bed", /obj/structure/machinery/portable_atmospherics/hydroponics/soil, 3, time = 10, one_per_turf = 1, on_floor = 1)
|
||||
))
|
||||
|
||||
/material/cardboard/generate_recipes()
|
||||
/singleton/material/cardboard/generate_recipes()
|
||||
..()
|
||||
recipes += new /datum/stack_recipe_list("[display_name] recipes",
|
||||
list(
|
||||
@@ -208,7 +209,7 @@
|
||||
new /datum/stack_recipe("yellow folder", /obj/item/folder/yellow)
|
||||
))
|
||||
|
||||
/material/cloth/generate_recipes()
|
||||
/singleton/material/cloth/generate_recipes()
|
||||
..()
|
||||
recipes += new /datum/stack_recipe_list("[display_name] curtains",
|
||||
list(
|
||||
@@ -228,14 +229,14 @@
|
||||
new /datum/stack_recipe("canvas 23x23", /obj/item/canvas/twentythree_twentythree, 8)
|
||||
))
|
||||
|
||||
/material/hide/corgi/generate_recipes()
|
||||
/singleton/material/hide/corgi/generate_recipes()
|
||||
..()
|
||||
recipes += new /datum/stack_recipe_list("[display_name] costumes",
|
||||
list(
|
||||
new /datum/stack_recipe("corgi costume", /obj/item/clothing/suit/storage/hooded/wintercoat/corgi, 3)
|
||||
))
|
||||
|
||||
/material/hide/monkey/generate_recipes()
|
||||
/singleton/material/hide/monkey/generate_recipes()
|
||||
..()
|
||||
recipes += new /datum/stack_recipe_list("[display_name] costumes",
|
||||
list(
|
||||
@@ -243,49 +244,49 @@
|
||||
new /datum/stack_recipe("monkey suit", /obj/item/clothing/suit/monkeysuit, 2)
|
||||
))
|
||||
|
||||
/material/silver/generate_recipes()
|
||||
/singleton/material/silver/generate_recipes()
|
||||
..()
|
||||
recipes += new /datum/stack_recipe_list("[display_name] construction",
|
||||
list(
|
||||
new /datum/stack_recipe("silver floor tile", /obj/item/stack/tile/silver, 1, 4, 20)
|
||||
))
|
||||
|
||||
/material/gold/generate_recipes()
|
||||
/singleton/material/gold/generate_recipes()
|
||||
..()
|
||||
recipes += new /datum/stack_recipe_list("[display_name] construction",
|
||||
list(
|
||||
new /datum/stack_recipe("golden floor tile", /obj/item/stack/tile/gold, 1, 4, 20)
|
||||
))
|
||||
|
||||
/material/uranium/generate_recipes()
|
||||
/singleton/material/uranium/generate_recipes()
|
||||
..()
|
||||
recipes += new /datum/stack_recipe_list("[display_name] construction",
|
||||
list(
|
||||
new /datum/stack_recipe("uranium floor tile", /obj/item/stack/tile/uranium, 1, 4, 20)
|
||||
))
|
||||
|
||||
/material/phoron/generate_recipes()
|
||||
/singleton/material/phoron/generate_recipes()
|
||||
..()
|
||||
recipes += new /datum/stack_recipe_list("[display_name] construction",
|
||||
list(
|
||||
new /datum/stack_recipe("phoron floor tile", /obj/item/stack/tile/phoron, 1, 4, 20)
|
||||
))
|
||||
|
||||
/material/diamond/generate_recipes()
|
||||
/singleton/material/diamond/generate_recipes()
|
||||
..()
|
||||
recipes += new /datum/stack_recipe_list("[display_name] construction",
|
||||
list(
|
||||
new /datum/stack_recipe("diamond floor tile", /obj/item/stack/tile/diamond, 1, 4, 20)
|
||||
))
|
||||
|
||||
/material/stone/marble/generate_recipes()
|
||||
/singleton/material/stone/marble/generate_recipes()
|
||||
..()
|
||||
recipes += new /datum/stack_recipe_list("[display_name] construction",
|
||||
list(
|
||||
new /datum/stack_recipe("marble floor tile", /obj/item/stack/tile/marble, 1, 4, 20),
|
||||
))
|
||||
|
||||
/material/leather/generate_recipes()
|
||||
/singleton/material/leather/generate_recipes()
|
||||
..()
|
||||
recipes += new /datum/stack_recipe_list("[display_name] construction",
|
||||
list(
|
||||
@@ -293,12 +294,12 @@
|
||||
new /datum/stack_recipe("leather whip", /obj/item/melee/whip, 15, 1, time = 20)
|
||||
))
|
||||
|
||||
/material/wood/log/generate_recipes()
|
||||
/singleton/material/wood/log/generate_recipes()
|
||||
recipes = list()
|
||||
recipes += new/datum/stack_recipe("bonfire", /obj/structure/bonfire, 3, time = 50, one_per_turf = 1, on_floor = 1)
|
||||
recipes += new/datum/stack_recipe("log bench", /obj/structure/flora/log_bench, 2, time = 20, one_per_turf = 1, on_floor = 1)
|
||||
|
||||
/material/wood/branch/generate_recipes()
|
||||
/singleton/material/wood/branch/generate_recipes()
|
||||
recipes = list()
|
||||
recipes += new/datum/stack_recipe("bonfire", /obj/structure/bonfire, 10, time = 50, one_per_turf = 1, on_floor = 1)
|
||||
recipes += new/datum/stack_recipe("torch handle", /obj/item/torch, 1, time = 15, one_per_turf = 0, on_floor = 0)
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
max_amount = 50
|
||||
recyclable = TRUE // Pretty much all materials should be recyclable
|
||||
|
||||
var/default_type = DEFAULT_WALL_MATERIAL
|
||||
var/material/material
|
||||
var/default_type = MATERIAL_STEEL
|
||||
var/singleton/material/material
|
||||
var/perunit
|
||||
var/apply_colour //temp pending icon rewrite
|
||||
var/painted_colour
|
||||
@@ -25,8 +25,8 @@
|
||||
randpixel_xy()
|
||||
|
||||
if(!default_type)
|
||||
default_type = DEFAULT_WALL_MATERIAL
|
||||
material = SSmaterials.get_material_by_name(default_type)
|
||||
default_type = MATERIAL_STEEL
|
||||
material = GET_SINGLETON(default_type)
|
||||
if(!material)
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
|
||||
/obj/item/stack/material/transfer_to(obj/item/stack/S, var/tamount=null, var/type_verified)
|
||||
var/obj/item/stack/material/M = S
|
||||
if(!istype(M) || material.name != M.material.name)
|
||||
if(!istype(M) || material.type != M.material.type)
|
||||
return 0
|
||||
var/transfer = ..(S,tamount,1)
|
||||
if(src)
|
||||
@@ -285,7 +285,7 @@
|
||||
/obj/item/stack/material/steel
|
||||
name = DEFAULT_WALL_MATERIAL
|
||||
icon_state = "sheet-metal"
|
||||
default_type = DEFAULT_WALL_MATERIAL
|
||||
default_type = MATERIAL_STEEL
|
||||
icon_has_variants = TRUE
|
||||
|
||||
/obj/item/stack/material/steel/attackby(obj/item/attacking_item, mob/user)
|
||||
@@ -562,7 +562,7 @@
|
||||
/obj/item/stack/material/bronze
|
||||
name = "bronze"
|
||||
icon_state = "sheet-brass"
|
||||
default_type = "bronze"
|
||||
default_type = MATERIAL_BRONZE
|
||||
icon_has_variants = TRUE
|
||||
|
||||
/obj/item/stack/material/bronze/full/Initialize()
|
||||
|
||||
+253
-224
File diff suppressed because it is too large
Load Diff
@@ -63,7 +63,7 @@
|
||||
var/points = 0
|
||||
|
||||
var/list/ore/input_mats = list()
|
||||
var/list/material/output_mats = list()
|
||||
var/list/singleton/material/output_mats = list()
|
||||
var/list/datum/alloy/alloy_mats = list()
|
||||
var/waste = 0
|
||||
var/idx = 0
|
||||
@@ -275,7 +275,7 @@
|
||||
|
||||
dat += "<table>"
|
||||
|
||||
for(var/material/OM in output_mats)
|
||||
for(var/singleton/material/OM in output_mats)
|
||||
if(output_mats[OM] > 1)
|
||||
dat += "<tr><td><b><small>[output_mats[OM]]</b></small></td><td><small>[OM.display_name] [OM.sheet_plural_name]</small></td></tr>"
|
||||
else
|
||||
@@ -523,7 +523,7 @@ GLOBAL_LIST_EMPTY_TYPED(alloy_data, /datum/alloy)
|
||||
if(can_make % 2 > 0)
|
||||
can_make--
|
||||
|
||||
var/material/M = SSmaterials.get_material_by_name(O.compresses_to)
|
||||
var/singleton/material/M = GET_SINGLETON(O.compresses_to)
|
||||
|
||||
if(!istype(M) || !can_make || ores_stored[metal] < 1)
|
||||
continue
|
||||
@@ -541,7 +541,7 @@ GLOBAL_LIST_EMPTY_TYPED(alloy_data, /datum/alloy)
|
||||
else if(ores_processing[metal] & SMELTER_MODE_SMELTING && O.smelts_to)
|
||||
var/can_make = clamp(ores_stored[metal], 0, ROUND_UP(sheets_per_second*seconds_per_tick) - sheets)
|
||||
|
||||
var/material/M = SSmaterials.get_material_by_name(O.smelts_to)
|
||||
var/singleton/material/M = GET_SINGLETON(O.smelts_to)
|
||||
if(!istype(M) || !can_make || ores_stored[metal] < 1)
|
||||
continue
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
amt_phoron += 100 * O.get_amount()
|
||||
if("uranium")
|
||||
amt_uranium += 100 * O.get_amount()
|
||||
if(DEFAULT_WALL_MATERIAL)
|
||||
if("steel")
|
||||
amt_iron += 100 * O.get_amount()
|
||||
else
|
||||
processed = FALSE
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
|
||||
if(istype(A, /obj/item/stack/material))
|
||||
var/obj/item/stack/material/P = A
|
||||
if(P.material.name == MATERIAL_PHORON)
|
||||
if(P.material.type == MATERIAL_PHORON)
|
||||
visible_message(SPAN_WARNING("\The [src] starts consuming \the [P]..."), SPAN_NOTICE("You start consuming \the [P]."))
|
||||
if(!do_after(src, 1 SECOND, P))
|
||||
return
|
||||
|
||||
@@ -273,7 +273,7 @@
|
||||
P = new /obj/projectile/bullet/pellet/fragment/spall/metalrod(O)
|
||||
else if(istype(thing_pierced, /obj/structure/machinery/door/airlock))
|
||||
var/obj/structure/machinery/door/airlock/D = thing_pierced
|
||||
if(D.window_material && D.window_material == SSmaterials.get_material_by_name(MATERIAL_GLASS))
|
||||
if(D.window_material && D.window_material == GET_SINGLETON(MATERIAL_GLASS))
|
||||
P = new /obj/projectile/bullet/pellet/fragment/spall/glass(O)
|
||||
else
|
||||
P = new /obj/projectile/bullet/pellet/fragment/spall(O)
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
fuel_colour = initial(R.color)
|
||||
initial_amount = 50000
|
||||
|
||||
var/material/material = SSmaterials.get_material_by_name(fuel_type)
|
||||
var/singleton/material/material = GET_SINGLETON(fuel_type)
|
||||
if(istype(material))
|
||||
initial_amount = SHEET_MATERIAL_AMOUNT * 5 // Fuel compressor eats 5 sheets.
|
||||
name = "[material.use_name] fuel rod assembly"
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
return 1
|
||||
else if(istype(thing, /obj/item/stack/material))
|
||||
var/obj/item/stack/material/M = thing
|
||||
var/material/mat = M.get_material()
|
||||
var/singleton/material/mat = M.get_material()
|
||||
if(!mat.is_fusion_fuel)
|
||||
to_chat(user, SPAN_WARNING("It would be pointless to make a fuel rod out of [mat.use_name]."))
|
||||
return
|
||||
|
||||
@@ -8,11 +8,13 @@
|
||||
icon_state = "off"
|
||||
manufacturer = "hephaestus"
|
||||
var/initial_id_tag
|
||||
var/list/stored = list()
|
||||
var/list/harvesting = list()
|
||||
var/list/stored = list()
|
||||
var/list/harvesting = list()
|
||||
var/list/can_harvest = list()
|
||||
var/obj/structure/machinery/power/fusion_core/harvest_from
|
||||
|
||||
/obj/structure/machinery/kinetic_harvester/Initialize()
|
||||
can_harvest = list("gold","silver","lead","platinum","uranium","osmium","borosilicate glass")
|
||||
AddComponent(/datum/component/local_network_member, initial_id_tag)
|
||||
find_core()
|
||||
queue_icon_update()
|
||||
@@ -67,7 +69,7 @@
|
||||
data["status"] = (use_power >= POWER_USE_ACTIVE)
|
||||
data["materials"] = list()
|
||||
for(var/mat in stored)
|
||||
var/material/material = SSmaterials.get_material_by_name(mat)
|
||||
var/singleton/material/material = GET_SINGLETON(mat)
|
||||
if(material)
|
||||
var/sheets = FLOOR(stored[mat]/(SHEET_MATERIAL_AMOUNT * 2), 1)
|
||||
data["materials"] += list(list("material" = mat, "rawamount" = stored[mat], "amount" = sheets, "harvest" = harvesting[mat]))
|
||||
@@ -80,18 +82,17 @@
|
||||
if(use_power >= POWER_USE_ACTIVE)
|
||||
if(harvest_from && harvest_from.owned_field)
|
||||
for(var/mat in harvest_from.owned_field.reactants)
|
||||
if(SSmaterials.materials_by_name[mat] && !stored[mat])
|
||||
if((mat in can_harvest) && !stored[mat])
|
||||
stored[mat] = 0
|
||||
for(var/mat in harvesting)
|
||||
if(!SSmaterials.materials_by_name[mat])
|
||||
harvesting -= mat
|
||||
else if(mat in harvest_from.owned_field.reactants)
|
||||
var/harvest = min(harvest_from.owned_field.reactants[mat], rand(100,200))
|
||||
// Leave a few counts of the reactant to avoid deactivating harvest mode
|
||||
harvest_from.owned_field.reactants[mat] -= (harvest - rand(0,5))
|
||||
if(harvest_from.owned_field.reactants[mat] <= 0)
|
||||
harvest_from.owned_field.reactants -= mat
|
||||
stored[mat] += harvest
|
||||
if(mat in can_harvest)
|
||||
if(mat in harvest_from.owned_field.reactants)
|
||||
var/harvest = min(harvest_from.owned_field.reactants[mat], rand(100,200))
|
||||
// Leave a few counts of the reactant to avoid deactivating harvest mode
|
||||
harvest_from.owned_field.reactants[mat] -= (harvest - rand(0,5))
|
||||
if(harvest_from.owned_field.reactants[mat] <= 0)
|
||||
harvest_from.owned_field.reactants -= mat
|
||||
stored[mat] += harvest
|
||||
else
|
||||
harvesting.Cut()
|
||||
|
||||
@@ -110,7 +111,7 @@
|
||||
switch(action)
|
||||
if("remove_mat")
|
||||
var/mat = params["remove_mat"]
|
||||
var/material/material = SSmaterials.get_material_by_name(mat)
|
||||
var/singleton/material/material = GET_SINGLETON(mat)
|
||||
if(material)
|
||||
var/sheet_cost = (SHEET_MATERIAL_AMOUNT * 1.5)
|
||||
var/sheets = min(FLOOR(stored[mat]/sheet_cost, 1), 50)
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
cached_rad_resistance = 0
|
||||
for(var/obj/O in src.contents)
|
||||
if(!(O.rad_resistance_modifier <= 0) && O.density)
|
||||
var/material/M = O.get_material()
|
||||
var/singleton/material/M = O.get_material()
|
||||
if(!M) continue
|
||||
cached_rad_resistance += (M.weight * O.rad_resistance_modifier) / RADIATION_MATERIAL_RESISTANCE_DIVISOR
|
||||
// Looks like storing the contents length is meant to be a basic check if the cache is stale due to items enter/exiting. Better than nothing so I'm leaving it as is. ~Leshana
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
/turf/simulated/wall/diona/Initialize(mapload)
|
||||
canSmoothWith = list(src.type)
|
||||
. = ..(mapload, "biomass")
|
||||
. = ..(mapload, MATERIAL_DIONA)
|
||||
canSmoothWith = list(src.type)
|
||||
|
||||
/obj/structure/diona
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
var/accuracy = 1
|
||||
var/fragile = 0 // If nonzero, above what force do we shatter?
|
||||
var/shatter_sound = SFX_BREAK_GLASS
|
||||
var/material/shatter_material = MATERIAL_GLASS //slight typecasting abuse here, gets converted to a material in initializee
|
||||
var/singleton/material/shatter_material = MATERIAL_GLASS
|
||||
var/can_be_placed_into = list(
|
||||
/obj/structure/machinery/chem_master,
|
||||
/obj/structure/machinery/chem_heater,
|
||||
@@ -55,7 +55,7 @@
|
||||
if(!possible_transfer_amounts)
|
||||
src.verbs -= /obj/item/reagent_containers/verb/set_APTFT
|
||||
create_reagents(volume)
|
||||
shatter_material = SSmaterials.get_material_by_name(shatter_material)
|
||||
shatter_material = GET_SINGLETON(shatter_material)
|
||||
|
||||
/obj/item/reagent_containers/attack_self(mob/user)
|
||||
return
|
||||
|
||||
@@ -65,13 +65,13 @@
|
||||
///Amount of force required by the weapon to smash the statue.
|
||||
var/fragile = 15
|
||||
///Sets the type of material for use by the place shard proc.
|
||||
var/material/shatter_material = MATERIAL_STEEL
|
||||
var/singleton/material/shatter_material = MATERIAL_STEEL
|
||||
|
||||
/obj/item/vampiric/New()
|
||||
..()
|
||||
START_PROCESSING(SSprocessing, src)
|
||||
become_hearing_sensitive()
|
||||
shatter_material = SSmaterials.get_material_by_name(shatter_material)
|
||||
shatter_material = GET_SINGLETON(shatter_material)
|
||||
|
||||
/obj/item/vampiric/Destroy()
|
||||
STOP_PROCESSING(SSprocessing, src)
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
/obj/item/material/twohanded/spear/bone
|
||||
desc = "A spear crafted with bones of some long forgotten creature."
|
||||
default_material = "cursed bone"
|
||||
default_material = MATERIAL_BONE_CURSED
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
var/obj/structure/table/T
|
||||
for(var/angle in list(-90,90))
|
||||
T = locate() in get_step(src.loc,turn(direction,angle))
|
||||
if(T && T.flipped == 0 && T.material.name == material.name)
|
||||
if(T && T.flipped == 0 && T.material.type == material.type)
|
||||
return 0
|
||||
T = locate() in get_step(src.loc,direction)
|
||||
if (!T || T.flipped == 1 || T.material != material)
|
||||
@@ -52,7 +52,7 @@
|
||||
L.Add(turn(src.dir,90))
|
||||
for(var/new_dir in L)
|
||||
var/obj/structure/table/T = locate() in get_step(src.loc,new_dir)
|
||||
if(T && T.material.name == material.name)
|
||||
if(T && T.material.type == material.type)
|
||||
if(T.flipped == 1 && T.dir == src.dir && !T.unflipping_check(new_dir))
|
||||
return 0
|
||||
return 1
|
||||
@@ -92,7 +92,7 @@
|
||||
atom_flags |= ATOM_FLAG_CHECKS_BORDER
|
||||
for(var/D in list(turn(direction, 90), turn(direction, -90)))
|
||||
var/obj/structure/table/T = locate() in get_step(src,D)
|
||||
if(T && T.flipped == 0 && material && T.material && T.material.name == material.name)
|
||||
if(T && T.flipped == 0 && material && T.material && T.material.type == material.type)
|
||||
T.flip(direction)
|
||||
take_damage(rand(5, 10))
|
||||
update_connections(1)
|
||||
@@ -110,7 +110,7 @@
|
||||
atom_flags &= ~ATOM_FLAG_CHECKS_BORDER
|
||||
for(var/D in list(turn(dir, 90), turn(dir, -90)))
|
||||
var/obj/structure/table/T = locate() in get_step(src.loc,D)
|
||||
if(T && T.flipped == 1 && T.dir == src.dir && material && T.material&& T.material.name == material.name)
|
||||
if(T && T.flipped == 1 && T.dir == src.dir && material && T.material&& T.material.type == material.type)
|
||||
T.unflip()
|
||||
|
||||
update_connections(1)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
/obj/structure/table/standard
|
||||
icon_state = "solid_preview"
|
||||
table_mat = DEFAULT_TABLE_MATERIAL
|
||||
table_mat = MATERIAL_PLASTIC
|
||||
|
||||
/obj/structure/table/standard/flipped
|
||||
icon_state = "solid_flip0"
|
||||
@@ -16,7 +16,7 @@
|
||||
/obj/structure/table/steel
|
||||
icon = 'icons/obj/structure/tables/steel_table.dmi'
|
||||
icon_state = "steel_preview"
|
||||
table_mat = DEFAULT_WALL_MATERIAL
|
||||
table_mat = MATERIAL_PLASTIC
|
||||
|
||||
/obj/structure/table/stone
|
||||
icon_state = "stone_preview"
|
||||
@@ -27,13 +27,13 @@
|
||||
|
||||
/obj/structure/table/reinforced
|
||||
icon_state = "reinf_solid_preview"
|
||||
table_mat = DEFAULT_TABLE_MATERIAL
|
||||
table_reinf = DEFAULT_TABLE_REINF_MATERIAL
|
||||
table_mat = MATERIAL_PLASTIC
|
||||
table_reinf = MATERIAL_PLASTEEL
|
||||
|
||||
/obj/structure/table/reinforced/steel
|
||||
icon = 'icons/obj/structure/tables/steel_table.dmi'
|
||||
icon_state = "reinf_steel_preview"
|
||||
table_mat = DEFAULT_WALL_MATERIAL
|
||||
table_mat = MATERIAL_STEEL
|
||||
|
||||
/obj/structure/table/reinforced/wood
|
||||
icon_state = "reinf_wood_preview"
|
||||
@@ -44,12 +44,15 @@
|
||||
icon = 'icons/obj/structure/tables/glass_table.dmi'
|
||||
icon_state = "reinf_glass_preview"
|
||||
table_mat = MATERIAL_GLASS
|
||||
table_reinf = DEFAULT_TABLE_REINF_MATERIAL
|
||||
table_reinf = MATERIAL_PLASTEEL
|
||||
|
||||
/obj/structure/table/wood
|
||||
icon_state = "wood_preview"
|
||||
table_mat = MATERIAL_WOOD
|
||||
|
||||
/obj/structure/table/wood/reinf
|
||||
table_reinf = MATERIAL_WOOD
|
||||
|
||||
/obj/structure/table/wood/birch
|
||||
table_mat = MATERIAL_BIRCH
|
||||
|
||||
@@ -80,6 +83,11 @@
|
||||
icon_state = "glass_preview"
|
||||
table_mat = MATERIAL_GLASS
|
||||
|
||||
/obj/structure/table/glass/reinf
|
||||
name = "reinforced glass table"
|
||||
icon_state = "reinf_glass_preview"
|
||||
table_reinf = MATERIAL_PLASTEEL
|
||||
|
||||
/obj/structure/table/skrell
|
||||
icon = 'icons/obj/structure/tables/skrell_table.dmi'
|
||||
icon_state = "skrell_preview"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
can_plate = 0
|
||||
can_reinforce = 0
|
||||
flipped = -1
|
||||
table_mat = DEFAULT_TABLE_MATERIAL
|
||||
table_mat = MATERIAL_PLASTIC
|
||||
dismantle_mat = /obj/item/stack/material/plastic
|
||||
|
||||
/obj/structure/table/rack/New()
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
var/can_plate = 1
|
||||
|
||||
var/manipulating = 0
|
||||
var/material/reinforced = null
|
||||
var/singleton/material/reinforced = null
|
||||
var/obj/item/stack/dismantle_mat = /obj/item/stack/rods
|
||||
|
||||
// Gambling tables. I'd prefer reinforced with carpet/felt/cloth/whatever, but AFAIK it's either harder or impossible to get /obj/item/stack/material of those.
|
||||
@@ -133,9 +133,9 @@
|
||||
|
||||
/obj/structure/table/Initialize()
|
||||
if(table_mat)
|
||||
material = SSmaterials.get_material_by_name(table_mat)
|
||||
material = GET_SINGLETON(table_mat)
|
||||
if(table_reinf)
|
||||
reinforced = SSmaterials.get_material_by_name(table_reinf)
|
||||
reinforced = GET_SINGLETON(table_reinf)
|
||||
AddComponent(/datum/component/armor, list(MELEE = ARMOR_MELEE_KNIVES, BULLET = ARMOR_BALLISTIC_MINOR))
|
||||
|
||||
. = ..()
|
||||
@@ -210,7 +210,7 @@
|
||||
|
||||
// Returns the material to set the table to.
|
||||
/obj/structure/table/proc/common_material_add(obj/item/stack/material/S, mob/user, verb) // Verb is actually verb without 'e' or 'ing', which is added. Works for 'plate'/'plating' and 'reinforce'/'reinforcing'.
|
||||
var/material/M = S.get_material()
|
||||
var/singleton/material/M = S.get_material()
|
||||
if(!istype(M))
|
||||
to_chat(user, SPAN_WARNING("You cannot [verb]e \the [src] with \the [S]."))
|
||||
return null
|
||||
@@ -228,7 +228,7 @@
|
||||
return M
|
||||
|
||||
// Returns the material to set the table to.
|
||||
/obj/structure/table/proc/common_material_remove(mob/user, material/M, delay, what, type_holding, sound)
|
||||
/obj/structure/table/proc/common_material_remove(mob/user, singleton/material/M, delay, what, type_holding, sound)
|
||||
if(!M.stack_type)
|
||||
to_chat(user, SPAN_WARNING("You are unable to remove the [what] from this table!"))
|
||||
return M
|
||||
@@ -286,7 +286,7 @@
|
||||
S = reinforced.place_shard(loc)
|
||||
if(S) shards += S
|
||||
if(material)
|
||||
if(material.stack_type && (full_return || prob(20)))
|
||||
if(material?.stack_type && (full_return || prob(20)))
|
||||
material.place_sheet(loc)
|
||||
else
|
||||
S = material.place_shard(loc)
|
||||
@@ -343,7 +343,7 @@
|
||||
var/tabledirs = 0
|
||||
for(var/direction in list(turn(dir,90), turn(dir,-90)) )
|
||||
var/obj/structure/table/T = locate(/obj/structure/table ,get_step(src,direction))
|
||||
if(T && T.flipped == 1 && T.dir == src.dir && material && T.material && T.material.name == material.name)
|
||||
if(T && T.flipped == 1 && T.dir == src.dir && material && T.material && T.material.type == material.type)
|
||||
type++
|
||||
tabledirs |= direction
|
||||
|
||||
@@ -436,7 +436,7 @@
|
||||
for(var/obj/structure/table/T in orange(src, 1))
|
||||
var/T_dir = get_dir(src, T)
|
||||
if(T_dir in blocked_dirs) continue
|
||||
if(material && T.material && material.name == T.material.name && flipped == T.flipped)
|
||||
if(material && T.material && material.type == T.material.type && flipped == T.flipped)
|
||||
connection_dirs |= T_dir
|
||||
if(propagate)
|
||||
INVOKE_ASYNC(T, PROC_REF(update_connections))
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/turf/simulated/wall/elevator/Initialize(mapload)
|
||||
canSmoothWith = list(src.type)
|
||||
. = ..(mapload, "elevatorium")
|
||||
. = ..(mapload, MATERIAL_ELEVATOR)
|
||||
canSmoothWith = list(src.type)
|
||||
|
||||
@@ -31,10 +31,10 @@ ABSTRACT_TYPE(/singleton/state/weather)
|
||||
|
||||
// Temporarily removing the material checks, we do not have the same material system as Nebula
|
||||
// if(is_liquid && weather.water_material)
|
||||
// var/material/mat = SSmaterials.get_material_by_name(weather.water_material)
|
||||
// var/material/mat = SSmaterials.get_material_name(weather.water_material)
|
||||
// weather.color = mat.icon_colour
|
||||
// else if(is_ice && weather.ice_material)
|
||||
// var/material/mat = SSmaterials.get_material_by_name(weather.ice_material)
|
||||
// var/material/mat = SSmaterials.get_material_name(weather.ice_material)
|
||||
// weather.color = mat.icon_colour
|
||||
|
||||
if(is_liquid)
|
||||
|
||||
@@ -41,8 +41,8 @@
|
||||
/datum/unit_test/stack_recipe_cost/start_test()
|
||||
var/tested_count = 0
|
||||
var/error_count = 0
|
||||
SSmaterials.create_material_lists() // just in case
|
||||
for(var/material/D in SSmaterials.materials)
|
||||
var/list/materials = GET_SINGLETON_SUBTYPE_MAP(/singleton/material)
|
||||
for(var/singleton/material/D in materials)
|
||||
var/list/datum/stack_recipe_list/recipe_lists = D.get_recipes()
|
||||
var/list/temp_matter = D.get_matter()
|
||||
for(var/datum/stack_recipe_list/L in recipe_lists)
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
author: Batrachophrenoboocosmomachia
|
||||
delete-after: True
|
||||
changes:
|
||||
- refactor: "Repaths /material to /singleton/material."
|
||||
- refactor: "Replaces all material string defines to path defines, replacing SSmaterials procs w/ GET_SINGLETON instead."
|
||||
- refactor: "Removes all material var edited objects from all maps, adding new presets where necessary."
|
||||
- refactor: "Updates recipes unit test to run all recipes against all material singletons."
|
||||
- bugfix: "Prevents several material recipes from being generated for non-rigid materials (i.e. cloth railings)."
|
||||
@@ -1348,9 +1348,7 @@
|
||||
/area/abandoned_industrial_station/docks_east)
|
||||
"el" = (
|
||||
/obj/effect/floor_decal/corner/green/diagonal,
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/random/medical,
|
||||
/obj/random/medical,
|
||||
/turf/simulated/floor/tiled/white,
|
||||
@@ -9634,9 +9632,7 @@
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/abandoned_industrial_station/hangar)
|
||||
"DZ" = (
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/item/flashlight/lamp/off{
|
||||
pixel_x = -3;
|
||||
pixel_y = 4
|
||||
@@ -9767,9 +9763,7 @@
|
||||
/area/abandoned_industrial_station/docks_east)
|
||||
"EF" = (
|
||||
/obj/effect/floor_decal/corner/green/diagonal,
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/item/reagent_containers/syringe/inaprovaline,
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/abandoned_industrial_station/medical)
|
||||
@@ -11858,9 +11852,7 @@
|
||||
/area/abandoned_industrial_station/hallways)
|
||||
"Lh" = (
|
||||
/obj/effect/floor_decal/corner/green/diagonal,
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/random/dirt_75,
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/abandoned_industrial_station/medical)
|
||||
|
||||
@@ -3708,9 +3708,7 @@
|
||||
/turf/simulated/floor/plating,
|
||||
/area/abandoned_propellant_depot/maint_storage)
|
||||
"lX" = (
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/item/flashlight/lamp/off{
|
||||
pixel_x = -3;
|
||||
pixel_y = 4
|
||||
@@ -9935,9 +9933,7 @@
|
||||
/turf/simulated/floor/plating,
|
||||
/area/abandoned_propellant_depot/atmos_propellant)
|
||||
"GW" = (
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/random/medical{
|
||||
pixel_y = 4
|
||||
},
|
||||
|
||||
@@ -923,9 +923,7 @@
|
||||
/turf/simulated/floor/plating,
|
||||
/area/cult_base/hallways_south)
|
||||
"acx" = (
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/random/medical,
|
||||
/obj/item/reagent_containers/food/drinks/waterbottle{
|
||||
pixel_x = 8;
|
||||
@@ -2387,9 +2385,7 @@
|
||||
/area/cult_base/crew_quarters)
|
||||
"ajg" = (
|
||||
/obj/effect/floor_decal/corner/grey/diagonal,
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/random/firstaid{
|
||||
pixel_x = -3;
|
||||
pixel_y = 6
|
||||
@@ -4304,9 +4300,7 @@
|
||||
/area/shuttle/cult_base/cargo)
|
||||
"auH" = (
|
||||
/obj/effect/floor_decal/corner/green/diagonal,
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/random/medical{
|
||||
pixel_y = 7;
|
||||
pixel_x = 4
|
||||
@@ -4715,9 +4709,7 @@
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/shuttle/cult_base/crew)
|
||||
"awV" = (
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/item/clothing/gloves/latex/nitrile{
|
||||
pixel_y = 4
|
||||
},
|
||||
@@ -6470,9 +6462,7 @@
|
||||
/turf/simulated/mineral/surface,
|
||||
/area/space)
|
||||
"aIC" = (
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/random/firstaid{
|
||||
pixel_x = 8;
|
||||
pixel_y = 8
|
||||
@@ -8820,9 +8810,7 @@
|
||||
/area/cult_base/asteroid_inside)
|
||||
"aWq" = (
|
||||
/obj/effect/floor_decal/corner/green/diagonal,
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/item/reagent_containers/spray/sterilizine{
|
||||
pixel_x = -6;
|
||||
pixel_y = 4
|
||||
|
||||
+23
-69
@@ -168,9 +168,7 @@
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/enviro_testing_facility/inside/crew/quarters)
|
||||
"ajR" = (
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass,
|
||||
/obj/structure/machinery/light{
|
||||
dir = 4
|
||||
},
|
||||
@@ -2983,9 +2981,7 @@
|
||||
/turf/simulated/floor/plating,
|
||||
/area/enviro_testing_facility/inside/medical/hallway)
|
||||
"cVb" = (
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/item/storage/box/syringes{
|
||||
pixel_x = -4;
|
||||
pixel_y = 7
|
||||
@@ -4833,9 +4829,7 @@
|
||||
/area/enviro_testing_facility/inside/security/lobby)
|
||||
"ePg" = (
|
||||
/obj/effect/floor_decal/corner_wide/paleblue/diagonal,
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/random/medical{
|
||||
pixel_y = 14;
|
||||
pixel_x = 2
|
||||
@@ -5193,9 +5187,7 @@
|
||||
/area/enviro_testing_facility/inside/maintenance/engineering_south)
|
||||
"fmW" = (
|
||||
/obj/effect/floor_decal/corner_wide/lime/diagonal,
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/item/storage/box/masks{
|
||||
pixel_x = 4;
|
||||
pixel_y = 9
|
||||
@@ -5303,9 +5295,7 @@
|
||||
/area/enviro_testing_facility/inside/research/hallway)
|
||||
"frZ" = (
|
||||
/obj/effect/floor_decal/corner_wide/lime/diagonal,
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/random/medical{
|
||||
pixel_y = 8
|
||||
},
|
||||
@@ -7375,9 +7365,7 @@
|
||||
/area/enviro_testing_facility/inside/maintenance/security)
|
||||
"hpM" = (
|
||||
/obj/effect/floor_decal/corner_wide/lime/diagonal,
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/item/storage/box/masks{
|
||||
pixel_x = 4;
|
||||
pixel_y = 9
|
||||
@@ -8379,9 +8367,7 @@
|
||||
},
|
||||
/area/template_noop)
|
||||
"ita" = (
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/random/medical{
|
||||
pixel_y = 8
|
||||
},
|
||||
@@ -8706,9 +8692,7 @@
|
||||
/turf/simulated/floor/reinforced,
|
||||
/area/enviro_testing_facility/inside/engineering/reactors)
|
||||
"iFu" = (
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass,
|
||||
/obj/structure/machinery/light{
|
||||
dir = 8
|
||||
},
|
||||
@@ -9869,9 +9853,7 @@
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/enviro_testing_facility/inside/crew/quarters)
|
||||
"jSV" = (
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass,
|
||||
/obj/structure/machinery/light{
|
||||
dir = 8
|
||||
},
|
||||
@@ -10750,9 +10732,7 @@
|
||||
},
|
||||
/area/template_noop)
|
||||
"kIo" = (
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass,
|
||||
/obj/structure/machinery/light{
|
||||
dir = 4
|
||||
},
|
||||
@@ -11554,9 +11534,7 @@
|
||||
/area/enviro_testing_facility/inside/security/lobby)
|
||||
"lBb" = (
|
||||
/obj/effect/floor_decal/corner_wide/paleblue/diagonal,
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "0-2"
|
||||
},
|
||||
@@ -13221,9 +13199,7 @@
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/enviro_testing_facility/inside/crew/quarters)
|
||||
"nre" = (
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/effect/floor_decal/corner_wide/paleblue/diagonal,
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/enviro_testing_facility/inside/medical/recovery_1)
|
||||
@@ -13554,9 +13530,7 @@
|
||||
/area/enviro_testing_facility/inside/security/cells_2)
|
||||
"nHS" = (
|
||||
/obj/effect/floor_decal/corner_wide/lime/diagonal,
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/structure/bedsheetbin{
|
||||
pixel_x = 3;
|
||||
pixel_y = 7
|
||||
@@ -13868,9 +13842,7 @@
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/enviro_testing_facility/inside/security/lobby)
|
||||
"nVk" = (
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/item/paper_bin{
|
||||
pixel_x = 4;
|
||||
pixel_y = 4
|
||||
@@ -17372,9 +17344,7 @@
|
||||
/area/enviro_testing_facility/inside/research/hallway)
|
||||
"rGp" = (
|
||||
/obj/effect/floor_decal/corner_wide/lime/diagonal,
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/random/medical{
|
||||
pixel_y = 2;
|
||||
pixel_x = -7
|
||||
@@ -17949,9 +17919,7 @@
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/enviro_testing_facility/inside/engineering/mech_lab)
|
||||
"sjM" = (
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "0-2"
|
||||
},
|
||||
@@ -19093,9 +19061,7 @@
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/enviro_testing_facility/inside/control/offices)
|
||||
"tqb" = (
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/random/medical{
|
||||
pixel_y = 8
|
||||
},
|
||||
@@ -19640,9 +19606,7 @@
|
||||
/area/enviro_testing_facility/inside/security/hallway)
|
||||
"tSe" = (
|
||||
/obj/effect/floor_decal/corner_wide/lime/diagonal,
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/item/paper_bin{
|
||||
pixel_x = 4;
|
||||
pixel_y = 4
|
||||
@@ -19687,9 +19651,7 @@
|
||||
/area/enviro_testing_facility/inside/maintenance/medical)
|
||||
"tVj" = (
|
||||
/obj/effect/floor_decal/corner_wide/lime/diagonal,
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/item/storage/box/masks{
|
||||
pixel_x = 4;
|
||||
pixel_y = 9
|
||||
@@ -19912,9 +19874,7 @@
|
||||
},
|
||||
/area/template_noop)
|
||||
"uaw" = (
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/random/medical{
|
||||
pixel_y = 8
|
||||
},
|
||||
@@ -20298,9 +20258,7 @@
|
||||
/area/enviro_testing_facility/inside/research/rnd)
|
||||
"uyu" = (
|
||||
/obj/effect/floor_decal/corner_wide/lime/diagonal,
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/item/storage/firstaid/regular{
|
||||
pixel_x = -2;
|
||||
pixel_y = 9
|
||||
@@ -20767,9 +20725,7 @@
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/enviro_testing_facility/inside/medical/lobby)
|
||||
"uYU" = (
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass,
|
||||
/obj/structure/machinery/light{
|
||||
dir = 8
|
||||
},
|
||||
@@ -20859,9 +20815,7 @@
|
||||
/turf/simulated/floor/exoplanet/konyang/wilting,
|
||||
/area/template_noop)
|
||||
"vdw" = (
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/item/healthanalyzer{
|
||||
pixel_x = -3
|
||||
},
|
||||
|
||||
@@ -3802,9 +3802,7 @@
|
||||
/turf/simulated/floor/plating,
|
||||
/area/ruined_propellant_depot/maint_storage)
|
||||
"lX" = (
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/item/flashlight/lamp/off{
|
||||
pixel_x = -3;
|
||||
pixel_y = 4
|
||||
@@ -10312,9 +10310,7 @@
|
||||
/turf/simulated/floor/plating,
|
||||
/area/ruined_propellant_depot/atmos_propellant)
|
||||
"GW" = (
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/random/medical{
|
||||
pixel_y = 4
|
||||
},
|
||||
|
||||
@@ -5345,10 +5345,7 @@
|
||||
/obj/structure/railing/mapped{
|
||||
name = "adjusted railing"
|
||||
},
|
||||
/obj/structure/table/glass{
|
||||
name = "reinforced glass table";
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "wood"
|
||||
},
|
||||
@@ -5933,10 +5930,7 @@
|
||||
/obj/item/flame/lighter/zippo/gold{
|
||||
pixel_y = 3
|
||||
},
|
||||
/obj/structure/table/glass{
|
||||
name = "reinforced glass table";
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "wood"
|
||||
},
|
||||
@@ -12814,10 +12808,7 @@
|
||||
/obj/item/material/ashtray/bronze{
|
||||
pixel_y = -7
|
||||
},
|
||||
/obj/structure/table/glass{
|
||||
name = "reinforced glass table";
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "wood"
|
||||
},
|
||||
|
||||
@@ -2015,9 +2015,7 @@
|
||||
pixel_x = -5;
|
||||
pixel_y = 4
|
||||
},
|
||||
/obj/structure/table/wood{
|
||||
table_reinf = "wood"
|
||||
},
|
||||
/obj/structure/table/wood/reinf,
|
||||
/obj/effect/floor_decal/corner/grey{
|
||||
dir = 5
|
||||
},
|
||||
@@ -13470,9 +13468,7 @@
|
||||
pixel_y = -9
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/structure/table/wood{
|
||||
table_reinf = "wood"
|
||||
},
|
||||
/obj/structure/table/wood/reinf,
|
||||
/turf/unsimulated/floor/carpet,
|
||||
/area/antag/raider)
|
||||
"bKL" = (
|
||||
@@ -21298,9 +21294,7 @@
|
||||
/obj/effect/floor_decal/corner_wide/paleblue{
|
||||
dir = 9
|
||||
},
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/item/flashlight/lamp,
|
||||
/obj/structure/machinery/atmospherics/unary/vent_scrubber/on{
|
||||
dir = 4
|
||||
@@ -22605,9 +22599,7 @@
|
||||
/obj/item/laser_pointer/red{
|
||||
pixel_y = 3
|
||||
},
|
||||
/obj/structure/table/wood{
|
||||
table_reinf = "wood"
|
||||
},
|
||||
/obj/structure/table/wood/reinf,
|
||||
/obj/effect/floor_decal/spline/fancy/wood{
|
||||
dir = 8
|
||||
},
|
||||
@@ -23411,9 +23403,7 @@
|
||||
/obj/structure/machinery/atmospherics/unary/vent_pump/on{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/item/paper_bin{
|
||||
pixel_y = 3
|
||||
},
|
||||
@@ -29554,10 +29544,7 @@
|
||||
pixel_x = 1;
|
||||
pixel_y = 4
|
||||
},
|
||||
/obj/structure/table/glass{
|
||||
name = "reinforced glass table";
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/turf/unsimulated/floor/monotile,
|
||||
/area/antag/mercenary)
|
||||
"dNH" = (
|
||||
@@ -34796,9 +34783,7 @@
|
||||
/obj/structure/machinery/chemical_dispenser/bar_alc/full{
|
||||
pixel_y = 7
|
||||
},
|
||||
/obj/structure/table/wood{
|
||||
table_reinf = "wood"
|
||||
},
|
||||
/obj/structure/table/wood/reinf,
|
||||
/obj/effect/floor_decal/corner/grey{
|
||||
dir = 5
|
||||
},
|
||||
@@ -36950,9 +36935,7 @@
|
||||
/turf/simulated/floor/plating,
|
||||
/area/horizon/rnd/hallway)
|
||||
"eLj" = (
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/item/flashlight/lamp,
|
||||
/obj/effect/floor_decal/corner_wide/paleblue/full{
|
||||
dir = 1
|
||||
@@ -42868,9 +42851,7 @@
|
||||
/obj/effect/floor_decal/corner_wide/paleblue/full{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/structure/machinery/photocopier/faxmachine{
|
||||
department = "Chief Medical Officer's Office"
|
||||
},
|
||||
@@ -47843,10 +47824,7 @@
|
||||
/obj/item/flame/lighter/zippo/gold{
|
||||
pixel_y = 3
|
||||
},
|
||||
/obj/structure/table/glass{
|
||||
name = "reinforced glass table";
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/turf/unsimulated/floor/wood,
|
||||
/area/centcom/evac)
|
||||
"gjV" = (
|
||||
@@ -50709,9 +50687,7 @@
|
||||
/obj/item/hand_labeler{
|
||||
pixel_y = 2
|
||||
},
|
||||
/obj/structure/table/wood{
|
||||
table_reinf = "wood"
|
||||
},
|
||||
/obj/structure/table/wood/reinf,
|
||||
/obj/effect/floor_decal/spline/fancy/wood{
|
||||
dir = 8
|
||||
},
|
||||
@@ -68613,10 +68589,7 @@
|
||||
/turf/simulated/floor/tiled/full,
|
||||
/area/horizon/hallway/primary/deck_3/central)
|
||||
"iUu" = (
|
||||
/obj/structure/table/glass{
|
||||
name = "reinforced glass table";
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/turf/unsimulated/floor/wood,
|
||||
/area/centcom/evac)
|
||||
"iUv" = (
|
||||
@@ -71762,9 +71735,7 @@
|
||||
/obj/structure/machinery/chemical_dispenser/bar_soft/full{
|
||||
pixel_y = 7
|
||||
},
|
||||
/obj/structure/table/wood{
|
||||
table_reinf = "wood"
|
||||
},
|
||||
/obj/structure/table/wood/reinf,
|
||||
/obj/effect/floor_decal/corner/grey{
|
||||
dir = 5
|
||||
},
|
||||
@@ -75902,10 +75873,7 @@
|
||||
/turf/simulated/floor/tiled/dark/full,
|
||||
/area/horizon/maintenance/deck_2/operations)
|
||||
"jRe" = (
|
||||
/obj/structure/table/glass{
|
||||
name = "reinforced glass table";
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/item/laser_pointer/red,
|
||||
/turf/unsimulated/floor/monotile,
|
||||
/area/antag/mercenary)
|
||||
@@ -85228,9 +85196,7 @@
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/horizon/engineering/hallway/interior)
|
||||
"kZJ" = (
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/effect/floor_decal/corner_wide/paleblue{
|
||||
dir = 10
|
||||
},
|
||||
@@ -102192,9 +102158,7 @@
|
||||
/turf/simulated/floor/tiled/dark/full,
|
||||
/area/horizon/shuttle/intrepid/port_storage)
|
||||
"nlQ" = (
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/item/folder,
|
||||
/obj/effect/floor_decal/corner_wide/green{
|
||||
dir = 6
|
||||
@@ -112361,10 +112325,7 @@
|
||||
pixel_x = 1;
|
||||
pixel_y = 7
|
||||
},
|
||||
/obj/structure/table/glass{
|
||||
name = "reinforced glass table";
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/turf/unsimulated/floor/monotile,
|
||||
/area/antag/mercenary)
|
||||
"oDy" = (
|
||||
@@ -114163,10 +114124,7 @@
|
||||
pixel_x = -3;
|
||||
pixel_y = 8
|
||||
},
|
||||
/obj/structure/table/glass{
|
||||
name = "reinforced glass table";
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/effect/landmark{
|
||||
name = "Syndicate-Uplink"
|
||||
},
|
||||
@@ -121904,9 +121862,7 @@
|
||||
/obj/structure/machinery/light{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/table/wood{
|
||||
table_reinf = "wood"
|
||||
},
|
||||
/obj/structure/table/wood/reinf,
|
||||
/obj/effect/floor_decal/spline/fancy/wood{
|
||||
dir = 9
|
||||
},
|
||||
@@ -137566,9 +137522,7 @@
|
||||
},
|
||||
/area/horizon/holodeck/source_konyang)
|
||||
"rQb" = (
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/effect/floor_decal/corner/paleblue/diagonal,
|
||||
/obj/item/modular_computer/laptop/preset/medical/cmo{
|
||||
pixel_y = 5
|
||||
@@ -150274,9 +150228,7 @@
|
||||
pixel_x = -7;
|
||||
pixel_y = 8
|
||||
},
|
||||
/obj/structure/table/wood{
|
||||
table_reinf = "wood"
|
||||
},
|
||||
/obj/structure/table/wood/reinf,
|
||||
/obj/effect/floor_decal/corner/grey{
|
||||
dir = 5
|
||||
},
|
||||
@@ -151569,9 +151521,7 @@
|
||||
"tCv" = (
|
||||
/obj/item/deck/cards,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/structure/table/wood{
|
||||
table_reinf = "wood"
|
||||
},
|
||||
/obj/structure/table/wood/reinf,
|
||||
/turf/unsimulated/floor/carpet,
|
||||
/area/antag/raider)
|
||||
"tCy" = (
|
||||
@@ -158991,9 +158941,7 @@
|
||||
/turf/simulated/floor/wood,
|
||||
/area/horizon/service/bar)
|
||||
"uBH" = (
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/item/paper_bin,
|
||||
/obj/item/pen,
|
||||
/obj/effect/floor_decal/corner_wide/green{
|
||||
@@ -170628,9 +170576,7 @@
|
||||
/turf/simulated/floor/tiled/full,
|
||||
/area/horizon/command/bridge/upperdeck)
|
||||
"wdE" = (
|
||||
/obj/structure/table/glass{
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/obj/effect/floor_decal/corner/paleblue/diagonal,
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/horizon/command/heads/cmo)
|
||||
@@ -184077,10 +184023,7 @@
|
||||
/obj/structure/railing/mapped{
|
||||
name = "adjusted railing"
|
||||
},
|
||||
/obj/structure/table/glass{
|
||||
name = "reinforced glass table";
|
||||
table_reinf = "glass"
|
||||
},
|
||||
/obj/structure/table/glass/reinf,
|
||||
/turf/unsimulated/floor/wood,
|
||||
/area/centcom/evac)
|
||||
"xKC" = (
|
||||
|
||||
Reference in New Issue
Block a user