From 4540ee5b1b5a5860c109b6a125384d5d045ff28b Mon Sep 17 00:00:00 2001 From: CHOMPStation2StaffMirrorBot <94713762+CHOMPStation2StaffMirrorBot@users.noreply.github.com> Date: Thu, 27 Nov 2025 20:12:45 -0700 Subject: [PATCH] [MIRROR] Woodstravaganza (#12049) Co-authored-by: Killian <49700375+KillianKirilenko@users.noreply.github.com> Co-authored-by: Cameron Lennox --- code/__defines/materials.dm | 75 +++-- code/datums/supplypacks/materials.dm | 35 ++ .../objects/items/stacks/tiles/tile_types.dm | 261 ++++++++++++++- code/game/objects/structures/simple_doors.dm | 22 ++ code/game/turfs/flooring/flooring.dm | 311 +++++++++++++++++- code/game/turfs/flooring/flooring_premade.dm | 229 ++++++++++++- code/game/turfs/simulated/floor.dm | 1 + code/game/turfs/simulated/floor_attackby.dm | 4 + code/game/turfs/simulated/wall_types.dm | 15 + code/game/turfs/simulated/wall_types_vr.dm | 24 ++ .../vendor_datums/entries/hangout_entries.dm | 60 ++++ code/modules/materials/fifty_spawner_mats.dm | 41 ++- .../materials/fifty_spawner_mats_vr.dm | 19 -- .../materials/materials/organic/wood.dm | 274 ++++++++++++++- code/modules/materials/sheets/organic/wood.dm | 36 +- code/modules/tables/presets.dm | 45 ++- icons/obj/stacks_vr.dmi | Bin 5249 -> 19718 bytes icons/turf/flooring/wood_greyscale.dmi | Bin 0 -> 28662 bytes icons/turf/wall_masks_vr.dmi | Bin 25936 -> 28020 bytes vorestation.dme | 1 - 20 files changed, 1373 insertions(+), 80 deletions(-) delete mode 100644 code/modules/materials/fifty_spawner_mats_vr.dm create mode 100644 icons/turf/flooring/wood_greyscale.dmi diff --git a/code/__defines/materials.dm b/code/__defines/materials.dm index 326b210656..1fedf90733 100644 --- a/code/__defines/materials.dm +++ b/code/__defines/materials.dm @@ -1,19 +1,35 @@ +//metals #define MAT_IRON "iron" -#define MAT_MARBLE "marble" #define MAT_STEEL "steel" -#define MAT_PLASTIC "plastic" -#define MAT_GLASS "glass" -#define MAT_RGLASS "rglass" -#define MAT_PGLASS "borosilicate glass" -#define MAT_RPGLASS "reinforced borosilicate glass" +#define MAT_STEELHULL "steel hull" #define MAT_SILVER "silver" #define MAT_GOLD "gold" #define MAT_URANIUM "uranium" #define MAT_TITANIUM "titanium" -#define MAT_PHORON "phoron" -#define MAT_DIAMOND "diamond" -#define MAT_SNOW "snow" -#define MAT_SNOWBRICK "packed snow" +#define MAT_PLASTEEL "plasteel" +#define MAT_PLASTEELHULL "plasteel hull" +#define MAT_DURASTEEL "durasteel" +#define MAT_DURASTEELHULL "durasteel hull" +#define MAT_TITANIUMHULL "titanium hull" +#define MAT_LEAD "lead" +#define MAT_METALHYDROGEN "mhydrogen" +#define MAT_COPPER "copper" +#define MAT_ALUMINIUM "aluminium" +#define MAT_BRONZE "bronze" +#define MAT_PLATINUM "platinum" +#define MAT_OSMIUM "osmium" +#define MAT_MORPHIUM "morphium" +#define MAT_MORPHIUMHULL "morphium hull" +#define MAT_TIN "tin" + +//stone +#define MAT_MARBLE "marble" +#define MAT_GRAPHITE "graphite" +#define MAT_SANDSTONE "sandstone" +#define MAT_FLINT "flint" +#define MAT_CONCRETE "concrete" + +//wood #define MAT_WOOD "wood" #define MAT_LOG "log" #define MAT_SIFWOOD "alien wood" @@ -21,38 +37,34 @@ #define MAT_HARDWOOD "hardwood" #define MAT_HARDLOG "hardwood log" #define MAT_WOODEN_STICK "wooden stick" -#define MAT_STEELHULL "steel hull" -#define MAT_PLASTEEL "plasteel" -#define MAT_PLASTEELHULL "plasteel hull" -#define MAT_DURASTEEL "durasteel" -#define MAT_DURASTEELHULL "durasteel hull" -#define MAT_TITANIUMHULL "titanium hull" +#define MAT_BIRCHWOOD "birch" +#define MAT_PINEWOOD "pine" +#define MAT_OAKWOOD "oak" +#define MAT_ACACIAWOOD "acacia" +#define MAT_REDWOOD "redwood" + +//other +#define MAT_PLASTIC "plastic" +#define MAT_GLASS "glass" +#define MAT_RGLASS "rglass" +#define MAT_PGLASS "borosilicate glass" +#define MAT_RPGLASS "reinforced borosilicate glass" +#define MAT_PHORON "phoron" +#define MAT_DIAMOND "diamond" +#define MAT_SNOW "snow" +#define MAT_SNOWBRICK "packed snow" #define MAT_VERDANTIUM "verdantium" -#define MAT_MORPHIUM "morphium" -#define MAT_MORPHIUMHULL "morphium hull" #define MAT_VALHOLLIDE "valhollide" -#define MAT_LEAD "lead" #define MAT_SUPERMATTER "supermatter" -#define MAT_METALHYDROGEN "mhydrogen" -#define MAT_OSMIUM "osmium" -#define MAT_GRAPHITE "graphite" #define MAT_CHITIN "chitin" #define MAT_ALIENCHITIN "alien chitin" #define MAT_ALIENCLAW "alien claw" #define MAT_FUR "fur" -#define MAT_COPPER "copper" #define MAT_QUARTZ "quartz" -#define MAT_TIN "tin" #define MAT_VOPAL "void opal" -#define MAT_ALUMINIUM "aluminium" -#define MAT_BRONZE "bronze" #define MAT_PAINITE "painite" -#define MAT_SANDSTONE "sandstone" -#define MAT_FLINT "flint" -#define MAT_PLATINUM "platinum" #define MAT_TRITIUM "tritium" #define MAT_DEUTERIUM "deuterium" -#define MAT_CONCRETE "concrete" #define MAT_PLASTEELREBAR "plasteel rebar" #define MAT_GRASS "grass" #define MAT_RESIN "resin" @@ -60,7 +72,6 @@ #define MAT_BIOMASS "biomass" #define MAT_WEEDEXTRACT "weed extract" #define MAT_CARDBOARD "cardboard" -#define MAT_COTTON "cotton" #define MAT_GLAMOUR "stable glamour" #define MAT_DARKGLASS "darkglass" #define MAT_FLESH "flesh" @@ -88,6 +99,8 @@ #define MAT_CLOTH "cloth" #define MAT_SYNCLOTH "syncloth" // # define MAT_CARPET "carpet" // CHOMPRemove +#define MAT_COTTON "cotton" + // colours #define MAT_CLOTH_TEAL "teal" #define MAT_CLOTH_BLACK "black" diff --git a/code/datums/supplypacks/materials.dm b/code/datums/supplypacks/materials.dm index ddc29d0116..57c322225a 100644 --- a/code/datums/supplypacks/materials.dm +++ b/code/datums/supplypacks/materials.dm @@ -29,6 +29,27 @@ containertype = /obj/structure/closet/crate/grayson containername = "Wooden planks crate" +/datum/supply_pack/materials/birch50 + name = "50 birch planks" + contains = list(/obj/fiftyspawner/birchwood) + cost = 10 + containertype = /obj/structure/closet/crate/grayson + containername = "Birch planks crate" + +/datum/supply_pack/materials/oak50 + name = "50 oak planks" + contains = list(/obj/fiftyspawner/oakwood) + cost = 10 + containertype = /obj/structure/closet/crate/grayson + containername = "Oak planks crate" + +/datum/supply_pack/materials/pine50 + name = "50 pine planks" + contains = list(/obj/fiftyspawner/pinewood) + cost = 10 + containertype = /obj/structure/closet/crate/grayson + containername = "Pine planks crate" + /datum/supply_pack/materials/alienwood50 name = "50 alien wood planks" contains = list(/obj/fiftyspawner/sifwood) @@ -36,6 +57,13 @@ containertype = /obj/structure/closet/crate/grayson containername = "Alien wood planks crate" +/datum/supply_pack/materials/acacia50 + name = "50 acacia planks" + contains = list(/obj/fiftyspawner/acaciawood) + cost = 35 + containertype = /obj/structure/closet/crate/gilthari + containername = "Acacia planks crate" + /datum/supply_pack/materials/hardwood50 name = "50 hardwood planks" contains = list(/obj/fiftyspawner/hardwood) @@ -43,6 +71,13 @@ containertype = /obj/structure/closet/crate/gilthari containername = "Hardwood planks crate" +/datum/supply_pack/materials/redwood50 + name = "50 redwood planks" + contains = list(/obj/fiftyspawner/redwood) + cost = 50 + containertype = /obj/structure/closet/crate/gilthari + containername = "Redwood planks crate" + /datum/supply_pack/materials/plastic50 name = "50 plastic sheets" contains = list(/obj/fiftyspawner/plastic) diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index e30246c1b4..cd88ead488 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -121,31 +121,272 @@ drop_sound = 'sound/items/drop/wooden.ogg' pickup_sound = 'sound/items/pickup/wooden.ogg' -/obj/item/stack/tile/wood/sif - name = "alien wood tile" - singular_name = "alien wood tile" - desc = "An easy to fit wooden floor tile. It's blue!" - icon_state = "tile-sifwood" - /obj/item/stack/tile/wood/alt name = "wood floor tile" singular_name = "wood floor tile" - icon_state = "tile-wood_tile" + icon = 'icons/obj/stacks_vr.dmi' + icon_state = "tile-wood-gs" + color = "#593c1c" /obj/item/stack/tile/wood/parquet name = "parquet wood floor tile" singular_name = "parquet wood floor tile" - icon_state = "tile-wood_parquet" + icon = 'icons/obj/stacks_vr.dmi' + icon_state = "tile-wood-gs_parquet" + color = "#593c1c" /obj/item/stack/tile/wood/panel name = "large wood floor tile" singular_name = "large wood floor tile" - icon_state = "tile-wood_large" + icon = 'icons/obj/stacks_vr.dmi' + icon_state = "tile-wood-gs_large" + color = "#593c1c" /obj/item/stack/tile/wood/tile name = "tiled wood floor tile" singular_name = "tiled wood floor tile" - icon_state = "tile-wood_tile" + icon = 'icons/obj/stacks_vr.dmi' + icon_state = "tile-wood-gs_tile" + color = "#593c1c" + +/obj/item/stack/tile/wood/vert + name = "vertical wood floor tile" + singular_name = "vertical wood floor tile" + icon = 'icons/obj/stacks_vr.dmi' + icon_state = "tile-wood-vert-gs" + color = "#593c1c" + +/obj/item/stack/tile/wood/vert_panel + name = "large vertical wood floor tile" + singular_name = "large vertical wood floor tile" + icon = 'icons/obj/stacks_vr.dmi' + icon_state = "tile-wood-vert-gs_large" + color = "#593c1c" + +/obj/item/stack/tile/wood/sif + name = "alien wood tile" + singular_name = "alien wood tile" + desc = "An easy to fit wooden floor tile. It's blue!" + icon = 'icons/obj/stacks_vr.dmi' + icon_state = "tile-wood-gs" + color = "#293c50" + +/obj/item/stack/tile/wood/sif/parquet + name = "alien wood parquet tile" + singular_name = "alien wood parquet tile" + icon_state = "tile-wood-gs_parquet" + +/obj/item/stack/tile/wood/sif/panel + name = "large alien wood tile" + singular_name = "large alien wood tile" + icon_state = "tile-wood-gs_large" + +/obj/item/stack/tile/wood/sif/tile + name = "tiled alien wood tile" + singular_name = "tiled alien wood tile" + icon_state = "tile-wood-gs_tile" + +/obj/item/stack/tile/wood/sif/vert + name = "vertical alien wood floor tile" + singular_name = "vertical alien wood floor tile" + icon_state = "tile-wood-vert-gs" + +/obj/item/stack/tile/wood/sif/vert_panel + name = "large vertical alien wood floor tile" + singular_name = "large vertical alien wood floor tile" + icon_state = "tile-wood-vert-gs_large" + +/obj/item/stack/tile/wood/acacia + name = "acacia wood floor tile" + singular_name = "wood floor tile" + icon = 'icons/obj/stacks_vr.dmi' + icon_state = "tile-wood-gs" + color = "#b75e12" + +/obj/item/stack/tile/wood/acacia/parquet + name = "acacia parquet floor tile" + singular_name = "parquet wood floor tile" + icon_state = "tile-wood-gs_parquet" + +/obj/item/stack/tile/wood/acacia/panel + name = "large acacia floor tile" + singular_name = "large wood floor tile" + icon_state = "tile-wood-gs_large" + +/obj/item/stack/tile/wood/acacia/tile + name = "tiled acacia floor tile" + singular_name = "tiled wood floor tile" + icon_state = "tile-wood-gs_tile" + +/obj/item/stack/tile/wood/acacia/vert + name = "vertical acacia wood floor tile" + singular_name = "vertical acacia wood floor tile" + icon_state = "tile-wood-vert-gs" + +/obj/item/stack/tile/wood/acacia/vert_panel + name = "large vertical acacia wood floor tile" + singular_name = "large vertical acacia wood floor tile" + icon_state = "tile-wood-vert-gs_large" + +/obj/item/stack/tile/wood/birch + name = "birch wood floor tile" + singular_name = "wood floor tile" + icon = 'icons/obj/stacks_vr.dmi' + icon_state = "tile-wood-gs" + color = "#f6dec0" + +/obj/item/stack/tile/wood/birch/parquet + name = "birch parquet floor tile" + singular_name = "parquet wood floor tile" + icon_state = "tile-wood-gs_parquet" + +/obj/item/stack/tile/wood/birch/panel + name = "large birch floor tile" + singular_name = "large wood floor tile" + icon_state = "tile-wood-gs_large" + +/obj/item/stack/tile/wood/birch/tile + name = "tiled birch floor tile" + singular_name = "tiled wood floor tile" + icon_state = "tile-wood-gs_tile" + +/obj/item/stack/tile/wood/birch/vert + name = "vertical birch wood floor tile" + singular_name = "vertical birch wood floor tile" + icon_state = "tile-wood-vert-gs" + +/obj/item/stack/tile/wood/birch/vert_panel + name = "large vertical birch wood floor tile" + singular_name = "large vertical birch wood floor tile" + icon_state = "tile-wood-vert-gs_large" + +/obj/item/stack/tile/wood/hardwood + name = "hardwood wood floor tile" + singular_name = "wood floor tile" + icon = 'icons/obj/stacks_vr.dmi' + icon_state = "tile-wood-gs" + color = "#42291a" + +/obj/item/stack/tile/wood/hardwood/parquet + name = "hardwood parquet floor tile" + singular_name = "parquet wood floor tile" + icon_state = "tile-wood-gs_parquet" + +/obj/item/stack/tile/wood/hardwood/panel + name = "large hardwood floor tile" + singular_name = "large wood floor tile" + icon_state = "tile-wood-gs_large" + +/obj/item/stack/tile/wood/hardwood/tile + name = "tiled hardwood floor tile" + singular_name = "tiled wood floor tile" + icon_state = "tile-wood-gs_tile" + +/obj/item/stack/tile/wood/hardwood/vert + name = "vertical hardwood wood floor tile" + singular_name = "vertical hardwood wood floor tile" + icon_state = "tile-wood-vert-gs" + +/obj/item/stack/tile/wood/hardwood/vert_panel + name = "large vertical hardwood wood floor tile" + singular_name = "large vertical hardwood wood floor tile" + icon_state = "tile-wood-vert-gs_large" + +/obj/item/stack/tile/wood/pine + name = "pine wood floor tile" + singular_name = "wood floor tile" + icon = 'icons/obj/stacks_vr.dmi' + icon_state = "tile-wood-gs" + color = "#cd9d6f" + +/obj/item/stack/tile/wood/pine/parquet + name = "pine parquet floor tile" + singular_name = "parquet wood floor tile" + icon_state = "tile-wood-gs_parquet" + +/obj/item/stack/tile/wood/pine/panel + name = "large pine floor tile" + singular_name = "large wood floor tile" + icon_state = "tile-wood-gs_large" + +/obj/item/stack/tile/wood/pine/tile + name = "tiled pine floor tile" + singular_name = "tiled wood floor tile" + icon_state = "tile-wood-gs_tile" + +/obj/item/stack/tile/wood/pine/vert + name = "vertical pine wood floor tile" + singular_name = "vertical pine wood floor tile" + icon_state = "tile-wood-vert-gs" + +/obj/item/stack/tile/wood/pine/vert_panel + name = "large vertical pine wood floor tile" + singular_name = "large vertical pine wood floor tile" + icon_state = "tile-wood-vert-gs_large" + +/obj/item/stack/tile/wood/oak + name = "oak wood floor tile" + singular_name = "wood floor tile" + icon = 'icons/obj/stacks_vr.dmi' + icon_state = "tile-wood-gs" + color = "#674928" + +/obj/item/stack/tile/wood/oak/parquet + name = "oak parquet floor tile" + singular_name = "parquet wood floor tile" + icon_state = "tile-wood-gs_parquet" + +/obj/item/stack/tile/wood/oak/panel + name = "large oak floor tile" + singular_name = "large wood floor tile" + icon_state = "tile-wood-gs_large" + +/obj/item/stack/tile/wood/oak/tile + name = "tiled oak floor tile" + singular_name = "tiled wood floor tile" + icon_state = "tile-wood-gs_tile" + +/obj/item/stack/tile/wood/oak/vert + name = "vertical oak wood floor tile" + singular_name = "vertical oak wood floor tile" + icon_state = "tile-wood-vert-gs" + +/obj/item/stack/tile/wood/oak/vert_panel + name = "large vertical oak wood floor tile" + singular_name = "large vertical oak wood floor tile" + icon_state = "tile-wood-vert-gs_large" + +/obj/item/stack/tile/wood/redwood + name = "redwood floor tile" + singular_name = "redwood floor tile" + icon = 'icons/obj/stacks_vr.dmi' + icon_state = "tile-wood-gs" + color = "#a45a52" + +/obj/item/stack/tile/wood/redwood/parquet + name = "redwood parquet floor tile" + singular_name = "parquet redwood floor tile" + icon_state = "tile-wood-gs_parquet" + +/obj/item/stack/tile/wood/redwood/panel + name = "large redwood floor tile" + singular_name = "large redwood floor tile" + icon_state = "tile-wood-gs_large" + +/obj/item/stack/tile/wood/redwood/tile + name = "tiled redwood floor tile" + singular_name = "tiled redwood floor tile" + icon_state = "tile-wood-gs_tile" + +/obj/item/stack/tile/wood/redwood/vert + name = "vertical redwood wood floor tile" + singular_name = "vertical redwood wood floor tile" + icon_state = "tile-wood-vert-gs" + +/obj/item/stack/tile/wood/redwood/vert_panel + name = "large vertical redwood wood floor tile" + singular_name = "large vertical redwood wood floor tile" + icon_state = "tile-wood-vert-gs_large" /obj/item/stack/tile/wood/cyborg name = "wood floor tile synthesizer" diff --git a/code/game/objects/structures/simple_doors.dm b/code/game/objects/structures/simple_doors.dm index ba997670fd..ed279a706c 100644 --- a/code/game/objects/structures/simple_doors.dm +++ b/code/game/objects/structures/simple_doors.dm @@ -271,9 +271,31 @@ /obj/structure/simple_door/hardwood/Initialize(mapload,var/material_name) . = ..(mapload, material_name || MAT_HARDWOOD) + knock_sound = 'sound/machines/door/knock_wood.wav' /obj/structure/simple_door/sifwood/Initialize(mapload,var/material_name) . = ..(mapload, material_name || MAT_SIFWOOD) + knock_sound = 'sound/machines/door/knock_wood.wav' + +/obj/structure/simple_door/birchwood/Initialize(mapload,var/material_name) + . = ..(mapload, material_name || MAT_BIRCHWOOD) + knock_sound = 'sound/machines/door/knock_wood.wav' + +/obj/structure/simple_door/pinewood/Initialize(mapload,var/material_name) + . = ..(mapload, material_name || MAT_PINEWOOD) + knock_sound = 'sound/machines/door/knock_wood.wav' + +/obj/structure/simple_door/oakwood/Initialize(mapload,var/material_name) + . = ..(mapload, material_name || MAT_OAKWOOD) + knock_sound = 'sound/machines/door/knock_wood.wav' + +/obj/structure/simple_door/acaciawood/Initialize(mapload,var/material_name) + . = ..(mapload, material_name || MAT_ACACIAWOOD) + knock_sound = 'sound/machines/door/knock_wood.wav' + +/obj/structure/simple_door/redwood/Initialize(mapload,var/material_name) + . = ..(mapload, material_name || MAT_REDWOOD) + knock_sound = 'sound/machines/door/knock_wood.wav' /obj/structure/simple_door/resin/Initialize(mapload,var/material_name) . = ..(mapload, material_name || MAT_RESIN) diff --git a/code/game/turfs/flooring/flooring.dm b/code/game/turfs/flooring/flooring.dm index 626c086568..cdd3274a0d 100644 --- a/code/game/turfs/flooring/flooring.dm +++ b/code/game/turfs/flooring/flooring.dm @@ -393,7 +393,7 @@ var/list/flooring_types /decl/flooring/linoleum name = "linoleum" - desc = "It's like the 2390's all over again." + desc = "It's like the 2390's all over again." //CHOMPEDIT - Age icon = 'icons/turf/flooring/linoleum.dmi' icon_base = "lino" can_paint = 1 @@ -493,10 +493,30 @@ var/list/flooring_types /decl/flooring/wood/sif desc = "Polished wood planks made from sivian wood." - icon = 'icons/turf/flooring/wood.dmi' - icon_base = "sifwood" + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood" build_type = /obj/item/stack/tile/wood/sif +/decl/flooring/wood/sif/panel + icon_base = "sif_panel" + build_type = /obj/item/stack/tile/wood/sif/panel + +/decl/flooring/wood/sif/parquet + icon_base = "wood_parquet" + build_type = /obj/item/stack/tile/wood/sif/parquet + +/decl/flooring/wood/sif/tile + icon_base = "wood_tile" + build_type = /obj/item/stack/tile/wood/sif/tile + +/decl/flooring/wood/sif/vert + icon_base = "wood_vert" + build_type = /obj/item/stack/tile/wood/sif/vert + +/decl/flooring/wood/sif/vert_panel + icon_base = "wood_vert_panel" + build_type = /obj/item/stack/tile/wood/sif/vert_panel + /decl/flooring/wood/alt icon = 'icons/turf/flooring/wood.dmi' icon_base = "wood" @@ -504,24 +524,303 @@ var/list/flooring_types /decl/flooring/wood/alt/panel desc = "Polished wooden panels." - icon = 'icons/turf/flooring/wood.dmi' + icon = 'icons/turf/flooring/wood_greyscale.dmi' icon_base = "wood_panel" has_damage_range = 2 build_type = /obj/item/stack/tile/wood/panel /decl/flooring/wood/alt/parquet desc = "Polished wooden tiles." - icon = 'icons/turf/flooring/wood.dmi' + icon = 'icons/turf/flooring/wood_greyscale.dmi' icon_base = "wood_parquet" build_type = /obj/item/stack/tile/wood/parquet +/decl/flooring/wood/alt/vert + desc = "Polished wooden planks." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_vert" + build_type = /obj/item/stack/tile/wood/vert + +/decl/flooring/wood/alt/vert_panel + desc = "Polished wooden panels." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_vert_panel" + build_type = /obj/item/stack/tile/wood/vert_panel + /decl/flooring/wood/alt/tile desc = "Polished wooden tiles." - icon = 'icons/turf/flooring/wood.dmi' + icon = 'icons/turf/flooring/wood_greyscale.dmi' icon_base = "wood_tile" has_damage_range = 2 build_type = /obj/item/stack/tile/wood/tile +//New Wood +/decl/flooring/wood/acacia + name = "wooden floor" + desc = "Polished acacia planks." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood" + has_damage_range = 6 + damage_temperature = T0C+200 + descriptor = "planks" + build_type = /obj/item/stack/tile/wood/acacia + flags = TURF_CAN_BREAK | TURF_REMOVE_CROWBAR | TURF_REMOVE_SCREWDRIVER + +/decl/flooring/wood/acacia/panel + desc = "Polished acacia panels." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_panel" + has_damage_range = 2 + build_type = /obj/item/stack/tile/wood/acacia/panel + +/decl/flooring/wood/acacia/parquet + desc = "Polished acacia parquet." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_parquet" + build_type = /obj/item/stack/tile/wood/acacia/parquet + +/decl/flooring/wood/acacia/tile + desc = "Polished acacia tiles." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_tile" + has_damage_range = 2 + build_type = /obj/item/stack/tile/wood/acacia/tile + +/decl/flooring/wood/acacia/vert + desc = "Polished acacia planks." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_vert" + build_type = /obj/item/stack/tile/wood/acacia/vert + +/decl/flooring/wood/acacia/vert_panel + desc = "Polished acacia panels." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_vert_panel" + has_damage_range = 2 + build_type = /obj/item/stack/tile/wood/acacia/vert_panel + +/decl/flooring/wood/birch + name = "wooden floor" + desc = "Polished birch planks." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood" + has_damage_range = 6 + damage_temperature = T0C+200 + descriptor = "planks" + build_type = /obj/item/stack/tile/wood/birch + flags = TURF_CAN_BREAK | TURF_REMOVE_CROWBAR | TURF_REMOVE_SCREWDRIVER + +/decl/flooring/wood/birch/panel + desc = "Polished birch panels." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_panel" + has_damage_range = 2 + build_type = /obj/item/stack/tile/wood/birch/panel + +/decl/flooring/wood/birch/parquet + desc = "Polished birch tiles." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_parquet" + build_type = /obj/item/stack/tile/wood/birch/parquet + +/decl/flooring/wood/birch/tile + desc = "Polished birch tiles." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_tile" + has_damage_range = 2 + build_type = /obj/item/stack/tile/wood/birch/tile + +/decl/flooring/wood/birch/vert + desc = "Polished birch planks." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_vert" + build_type = /obj/item/stack/tile/wood/birch/vert + +/decl/flooring/wood/birch/vert_panel + desc = "Polished birch panels." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_vert_panel" + has_damage_range = 2 + build_type = /obj/item/stack/tile/wood/birch/vert_panel + +/decl/flooring/wood/hardwood + name = "wooden floor" + desc = "Polished hardwood planks." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood" + has_damage_range = 6 + damage_temperature = T0C+200 + descriptor = "planks" + build_type = /obj/item/stack/tile/wood/hardwood + flags = TURF_CAN_BREAK | TURF_REMOVE_CROWBAR | TURF_REMOVE_SCREWDRIVER + +/decl/flooring/wood/hardwood/panel + desc = "Polished hardwood panels." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_panel" + has_damage_range = 2 + build_type = /obj/item/stack/tile/wood/hardwood/panel + +/decl/flooring/wood/hardwood/parquet + desc = "Polished hardwood tiles." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_parquet" + build_type = /obj/item/stack/tile/wood/hardwood/parquet + +/decl/flooring/wood/hardwood/tile + desc = "Polished hardwood tiles." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_tile" + has_damage_range = 2 + build_type = /obj/item/stack/tile/wood/hardwood/tile + +/decl/flooring/wood/hardwood/vert + desc = "Polished hardwood planks." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_vert" + build_type = /obj/item/stack/tile/wood/hardwood/vert + +/decl/flooring/wood/hardwood/vert_panel + desc = "Polished hardwood panels." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_vert_panel" + has_damage_range = 2 + build_type = /obj/item/stack/tile/wood/hardwood/vert_panel + +/decl/flooring/wood/oak + name = "wooden floor" + desc = "Polished oak planks." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood" + has_damage_range = 6 + damage_temperature = T0C+200 + descriptor = "planks" + build_type = /obj/item/stack/tile/wood/oak + flags = TURF_CAN_BREAK | TURF_REMOVE_CROWBAR | TURF_REMOVE_SCREWDRIVER + +/decl/flooring/wood/oak/panel + desc = "Polished oak panels." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_panel" + has_damage_range = 2 + build_type = /obj/item/stack/tile/wood/oak/panel + +/decl/flooring/wood/oak/parquet + desc = "Polished oak tiles." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_parquet" + build_type = /obj/item/stack/tile/wood/oak/parquet + +/decl/flooring/wood/oak/tile + desc = "Polished oak tiles." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_tile" + has_damage_range = 2 + build_type = /obj/item/stack/tile/wood/oak/tile + +/decl/flooring/wood/oak/vert + desc = "Polished oak planks." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_vert" + build_type = /obj/item/stack/tile/wood/oak/vert + +/decl/flooring/wood/oak/vert_panel + desc = "Polished oak panels." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_vert_panel" + has_damage_range = 2 + build_type = /obj/item/stack/tile/wood/oak/vert_panel + +/decl/flooring/wood/pine + name = "wooden floor" + desc = "Polished pine planks." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood" + has_damage_range = 6 + damage_temperature = T0C+200 + descriptor = "planks" + build_type = /obj/item/stack/tile/wood/pine + flags = TURF_CAN_BREAK | TURF_REMOVE_CROWBAR | TURF_REMOVE_SCREWDRIVER + +/decl/flooring/wood/pine/panel + desc = "Polished pine panels." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_panel" + has_damage_range = 2 + build_type = /obj/item/stack/tile/wood/pine/panel + +/decl/flooring/wood/pine/parquet + desc = "Polished pine tiles." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_parquet" + build_type = /obj/item/stack/tile/wood/pine/parquet + +/decl/flooring/wood/pine/tile + desc = "Polished pine tiles." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_tile" + has_damage_range = 2 + build_type = /obj/item/stack/tile/wood/pine/tile + +/decl/flooring/wood/pine/vert + desc = "Polished pine planks." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_vert" + build_type = /obj/item/stack/tile/wood/pine/vert + +/decl/flooring/wood/pine/vert_panel + desc = "Polished pine panels." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_vert_panel" + has_damage_range = 2 + build_type = /obj/item/stack/tile/wood/pine/vert_panel + +/decl/flooring/wood/redwood + name = "wooden floor" + desc = "Polished redwood planks." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood" + has_damage_range = 6 + damage_temperature = T0C+200 + descriptor = "planks" + build_type = /obj/item/stack/tile/wood/redwood + flags = TURF_CAN_BREAK | TURF_REMOVE_CROWBAR | TURF_REMOVE_SCREWDRIVER + +/decl/flooring/wood/redwood/panel + desc = "Polished redwood panels." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_panel" + has_damage_range = 2 + build_type = /obj/item/stack/tile/wood/redwood/panel + +/decl/flooring/wood/redwood/parquet + desc = "Polished redwood tiles." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_parquet" + build_type = /obj/item/stack/tile/wood/redwood/parquet + +/decl/flooring/wood/redwood/tile + desc = "Polished redwood tiles." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_tile" + has_damage_range = 2 + build_type = /obj/item/stack/tile/wood/redwood/tile + +/decl/flooring/wood/redwood/vert + desc = "Polished redwood planks." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_vert" + build_type = /obj/item/stack/tile/wood/redwood/vert + +/decl/flooring/wood/redwood/vert_panel + desc = "Polished redwood panels." + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_base = "wood_vert_panel" + has_damage_range = 2 + build_type = /obj/item/stack/tile/wood/redwood/vert_panel + +// no more wood + /decl/flooring/reinforced name = "reinforced floor" desc = "Heavily reinforced with steel rods." diff --git a/code/game/turfs/flooring/flooring_premade.dm b/code/game/turfs/flooring/flooring_premade.dm index aa57d03014..c8a9acd148 100644 --- a/code/game/turfs/flooring/flooring_premade.dm +++ b/code/game/turfs/flooring/flooring_premade.dm @@ -127,8 +127,10 @@ /turf/simulated/floor/wood/sif name = "alien wooden floor" - icon_state = "sifwood" + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_state = "wood" initial_flooring = /decl/flooring/wood/sif + color = "#293c50" /turf/simulated/floor/wood/sif/broken icon_state = "sifwood-broken0" // This gets changed when spawned. @@ -137,9 +139,30 @@ . = ..() break_tile() +/turf/simulated/floor/wood/sif/tile + icon_state = "wood_tile" + initial_flooring = /decl/flooring/wood/sif/tile + +/turf/simulated/floor/wood/sif/panel + icon_state = "wood_panel" + initial_flooring = /decl/flooring/wood/sif/panel + +/turf/simulated/floor/wood/sif/parquet + icon_state = "wood_parquet" + initial_flooring = /decl/flooring/wood/sif/parquet + +/turf/simulated/floor/wood/sif/vert + icon_state = "wood_vert" + initial_flooring = /decl/flooring/wood/sif/vert + +/turf/simulated/floor/wood/sif/vert_panel + icon_state = "wood_vert_panel" + initial_flooring = /decl/flooring/wood/sif/vert_panel + /turf/simulated/floor/wood/alt - icon = 'icons/turf/flooring/wood.dmi' + icon = 'icons/turf/flooring/wood_greyscale.dmi' initial_flooring = /decl/flooring/wood/alt + color = "#593c1c" /turf/simulated/floor/wood/alt/broken icon_state = "wood-broken0" // This gets changed when spawned. @@ -181,6 +204,14 @@ . = ..() break_tile() +/turf/simulated/floor/wood/alt/vert + icon_state = "wood_vert" + initial_flooring = /decl/flooring/wood/alt/vert + +/turf/simulated/floor/wood/alt/vert_panel + icon_state = "wood_vert_panel" + initial_flooring = /decl/flooring/wood/alt/vert_panel + /turf/simulated/floor/grass name = "grass patch" icon = 'icons/turf/flooring/grass.dmi' @@ -555,3 +586,197 @@ icon = 'icons/turf/concrete.dmi' icon_state = "concrete" initial_flooring = /decl/flooring/concrete + + +//New Wood +/turf/simulated/floor/wood/acacia + name = "acacia wood floor" + icon = 'icons/turf/flooring/wood_greyscale.dmi' + color = "#b75e12" + icon_state = "wood" + initial_flooring = /decl/flooring/wood/acacia + +/turf/simulated/floor/wood/acacia/tile + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_state = "wood_tile" + initial_flooring = /decl/flooring/wood/acacia/tile + +/turf/simulated/floor/wood/acacia/panel + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_state = "wood_panel" + initial_flooring = /decl/flooring/wood/acacia/panel + +/turf/simulated/floor/wood/acacia/parquet + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_state = "wood_parquet" + initial_flooring = /decl/flooring/wood/acacia/parquet + +/turf/simulated/floor/wood/acacia/vert + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_state = "wood_vert" + initial_flooring = /decl/flooring/wood/acacia/vert + +/turf/simulated/floor/wood/acacia/vert_panel + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_state = "wood_vert_panel" + initial_flooring = /decl/flooring/wood/acacia/vert_panel + +/turf/simulated/floor/wood/birch + name = "birch wood floor" + icon = 'icons/turf/flooring/wood_greyscale.dmi' + color = "#f6dec0" + icon_state = "wood" + initial_flooring = /decl/flooring/wood/birch + +/turf/simulated/floor/wood/birch/tile + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_state = "wood_tile" + initial_flooring = /decl/flooring/wood/birch/tile + +/turf/simulated/floor/wood/birch/panel + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_state = "wood_panel" + initial_flooring = /decl/flooring/wood/birch/panel + +/turf/simulated/floor/wood/birch/parquet + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_state = "wood_parquet" + initial_flooring = /decl/flooring/wood/birch/parquet + +/turf/simulated/floor/wood/birch/vert + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_state = "wood_vert" + initial_flooring = /decl/flooring/wood/birch/vert + +/turf/simulated/floor/wood/birch/vert_panel + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_state = "wood_vert_panel" + initial_flooring = /decl/flooring/wood/birch/vert_panel + +/turf/simulated/floor/wood/hardwood + name = "hardwood wood floor" + icon = 'icons/turf/flooring/wood_greyscale.dmi' + color = "#42291a" + icon_state = "wood" + initial_flooring = /decl/flooring/wood/hardwood + +/turf/simulated/floor/wood/hardwood/tile + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_state = "wood_tile" + initial_flooring = /decl/flooring/wood/hardwood/tile + +/turf/simulated/floor/wood/hardwood/panel + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_state = "wood_panel" + initial_flooring = /decl/flooring/wood/hardwood/panel + +/turf/simulated/floor/wood/hardwood/parquet + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_state = "wood_parquet" + initial_flooring = /decl/flooring/wood/hardwood/parquet + +/turf/simulated/floor/wood/hardwood/vert + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_state = "wood_vert" + initial_flooring = /decl/flooring/wood/hardwood/vert + +/turf/simulated/floor/wood/hardwood/vert_panel + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_state = "wood_vert_panel" + initial_flooring = /decl/flooring/wood/hardwood/vert_panel + +/turf/simulated/floor/wood/oak + name = "oak wood floor" + icon = 'icons/turf/flooring/wood_greyscale.dmi' + color = "#674928" + icon_state = "wood" + initial_flooring = /decl/flooring/wood/oak + +/turf/simulated/floor/wood/oak/tile + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_state = "wood_tile" + initial_flooring = /decl/flooring/wood/oak/tile + +/turf/simulated/floor/wood/oak/panel + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_state = "wood_panel" + initial_flooring = /decl/flooring/wood/oak/panel + +/turf/simulated/floor/wood/oak/parquet + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_state = "wood_parquet" + initial_flooring = /decl/flooring/wood/oak/parquet + +/turf/simulated/floor/wood/oak/vert + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_state = "wood_vert" + initial_flooring = /decl/flooring/wood/oak/vert + +/turf/simulated/floor/wood/oak/vert_panel + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_state = "wood_vert_panel" + initial_flooring = /decl/flooring/wood/oak/vert_panel + +/turf/simulated/floor/wood/pine + name = "pine wood floor" + icon = 'icons/turf/flooring/wood_greyscale.dmi' + color = "#cd9d6f" + icon_state = "wood" + initial_flooring = /decl/flooring/wood/pine + +/turf/simulated/floor/wood/pine/tile + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_state = "wood_tile" + initial_flooring = /decl/flooring/wood/pine/tile + +/turf/simulated/floor/wood/pine/panel + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_state = "wood_panel" + initial_flooring = /decl/flooring/wood/pine/panel + +/turf/simulated/floor/wood/pine/parquet + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_state = "wood_parquet" + initial_flooring = /decl/flooring/wood/pine/parquet + +/turf/simulated/floor/wood/pine/vert + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_state = "wood_vert" + initial_flooring = /decl/flooring/wood/pine/vert + +/turf/simulated/floor/wood/pine/vert_panel + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_state = "wood_vert_panel" + initial_flooring = /decl/flooring/wood/pine/vert_panel + +/turf/simulated/floor/wood/redwood + name = "redwood wood floor" + icon = 'icons/turf/flooring/wood_greyscale.dmi' + color = "#a45a52" + icon_state = "wood" + initial_flooring = /decl/flooring/wood/redwood + +/turf/simulated/floor/wood/redwood/tile + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_state = "wood_tile" + initial_flooring = /decl/flooring/wood/redwood/tile + +/turf/simulated/floor/wood/redwood/panel + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_state = "wood_panel" + initial_flooring = /decl/flooring/wood/redwood/panel + +/turf/simulated/floor/wood/redwood/parquet + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_state = "wood_parquet" + initial_flooring = /decl/flooring/wood/redwood/parquet + +/turf/simulated/floor/wood/redwood/vert + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_state = "wood_vert" + initial_flooring = /decl/flooring/wood/redwood/vert + +/turf/simulated/floor/wood/redwood/vert_panel + icon = 'icons/turf/flooring/wood_greyscale.dmi' + icon_state = "wood_vert_panel" + initial_flooring = /decl/flooring/wood/redwood/vert_panel diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index 3378ba69ba..04c751f4a1 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -71,6 +71,7 @@ desc = base_desc icon = base_icon icon_state = base_icon_state + color = null if(!is_plating()) // Flooring -> Plating swap_decals() diff --git a/code/game/turfs/simulated/floor_attackby.dm b/code/game/turfs/simulated/floor_attackby.dm index 1d04556368..01999ea135 100644 --- a/code/game/turfs/simulated/floor_attackby.dm +++ b/code/game/turfs/simulated/floor_attackby.dm @@ -77,6 +77,8 @@ S.use(1) playsound(src, 'sound/weapons/genhit.ogg', 50, 1) ChangeTurf(/turf/simulated/floor, preserve_outdoors = TRUE) + if(S.color) + color = S.color return else if(istype(C, /obj/item)) try_deconstruct_tile(C, user) @@ -119,6 +121,8 @@ return if(S.use(use_flooring.build_cost)) set_flooring(use_flooring) + if(S.color) + color = S.color playsound(src, 'sound/items/Deconstruct.ogg', 80, 1) return // Plating repairs and removal diff --git a/code/game/turfs/simulated/wall_types.dm b/code/game/turfs/simulated/wall_types.dm index 2a500fdba5..045398299e 100644 --- a/code/game/turfs/simulated/wall_types.dm +++ b/code/game/turfs/simulated/wall_types.dm @@ -123,6 +123,21 @@ . = ..(mapload, MAT_SIFWOOD, MAT_SIFWOOD, MAT_SIFWOOD) // CHOMPEdit End +/turf/simulated/wall/birchwood/Initialize(mapload) + . = ..(mapload, MAT_BIRCHWOOD) + +/turf/simulated/wall/pinewood/Initialize(mapload) + . = ..(mapload, MAT_PINEWOOD) + +/turf/simulated/wall/oakwood/Initialize(mapload) + . = ..(mapload, MAT_OAKWOOD) + +/turf/simulated/wall/acaciawood/Initialize(mapload) + . = ..(mapload, MAT_ACACIAWOOD) + +/turf/simulated/wall/redwood/Initialize(mapload) + . = ..(mapload, MAT_REDWOOD) + /turf/simulated/wall/log/Initialize(mapload) . = ..(mapload, MAT_LOG) diff --git a/code/game/turfs/simulated/wall_types_vr.dm b/code/game/turfs/simulated/wall_types_vr.dm index b167125090..760d9e23b9 100644 --- a/code/game/turfs/simulated/wall_types_vr.dm +++ b/code/game/turfs/simulated/wall_types_vr.dm @@ -230,6 +230,30 @@ var/list/flesh_overlay_cache = list() icon_state = "wood" icon = 'icons/turf/wall_masks_vr.dmi' +/turf/simulated/wall/acaciawood + icon_state = "acaciawood" + icon = 'icons/turf/wall_masks_vr.dmi' + +/turf/simulated/wall/birchwood + icon_state = "birchwood" + icon = 'icons/turf/wall_masks_vr.dmi' + +/turf/simulated/wall/hardwood + icon_state = "hardwood" + icon = 'icons/turf/wall_masks_vr.dmi' + +/turf/simulated/wall/oakwood + icon_state = "oakwood" + icon = 'icons/turf/wall_masks_vr.dmi' + +/turf/simulated/wall/pinewood + icon_state = "pinewood" + icon = 'icons/turf/wall_masks_vr.dmi' + +/turf/simulated/wall/redwood + icon_state = "redwood" + icon = 'icons/turf/wall_masks_vr.dmi' + /turf/simulated/wall/stonebricks icon_state = "stonebrick" icon = 'icons/turf/wall_masks_vr.dmi' diff --git a/code/modules/maint_recycler/code/vendor_datums/entries/hangout_entries.dm b/code/modules/maint_recycler/code/vendor_datums/entries/hangout_entries.dm index b0af270ba9..9552c77f04 100644 --- a/code/modules/maint_recycler/code/vendor_datums/entries/hangout_entries.dm +++ b/code/modules/maint_recycler/code/vendor_datums/entries/hangout_entries.dm @@ -9,6 +9,17 @@ per_round_cap = 3 //limited supply! vendor_category = MAINTVENDOR_CONSTRUCTION +/datum/maint_recycler_vendor_entry/DIY_SifWood + name = "SIF WOOD???" + desc = "Seeing this stuff for the first time BLUE our minds, but not your wallets!!" + object_type_to_spawn = /obj/item/stack/material/wood/sif{amount = 20} + item_cost = 15 //not too pricy + tagline = "the trees are speaking 👽" + ad_message = "SIF! WOOD! WIF! WOOD!" + per_person_cap = 1 + per_round_cap = 3 //limited supply! + vendor_category = MAINTVENDOR_CONSTRUCTION + /datum/maint_recycler_vendor_entry/DIY_HardWood //this one writes itself name = "Hard... Knotty Wood... " desc = "Seriously! this tree sucked! unsuitable for professional construction due to how hard the knots are, the savings (and various aches and pains) are passed onto YOU!!!" @@ -20,6 +31,55 @@ per_round_cap = 3 //limited supply! object_type_to_spawn = /obj/item/stack/material/wood/hard{amount = 20} +/datum/maint_recycler_vendor_entry/DIY_AcaciaWood //this one writes itself + name = "Acacia? I 'ardly Know 'er!" + desc = "Seriously! this tree sucked! unsuitable for professional construction due to how hard the knots are, the savings (and various aches and pains) are passed onto YOU!!!" + tagline = "Tree for the price of one!!!" + ad_message = "owo" + vendor_category = MAINTVENDOR_CONSTRUCTION + per_person_cap = 1 + per_round_cap = 3 //limited supply! + object_type_to_spawn = /obj/item/stack/material/wood/acacia{amount = 20} + +/datum/maint_recycler_vendor_entry/DIY_BirchWood //this one writes itself + name = "Hot Birches In Your Area!!" + desc = "99 Problems But A Birch Ain't One!" + tagline = "BIRCHES! IN! HEAT!" + ad_message = "🤤" + vendor_category = MAINTVENDOR_CONSTRUCTION + per_person_cap = 1 + per_round_cap = 3 //limited supply! + object_type_to_spawn = /obj/item/stack/material/wood/birch{amount = 20} + +/datum/maint_recycler_vendor_entry/DIY_OakWood + name = "Oak-y, Pal" + desc = "No ACORN-y jokes here, just gen-u-ine oak wood! That's it. Promise." + tagline = "Sure thing bud" + ad_message = "🤤" + vendor_category = MAINTVENDOR_CONSTRUCTION + per_person_cap = 1 + per_round_cap = 3 //limited supply! + object_type_to_spawn = /obj/item/stack/material/wood/oak{amount = 20} + +/datum/maint_recycler_vendor_entry/DIY_PineWood + name = "Pine For The Fjords..." + desc = "Smells like home. And also those little air freshener thingies you put in your car. Do people still have cars?" + tagline = "Enjoy the needles" + ad_message = "🌲" + vendor_category = MAINTVENDOR_CONSTRUCTION + per_person_cap = 1 + per_round_cap = 3 //limited supply! + object_type_to_spawn = /obj/item/stack/material/wood/pine{amount = 20} + +/datum/maint_recycler_vendor_entry/DIY_RedWood //this one writes itself + name = "REDWOOD? I SURE HAVE!" + desc = "This stuff is way too expensive to be in here, but we won't tell anyone if you don't!" + tagline = "REDRUM! Wait, no, don't." + ad_message = "waow" + vendor_category = MAINTVENDOR_CONSTRUCTION + per_person_cap = 1 + per_round_cap = 3 //limited supply! + object_type_to_spawn = /obj/item/stack/material/wood/redwood{amount = 20} /datum/maint_recycler_vendor_entry/cardboard vendor_category = MAINTVENDOR_CONSTRUCTION diff --git a/code/modules/materials/fifty_spawner_mats.dm b/code/modules/materials/fifty_spawner_mats.dm index 69ab4335b1..de184eb0ab 100644 --- a/code/modules/materials/fifty_spawner_mats.dm +++ b/code/modules/materials/fifty_spawner_mats.dm @@ -104,6 +104,26 @@ name = "stack of hardwood" type_to_spawn = /obj/item/stack/material/wood/hard +/obj/fiftyspawner/birchwood + name = "stack of birchwood" + type_to_spawn = /obj/item/stack/material/wood/birch + +/obj/fiftyspawner/pinewood + name = "stack of pinewood" + type_to_spawn = /obj/item/stack/material/wood/pine + +/obj/fiftyspawner/oakwood + name = "stack of oakwood" + type_to_spawn = /obj/item/stack/material/wood/oak + +/obj/fiftyspawner/acaciawood + name = "stack of acaciawood" + type_to_spawn = /obj/item/stack/material/wood/acacia + +/obj/fiftyspawner/redwood + name = "stack of redwood" + type_to_spawn = /obj/item/stack/material/wood/redwood + /obj/fiftyspawner/log name = "stack of logs" type_to_spawn = /obj/item/stack/material/log @@ -152,7 +172,26 @@ name = "stack of stable glamour" type_to_spawn = /obj/item/stack/material/glamour -//R-UST port /obj/fiftyspawner/deuterium name = "stack of deuterium" type_to_spawn = /obj/item/stack/material/deuterium + +/obj/fiftyspawner/titanium + name = "stack of titanium" + type_to_spawn = /obj/item/stack/material/titanium + +/obj/fiftyspawner/titanium_glass + name = "stack of ti-glass" + type_to_spawn = /obj/item/stack/material/glass/titanium + +/obj/fiftyspawner/plastitanium + name = "stack of plastitanium" + type_to_spawn = /obj/item/stack/material/plastitanium + +/obj/fiftyspawner/plastitanium_hull + name = "stack of plastitanium" + type_to_spawn = /obj/item/stack/material/plastitanium/hull + +/obj/fiftyspawner/plastitanium_glass + name = "stack of plastitanium glass" + type_to_spawn = /obj/item/stack/material/glass/plastitanium diff --git a/code/modules/materials/fifty_spawner_mats_vr.dm b/code/modules/materials/fifty_spawner_mats_vr.dm deleted file mode 100644 index 0b6e29ffa0..0000000000 --- a/code/modules/materials/fifty_spawner_mats_vr.dm +++ /dev/null @@ -1,19 +0,0 @@ -/obj/fiftyspawner/titanium - name = "stack of titanium" - type_to_spawn = /obj/item/stack/material/titanium - -/obj/fiftyspawner/titanium_glass - name = "stack of ti-glass" - type_to_spawn = /obj/item/stack/material/glass/titanium - -/obj/fiftyspawner/plastitanium - name = "stack of plastitanium" - type_to_spawn = /obj/item/stack/material/plastitanium - -/obj/fiftyspawner/plastitanium_hull - name = "stack of plastitanium" - type_to_spawn = /obj/item/stack/material/plastitanium/hull - -/obj/fiftyspawner/plastitanium_glass - name = "stack of plastitanium glass" - type_to_spawn = /obj/item/stack/material/glass/plastitanium diff --git a/code/modules/materials/materials/organic/wood.dm b/code/modules/materials/materials/organic/wood.dm index 91864aa908..7188873761 100644 --- a/code/modules/materials/materials/organic/wood.dm +++ b/code/modules/materials/materials/organic/wood.dm @@ -30,7 +30,12 @@ new /datum/stack_recipe("wooden sandals", /obj/item/clothing/shoes/sandal, 1, pass_stack_color = TRUE, recycle_material = "[name]"), new /datum/stack_recipe("wood circlet", /obj/item/clothing/head/woodcirclet, 1, pass_stack_color = TRUE, recycle_material = "[name]"), new /datum/stack_recipe("clipboard", /obj/item/clipboard, 1, pass_stack_color = TRUE, recycle_material = "[name]"), - new /datum/stack_recipe("wood floor tile", /obj/item/stack/tile/wood, 1, 4, 20, pass_stack_color = TRUE, recycle_material = "[name]"), + new /datum/stack_recipe("wood floor tile", /obj/item/stack/tile/wood, 1, 4, 20, pass_stack_color = FALSE, recycle_material = "[name]"), + new /datum/stack_recipe("large wood floor tile", /obj/item/stack/tile/wood/panel, 1, 4, 20, pass_stack_color = FALSE, recycle_material = "[name]"), + new /datum/stack_recipe("parquet wood floor tile", /obj/item/stack/tile/wood/parquet, 1, 4, 20, pass_stack_color = FALSE, recycle_material = "[name]"), + new /datum/stack_recipe("tiled wood floor tile", /obj/item/stack/tile/wood/tile, 1, 4, 20, pass_stack_color = FALSE, recycle_material = "[name]"), + new /datum/stack_recipe("vertical wood floor tile", /obj/item/stack/tile/wood/vert, 1, 4, 20, pass_stack_color = FALSE, recycle_material = "[name]"), + new /datum/stack_recipe("vertical large wood floor tile", /obj/item/stack/tile/wood/vert_panel, 1, 4, 20, pass_stack_color = FALSE, recycle_material = "[name]"), new /datum/stack_recipe("wooden chair", /obj/structure/bed/chair/wood, 3, time = 10, one_per_turf = 1, on_floor = 1, pass_stack_color = TRUE, recycle_material = "[name]"), new /datum/stack_recipe("crossbow frame", /obj/item/crossbowframe, 5, time = 25, one_per_turf = 0, on_floor = 0, pass_stack_color = TRUE, recycle_material = "[name]"), new /datum/stack_recipe("coffin", /obj/structure/closet/coffin, 5, time = 15, one_per_turf = 1, on_floor = 1, pass_stack_color = TRUE, recycle_material = "[name]"), @@ -58,11 +63,31 @@ /datum/material/wood/sif/generate_recipes() ..() - recipes += new /datum/stack_recipe("alien wood floor tile", /obj/item/stack/tile/wood/sif, 1, 4, 20, pass_stack_color = TRUE) + recipes += new /datum/stack_recipe("alien wood floor tile", /obj/item/stack/tile/wood/sif, 1, 4, 20, pass_stack_color = FALSE) + recipes += new /datum/stack_recipe("large alien wood floor tile", /obj/item/stack/tile/wood/sif/panel, 1, 4, 20, pass_stack_color = FALSE) + recipes += new /datum/stack_recipe("alien wood parquet tile", /obj/item/stack/tile/wood/sif/parquet, 1, 4, 20, pass_stack_color = FALSE) + recipes += new /datum/stack_recipe("tiled alien wood floor tile", /obj/item/stack/tile/wood/sif/tile, 1, 4, 20, pass_stack_color = FALSE) + recipes += new /datum/stack_recipe("vertical alien wood floor tile", /obj/item/stack/tile/wood/sif/vert, 1, 4, 20, pass_stack_color = FALSE) + recipes += new /datum/stack_recipe("vertical large alien wood floor tile", /obj/item/stack/tile/wood/sif/vert_panel, 1, 4, 20, pass_stack_color = FALSE) for(var/datum/stack_recipe/r_recipe in recipes) if(r_recipe.title == "wood floor tile") recipes -= r_recipe continue + if(r_recipe.title == "large wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "parquet wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "tiled wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "vertical wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "vertical large wood floor tile") + recipes -= r_recipe + continue if(r_recipe.title == "wooden chair") recipes -= r_recipe continue @@ -80,11 +105,31 @@ /datum/material/wood/hardwood/generate_recipes() ..() - recipes += new /datum/stack_recipe("parquet wood floor tile", /obj/item/stack/tile/wood/parquet, 1, 4, 20, pass_stack_color = FALSE) + recipes += new /datum/stack_recipe("hardwood floor tile", /obj/item/stack/tile/wood/hardwood, 1, 4, 20, pass_stack_color = FALSE, recycle_material = "[name]") + recipes += new /datum/stack_recipe("large hardwood floor tile", /obj/item/stack/tile/wood/hardwood/panel, 1, 4, 20, pass_stack_color = FALSE, recycle_material = "[name]") + recipes += new /datum/stack_recipe("parquet hardwood floor tile", /obj/item/stack/tile/wood/hardwood/parquet, 1, 4, 20, pass_stack_color = FALSE, recycle_material = "[name]") + recipes += new /datum/stack_recipe("tiled hardwood floor tile", /obj/item/stack/tile/wood/hardwood/tile, 1, 4, 20, pass_stack_color = FALSE, recycle_material = "[name]") + recipes += new /datum/stack_recipe("vertical hardwood floor tile", /obj/item/stack/tile/wood/hardwood/vert, 1, 4, 20, pass_stack_color = FALSE) + recipes += new /datum/stack_recipe("vertical large hardwood floor tile", /obj/item/stack/tile/wood/hardwood/vert_panel, 1, 4, 20, pass_stack_color = FALSE) for(var/datum/stack_recipe/r_recipe in recipes) if(r_recipe.title == "wood floor tile") recipes -= r_recipe continue + if(r_recipe.title == "large wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "parquet wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "tiled wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "vertical wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "vertical large wood floor tile") + recipes -= r_recipe + continue if(r_recipe.title == "wooden chair") recipes -= r_recipe continue @@ -121,7 +166,6 @@ icon_colour = "#6f432a" stack_type = /obj/item/stack/material/log/hard -//VOREStation Addition Start /datum/material/wood/stick name = "wooden stick" icon_colour = "#824B28" @@ -136,4 +180,224 @@ /datum/material/wood/stick/generate_recipes() return -//VOREStation Addition End + +/datum/material/wood/birch + name = MAT_BIRCHWOOD + stack_type = /obj/item/stack/material/wood/birch + icon_colour = "#f6dec0" + icon_base = "wood" + icon_reinf = "reinf_stone" + integrity = 65 + hardness = 20 + weight = 20 + +/datum/material/wood/birch/generate_recipes() + ..() + recipes += new /datum/stack_recipe("birch floor tile", /obj/item/stack/tile/wood/birch, 1, 4, 20, pass_stack_color = FALSE, recycle_material = "[name]") + recipes += new /datum/stack_recipe("large birch floor tile", /obj/item/stack/tile/wood/birch/panel, 1, 4, 20, pass_stack_color = FALSE, recycle_material = "[name]") + recipes += new /datum/stack_recipe("parquet birch floor tile", /obj/item/stack/tile/wood/birch/parquet, 1, 4, 20, pass_stack_color = FALSE, recycle_material = "[name]") + recipes += new /datum/stack_recipe("tiled birch floor tile", /obj/item/stack/tile/wood/birch/tile, 1, 4, 20, pass_stack_color = FALSE, recycle_material = "[name]") + recipes += new /datum/stack_recipe("vertical birch floor tile", /obj/item/stack/tile/wood/birch/vert, 1, 4, 20, pass_stack_color = FALSE) + recipes += new /datum/stack_recipe("vertical large birch floor tile", /obj/item/stack/tile/wood/birch/vert_panel, 1, 4, 20, pass_stack_color = FALSE) + for(var/datum/stack_recipe/r_recipe in recipes) + if(r_recipe.title == "wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "large wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "parquet wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "tiled wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "vertical wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "vertical large wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "wooden chair") + recipes -= r_recipe + continue + if(r_recipe.title == "wooden standup figure") + recipes -= r_recipe + continue + +/datum/material/wood/pine + name = MAT_PINEWOOD + stack_type = /obj/item/stack/material/wood/pine + icon_colour = "#cd9d6f" + icon_base = "wood" + icon_reinf = "reinf_stone" + integrity = 65 + hardness = 20 + weight = 20 + +/datum/material/wood/pine/generate_recipes() + ..() + recipes += new /datum/stack_recipe("pine floor tile", /obj/item/stack/tile/wood/pine, 1, 4, 20, pass_stack_color = FALSE, recycle_material = "[name]") + recipes += new /datum/stack_recipe("large pine floor tile", /obj/item/stack/tile/wood/pine/panel, 1, 4, 20, pass_stack_color = FALSE, recycle_material = "[name]") + recipes += new /datum/stack_recipe("parquet pine floor tile", /obj/item/stack/tile/wood/pine/parquet, 1, 4, 20, pass_stack_color = FALSE, recycle_material = "[name]") + recipes += new /datum/stack_recipe("tiled pine floor tile", /obj/item/stack/tile/wood/pine/tile, 1, 4, 20, pass_stack_color = FALSE, recycle_material = "[name]") + recipes += new /datum/stack_recipe("vertical pine floor tile", /obj/item/stack/tile/wood/pine/vert, 1, 4, 20, pass_stack_color = FALSE) + recipes += new /datum/stack_recipe("vertical large pine floor tile", /obj/item/stack/tile/wood/pine/vert_panel, 1, 4, 20, pass_stack_color = FALSE) + for(var/datum/stack_recipe/r_recipe in recipes) + if(r_recipe.title == "wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "large wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "parquet wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "tiled wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "vertical wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "vertical large wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "wooden chair") + recipes -= r_recipe + continue + if(r_recipe.title == "wooden standup figure") + recipes -= r_recipe + continue + +/datum/material/wood/oak + name = MAT_OAKWOOD + stack_type = /obj/item/stack/material/wood/oak + icon_colour = "#674928" + icon_base = "wood" + icon_reinf = "reinf_stone" + integrity = 65 + hardness = 20 + weight = 20 + +/datum/material/wood/oak/generate_recipes() + ..() + recipes += new /datum/stack_recipe("oak floor tile", /obj/item/stack/tile/wood/oak, 1, 4, 20, pass_stack_color = FALSE, recycle_material = "[name]") + recipes += new /datum/stack_recipe("large oak floor tile", /obj/item/stack/tile/wood/oak/panel, 1, 4, 20, pass_stack_color = FALSE, recycle_material = "[name]") + recipes += new /datum/stack_recipe("parquet oak floor tile", /obj/item/stack/tile/wood/oak/parquet, 1, 4, 20, pass_stack_color = FALSE, recycle_material = "[name]") + recipes += new /datum/stack_recipe("tiled oak floor tile", /obj/item/stack/tile/wood/oak/tile, 1, 4, 20, pass_stack_color = FALSE, recycle_material = "[name]") + recipes += new /datum/stack_recipe("vertical oak floor tile", /obj/item/stack/tile/wood/oak/vert, 1, 4, 20, pass_stack_color = FALSE) + recipes += new /datum/stack_recipe("vertical large oak floor tile", /obj/item/stack/tile/wood/oak/vert_panel, 1, 4, 20, pass_stack_color = FALSE) + for(var/datum/stack_recipe/r_recipe in recipes) + if(r_recipe.title == "wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "large wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "parquet wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "tiled wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "vertical wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "vertical large wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "wooden chair") + recipes -= r_recipe + continue + if(r_recipe.title == "wooden standup figure") + recipes -= r_recipe + continue + +/datum/material/wood/acacia + name = MAT_ACACIAWOOD + stack_type = /obj/item/stack/material/wood/acacia + icon_colour = "#b75e12" + icon_base = "wood" + icon_reinf = "reinf_stone" + integrity = 65 + hardness = 20 + weight = 20 + +/datum/material/wood/acacia/generate_recipes() + ..() + recipes += new /datum/stack_recipe("acacia floor tile", /obj/item/stack/tile/wood/acacia, 1, 4, 20, pass_stack_color = FALSE, recycle_material = "[name]") + recipes += new /datum/stack_recipe("large acacia floor tile", /obj/item/stack/tile/wood/acacia/panel, 1, 4, 20, pass_stack_color = FALSE, recycle_material = "[name]") + recipes += new /datum/stack_recipe("parquet acacia floor tile", /obj/item/stack/tile/wood/acacia/parquet, 1, 4, 20, pass_stack_color = FALSE, recycle_material = "[name]") + recipes += new /datum/stack_recipe("tiled acacia floor tile", /obj/item/stack/tile/wood/acacia/tile, 1, 4, 20, pass_stack_color = FALSE, recycle_material = "[name]") + recipes += new /datum/stack_recipe("vertical acacia floor tile", /obj/item/stack/tile/wood/acacia/vert, 1, 4, 20, pass_stack_color = FALSE) + recipes += new /datum/stack_recipe("vertical large acacia floor tile", /obj/item/stack/tile/wood/acacia/vert_panel, 1, 4, 20, pass_stack_color = FALSE) + for(var/datum/stack_recipe/r_recipe in recipes) + if(r_recipe.title == "wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "large wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "parquet wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "tiled wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "vertical wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "vertical large wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "wooden chair") + recipes -= r_recipe + continue + if(r_recipe.title == "wooden standup figure") + recipes -= r_recipe + continue + +/datum/material/wood/redwood + name = MAT_REDWOOD + stack_type = /obj/item/stack/material/wood/redwood + icon_colour = "#a45a52" + icon_base = "wood" + table_icon_base = "stone" + icon_reinf = "reinf_stone" + integrity = 65 + hardness = 20 + weight = 20 + +/datum/material/wood/redwood/generate_recipes() + ..() + recipes += new /datum/stack_recipe("redwood floor tile", /obj/item/stack/tile/wood/redwood, 1, 4, 20, pass_stack_color = FALSE, recycle_material = "[name]") + recipes += new /datum/stack_recipe("large redwood floor tile", /obj/item/stack/tile/wood/redwood/panel, 1, 4, 20, pass_stack_color = FALSE, recycle_material = "[name]") + recipes += new /datum/stack_recipe("parquet redwood floor tile", /obj/item/stack/tile/wood/redwood/parquet, 1, 4, 20, pass_stack_color = FALSE, recycle_material = "[name]") + recipes += new /datum/stack_recipe("tiled redwood floor tile", /obj/item/stack/tile/wood/redwood/tile, 1, 4, 20, pass_stack_color = FALSE, recycle_material = "[name]") + recipes += new /datum/stack_recipe("vertical redwood floor tile", /obj/item/stack/tile/wood/redwood/vert, 1, 4, 20, pass_stack_color = FALSE) + recipes += new /datum/stack_recipe("vertical large redwood floor tile", /obj/item/stack/tile/wood/redwood/vert_panel, 1, 4, 20, pass_stack_color = FALSE) + for(var/datum/stack_recipe/r_recipe in recipes) + if(r_recipe.title == "wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "large wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "parquet wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "tiled wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "vertical wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "vertical large wood floor tile") + recipes -= r_recipe + continue + if(r_recipe.title == "wooden chair") + recipes -= r_recipe + continue + if(r_recipe.title == "wooden standup figure") + recipes -= r_recipe + continue diff --git a/code/modules/materials/sheets/organic/wood.dm b/code/modules/materials/sheets/organic/wood.dm index 63f4f3a1c8..f7fae829b8 100644 --- a/code/modules/materials/sheets/organic/wood.dm +++ b/code/modules/materials/sheets/organic/wood.dm @@ -1,5 +1,5 @@ /obj/item/stack/material/wood - name = "wooden plank" + name = MAT_WOOD + " plank" icon_state = "sheet-wood" default_type = MAT_WOOD strict_color_stacking = TRUE @@ -9,16 +9,46 @@ no_variants = FALSE /obj/item/stack/material/wood/sif - name = "alien wooden plank" + name = MAT_SIFWOOD + " plank" color = "#0099cc" default_type = MAT_SIFWOOD /obj/item/stack/material/wood/hard - name = "hardwood plank" + name = MAT_HARDWOOD + " plank" color = "#42291a" default_type = MAT_HARDWOOD description_info = "Rich, lustrous hardwood, imported from offworld at moderate expense. Mostly used for luxurious furniture, and not very good for weapons or other structures." +/obj/item/stack/material/wood/birch + name = MAT_BIRCHWOOD + " plank" + color = "#f6dec0" + default_type = MAT_BIRCHWOOD + description_info = "Sturdy hardwood, birch makes for beautiful furniture but also has many secondary applications. It's also an exceptionally good choice for firewood." + +/obj/item/stack/material/wood/pine + name = MAT_PINEWOOD + " plank" + color = "#cd9d6f" + default_type = MAT_PINEWOOD + description_info = "Planks from tall, fast-growing coniferous pine trees, dense and mostly used for construction or furnishings." + +/obj/item/stack/material/wood/oak + name = MAT_OAKWOOD + " plank" + color = "#674928" + default_type = MAT_OAKWOOD + description_info = "A sturdy, fairly common hardwood. A good choice for furnishings and structures. Oak barrels can be used to age alcohol, whilst oakwood chips are often used for smoking meats and cheeses." + +/obj/item/stack/material/wood/acacia + name = MAT_ACACIAWOOD + " plank" + color = "#b75e12" + default_type = MAT_ACACIAWOOD + description_info = "Vibrant reddish-orange acacia makes a striking statement wherever it's used, and the bark of some acacia species is useful for tanning leather." + +/obj/item/stack/material/wood/redwood + name = MAT_REDWOOD + " plank" + color = "#a45a52" + default_type = MAT_REDWOOD + description_info = "Blazing orange-red redwood planks. The trees used to make this can grow for centuries, and are often protected. This wood has been sustainably harvested from special tree nurseries, rather than chopping down ancient giants." + /obj/item/stack/material/log name = MAT_LOG icon_state = "sheet-log" diff --git a/code/modules/tables/presets.dm b/code/modules/tables/presets.dm index af589acd93..39cfd3cced 100644 --- a/code/modules/tables/presets.dm +++ b/code/modules/tables/presets.dm @@ -60,7 +60,7 @@ /obj/structure/table/sifwoodentable icon_state = "plain_preview" - color = "#824B28" + color = "#0099cc" /obj/structure/table/sifwoodentable/Initialize(mapload) material = get_material_by_name(MAT_SIFWOOD) @@ -204,7 +204,7 @@ /obj/structure/table/bench/sifwooden icon_state = "plain_preview" - color = "#824B28" + color = "#0099cc" /obj/structure/table/bench/sifwooden/Initialize(mapload) material = get_material_by_name(MAT_SIFWOOD) @@ -255,3 +255,44 @@ /obj/structure/table/bench/glamour/Initialize(mapload) material = get_material_by_name(MAT_GLAMOUR) . = ..() + +//new wood types +/obj/structure/table/birch + icon_state = "plain_preview" + color = "#f6dec0" + +/obj/structure/table/birch/Initialize(mapload) + material = get_material_by_name(MAT_BIRCHWOOD) + . = ..() + +/obj/structure/table/pine + icon_state = "plain_preview" + color = "#cd9d6f" + +/obj/structure/table/pine/Initialize(mapload) + material = get_material_by_name(MAT_PINEWOOD) + . = ..() + +/obj/structure/table/oak + icon_state = "plain_preview" + color = "#674928" + +/obj/structure/table/oak/Initialize(mapload) + material = get_material_by_name(MAT_OAKWOOD) + . = ..() + +/obj/structure/table/acacia + icon_state = "plain_preview" + color = "#b75e12" + +/obj/structure/table/acacia/Initialize(mapload) + material = get_material_by_name(MAT_ACACIAWOOD) + . = ..() + +/obj/structure/table/redwood + icon_state = "stone_preview" + color = "#a45a52" + +/obj/structure/table/redwood/Initialize(mapload) + material = get_material_by_name(MAT_REDWOOD) + . = ..() diff --git a/icons/obj/stacks_vr.dmi b/icons/obj/stacks_vr.dmi index 34d49af81bcdde7f5afe0af4e6eb366d69a0fdac..88ae79f9acb4c10c4a356b3eaed7a3df338f7b7d 100644 GIT binary patch literal 19718 zcmbTe2RPP$A3u8AdrLMUn`9H&BV;9nY)aV)Wv^sslWdYr_TE`ZLRL1}$qqNp`+lDP z`JZ#0^FP;h&bcm+pXbi~y}zH&=RIEI{S~IIsX~NLi;qAci0-K>>LL(m@FQXY7aP8B z%hhYc3l^{S4BZrMURb%>IlI|8IU*3AAJP+s9D@W%v4{Us>bq(tw(0K#s4MBYsG6cV zL=foHXC2F%w&AFSCF(Z~66Mj@A^Z1rTNvj)$E(FW`t^M6{)1x09j2cyZX#Iv+&WDT z^be;Kt`W;HqSdI4bs88g;}gj{G!C*v<1aU>jj>1HWiUDXdqI-nl;0W6RZZ0_u&Hkm zibXEwNU26JH|)~gMD+8+9$S>hTnSA>smR!U0!EQc>q8CR#|Wj&10MAEI^_FqLtbl} zRdW2vyHhI^Y2LQ+x9nZ3*mc~#KlXp|&n(Ub8J3TeV)!~REMFzX@CzYRZAVpycNhDH zv3T6!1>L>Zld;};F-|3>kJCOHCLXf75eR8gEgbHlH)EZQ+kJU?t`PSz>b(G2RQ`P4 z9R=FZFRpVR+bb8;EZ$=ogwJ5#BcFI4`Z?{`>g^BZC(5awP3>t9@0HZ+g+3_yVMXPK z@v4{h-9!JnSpgCiW{E5v!($zg_$2o1oj%%Wo*ecSOyZD=E51qpg@7C)=MlHSN^Tv&82dDux-U zs^xK(EwTSm(yu%|N|X8bZQOt|dAcu0?*s?;q2)uLHQzyrlMgS3rDfzOm7JZOS2(O2 z7!f!)Du3FE5I8D~3b9*g^tRp?&&{-W?w*a9U8wdQ8}5@G)%5;oyj+gIb$X;l{tL0~ zU+%ZFwM63gufXmqi7w!)wwad(vSs%|bGmI+nOTC(2H`4A@muXu>+1N)%;m*X9|pw2 zWdHKE(=8k`)DNB#|5zwuXILhLEXr1{R-VYr9`6!G5h47oj)>rwdR3fDTG8M?f@BSR zb8BmUS{U!PQUxaV@$N`RHuYl*`r)FkZ*+HYB)8RJewUrD?-%as+3Aea>AhEoh77zH zd{-PY=UlF*q${u4zt$jCV$R;FvmTDNUC^}dxA{t}&RY|lbII(`x63tk1e*+XH;Bp` zyL@*PxM3jVQWo|7#P2T#a#rhV?V!|8#x*axg^4b$J(l(5)2H_0HyN}ngn*KO_#z`i?Ys8B~fs2W7M5Q@hXcVbrw%xYX3GM6W_d#!Sx4QL+La=D*Zu^9FI(Ye+>?L z-bdt=X=oB7ow)cahlI%~MJ&-Oj;;WrLH{z{cIiT|F`eA=^b_*VQ1^ME+nt+#T@xuJ zcn5ANu@8{2*&%-DT-xh*>Dy_Z;}Hba3w@*QPAXPdB2 z{XA^JL+*!ay{eKp?~3+!Pc*!>8Sxmz43u$YjRxB0h4$oLvAO*+p~=?!TgHXj1jLH+ zY5soxm5k~tj_dPa*FvQ3>5nU>ynT!Y5&3@qgsUw1;PeC;dg21N4|zOjFY=Mbt4!A7 zEItdU<2K>C(m%zai7t_tnDQz^hN&u_78h-MF>-KWI2$G~iPt-?sQ4YRT0CccV?upn z;V-9*v-4u#zZG?OB@SNUx=b!djz0ESVo*$x6QGUSEcJU(Jdf;Otms07ys!wy-H@7@((L?*uJZ7v{37Ycf+r`!YF@PdJGS!74I0lyYuo;aQaJVa zzGiC>l%E+2MhM)NNE~w-rD~2qns}mKyd!qWE8iLaGhOnEl4#CztFohq02TAtN&%ko@6PLC^MnFE+Bn%SV!W!_p_|+)bjUy z)vLZc6W7EI7F8i#E#%5NW8ocLf%c)SolVL_?$naij@JzwhJ>9wMpWLYxZX{(4)6M& zU0+svR@!!bvIOsH{u}On4b9bGX#b!Eh z9&KTv&&nC2y(6}F0oy-_HD>SIINAz9t!?AUfO)~04>7Sh2}XNzlWWipuEdGa+4P_D zU%1ZOAq+&aWsh|5Q1$5Mf9eq}EggB$l)Gj3>CWyYKkMM+869!-Y(+67k^Y#;aBxGC zjG$DY$eQHLzk`|ii&+O77TuZ$V*_mSH7zz?}X_aXnQlrl%d{jdK4X4`1g$>JsRL?qR>n)8B{IwYdWiMC|&Rbf3xK@Ko z-u}Ie&N^wLByvL-r?zbSG(ZaoYGYm&Bu4+YnEM38{#wFZ!VzPh&PfXGaNx0 zrkJJ2O%~CE8JbJJ=Si;|Po^F*SYgEX$YJOM&ua2OVR7k~?O$6CiA)IFHPhV2fq;?9 zu#yl~%tA6<;!q}P=`J><5Y!6my~y5$$Sc^-3HL?r0X zc}!2+>6VQ2ckz_L;S6M?dceI?)>u_}rv20n33>_L(2kDlkDe!^J~FT~Ha)@5(J_Mt zcf;v3S+u=~{HV|ijnmu_&h2CT66Q0r*K4txL9cZ zuy14eK>KPN-<9!`;c$e2kW5S_->m{RncN{+-Bm5mf3|B2pNhJ_ezj*0ohNJ1_2q&_ zHZZV{xjIksT`*Jcv@W{K^wC}t*#PB#KE-!yX1@Jk4h{L4q~6Rd=KQ(3xXTiz<_GbB z9|LL$zs?3)U#2YX&-Yyk&00k=#j{QyQ3#8Q=2TXaMena zl9~}@lrCv7WhzcMKw_@4nwgdss+KSH?l!dFDson~G!Va2VOnmxR>|bCNP_saud=V(deW4+;I~B47h~GVMEGs#ha+EMW_2f=KT|y)b1Nxeo9Ibzki#uUcYbJcC_Qf{P)w9 zY@9jf2H}U8{rrDF>)HZlZYvnwYmb!jFCDlQ?=Ve~FL++*C+KOGVAe?BQlKVdUcB!V zt#BjRiNF7g)gzig)0Fq`JD9FUNKnC;KNmx?y;wj~e^+ajB5$JYmeMMYpfKXaiv#qA zi##NEK6$05RD4%!2%xiLJ;$>T`6LCwHlRSf!e_ZofY1?g2 z`Dp@oqO^OiJ6_SjL8C1?Q>*2(Sh03j3K!#DSX z9qZt{F9z(%Xryfd@|HgVfA}3t_;HVoWm55B*;FJuX82x>h9X2Ck6e7Qh`VJ>$eN^Z zIwg7aSlWNb@Ls+Eb)?h9PDH915dyGU24RA~tWb7!tuz{m^1e`VW&+wI7d`I(z4faG7I@#WPsiJEYPxts z$)0wBaDN}>L7*})s8&T4y)uC75ZXEy6Y?Utjm`1GxUqM6{{@eXjjOg@afP09iSG++ zF9YK@54;5M`C89b%k$`?^Jd;Zf9@rK@EVwRq?fhj`yoCjlUGBSQnX)ip4RooB!u-& z2u8y|m~*p?Y6PQ{8J+?$h6%K{xm?+GFpmOyjyVoBg-# zcT5FHi0@PXLI7|2U!a1H|1hW^Is|dF6t) zOohh@f=D(_d z%Oje#kn4pDL0jCOw%^*EimXDmznzdME zZbx_{#A8}|E9d_gcafOsiu=yNci%(Kw`6r9OY)@n@39Z=ctZ>Vu_!%P{Oy9L+vpM} zd3crS*{R)ibeo7wCS)~1K+>B(xpcD33aBf!A}=#pejQpJ z`)y#&?X)0UDcb8AV4uDZXw4wL6C!V8|3$6Z52+%fC`^QU$0g3hLjn3z=BRm}?$sBk zp+>%67-c^qS9SxDyH_DNZDBFTCGF_`vZI-@=YP|-JAY-(7HtSP=3pBns)0T@n?%&p))joQF>|SlLK~06JP$-38oe4e6??O zg@b7S+y1L|K7V-QdFU1OqhD#>V*9v$wqKc85tqkS$+awD&zAQ3vNGqfPn?CN4VX z@1~$5e#J)pIcr2^kIH9NyK4(~+AfR#5sO-tw3spxMHdLavtGqO_)4Gr-_z?v;cm}F zmO;YKKgqvg9#^Zog3;Ei95#ret3OUzZ3j<04=4OcF3OSQi1xZ(FKPd0G1uBj;%ISE z`KEtrc3DH+x?jwVJXE;VxGp{8>xO>*RX;xUVFJnnFIOlZA6@oZ3JH7eu@@zNW zH`C$2$LP1pdd>IDLVV){5-4vI(Rw&|RrjyF?PxJ$ekS}1*~_%J+;%GW<#{$Lmeo%U zG?8!q-Ez2MU!A{5J&?(MvQ9!$gUpln|00xF@AmobDw>-O7u_IaWAyjKy|cYn9XWOjK3}dF$5h{2dXiIsb?}zbTVHBzuqPh``!Q z2(^!EYQB;$FQ(=QtC{vCBsfvICx*HBe_^NpkA3L>O;RckTtLq{ri+h{w`3!i6QB-O ztC`vnWsG5Ej8P~Uy+KWAX=Q~`X-F6n5(3?v6ca5mG0|BvUEFm=^=FvGyaDiJm-ULu z%7FcS*S9%u0|U{!EpPw3@U^$MZ?_hd%N=2+CS)PSl`WpN_g!>vx`B(19v~a7a^)C6 zhlqB#EiKK*f9n=}5*ordSxlbPIVF*zx_ro>I|(g^rG1rf9HpCaPfu z$%&_Hez@x+xpTn8$Vf#;OG_HlySF~Vx_2x=>4_twqQW}NNpm<+zd(vf9i`06%iC^QDVwd$OdAC+vQiVGPYNfw zHb}9us#4R^l1C}C=8SMkF_LJoQ&?6~!xu{|E-w{9U|AvPI)NL=H| zJv#rBM5c?1K_+^7%7}=F8}a=Md!FQXd01BTavrtIG^5v*>2K)ozo(O} z4X2sa+$^>FTw6~MvwR`~qAFJ13!`UVE0cl{7>FtC0@6O-<#swb7r&5<8Jvb()}ncdRD5XdY`sRTbSc85{C?On#j z4x(mc{4!o_a9c(uGuFFQp8&*#?CcwqR8%aCF+!{>t_>+szraLV$eeOgEb1}zX?d$8D*f=<3VT$I$w2RK-0x~irEv7Lb7U@tvYTiA1tz&428_^TE zx@tqks=`7B*_J0oJWvRWvh{rJCF-bM|ID|MgmwiuixXxJheFJlw7k9sW#i6(>Z@z!JTeUl z1KF9`}gmE{fR|G1QPHF%dpO*U4LgViQG#2% zyl`5uDvkU1vkMEu_|OKd1)tU!!PSoaAPx|o|Nh<>7#z&jFMhzNA}5E&siKVUcXnt8 z=PF+?YT@WeOcjAO@|04)IB}d6%6AgyS4=n4_K&wEU+uGAl72HIqt5<#4wv0IX<;!jA*=*;CmTT; z2!UuO8Dcro@3XT}aJfj^ELFBZ=or6$+e-N&skJii+VGbv=USYGKtCzf9~9hAD6BIo z)h-^liwdxHOjHXQAAhK)uWt#rYhz;rAz)B$swBnu1pDniMM6v#+b0e7uAYeNmG$+w zbu;Pv;!x?~gl`K920|%--TwOZtGR^*8oa9q0!K6RZq%^M6@5)j&DVb~p*S3FjBdZr zi-729n~%}vOd!34SUo&Cx&gTWtp^$nRYZrqXxG|7$5Ua;SFdQGD1UX{2?meh{A-Nw zV1;_+}ObhX`zjG-Oo=BA-WrBDL8A?^=f zOGA@4Ed(93l@{g%DME2fLEp+)NLW4}^kf8WAM=wQJWP-*{yz8Fcp% zZ@rK_Ooef;GaXiPkw1RuM#jWg+1cS4m5ScD%$pLUCsu%dOo?ClRlGtX{v$!bXc(X% z_EE>W+@>ZvxOj*LyH&r6`KTeO>gn!WOWLuTA~Xcf@Tbq7bwb(0#>O`MF$_KbsW1yw z1Yj-s@(C*k2cnxdZ`w;#x3)4uPk}O?uUl#FE18m+`DBp@B6Z02w?$-Rr1{I2*VyC3 zZmvLkZ@Qk!Ode+L=ormscYJb^o1c#b8zv&u9Q^C{+5VB8cViU$B(1v`O!>W9 z#NJ%_@xS*eECf@tv^l>|PvaxLCPwuxYc#BPa5$AUG|&hM32Eqz28=)J`Tm{sMe*}z z&kTD~r|fMRLjisauUR=30fI6uf0F10A80ehpG=^ZPY(SRa3P{y{~C0p%F0SKKovDc zQO@FD!{2em{ebR)RmIuP(@kEMO`O5uY7fYCq}h>FMY^K~26jvNas z_3PK>m4=2ExT|P@e!cIS$^YWwiyi9502l*ULj^j>{=Oij|KEiUjOyxYwlN0WKvZ>l zDm<`Btf5C>T&VczAeFYy|id#2^&l2aEu3dY5}+rUXlrb2}h_;o<;Y%>}5*r37+E z-a=igH{q{+#YF)$300n9TiE0AAR3-NeJTrR5poBr_4Lfl;>o#%0JVUq=$A-Y0M>uz zS|T9yA17Nq@RgqvLs1$Ts)%ej`Rs2kaAQ!(1_uX$*q93i=@wd>2AG!jLP?r-6`>^p zf^_!^`2w&KAS_`KksGv8?A^cga1|MGdlq(fb^!2UIB=?AjgOC`BgTIIT-q2d$eDEn zegx&57CPzP{;K+iJ08(DS)uno!d1L2a8qITS3?jK>$+ndHjEl0qO_qek?O*(_P6%rZZl1ghl+>KBL1?7V^AmB?ctASQ+r-;WvJ-@VTa zWec_yg`%NQc2v-m>24f4n#$^8n|mMDzT=fSl|eFvwW5gQ}hk1EE=1>5pIk^XCgJ>PJyvLg(%Ys>;Ek0FW!8jg`8?T_>8V zfj9V0vp}fB_}37H#x%xc%uY=qv)O8~9ybaBD(8~5w6yTfO7*J}Hkny7dN;HSf84n zUQu10z+a4{px@f^o;W@prkt#S!F2#Z87`q24+=CZ4>I4sCs$WfL-_9~C-AGEL0h?g zy=qfd&=A^cDZQ+NL#cq26mNLWTL3A+maI_EWtrPQA3)AQmJDY|TTLu=h7i!qHd*yX zqf*8apfViaUd+|Mn5RxoPu6B;W+EW@6v`(6WiE|s$tb}Z2hnER{Fo-n9?u;8YCv0< zq=1WETwFk^w8wL38B!1edKRJQyLi=NT6_B~p-L^V1s=}^?^D5ugM10x4G#xVx<9i` zp>N*2sUFOEP|DCJ`t5@RD zw9t1G3SMKdI2hiq!M%)7UXfD9EtvVBxDDo&WIy&63j!rZ!s%AdtV$Ll?vw#Bh zBwS2%sPmDGcj%CZpdgS1h@H>d(FweqC&NSo2m~i(R7#btjSF9r>HIv#b~xDBia{Oi zjby$5(VD(!vdvy{hqG9H!>ZsAaTf&g6~?)0_EwRlWIo5J^vl<;gj-zzK}aKdw2h43 zyQn+M`}wu0{tDgm{NO_IU36WQt@9sVq47HyqhcoY=M4ASTqtWo3u8*B^z!zmCn6#O z#S4T45Go?+OpC`YEiKUjCq}aJLG3Lm;oXT45Eh2&e-m;1w@{B8dIm7noZ4EdcH0RG z;Pp^}LHYPeA|3yc5H=e`4U1q(*oQ!70j$i74CRLpuRU)N1|FBL+1ohwb!f=O8WW{s zD6^0O^cQU8o1VWfeH9)N0qV`Y<`bE;0lHhxo9P8`*#DVP0OF7`a=}DHL$>kj z({S6!QxrlqEmvV9x5(pFoLW6OpXy#YI29D_Lq zm|hU}KwAPb3Og)t=T6hwL9(90J5WbJw95u=t*)*P2Mn7CauR?=_$s-98B0z2s^{z1 z$P{iqArNbzGFe$$V}kNw@$>RvSVqOliq(IJN*nk)O7NJ$xCCtgs8!d7+eg+UnEK3x z3!nU%?Sj^ln|1sjQ4iMdd2uGK*^6t$5Ug4mDV1ABPEG{mNx(arQ@BMlDfsEB^E%k(38;v5LTKn=n>g;3uMx4?e^W1W$3(1rw41JqUf-C zKv>jFOuZol*A1Hv06E>pudk^Q0X;AaU>gael>dKJ8c*HFVICp~P%Hk2HVTY)i&9;P z>7~UDwP#RCfJcG`F*Y#)8z^6>XZh@zTApTkp}(#EW|d~W>ni^9M^PW#r8iN>|WeH9Xkk`mO6<9k3%Rls}AJ zX-!AQzuxa%b}?!7rh!1F(TPV>Wv1ie)ZGc)I;?1YZn z?Ix8Cy`jtx8ar?Tpm-3I5d8m(g6={hweqQ^#?wDP(}NB8Jrx{QqX{b z1AKm-ug&>G7oBSg`{hhx?PXG6YSE;mKtxrSYpk} z2nGh3tzFR?e6lXC1}v)B+S+Sz!bC4Dbk+B;*fa zgwmC@K8VNeAMCm|Kx3H1{G`nZdeg8`X@f~waP9K|S$`VMA5pUvTigigKB&_@Jw1Q| zIJvmw?CiL>xw)anm=rk z#?#NzWZ%fDQK|`%S4<6wKOl*;Mx>oo<>m%G_8X8;-S`nEo%+Y%!2_TcOaw#^uxNxg zk9ly>q56ST0UA4m64XstG5lYMJp#JHfdSYqC>XfrFW8x=sZ|>;sK~Nai5x-DO>@iN z`GzHDKARoJV}5J<%uSb<6&Kx0OL~b28v`~U1+))09snrHh3$CV!YC~*&C5>=k|I<# zYr#hYK0mA~sUgNU5|nYMzouG1mH^XeYis*MyyxcRpaTU0 zZ9(DweIgL)QJOeVv;i0gOGq&H_LkcD(+4;Ax+UYjB-HX))!>_qVHmN^x@RAnk6S8= z(U_mhUwjWE%_%J83h-Xs952Qz$%AsKBtWeQ=ML@?EgcMt+00|Rpa$_KvsFX(9GYw z{h};|p2N8WX${2|KqgmA$L@&`R>2k{acF9GZdlSEl2yzV*H^k@+fDD4K{o_X>I(uQ z3qlIgDCG`R{u3%QY3W1TDjK*W!$*%Sq^BPQK#>DR!JIre6-QB%4JtDnJ<3lwJQRj4 z19$EB+S=ltr=Y&C`GZtO8Q(~d!9ZmtBqCY_6mGAa9eJlA6@Ya8>mzRCkDDN~fYJ_p zVKmN3Fcn}CCP)HJv&03X{msPry8WH$;F!h5k;6uc9u(P(vpOH%`4Hp)wAPXaHOGo88SD@rjg}MN2368aQVbwT(*~m0S2flzIo1W?yFjc0CxBR3I5@4S zs6d2vp(PK7fYt>4z7woDz=dFyqU6l}8GKOWLFoc40YGILBz3&73eaP}4iBSH3#1wJ z0nl;*&?+e@eJUzK_pg3I24J{1hN%~cl=32dd!2YPl4k>qIcw;zP}J-no2r@PG219u z3)9jR6W>QvWB+k&FpLYk8&6fpNg4i_#x5=Z45xed@IHS02({K_>nERknXWu3my$Ra zI|9Ob8Dw-jjvziN0w_|TA5plH{W!n3pU=Z4%&(@5k=Fm$trG#}maD{yh57*+P;trh z=vVaM(24sZJ<%T{9Vf>TpoR!c7dA9V*j|9x6;o_bj^e#XTN9wFfvO5n9)4LI#gsre zbGLY_7s&lHE@b>!KA|Yc87PgYX*RmG^)3hyw{yBHD{n(qP42jZB!Tj(V5ev*m(kPi z$r^oo1(ga>vBY66GWvsRQB1`!LvX-qx<6O{xqA|hCzT!S}@5+duJ7ty!y z=EuiFPzZ#rv8f3Lnr|jGy*fMOGBPsKW#0hk3ESO?vh;rb{9>YmfL>+cBE!X6aq8?2 z%pUH{%KeutGfEwTLelKHht3!i8XJQ!|0BV7j+SP@6T;})@L?Py4{U*$_wQ-pNSF7P zd+j%BK=K7S3(rO3?-%NK`y=yr?%c7cn;E6W8Cr6)-wy^zI`u*|;~f;vM1O0}lg={Q zB{)Ev#{kr*sHhP3`@`{x4-55BN-Ee!O?b(-%ru#ur2HSS?0++ZVKTAR1GfVL7Q{Jfw?T4+5G^S!y-j`}(g65p z@*q}}au;XICF_Z#ZC?m;5VS6@<2^j z4w$si$Apxb&13a0lq{*Cq0zo|1U?yi=?ji`bvH{#3 z`lFR|LH>o}!rSD#GhI{XdLw}+XH^v+4N$P-ulkNY{RbgqO|ev_Xiif0xg#kH*(i;; zsEC{Embn2&7W5xcQEY&*aMJJ(fMG4&-IFR~RkadudAVd{HP|WX@+B#Zc&T8EY=`<7 zavm8%<^hj*Qc|5zty?_KE0>Jdm!*^H0QRg^T4_m%^|eqRA0JSVfFG&Ax>%nfx2uMo zH^&OAi4f9%QKxJOC>s^qC9U$sW9*n!T;4Ocu?ZQEEeK3ZyarV5 z^J-pchz#cIf9rQg&)r@yVd_3>Fo}jJar5vHT4ikjO!aj)h^s-3c@YEX`44l5LkPA4x#K-N$YQTpY? z&#j}+2W+_-H5kHWpnibZ1JegAtG8i<0-!Lca7(|3(ljy|r9Az?ebPsp0s$X9Iw0So zWE{&byR>ZJ;p!O}SV2*SbB3jZ?WznOLQ@Cy(QoN@;1#G=P!M2INYf-lsxhiz5<2cm++;IcA)g!voI_rbuJ@V1T+&gaJtqCB?frTS^4R-^VR zP3ZYvqXf#&)^rG)4)|Qr*maKD96N1c11iAtUZ$M7KM!F~M(exUT;Bb6? zk@ff$2muTX3@EGkh2L9}bjL}UKtS^!GCjP~o3OHrSWOjrGD&U?#RW`m@+2?d(Bx`z zw;neJL#pWWf8Zy?#yF7b8&H2iB+SE2iJy>^^qEbIlhSg^85BR@5!EZBKh56H7Pk5y z-v#3s(i)|(Ejp*%?BzsL%`k?Hg}V5|C<%ln-caT!6+Gh>G#yHq)Chq8Me?Bao5vRO zlw#eu$q~Y_Yh64cUvpz4FfxM@JaltBS%m$D)|t=7=M6~j+Y%C~N!~#n{@|IT$om15 zVK~HKm{9;w4?{_&t=@Rk4H7akF@=SNc}YG%v>}D$ot(-)=@)}CidvJD*Ky=d*GD2! zfX_hVN(5A3u!lV!rVADTb_1N`6}^WQ6&3X#;;PNr{p|eu_3O8Vgo3m=G2x>_Ntgr` z6wCFx(*N)a$lKW!3f#TR|HBk{ezKd}(2&~m8)!geTmztF;4dhdGaMBM3CYO?Ergyx z+AX}jO$f1r42_HefhIe0zPjO9mv(Ic+;H%jQ)qa@)$NirYKRvAw4vYL*Ohs@V>w%z z6~-L@*cpME<;gB6P{|`*K#3F0?-NWL=QK}obiVv8KeP69NLW_c4?0| zqGqme76m2cfXFA34O!`;E})0ydzb7~tVvD*%n0Go%6O}1R{-Sy8|OfHQeq;QwBVH9 z{DrATC`nJ;y}VcbIV*Mh$uKrR#*hN7%y57{DxfUMH@^Z`QMrdVoaG?+>2K($Hn*R% z@2e;)gW~58>@b+umy=RWH35WLVPWBldN-gEi*k?5%(Nc)ioS2O4&*T?!-dUa0ZTT{ zRsFH=ezz*whEtv6Y$rHzAYP=^BB4$!qTCH(N}WPIJas==%Rs$NpOL%xMmNRnRi7z> z|3HdbZBjx)7TB=q>FFqVJ6Hyie>RMSz?=_I6;LWWAm(p`vkcCOiiuf4by~K`Hu1N$ z94H|OM8%T+Q)|G$l9B_G7>0AH_XNWFq4qzupr ziCmKb83E@YFu#~25BbCBqRC?y9+tVi6W)E%UB(blYiVvSEA?_yuk)({hm4q5@8(sZ z$PXaE&U;HrNka@!vB0aH8!GrqYHn+*9NA+DsuQ?p&>BNw{t8?mfB;|&!u$Y{`3qZJ z?nL_ssxT}#y75<-@OgGQks&7UXFy52Jp&l%0xiW!|t5uX<>T6&S3lk z?sb1F^9E|ox_5+)!kD!euRDBT{Z9VJqWO{wRB__y6P#u~@&7rW{AJNNd7+P|xtNDy zm!KZ!|9G13e<PAT=KCunr6`qH_%?1ad9I@)&^yr?rNUZeBO-f}I zl}8f1A{^H+(LhAU!@4bnmtx%ffDw^MixVUVoVFcwIR4}+cO9?~VYlsHL|5lefecv| znt3}z+KYW))m5~Z{CPB_v(RlC`Dsynd(qE*)r^djCFnpOl)%*lVH*`Lv}LGv2$nI7 zgP{sCz)9zevzLf8HQ$pzk5R)q(1QltsOcXm{=hc(^)pEH(~);7lvxf1~&q)d1WY(~F@)NyFg-WFE%o zK=PgmHZU-7*&O2%RWFEuNY{Z;70~B?(?g?*TxX#tu99A=zPAi_49fF=M?0TFExA}7 z?EvXbDM~pA264;<`rgVFGKh+NGBGyxdVb6Iqt{Zv(AkSk$2%e-ApmNRAA$S}yk+m- zo)y4vSS*Txmn2T12*l)M%1?ds&h_0T1VBypx# zS!v=>kWJE%GS8fBP>u`l%^S6{D-1B$1-K8 z2|tHwPkW>%0R6Lk`7&{bq#(&CwL7(|t1D;xnay@HkVxCA)Y}#BLKSujfTurKD%Il# z39yqDaEAFnAkt~P0rXH??adj26zLk zAq!?d!QlH;Qqm1mwnarnla9T6doCzU(%47~svXR`^n$%1w5g&3Mvi^x>Q8nG-DURt z$eiP+ZkHQ@gaR+I!j*G1h~G`JM6G_!w)Ks~x>iblDJtH1J zju7i-48B5wv){rF@N?9A7mJN{jlC;NLxJV z-(XEYCu*sQe_j;K46{h?O$=a-0b$Z0CX@f}f+lc1(^h&@PvZu`k%f949YMqX4}CLZ zqW7ldTI(t5SAsig8q1&(+8-B~5cV_ADdKzN-4_ya7{FuG)zXQJVRm?-w97@Ab6XXU z5Ag?$UUd5`n4E3^Tm@<^dM>oTANeSHmRGpd64|IC^6Al0V#um%c3WE}nIO7(lx+TO z{+BJ;_ElrJXikKRjSPWYr>Z1^QA%g#>NDx;F&v3|PoA*}FCtBP7$ z*p2DQNq<05z#{bQ#-5m|eV4P!-ur&R{Qat`W3oF|di%^8<`d1Wtb({wdzUS$KA7-p zdH&@ZRNv!j$ixp}u~DYfp|lW98=0OC2c_S37o0lV>zksA-RUdos{bCz?k%aZUJ<@AQV|3HgtTGIwGeVVoJp$v zq&NQpW&NP}MBeWZrrn|C*}8!SOjn-3&OM$qi3ybj#PvE8FD@Qlog@sWP9{5SDGKd7 zhladg$~gLCkFy9uyI{l&FH^lG*6o@A6s?LNPpr4m?<1Rq%aY%43lk&o^rq=Ualnnx zwbtb?H0DSiq&dL7`I-}r1LmIrahjMAHkf1xii~bsdI1XMZ;`Atg5@ z)7JV-gR-Z3BU@3&nW92Pkg>WcZv)m^gJ&+y9jB3VIIRCd@L@F+K zhGYxx`j08)d)cHR7`j?F=&=3Q z`=3fgPdesRiVoGU6q44mFZ@7z`~YSjk4=EAaA;epw-9gqnAax>ZWfI03VKZB5B2Vm zS=)T(UjZ7zH+7zUTn4gAJOFP?jSJAZt_kzy<8`u&q`-K0S13s;0eAA?$n0#oZ0`8P zM6Zb^$TV|va|x*~c!A6n;?$l(qv}>BMn$>b6&sN$8yHN4*x=w%FW+K#U_`7T_(?Uq zjA&d<^#m&qri1Wd+!b_Gm_bhJ+xqjz_HYcY;U)Vj1-Lb)Q)N|Ed?Nb`ddBT%h)+cX zlaV{%52O(Vbug>rkIW$~@pD`axjc-xVGKHw>et#qHcYqzlY;ptpxf)~>;5oNHU10> zp^tA5I=*O{3n;3=Q@^Kcp4(k##S27$p+Ok##-&aB2H_MLB5Qtj zjzCB!gYM7LY_%doV`D46ib6)kf>G4qH*M6Lp=~`5Ig=xp-PJG@z3eeVDt*!`s{V&3 zaZJ*rIRuh4R2CSD11gFV!$AN2J~oC4mOpsaP=l2tN+-5lt}cC01^>|=4AVsZxbx^c zhEt6Z%p!sM3DaDtaV#OBuB2t~K44f01aNS`X4o~l^T95JdJT_|YTm&F&m6eCs`Hb& zK*H>5cGI&*>{;~K6*O;rj;Ef$4wxrc%UqofqdEyZ76G#IuNJTCfNeBR9p_tzIBR~u z*uM2lF$_!CK6wIGS7Zlath7xc_J5N$M3jbY1AfDe37U{ni61kpZ|W_c}IA^3%-Le-)A{55%Mt4ytF9 zI@C9UqgnikLW!*HFF~6>40Ys=;6gL3t*s5_mdYVipCEt-90aHdVg3*vQ11k(d~z?3 zu^;@8Y&~ul@EF|xV9JsH1^=fE8A{qj>t8Acf`{ePr?_ycJ^#QVgu@Pkkp|FR4YL6U zb%IFQ4nQdf{o&~XSiIHhcNEEVaJb)q@5%#WWVI0=%xuHF;cXx@cZJf1 zAacGoJ%U@A*|80iFe*zNTm=hR&1m2{E+#21CMZ&1s)T}$2*V#0K4@++ZyW0C>XIMw z|DXm}l;5PjJ@JavQmf4no`9&UyAFH{rRjpH1#ZL0uV0biR{^bok<$+nFR)Q#I{f@! z`ucD|Ceb!9NIt$_kU9nv$@ZdFZf*(E&MN^c|2|gtki`%5pPMrUy{PIn5iL{8@!?@! zDYE^y58z;XgB!2p+-|{?q4t9Z7!f_4v~k~m`CPpM^p!C1u7XU< zL*X7^b`SO%zF_a*(IJ?K(bm-k_w0WR8bHy7N#cT8Olx3ez;=4zG*Lth#$(|526LD$ zLCyIOCf|b22iim!08tnrXkT=$*tIzi@H$+NRqf{)D2ZQs;H_RvSZxt*d1e3A8@7oB zkz|tpE=ZpR4s6CP5B>rLA$IooGZ-SQa^(ZHM6pPfEms+D9=fRb-qRixqd!f_dy9M> zt`U!k-~g&sryQRJqvqurhft4Hq-)l)fWP>t3jS`(Mm1AwY%JNxvzi<*3K1}(6$!!s zm|^miN*Y>PFuj3t@L=TF-JJ^58x(zj$rc9(KEI+lGG~l;#`FUpvtXKG2}%WcH#4QJ&({oLVSY4d|-h95Lr+-_V#{{96SA7=pOgoCr;IE zgHb=PNsis^)X8nS$?tD%R7M~O8V_e(^PF;^#;_p~3Q0eX(+h<(JlAUrRURhLDnm?8 zYnWaY6RmfCQSo)<`t^ui)bn$3xw1`VbYLC7si?B2J*sR>?<5J~_8Z%z#MP>XxF)%v zs?jv*eHG!0%8W*X`*9`-vlas>vo$7WV3=ti^0kqoar>=T!z>y;uetF|S+Lmm8rdzp z-d8hAR;Nj?J~^`(IdyUj$~KUA25am;m}F)2HtP>8La*tX_ zs!G&(OpebSWSk&7mXfxXSFc=7B40?r=e&?`b|UHpUa$%U0IrKhdRJ{C3$_Y_{kiQB zeO-RhUM4PB>htWI`%~Zj_#x-$i{L(%bZ6oUW=rSu+L)hOS@=FZ&y@Vt=E5bk@R-o{ zWA>*{!i=`3xbv>8`Oew0EFle(&o}*#EWnHEg>*m=@V5yx- zItvR&ky5W2a4MNNo;^8!n>o{01e)tk+~-%g645yy<)9F!La`}KH)~>}9Gtm=z}n$r zHl>*TZRhE(2?<{+z-0TE{sBxP4Vfwy5ko_1x37(52}!!juVW{tJ&1>iALxPZ3_V>6 zhDfXz{T!P~hU@Uru@tv)R*rkAk`-}2G_z*BHe%8@;QAILuG14oui|>dm(*w~YEhN@ zhnrjR#$5DPOb>2$m9NUV=Z@|xX^##AiIv9HQ>Yv9#+p)%lELRF_t8|5$7|&ThM7$@ z*-EK~%dA!b-CcgdPmod2x)bsAo5|M}>!S-T`0G_l>ZxqRv_yUy4;>6z2I$xhj4-xc z{yO?SJ#z<t=lAfsPt7AT}@!3 ziWtCp!RoEWvVI7>M9_o9mpbX$%@C7l)e1$<={iX+>L4_!Q7YKdOSBn!Q+!F22Jp?m zRKt!n`j;5K=2?2+^7n_k7;;Im>Rcg*v{lB4Dn$CQ{2rAZngp^PfPG_YynGu$(m807 zrVL+fp8;X4y*$2q!=Rral*-IS{XUbV9W>lPq1CyKyQ&JN{T@L3!)#H$pi1Oi)OACF zct5-3yK-XutZ5fB818%ASTB}zZCIm7Bq8xb zB7an9p(iRjaPZXRKx6eZcYG&Ah|LMR{k~1B0~*QS#n{Nn^9%unK|ZBH`&mi9fz5mr zNv5qfzloj7^TqEUc$8mX%FW5{gcJkQ5u4qz?TGN|+S=Q>70PozP*-hx+`f3}g6Zj# zLhv~p)gTb-WNpz1Y6inr+(?mOT~(D+*%)fYI0xot?=uyI9 zTiXU(bdjb;Y+Ku{OP7?T_o97SzoG5XOv7mQZh60bMK%yWuYgW~nG$6TR4PYZ=a8|# zf#1gc>ST&Ezg(+#!cm@{+o*Qu(I`bn5>wCqJWj)y+SuCa>orjYbLC0Rhq+;PI(2cF z`r7OVb3#(Vn(ld{O;iOLQ02;eU0Yl9qhhn~Q*FXtk#*L%{FeD69HTS5-B>^`bcpbp zq+B9JQ(=stuX+ch8<)E9(qDhUy|Bv*2oajRmu4nq1= zHy)s+C#l5L%P4}*)04iz3f$w>ci(LB;&^~2@?=YMG4pGOD;MSdsHICeyxrt}TV>k=jZINh2xAmqk7CtosZUkrXk>NR>- z<;E*0$Rx^|Mas;~tf;PT73|9uUD!1)xV#7zsLa5a`fV@+L8iy8@AH zWGmJME?-J}{}E=00L$tA$RTZ;p7)P+GyIL!5-`Ql1Q{M%+1&W3=qfL&1@tXhi1$%H zczf~4fY$81d#sxg0{EB->1G*#Fej8{c2SFns6^msET52oK*M9p^C08qz3Qr~!z^3M9?8%HQXBrb) zIB#WQW^~sl_JAAYn1Lc=Gq?G8x{4I^Vhop|5XI(Nbu9$d31MXfSnA?`H|{zenNZG|pR2ga^Zbhso-HOWOl_;}vgZ>P zzVkBzZuVy1wRY$}p82uu-2*-(1Dmh_C2(wx)vtiRc91KV{&@%a zU83pI3%yDNX?wGPV@LUZ?=!V5?BqF@l`IKooAHO$?Z;4oJ4!Ft*P5PVIqc}~A%f&y zzPK=NJFV2Vae|Mr@U$ge96O}4>n)k+Y~cEgmT8S}92ULVw$XL+OY4tsA9;o#4yFXb zV2@Z^DTn$^2eT*df9MdNW3xM}J{L=MhQrF*)KW`ITy5<7c0X;aP@i2j|I=DeB^bH$ zc_`CDD}zjKf^5B;ld-l~E;17j-d1tC&PKnsx}IIMP6dF{9=c+)p&6Zk&Y8ESr0?Yh zyWJjh+QM-(t0S&!W2N?OVHX0^-q#0hsrf|E8=kZs*E+D4AdN26ZcpF+@In8Qva+zV zb1LzSv=E#MRY#QykK%@$RYiqi=-z;e#d&mfzl4xnbx$Lj9l~G>>Bop6&2_~*aQWY5-KFfU?oLI`9~e}mS^vk z)hou@p+Gy7*y%jritr39Y+*#VSeUUPmtI-`riJ(2txXAHUe<4-<{vMt9~6$%U~ARD;Ze}D4r zY#l7s?RBr(({#h7HJ;+VU8(F> zT7?^7!r`rj#3l^ITVl<~H?|$q>9HYeq#{&x&h8{wpf0RvCx$--Zv@TKwBxD>Xo|ZW z9?(Pes%D#eHW6>6WeBfTjD0O43}q7l9A9sQ4-wo&02ktjEMbh_knmjA1lkIjd$BTO z{rSbnMbGy&SAQ|BWp-i+J(-IN@>e|JjaE}h5|pJZk-fy58eRA0mj>^B3JGBFJb~;{ zz9^x@zf#tJ3i1EswEqNnI4bh!fdh6xQ)BPi2y#U|!1^b=?ytF$^}a8RM=R_%z@9c- zNSu9URA77@@kwp`kgU!~p`HT%HK@LI|H;tdHc>DtO}t@40-2Ol6v_0^tf64P8jHOH zOOs`Y`^U;?9+<@t)3$Z6pG5@`3#HXLXE))^osj<~0b`*5{rS0w=+-O+Z%S{nC4xHv zQKA|@7I9z18}27iiJ#0kGvBTa-6G!eyYN6J2_wx+)(NI9#c~^r62?_+)?SLq>O{mT zYaFvH&zHQIpv%(eBPLMKe`5gDYn{6+1+K1LdC&2xQ;F4<;6G3`63#)gZ<~{d}tR z4N+qVv7-shMUk;*Ru_uI8PuV)kNza5FZD3R;y6ndJoM{22Om3hDB1u8VQG;0cNUCx zWi@^c_!UN;6rOz|1yG_U4X^c!{ZPhx3v0;8P(M=MPDNR!Mts7R9^8I6mG+MZvWxha z`GB^u0V4%nM4fQZr-Qofh|F8+UF28uw%x$oC#F@i55 z$gR=`mK=8I5TZ5)V~NT2dgQ#Jfca%_`Kh4u-yUMj1P5;R5ju+~k%gI)!Jj#@DxjH1 zpEieq*e-tqZ^xWfQmbs6;JmJ27A2{O#0BiJ8@Q)8elDL3z+c0 zV!$*1+$bz{M|2P)P~Wv= zGg~U1^Di_BDH94ibFT^8on^n&sy+oD@bgdD-+RYV(P<`Nj5iBD{|yGqdMZnEk!I$^ zn{PuKE+iU@5xgzLnsUm4%(-g>A>d> z_3jmM&K}k7+U@Qp+o@xIijni}py65oB?r9s*0r7%m@jMzBZR8N;`hh1nX;)6@H5E(Z2TILim|jp8PH(Y{ogX?-${Pu aglb=<8Cej8U!eS21dOhk>(%PG#Qzr;_YGhG diff --git a/icons/turf/flooring/wood_greyscale.dmi b/icons/turf/flooring/wood_greyscale.dmi new file mode 100644 index 0000000000000000000000000000000000000000..b32fdfc989340584e07e9f1f98b862887bfec6fd GIT binary patch literal 28662 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 Z{{y*<(5u*hUiJV0002ovPDHLkV1k!LM%n-X literal 0 HcmV?d00001 diff --git a/icons/turf/wall_masks_vr.dmi b/icons/turf/wall_masks_vr.dmi index ff773ba65b7fcb2cbee0ee4973d45fb9815601b0..cd48fa604f2d59fcf29dded777ed76753a8298c8 100644 GIT binary patch literal 28020 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 literal 25936 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