diff --git a/_maps/RandomRuins/SpaceRuins/hilbertresearchfacility.dmm b/_maps/RandomRuins/SpaceRuins/hilbertresearchfacility.dmm index 8ee03bb502e..ff9f004c337 100644 --- a/_maps/RandomRuins/SpaceRuins/hilbertresearchfacility.dmm +++ b/_maps/RandomRuins/SpaceRuins/hilbertresearchfacility.dmm @@ -1558,7 +1558,7 @@ /turf/open/floor/grass/fairy, /area/ruin/space/has_grav/powered/hilbertresearchfacility) "Iy" = ( -/turf/closed/indestructible/riveted/plastinum/nodiagonal, +/turf/closed/indestructible/riveted/plastinum, /area/ruin/space/has_grav/powered/hilbertresearchfacility/secretroom) "ID" = ( /obj/structure/table/reinforced/rglass, @@ -1878,7 +1878,7 @@ /turf/open/floor/iron/grimy, /area/ruin/space/has_grav/powered/hilbertresearchfacility) "Ok" = ( -/turf/closed/indestructible/riveted/plastinum/nodiagonal, +/turf/closed/indestructible/riveted/plastinum, /area/ruin/space/has_grav/powered/hilbertresearchfacility) "OA" = ( /obj/machinery/door/airlock/titanium, diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index ca0e1335144..fbea6e190dc 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -55550,7 +55550,7 @@ /turf/open/floor/iron/dark, /area/service/library/artgallery) "wCj" = ( -/obj/item/paint/paint_remover{ +/obj/item/paint_remover{ pixel_y = 8 }, /obj/structure/table/wood, diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 4f5d7108625..5d744d202de 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -1817,9 +1817,6 @@ }, /turf/open/floor/carpet/black, /area/centcom/holding) -"fg" = ( -/turf/closed/indestructible/weeb, -/area/centcom/holding) "fh" = ( /obj/structure/lattice/catwalk, /obj/effect/turf_decal/stripes/line{ @@ -35748,16 +35745,16 @@ OL pJ pJ pJ -fg +Nd bE Ob zS Nd Nd -fg -fg -fg -fg +Nd +Nd +Nd +Nd Nd Nd oZ @@ -36005,7 +36002,7 @@ OL pJ pJ pJ -fg +Nd Vt Fh hj @@ -36519,7 +36516,7 @@ pJ pJ pJ pJ -fg +Nd QA ci Fh @@ -36776,7 +36773,7 @@ pJ aU pJ pJ -fg +Nd US cr Fh @@ -36791,7 +36788,7 @@ fO Rt Rt Rt -fg +Nd OL Di Qe @@ -37048,7 +37045,7 @@ fO Rt Rt Rt -fg +Nd OL Di Qe @@ -37562,7 +37559,7 @@ Sn Uy Uy Uy -fg +Nd OL Di Qe @@ -37819,7 +37816,7 @@ Fl Uy Cr Uy -fg +Nd OL Di Qe @@ -38316,8 +38313,8 @@ Nd Nd Nd Nd -fg -fg +Nd +Nd Nd Nd Nd @@ -38333,7 +38330,7 @@ Fl Uy Pu Uy -fg +Nd OL Di Qe @@ -38590,7 +38587,7 @@ fe Uy rC Uy -fg +Nd OL Di Qe @@ -39100,7 +39097,7 @@ fO UU YC YC -fg +Nd hs pJ pJ @@ -39614,7 +39611,7 @@ cJ Rv YC YC -fg +Nd pJ hs pJ @@ -39871,7 +39868,7 @@ cJ Rv YC YC -fg +Nd pJ pJ pJ @@ -40385,7 +40382,7 @@ Px Rv YC YC -fg +Nd hs pJ pJ @@ -40624,7 +40621,7 @@ pJ pJ pJ pJ -fg +Nd Zi wX fO @@ -40642,7 +40639,7 @@ JK Rv YC YC -fg +Nd pJ pJ OC @@ -40881,7 +40878,7 @@ pJ hs pJ hs -fg +Nd Zi kw eT @@ -41138,7 +41135,7 @@ pJ pJ Zc hs -fg +Nd bI fp fO @@ -41157,8 +41154,8 @@ Rv YC aA Nd -fg -fg +Nd +Nd Nd pJ pJ @@ -42442,8 +42439,8 @@ fO YC aA Nd -fg -fg +Nd +Nd Nd pJ pJ @@ -43456,8 +43453,8 @@ Nd Nd Nd Nd -fg -fg +Nd +Nd Nd Nd Nd @@ -43984,8 +43981,8 @@ QL YC YC Nd -fg -fg +Nd +Nd Nd ft CQ @@ -44219,18 +44216,18 @@ hh hh OL Nd -fg +Nd fM -fg Nd -fg -fg -fg -fg Nd -fg -fg -fg +Nd +Nd +Nd +Nd +Nd +Nd +Nd +Nd Nd eZ YC @@ -47050,10 +47047,10 @@ aa aa aa Nd -fg -fg -fg -fg +Nd +Nd +Nd +Nd Nd gk Zt @@ -47312,9 +47309,9 @@ OL OL OL Nd -fg -fg -fg +Nd +Nd +Nd Nd cE cv @@ -47322,9 +47319,9 @@ PD cv XF Nd -fg -fg -fg +Nd +Nd +Nd Nd pJ hs @@ -47573,11 +47570,11 @@ OL OL OL Nd -fg -fg -fg -fg -fg +Nd +Nd +Nd +Nd +Nd Nd OL OL @@ -47587,10 +47584,10 @@ OL OL OL Nd -fg -fg -fg -fg +Nd +Nd +Nd +Nd Nd OL aa diff --git a/_maps/shuttles/emergency_casino.dmm b/_maps/shuttles/emergency_casino.dmm index fa2f13efcab..9a9fde660f2 100644 --- a/_maps/shuttles/emergency_casino.dmm +++ b/_maps/shuttles/emergency_casino.dmm @@ -912,7 +912,7 @@ /obj/item/paint/violet, /obj/item/paint/white, /obj/item/paint/yellow, -/obj/item/paint/paint_remover, +/obj/item/paint_remover, /turf/open/floor/sepia, /area/shuttle/escape) "yJ" = ( diff --git a/_maps/shuttles/emergency_monastery.dmm b/_maps/shuttles/emergency_monastery.dmm index 35b87c98441..31354e92f8e 100644 --- a/_maps/shuttles/emergency_monastery.dmm +++ b/_maps/shuttles/emergency_monastery.dmm @@ -2090,7 +2090,7 @@ /turf/open/floor/iron/grimy, /area/shuttle/escape) "Dn" = ( -/obj/item/paint/paint_remover{ +/obj/item/paint_remover{ pixel_y = 8 }, /obj/structure/table/wood, diff --git a/code/__DEFINES/construction.dm b/code/__DEFINES/construction.dm index 23722d43ce8..8ea42e3cfd5 100644 --- a/code/__DEFINES/construction.dm +++ b/code/__DEFINES/construction.dm @@ -6,9 +6,7 @@ #define GIRDER_NORMAL 0 #define GIRDER_REINF_STRUTS 1 #define GIRDER_REINF 2 -#define GIRDER_DISPLACED 3 -#define GIRDER_DISASSEMBLED 4 -#define GIRDER_TRAM 5 +#define GIRDER_TRAM 3 //rwall construction states #define INTACT 0 @@ -141,3 +139,6 @@ /// How much less resources the RCD uses when reconstructing #define RCD_MEMORY_COST_BUFF 8 + +/// How many sheets does it cost to make a fulltile window +#define SHEETS_FOR_FULLTILE_WINDOW 2 diff --git a/code/__DEFINES/direction_junctions.dm b/code/__DEFINES/direction_junctions.dm new file mode 100644 index 00000000000..6a1d8a8afb8 --- /dev/null +++ b/code/__DEFINES/direction_junctions.dm @@ -0,0 +1,31 @@ +//Redefinitions of the diagonal directions so they can be stored in one var without conflicts +#define NORTH_JUNCTION NORTH //(1<<0) +#define SOUTH_JUNCTION SOUTH //(1<<1) +#define EAST_JUNCTION EAST //(1<<2) +#define WEST_JUNCTION WEST //(1<<3) +#define NORTHEAST_JUNCTION (1<<4) +#define SOUTHEAST_JUNCTION (1<<5) +#define SOUTHWEST_JUNCTION (1<<6) +#define NORTHWEST_JUNCTION (1<<7) + +#define ALL_JUNCTION_DIRECTIONS list(\ + NORTH_JUNCTION,\ + SOUTH_JUNCTION,\ + EAST_JUNCTION,\ + WEST_JUNCTION,\ + NORTHEAST_JUNCTION,\ + SOUTHEAST_JUNCTION,\ + SOUTHWEST_JUNCTION,\ + NORTHWEST_JUNCTION\ + ) + +DEFINE_BITFIELD(smoothing_junction, list( + "NORTH_JUNCTION" = NORTH_JUNCTION, + "SOUTH_JUNCTION" = SOUTH_JUNCTION, + "EAST_JUNCTION" = EAST_JUNCTION, + "WEST_JUNCTION" = WEST_JUNCTION, + "NORTHEAST_JUNCTION" = NORTHEAST_JUNCTION, + "SOUTHEAST_JUNCTION" = SOUTHEAST_JUNCTION, + "SOUTHWEST_JUNCTION" = SOUTHWEST_JUNCTION, + "NORTHWEST_JUNCTION" = NORTHWEST_JUNCTION, +)) diff --git a/code/__DEFINES/greyscale.dm b/code/__DEFINES/greyscale.dm new file mode 100644 index 00000000000..26ba210988d --- /dev/null +++ b/code/__DEFINES/greyscale.dm @@ -0,0 +1,9 @@ +/* flags for greyscale config for smoothing */ +/// The config will create states for cardinal smoothing +#define GAGS_CARDINAL_SMOOTH (1<<0) +/// The config will create states for diagonal smoothing +#define GAGS_DIAGONAL_SMOOTH (1<<1) +/// This will make it so diagonal steps require both adjacent cardinal steps to make a state +#define GAGS_DIAGONAL_NEED_ADJACENT_CARDINAL (1<<2) +/// The common way to bitmask features all of the modes above +#define GAGS_COMMON_BITMASKING (GAGS_CARDINAL_SMOOTH|GAGS_DIAGONAL_SMOOTH|GAGS_DIAGONAL_NEED_ADJACENT_CARDINAL) diff --git a/code/__DEFINES/icon_smoothing.dm b/code/__DEFINES/icon_smoothing.dm index 8805767237f..2fd07a082d6 100644 --- a/code/__DEFINES/icon_smoothing.dm +++ b/code/__DEFINES/icon_smoothing.dm @@ -3,19 +3,16 @@ #define SMOOTH_CORNERS (1<<0) /// Smoothing system in where adjacencies are calculated and used to select a pre-baked icon_state, encoded by bitmasking. #define SMOOTH_BITMASK (1<<1) -/// Atom has diagonal corners, with underlays under them. -#define SMOOTH_DIAGONAL_CORNERS (1<<2) /// Atom will smooth with the borders of the map. -#define SMOOTH_BORDER (1<<3) +#define SMOOTH_BORDER (1<<2) /// Atom is currently queued to smooth. -#define SMOOTH_QUEUED (1<<4) +#define SMOOTH_QUEUED (1<<3) /// Smooths with objects, and will thus need to scan turfs for contents. -#define SMOOTH_OBJ (1<<5) +#define SMOOTH_OBJ (1<<4) DEFINE_BITFIELD(smoothing_flags, list( "SMOOTH_CORNERS" = SMOOTH_CORNERS, "SMOOTH_BITMASK" = SMOOTH_BITMASK, - "SMOOTH_DIAGONAL_CORNERS" = SMOOTH_DIAGONAL_CORNERS, "SMOOTH_BORDER" = SMOOTH_BORDER, "SMOOTH_QUEUED" = SMOOTH_QUEUED, "SMOOTH_OBJ" = SMOOTH_OBJ, @@ -96,12 +93,10 @@ DEFINE_BITFIELD(smoothing_flags, list( #define SMOOTH_GROUP_BAMBOO_FLOOR S_TURF(52) //![/turf/open/floor/bamboo] #define SMOOTH_GROUP_CLOSED_TURFS S_TURF(53) ///turf/closed -#define SMOOTH_GROUP_MATERIAL_WALLS S_TURF(54) ///turf/closed/wall/material -#define SMOOTH_GROUP_SYNDICATE_WALLS S_TURF(55) ///turf/closed/wall/r_wall/syndicate, /turf/closed/indestructible/syndicate -#define SMOOTH_GROUP_HOTEL_WALLS S_TURF(56) ///turf/closed/indestructible/hotelwall -#define SMOOTH_GROUP_MINERAL_WALLS S_TURF(57) ///turf/closed/mineral, /turf/closed/indestructible -#define SMOOTH_GROUP_BOSS_WALLS S_TURF(58) ///turf/closed/indestructible/riveted/boss -#define SMOOTH_GROUP_SURVIVAL_TITANIUM_WALLS S_TURF(59) ///turf/closed/wall/mineral/titanium/survival +#define SMOOTH_GROUP_SURVIVAL_TITANIUM_WALLS S_TURF(53) ///turf/closed/wall/mineral/titanium/survival +#define SMOOTH_GROUP_HOTEL_WALLS S_TURF(54) ///turf/closed/indestructible/hotelwall +#define SMOOTH_GROUP_MINERAL_WALLS S_TURF(55) ///turf/closed/mineral, /turf/closed/indestructible +#define SMOOTH_GROUP_BOSS_WALLS S_TURF(56) ///turf/closed/indestructible/riveted/boss #define MAX_S_TURF SMOOTH_GROUP_SURVIVAL_TITANIUM_WALLS //Always match this value with the one above it. @@ -110,22 +105,8 @@ DEFINE_BITFIELD(smoothing_flags, list( /* /obj included */ #define SMOOTH_GROUP_WALLS S_OBJ(0) ///turf/closed/wall, /obj/structure/falsewall -#define SMOOTH_GROUP_URANIUM_WALLS S_OBJ(1) ///turf/closed/wall/mineral/uranium, /obj/structure/falsewall/uranium -#define SMOOTH_GROUP_GOLD_WALLS S_OBJ(2) ///turf/closed/wall/mineral/gold, /obj/structure/falsewall/gold -#define SMOOTH_GROUP_SILVER_WALLS S_OBJ(3) ///turf/closed/wall/mineral/silver, /obj/structure/falsewall/silver -#define SMOOTH_GROUP_DIAMOND_WALLS S_OBJ(4) ///turf/closed/wall/mineral/diamond, /obj/structure/falsewall/diamond -#define SMOOTH_GROUP_PLASMA_WALLS S_OBJ(5) ///turf/closed/wall/mineral/plasma, /obj/structure/falsewall/plasma -#define SMOOTH_GROUP_BANANIUM_WALLS S_OBJ(6) ///turf/closed/wall/mineral/bananium, /obj/structure/falsewall/bananium -#define SMOOTH_GROUP_SANDSTONE_WALLS S_OBJ(7) ///turf/closed/wall/mineral/sandstone, /obj/structure/falsewall/sandstone -#define SMOOTH_GROUP_WOOD_WALLS S_OBJ(8) ///turf/closed/wall/mineral/wood, /obj/structure/falsewall/wood -#define SMOOTH_GROUP_IRON_WALLS S_OBJ(9) ///turf/closed/wall/mineral/iron, /obj/structure/falsewall/iron -#define SMOOTH_GROUP_ABDUCTOR_WALLS S_OBJ(10) ///turf/closed/wall/mineral/abductor, /obj/structure/falsewall/abductor -#define SMOOTH_GROUP_TITANIUM_WALLS S_OBJ(11) ///turf/closed/wall/mineral/titanium, /obj/structure/falsewall/titanium -#define SMOOTH_GROUP_PLASTITANIUM_WALLS S_OBJ(13) ///turf/closed/wall/mineral/plastitanium, /obj/structure/falsewall/plastitanium -#define SMOOTH_GROUP_SURVIVAL_TIANIUM_POD S_OBJ(14) ///turf/closed/wall/mineral/titanium/survival/pod, /obj/machinery/door/airlock/survival_pod, /obj/structure/window/reinforced/shuttle/survival_pod -#define SMOOTH_GROUP_HIERO_WALL S_OBJ(15) ///obj/effect/temp_visual/elite_tumor_wall, /obj/effect/temp_visual/hierophant/wall -#define SMOOTH_GROUP_BAMBOO_WALLS S_TURF(16) //![/turf/closed/wall/mineral/bamboo, /obj/structure/falsewall/bamboo] -#define SMOOTH_GROUP_PLASTINUM_WALLS S_TURF(17) //![turf/closed/indestructible/riveted/plastinum] +#define SMOOTH_GROUP_HIERO_WALL S_OBJ(1) ///obj/effect/temp_visual/elite_tumor_wall, /obj/effect/temp_visual/hierophant/wall +#define SMOOTH_GROUP_SURVIVAL_TIANIUM_POD S_OBJ(2) ///turf/closed/wall/mineral/titanium/survival/pod, /obj/machinery/door/airlock/survival_pod, /obj/structure/window/reinforced/shuttle/survival_pod #define SMOOTH_GROUP_PAPERFRAME S_OBJ(20) ///obj/structure/window/paperframe, /obj/structure/mineral_door/paperframe @@ -136,8 +117,11 @@ DEFINE_BITFIELD(smoothing_flags, list( #define SMOOTH_GROUP_LATTICE S_OBJ(30) ///obj/structure/lattice #define SMOOTH_GROUP_CATWALK S_OBJ(31) ///obj/structure/lattice/catwalk +#define SMOOTH_GROUP_GRILLE S_OBJ(32) ///obj/structure/grille +#define SMOOTH_GROUP_LOW_WALL S_OBJ(33) ///obj/structure/low_wall #define SMOOTH_GROUP_AIRLOCK S_OBJ(40) ///obj/machinery/door/airlock +#define SMOOTH_GROUP_SHUTTERS_BLASTDOORS S_OBJ(41) ///obj/machinery/door/poddoor #define SMOOTH_GROUP_TABLES S_OBJ(50) ///obj/structure/table #define SMOOTH_GROUP_WOOD_TABLES S_OBJ(51) ///obj/structure/table/wood diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index a298f50d17d..d8e57293420 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -54,6 +54,8 @@ GLOBAL_LIST_INIT(turfs_openspace, typecacheof(list( #define isplatingturf(A) (istype(A, /turf/open/floor/plating)) +#define iswall(A) (istype(A, /turf/closed/wall)) + #define istransparentturf(A) (HAS_TRAIT(A, TURF_Z_TRANSPARENT_TRAIT)) //Mobs @@ -220,6 +222,8 @@ GLOBAL_LIST_INIT(turfs_openspace, typecacheof(list( #define is_reagent_container(O) (istype(O, /obj/item/reagent_containers)) +#define isfalsewall(A) (istype(A, /obj/structure/falsewall)) + //Assemblies #define isassembly(O) (istype(O, /obj/item/assembly)) diff --git a/code/__DEFINES/layers.dm b/code/__DEFINES/layers.dm index f16f597a88a..c259529fd89 100644 --- a/code/__DEFINES/layers.dm +++ b/code/__DEFINES/layers.dm @@ -73,6 +73,7 @@ #define PROJECTILE_HIT_THRESHHOLD_LAYER 2.75 //projectiles won't hit objects at or below this layer if possible #define TABLE_LAYER 2.8 #define GATEWAY_UNDERLAY_LAYER 2.85 +#define LOW_WALL_LAYER 2.86 #define BELOW_OBJ_LAYER 2.9 #define LOW_ITEM_LAYER 2.95 //#define OBJ_LAYER 3 //For easy recordkeeping; this is a byond define @@ -81,6 +82,7 @@ #define ABOVE_OBJ_LAYER 3.2 #define CLOSED_BLASTDOOR_LAYER 3.3 // ABOVE WINDOWS AND DOORS #define SHUTTER_LAYER 3.3 // HERE BE DRAGONS +#define LOW_WALL_STRIPE_LAYER 3.25 #define ABOVE_WINDOW_LAYER 3.3 #define SIGN_LAYER 3.4 #define CORGI_ASS_PIN_LAYER 3.41 diff --git a/code/__HELPERS/icon_smoothing.dm b/code/__HELPERS/icon_smoothing.dm index 321d943a6bf..f9f317e6424 100644 --- a/code/__HELPERS/icon_smoothing.dm +++ b/code/__HELPERS/icon_smoothing.dm @@ -9,43 +9,12 @@ Each atom has its own icon file with all the possible corner states. See 'smooth_wall.dmi' for a template. - DIAGONAL SMOOTHING INSTRUCTIONS - To make your atom smooth diagonally you need all the proper icon states (see 'smooth_wall.dmi' for a template) and - to add the 'SMOOTH_DIAGONAL_CORNERS' flag to the atom's smoothing_flags var (in addition to either SMOOTH_TRUE or SMOOTH_MORE). - For turfs, what appears under the diagonal corners depends on the turf that was in the same position previously: if you make a wall on a plating floor, you will see plating under the diagonal wall corner, if it was space, you will see space. - If you wish to map a diagonal wall corner with a fixed underlay, you must configure the turf's 'fixed_underlay' list var, like so: - fixed_underlay = list("icon"='icon_file.dmi', "icon_state"="iconstatename") - A non null 'fixed_underlay' list var will skip copying the previous turf appearance and always use the list. If the list is - not set properly, the underlay will default to regular floor plating. - To see an example of a diagonal wall, see '/turf/closed/wall/mineral/titanium' and its subtypes. */ -//Redefinitions of the diagonal directions so they can be stored in one var without conflicts -#define NORTH_JUNCTION NORTH //(1<<0) -#define SOUTH_JUNCTION SOUTH //(1<<1) -#define EAST_JUNCTION EAST //(1<<2) -#define WEST_JUNCTION WEST //(1<<3) -#define NORTHEAST_JUNCTION (1<<4) -#define SOUTHEAST_JUNCTION (1<<5) -#define SOUTHWEST_JUNCTION (1<<6) -#define NORTHWEST_JUNCTION (1<<7) - -DEFINE_BITFIELD(smoothing_junction, list( - "NORTH_JUNCTION" = NORTH_JUNCTION, - "SOUTH_JUNCTION" = SOUTH_JUNCTION, - "EAST_JUNCTION" = EAST_JUNCTION, - "WEST_JUNCTION" = WEST_JUNCTION, - "NORTHEAST_JUNCTION" = NORTHEAST_JUNCTION, - "SOUTHEAST_JUNCTION" = SOUTHEAST_JUNCTION, - "SOUTHWEST_JUNCTION" = SOUTHWEST_JUNCTION, - "NORTHWEST_JUNCTION" = NORTHWEST_JUNCTION, -)) - - #define NO_ADJ_FOUND 0 #define ADJ_FOUND 1 #define NULLTURF_BORDER 2 @@ -156,10 +125,7 @@ DEFINE_BITFIELD(smoothing_junction, list( if (!z) CRASH("[type] called smooth_icon() without being on a z-level") if(smoothing_flags & SMOOTH_CORNERS) - if(smoothing_flags & SMOOTH_DIAGONAL_CORNERS) - corners_diagonal_smooth(calculate_adjacencies()) - else - corners_cardinal_smooth(calculate_adjacencies()) + corners_cardinal_smooth(calculate_adjacencies()) else if(smoothing_flags & SMOOTH_BITMASK) bitmask_smooth() else @@ -167,35 +133,6 @@ DEFINE_BITFIELD(smoothing_junction, list( SEND_SIGNAL(src, COMSIG_ATOM_SMOOTHED_ICON) update_appearance(~UPDATE_SMOOTHING) - -/atom/proc/corners_diagonal_smooth(adjacencies) - switch(adjacencies) - if(NORTH_JUNCTION|WEST_JUNCTION) - replace_smooth_overlays("d-se","d-se-0") - if(NORTH_JUNCTION|EAST_JUNCTION) - replace_smooth_overlays("d-sw","d-sw-0") - if(SOUTH_JUNCTION|WEST_JUNCTION) - replace_smooth_overlays("d-ne","d-ne-0") - if(SOUTH_JUNCTION|EAST_JUNCTION) - replace_smooth_overlays("d-nw","d-nw-0") - - if(NORTH_JUNCTION|WEST_JUNCTION|NORTHWEST_JUNCTION) - replace_smooth_overlays("d-se","d-se-1") - if(NORTH_JUNCTION|EAST_JUNCTION|NORTHEAST_JUNCTION) - replace_smooth_overlays("d-sw","d-sw-1") - if(SOUTH_JUNCTION|WEST_JUNCTION|SOUTHWEST_JUNCTION) - replace_smooth_overlays("d-ne","d-ne-1") - if(SOUTH_JUNCTION|EAST_JUNCTION|SOUTHEAST_JUNCTION) - replace_smooth_overlays("d-nw","d-nw-1") - - else - corners_cardinal_smooth(adjacencies) - return FALSE - - icon_state = "" - return TRUE - - /atom/proc/corners_cardinal_smooth(adjacencies) var/mutable_appearance/temp_ma @@ -361,38 +298,6 @@ DEFINE_BITFIELD(smoothing_junction, list( icon_state = "[base_icon_state]-[smoothing_junction]" -/turf/closed/set_smoothed_icon_state(new_junction) - . = ..() - if(smoothing_flags & SMOOTH_DIAGONAL_CORNERS) - switch(new_junction) - if( - NORTH_JUNCTION|WEST_JUNCTION, - NORTH_JUNCTION|EAST_JUNCTION, - SOUTH_JUNCTION|WEST_JUNCTION, - SOUTH_JUNCTION|EAST_JUNCTION, - NORTH_JUNCTION|WEST_JUNCTION|NORTHWEST_JUNCTION, - NORTH_JUNCTION|EAST_JUNCTION|NORTHEAST_JUNCTION, - SOUTH_JUNCTION|WEST_JUNCTION|SOUTHWEST_JUNCTION, - SOUTH_JUNCTION|EAST_JUNCTION|SOUTHEAST_JUNCTION - ) - icon_state = "[base_icon_state]-[smoothing_junction]-d" - if(!fixed_underlay && new_junction != .) // Mutable underlays? - var/junction_dir = reverse_ndir(smoothing_junction) - var/turned_adjacency = REVERSE_DIR(junction_dir) - var/turf/neighbor_turf = get_step(src, turned_adjacency & (NORTH|SOUTH)) - var/mutable_appearance/underlay_appearance = mutable_appearance(layer = TURF_LAYER, plane = FLOOR_PLANE) - if(!neighbor_turf.get_smooth_underlay_icon(underlay_appearance, src, turned_adjacency)) - neighbor_turf = get_step(src, turned_adjacency & (EAST|WEST)) - - if(!neighbor_turf.get_smooth_underlay_icon(underlay_appearance, src, turned_adjacency)) - neighbor_turf = get_step(src, turned_adjacency) - - if(!neighbor_turf.get_smooth_underlay_icon(underlay_appearance, src, turned_adjacency)) - if(!get_smooth_underlay_icon(underlay_appearance, src, turned_adjacency)) //if all else fails, ask our own turf - underlay_appearance.icon = DEFAULT_UNDERLAY_ICON - underlay_appearance.icon_state = DEFAULT_UNDERLAY_ICON_STATE - underlays += underlay_appearance - /turf/open/floor/set_smoothed_icon_state(new_junction) if(broken || burnt) return @@ -505,19 +410,10 @@ DEFINE_BITFIELD(smoothing_junction, list( name = "smooth wall" icon = 'icons/turf/smooth_wall.dmi' icon_state = "smooth" - smoothing_flags = SMOOTH_CORNERS|SMOOTH_DIAGONAL_CORNERS|SMOOTH_BORDER + smoothing_flags = SMOOTH_CORNERS|SMOOTH_BORDER smoothing_groups = null canSmoothWith = null -#undef NORTH_JUNCTION -#undef SOUTH_JUNCTION -#undef EAST_JUNCTION -#undef WEST_JUNCTION -#undef NORTHEAST_JUNCTION -#undef NORTHWEST_JUNCTION -#undef SOUTHEAST_JUNCTION -#undef SOUTHWEST_JUNCTION - #undef NO_ADJ_FOUND #undef ADJ_FOUND #undef NULLTURF_BORDER diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm index 81224a93dc6..ee182ebcdba 100644 --- a/code/_globalvars/lists/maintenance_loot.dm +++ b/code/_globalvars/lists/maintenance_loot.dm @@ -307,7 +307,7 @@ GLOBAL_LIST_INIT(rarity_loot, list(//rare: really good items /obj/item/paint/black = 1, /obj/item/paint/blue = 1, /obj/item/paint/green = 1, - /obj/item/paint/paint_remover = 1, + /obj/item/paint_remover = 1, /obj/item/paint/red = 1, /obj/item/paint/violet = 1, /obj/item/paint/white = 1, diff --git a/code/datums/actions/mobs/charge.dm b/code/datums/actions/mobs/charge.dm index 4d69e28aa71..7c00190dd3d 100644 --- a/code/datums/actions/mobs/charge.dm +++ b/code/datums/actions/mobs/charge.dm @@ -287,7 +287,7 @@ /datum/action/cooldown/mob_cooldown/charge/hallucination_charge/hallucination_surround name = "Surround Target" - icon_icon = 'icons/turf/walls/wall.dmi' + icon_icon = 'icons/turf/walls/legacy/wall.dmi' button_icon_state = "wall-0" desc = "Allows you to create hallucinations that charge around your target." charge_delay = 0.6 SECONDS diff --git a/code/datums/greyscale/README.md b/code/datums/greyscale/README.md index ca4e28bf843..a69991db404 100644 --- a/code/datums/greyscale/README.md +++ b/code/datums/greyscale/README.md @@ -6,6 +6,7 @@ If you're wanting to add easy recolors for your sprite then this is the system f - Mixed greyscale and colored sprite layers; You can choose to only greyscale a part of the sprite or have premade filters applied to layers. - Blend modes; Instead of just putting layers of sprites on top of eachother you can use the more advanced blend modes. - Reusable configurations; You can reference greyscale sprites from within the configuration of another, allowing you to have a bunch of styles with minimal additional configuration. +- Bitmasked icons can be generated from bitmasked source files. In order to do this, add "bitmask_config" key to your icon state metadata with an integer value equal to a bitfield of flags from `code/__DEFINES/greyscale.dm`. The common one that walls and windows use is 7 (first three flags). After this you need to set `"bitmask" = true` in your layer data to have that layer use a bitmasked variant. You can mix bitmasked layers and non-bitmasked layers. ## Other Documents @@ -33,27 +34,31 @@ The json is made up of some metadata and a list of layers used while creating th ```json { - "icon_state_name": [ - { - "type": "reference", - "reference_type": "/datum/greyscale_config/some_other_config", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, + "icon_state_name": + { + "layers": [ { - "type": "icon_state", - "icon_state": "highlights", + "type": "reference", + "reference_type": "/datum/greyscale_config/some_other_config", "blend_mode": "overlay", - "color_ids": [ 2 ] + "color_ids": [ 1 ] }, - { - "type": "reference", - "reference_type": "/datum/greyscale_config/sparkle_effect", - "blend_mode": "add" - } + [ + { + "type": "icon_state", + "icon_state": "highlights", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "reference", + "reference_type": "/datum/greyscale_config/sparkle_effect", + "blend_mode": "add" + } + ] ] - ] + } } ``` diff --git a/code/datums/greyscale/_greyscale_config.dm b/code/datums/greyscale/_greyscale_config.dm index 393a0f901c3..cd3a89d4bbc 100644 --- a/code/datums/greyscale/_greyscale_config.dm +++ b/code/datums/greyscale/_greyscale_config.dm @@ -138,8 +138,8 @@ /// Called after every config has refreshed, this proc handles data verification that depends on multiple entwined configurations. /datum/greyscale_config/proc/CrossVerify() for(var/icon_state in icon_states) - var/list/verification_targets = icon_states[icon_state] - verification_targets = verification_targets.Copy() + var/datum/greyscale_state/gags_state = icon_states[icon_state] + var/list/verification_targets = gags_state.layers.Copy() while(length(verification_targets)) var/datum/greyscale_layer/layer = verification_targets[length(verification_targets)] verification_targets.len-- @@ -157,13 +157,16 @@ /datum/greyscale_config/proc/ReadIconStateConfiguration(list/data) icon_states = list() for(var/state in data) - var/list/raw_layers = data[state] + var/list/state_information = data[state] + var/list/raw_layers = state_information["layers"] + var/bitmask_config = state_information["bitmask_config"] ? text2num(state_information["bitmask_config"]) : NONE + var/default_state_if_bitmask = state_information["default_state_if_bitmask"] ? TRUE : FALSE if(!length(raw_layers)) stack_trace("The json configuration [DebugName()] for icon state '[state]' is missing any layers.") continue if(icon_states[state]) stack_trace("The json configuration [DebugName()] has a duplicate icon state '[state]' and is being overriden.") - icon_states[state] = ReadLayersFromJson(raw_layers) + icon_states[state] = new /datum/greyscale_state(ReadLayersFromJson(raw_layers), bitmask_config, default_state_if_bitmask) /// Takes the json layers configuration and puts it into a more processed format /datum/greyscale_config/proc/ReadLayersFromJson(list/data) @@ -190,8 +193,10 @@ width = source.Width() var/list/datum/greyscale_layer/all_layers = list() + var/list/to_process = list() for(var/state in icon_states) - var/list/to_process = list(icon_states[state]) + var/datum/greyscale_state/gags_state = icon_states[state] + to_process += gags_state.layers var/list/state_layers = list() while(length(to_process)) @@ -239,6 +244,13 @@ var/icon/icon_bundle = GenerateBundle(color_string, last_external_icon=last_external_icon) icon_bundle = fcopy_rsc(icon_bundle) + + // This block is done like this because generated icons are unable to be scaled before getting added to the rsc + icon_bundle = fcopy_rsc(icon_bundle) + icon_bundle = icon(icon_bundle) + icon_bundle.Scale(width, height) + icon_bundle = fcopy_rsc(icon_bundle) + icon_cache[key] = icon_bundle var/icon/output = icon(icon_bundle) return output @@ -252,34 +264,61 @@ var/list/generated_icons = list() for(var/icon_state in icon_states) - var/list/icon_state_steps - if(render_steps) - icon_state_steps = render_steps[icon_state] = list() - var/icon/generated_icon = GenerateLayerGroup(colors, icon_states[icon_state], icon_state_steps, last_external_icon) - // We read a pixel to force the icon to be fully generated before we let it loose into the world - // I hate this - generated_icon.GetPixel(1, 1) - generated_icons[icon_state] = generated_icon - - var/icon/icon_bundle = generated_icons[""] || icon('icons/testing/greyscale_error.dmi') - icon_bundle.Scale(width, height) - generated_icons -= "" - + var/datum/greyscale_state/gags_state = icon_states[icon_state] + var/list/layers = gags_state.layers + var/bitmask_config = gags_state.bitmask_config + var/default_state_if_bitmask = gags_state.default_state_if_bitmask + // Generate the default icon state if we are not bitmasking, or we want to do so despite bitmasking + if(bitmask_config == NONE || default_state_if_bitmask == TRUE) + var/icon/generated_icon = GenerateLayerGroup(colors, layers, render_steps) + // We read a pixel to force the icon to be fully generated before we let it loose into the world + // I hate this + generated_icon.GetPixel(1, 1) + generated_icons[icon_state] = generated_icon + + // Also generate bitmasked states if the config tells us to. + if(bitmask_config != NONE) + var/list/steps = list() + for(var/potential_step in 0 to 255) + if(!(bitmask_config & GAGS_CARDINAL_SMOOTH)) + if(potential_step & (NORTH_JUNCTION|SOUTH_JUNCTION|EAST_JUNCTION|WEST_JUNCTION)) + continue + if(potential_step & (NORTHEAST_JUNCTION|SOUTHEAST_JUNCTION|SOUTHWEST_JUNCTION|NORTHWEST_JUNCTION)) + if(!(bitmask_config & GAGS_DIAGONAL_SMOOTH)) + continue + else if (bitmask_config & GAGS_DIAGONAL_NEED_ADJACENT_CARDINAL) + if(potential_step & NORTHEAST_JUNCTION && !(potential_step & NORTH_JUNCTION && potential_step & EAST_JUNCTION)) + continue + if(potential_step & SOUTHEAST_JUNCTION && !(potential_step & SOUTH_JUNCTION && potential_step & EAST_JUNCTION)) + continue + if(potential_step & SOUTHWEST_JUNCTION && !(potential_step & SOUTH_JUNCTION && potential_step & WEST_JUNCTION)) + continue + if(potential_step & NORTHWEST_JUNCTION && !(potential_step & NORTH_JUNCTION && potential_step & WEST_JUNCTION)) + continue + + steps += potential_step + for(var/bit_step in steps) + var/icon/generated_icon = GenerateLayerGroup(colors, layers, render_steps, TRUE, bit_step) + // Same as above. + generated_icon.GetPixel(1, 1) + generated_icons["[icon_state]-[bit_step]"] = generated_icon + + var/icon/icon_bundle = icon('icons/testing/greyscale_error.dmi') for(var/icon_state in generated_icons) icon_bundle.Insert(generated_icons[icon_state], icon_state) return icon_bundle /// Internal recursive proc to handle nested layer groups -/datum/greyscale_config/proc/GenerateLayerGroup(list/colors, list/group, list/render_steps, icon/last_external_icon) +/datum/greyscale_config/proc/GenerateLayerGroup(list/colors, list/group, list/render_steps, do_bitmasking = FALSE, bitmask_step, icon/last_external_icon) var/icon/new_icon for(var/datum/greyscale_layer/layer as anything in group) var/icon/layer_icon if(islist(layer)) - layer_icon = GenerateLayerGroup(colors, layer, render_steps, new_icon || last_external_icon) + layer_icon = GenerateLayerGroup(colors, layer, render_steps, do_bitmasking, bitmask_step, last_external_icon) layer = layer[1] // When there are multiple layers in a group like this we use the first one's blend mode else - layer_icon = layer.Generate(colors, render_steps, new_icon || last_external_icon) + layer_icon = layer.Generate(colors, render_steps, do_bitmasking, bitmask_step, last_external_icon) if(!new_icon) new_icon = layer_icon @@ -289,7 +328,7 @@ // These are so we can see the result of every step of the process in the preview ui if(render_steps) var/list/icon_data = list() - render_steps += list(icon_data) + render_steps[icon(layer_icon)] = icon_data icon_data["config_name"] = name icon_data["step"] = icon(layer_icon) icon_data["result"] = icon(new_icon) diff --git a/code/datums/greyscale/config_types/greyscale_configs.dm b/code/datums/greyscale/config_types/greyscale_configs.dm index 665b4ea3698..58484d6481d 100644 --- a/code/datums/greyscale/config_types/greyscale_configs.dm +++ b/code/datums/greyscale/config_types/greyscale_configs.dm @@ -516,3 +516,63 @@ name = "Worn Skull Bandana Up" icon_file = 'icons/mob/clothing/mask.dmi' json_config = 'code/datums/greyscale/json_configs/bandskull_worn_up.json' + +/datum/greyscale_config/solid_wall + name = "Solid Wall" + icon_file = 'icons/turf/walls/solid_wall.dmi' + json_config = 'code/datums/greyscale/json_configs/turfs/solid_wall.json' + +/datum/greyscale_config/reinforced_solid_wall + name = "Reinforced Solid Wall" + icon_file = 'icons/turf/walls/solid_wall_reinforced.dmi' + json_config = 'code/datums/greyscale/json_configs/turfs/solid_wall.json' + +/datum/greyscale_config/low_wall + name = "Low Wall" + icon_file = 'icons/obj/smooth_structures/low_wall.dmi' + json_config = 'code/datums/greyscale/json_configs/structures/low_wall.json' + +/datum/greyscale_config/wall_stripe + name = "Wall Stripe" + icon_file = 'icons/turf/walls/wall_stripe.dmi' + json_config = 'code/datums/greyscale/json_configs/turfs/wall_stripe.json' + +/datum/greyscale_config/wood_wall_stripe + name = "Wood Wall Stripe" + icon_file = 'icons/turf/walls/wood_wall_stripe.dmi' + json_config = 'code/datums/greyscale/json_configs/turfs/shineless_wall_stripe.json' + +/datum/greyscale_config/wall_neighbor_stripe + name = "Wall Neighbor Stripe" + icon_file = 'icons/turf/walls/neighbor_stripe.dmi' + json_config = 'code/datums/greyscale/json_configs/turfs/wall_neighbor_stripe.json' + +/datum/greyscale_config/metal_wall + name = "Metal Wall" + icon_file = 'icons/turf/walls/metal_wall.dmi' + json_config = 'code/datums/greyscale/json_configs/turfs/shineless_wall.json' + +/datum/greyscale_config/wood_wall + name = "Wood Wall" + icon_file = 'icons/turf/walls/wood_wall.dmi' + json_config = 'code/datums/greyscale/json_configs/turfs/shineless_wall.json' + +/datum/greyscale_config/stone_wall + name = "Stone Wall" + icon_file = 'icons/turf/walls/stone_wall.dmi' + json_config = 'code/datums/greyscale/json_configs/turfs/shineless_wall.json' + +/datum/greyscale_config/cult_wall + name = "Cult Wall" + icon_file = 'icons/turf/walls/cult_wall.dmi' + json_config = 'code/datums/greyscale/json_configs/turfs/shineless_wall.json' + +/datum/greyscale_config/fulltile_window + name = "Fulltile Window" + icon_file = 'icons/obj/smooth_structures/window.dmi' + json_config = 'code/datums/greyscale/json_configs/structures/fulltile_window.json' + +/datum/greyscale_config/fulltile_reinforced_window + name = "Fulltile Window Reinforced" + icon_file = 'icons/obj/smooth_structures/window_reinforced.dmi' + json_config = 'code/datums/greyscale/json_configs/structures/fulltile_window.json' diff --git a/code/datums/greyscale/json_configs/bandana.json b/code/datums/greyscale/json_configs/bandana.json index a56d9b18265..567c913a01a 100644 --- a/code/datums/greyscale/json_configs/bandana.json +++ b/code/datums/greyscale/json_configs/bandana.json @@ -1,10 +1,14 @@ { - "bandana": [ - { - "type": "icon_state", - "icon_state": "bandana_cloth", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "bandana": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "bandana_cloth", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/bandana_up.json b/code/datums/greyscale/json_configs/bandana_up.json index 393d7b0710f..524d70afd56 100644 --- a/code/datums/greyscale/json_configs/bandana_up.json +++ b/code/datums/greyscale/json_configs/bandana_up.json @@ -1,10 +1,14 @@ { - "bandana_up": [ - { - "type": "icon_state", - "icon_state": "bandana_cloth_up", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "bandana_up": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "bandana_cloth_up", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/bandana_worn.json b/code/datums/greyscale/json_configs/bandana_worn.json index bc0e6c002d5..c0800b7f088 100644 --- a/code/datums/greyscale/json_configs/bandana_worn.json +++ b/code/datums/greyscale/json_configs/bandana_worn.json @@ -1,10 +1,14 @@ { - "bandana_worn": [ - { - "type": "icon_state", - "icon_state": "bandana_cloth_worn", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "bandana_worn": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "bandana_cloth_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/bandana_worn_up.json b/code/datums/greyscale/json_configs/bandana_worn_up.json index b5375d5dfa0..30a7887d49d 100644 --- a/code/datums/greyscale/json_configs/bandana_worn_up.json +++ b/code/datums/greyscale/json_configs/bandana_worn_up.json @@ -1,10 +1,14 @@ { - "bandana_worn_up": [ - { - "type": "icon_state", - "icon_state": "bandana_cloth_worn_up", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "bandana_worn_up": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "bandana_cloth_worn_up", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/bandskull.json b/code/datums/greyscale/json_configs/bandskull.json index 18344d5d13a..31a06692f74 100644 --- a/code/datums/greyscale/json_configs/bandskull.json +++ b/code/datums/greyscale/json_configs/bandskull.json @@ -1,16 +1,20 @@ { - "bandskull": [ - { - "type": "icon_state", - "icon_state": "bandana_cloth", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, + "bandskull": { - "type": "icon_state", - "icon_state": "bandana_skull", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] + "layers": + [ + { + "type": "icon_state", + "icon_state": "bandana_cloth", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "bandana_skull", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/bandskull_up.json b/code/datums/greyscale/json_configs/bandskull_up.json index c01dc7bcf43..e972cb564d6 100644 --- a/code/datums/greyscale/json_configs/bandskull_up.json +++ b/code/datums/greyscale/json_configs/bandskull_up.json @@ -1,16 +1,20 @@ { - "bandskull_up": [ - { - "type": "icon_state", - "icon_state": "bandana_cloth_up", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "bandana_skull_up", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] + "bandskull_up": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "bandana_cloth_up", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "bandana_skull_up", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/bandskull_worn.json b/code/datums/greyscale/json_configs/bandskull_worn.json index 3d2e34688c9..ca2147adf14 100644 --- a/code/datums/greyscale/json_configs/bandskull_worn.json +++ b/code/datums/greyscale/json_configs/bandskull_worn.json @@ -1,16 +1,20 @@ { - "bandskull_worn": [ - { - "type": "icon_state", - "icon_state": "bandana_cloth_worn", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "bandana_skull_worn", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] + "bandskull_worn": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "bandana_cloth_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "bandana_skull_worn", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/bandskull_worn_up.json b/code/datums/greyscale/json_configs/bandskull_worn_up.json index be37d2ee2b8..81b530d15d1 100644 --- a/code/datums/greyscale/json_configs/bandskull_worn_up.json +++ b/code/datums/greyscale/json_configs/bandskull_worn_up.json @@ -1,16 +1,20 @@ { - "bandskull_worn_up": [ - { - "type": "icon_state", - "icon_state": "bandana_cloth_worn_up", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "bandana_skull_worn_up", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] + "bandskull_up": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "bandana_cloth_worn_up", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "bandana_skull_worn_up", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/bandstriped.json b/code/datums/greyscale/json_configs/bandstriped.json index e31fb50309f..ee11bf76d1d 100644 --- a/code/datums/greyscale/json_configs/bandstriped.json +++ b/code/datums/greyscale/json_configs/bandstriped.json @@ -1,16 +1,20 @@ { - "bandstriped": [ - { - "type": "icon_state", - "icon_state": "bandana_cloth", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "bandana_stripe", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] + "bandstriped": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "bandana_cloth", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "bandana_stripe", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/bandstriped_up.json b/code/datums/greyscale/json_configs/bandstriped_up.json index da464432cd4..fe6e38849d9 100644 --- a/code/datums/greyscale/json_configs/bandstriped_up.json +++ b/code/datums/greyscale/json_configs/bandstriped_up.json @@ -1,16 +1,20 @@ { - "bandstriped_up": [ - { - "type": "icon_state", - "icon_state": "bandana_cloth_up", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "bandana_stripe_up", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] + "bandstriped_up": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "bandana_cloth_up", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "bandana_stripe_up", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/bandstriped_worn.json b/code/datums/greyscale/json_configs/bandstriped_worn.json index 89d729aa4c9..11a028a0ea6 100644 --- a/code/datums/greyscale/json_configs/bandstriped_worn.json +++ b/code/datums/greyscale/json_configs/bandstriped_worn.json @@ -1,16 +1,20 @@ { - "bandstriped_worn": [ - { - "type": "icon_state", - "icon_state": "bandana_cloth_worn", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "bandana_stripe_worn", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] + "bandstriped_worn": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "bandana_cloth_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "bandana_stripe_worn", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/bandstriped_worn_up.json b/code/datums/greyscale/json_configs/bandstriped_worn_up.json index 7d08ea651ac..a9251904c56 100644 --- a/code/datums/greyscale/json_configs/bandstriped_worn_up.json +++ b/code/datums/greyscale/json_configs/bandstriped_worn_up.json @@ -1,16 +1,20 @@ { - "bandstriped_worn_up": [ - { - "type": "icon_state", - "icon_state": "bandana_cloth_worn_up", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "bandana_stripe_worn_up", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] + "bandstriped_worn_up": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "bandana_cloth_worn_up", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "bandana_stripe_worn_up", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/bench_corner.json b/code/datums/greyscale/json_configs/bench_corner.json index 3a86aea97e2..9f2a0f23cfd 100644 --- a/code/datums/greyscale/json_configs/bench_corner.json +++ b/code/datums/greyscale/json_configs/bench_corner.json @@ -1,15 +1,19 @@ { - "bench_corner": [ - { - "type": "icon_state", - "icon_state": "bench_corner_base", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "bench_corner_cover", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "bench_corner": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "bench_corner_base", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "bench_corner_cover", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/bench_left.json b/code/datums/greyscale/json_configs/bench_left.json index 36939f8b716..a008cd37586 100644 --- a/code/datums/greyscale/json_configs/bench_left.json +++ b/code/datums/greyscale/json_configs/bench_left.json @@ -1,15 +1,19 @@ { - "bench_left": [ - { - "type": "icon_state", - "icon_state": "bench_left_base", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "bench_left_cover", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "bench_left": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "bench_left_base", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "bench_left_cover", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/bench_middle.json b/code/datums/greyscale/json_configs/bench_middle.json index a40df28984e..be15aa53bee 100644 --- a/code/datums/greyscale/json_configs/bench_middle.json +++ b/code/datums/greyscale/json_configs/bench_middle.json @@ -1,15 +1,19 @@ { - "bench_middle": [ - { - "type": "icon_state", - "icon_state": "bench_middle_base", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "bench_middle_cover", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "bench_middle": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "bench_middle_base", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "bench_middle_cover", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/bench_right.json b/code/datums/greyscale/json_configs/bench_right.json index ec1c3575613..f04ccc62980 100644 --- a/code/datums/greyscale/json_configs/bench_right.json +++ b/code/datums/greyscale/json_configs/bench_right.json @@ -1,15 +1,19 @@ { - "bench_right": [ - { - "type": "icon_state", - "icon_state": "bench_right_base", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "bench_right_cover", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "bench_right": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "bench_right_base", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "bench_right_cover", + "blend_mode": "overlay", + "color_ids": [1] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/beret.json b/code/datums/greyscale/json_configs/beret.json index f7ee848d264..9e9fdd57247 100644 --- a/code/datums/greyscale/json_configs/beret.json +++ b/code/datums/greyscale/json_configs/beret.json @@ -1,18 +1,26 @@ { - "beret": [ - { - "type": "icon_state", - "icon_state": "beret", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "beret_flat": [ - { - "type": "icon_state", - "icon_state": "beret_flat", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "beret": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "beret", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + }, + "beret_flat": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "beret_flat", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/beret_badge.json b/code/datums/greyscale/json_configs/beret_badge.json index f0eda0df5ae..e4581927529 100644 --- a/code/datums/greyscale/json_configs/beret_badge.json +++ b/code/datums/greyscale/json_configs/beret_badge.json @@ -1,16 +1,20 @@ { - "beret_badge": [ - { - "type": "icon_state", - "icon_state": "beret", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "badge", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] + "beret_badge": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "beret", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/beret_badge_worn.json b/code/datums/greyscale/json_configs/beret_badge_worn.json index 47960e08daa..2f2bd8624e8 100644 --- a/code/datums/greyscale/json_configs/beret_badge_worn.json +++ b/code/datums/greyscale/json_configs/beret_badge_worn.json @@ -1,16 +1,20 @@ { - "beret_badge": [ - { - "type": "icon_state", - "icon_state": "beret_worn", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "badge_worn", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] + "beret_badge": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "beret_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge_worn", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/beret_worn.json b/code/datums/greyscale/json_configs/beret_worn.json index 8509136e53a..9924102d195 100644 --- a/code/datums/greyscale/json_configs/beret_worn.json +++ b/code/datums/greyscale/json_configs/beret_worn.json @@ -1,18 +1,26 @@ { - "beret": [ - { - "type": "icon_state", - "icon_state": "beret_worn", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "beret_flat": [ - { - "type": "icon_state", - "icon_state": "beret_worn", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "beret": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "beret_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + }, + "beret_flat": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "beret_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/canister_base.json b/code/datums/greyscale/json_configs/canister_base.json index 4528c6225c6..19095949d00 100644 --- a/code/datums/greyscale/json_configs/canister_base.json +++ b/code/datums/greyscale/json_configs/canister_base.json @@ -1,20 +1,24 @@ { - "": [ - { - "type": "icon_state", - "icon_state": "base", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "add_shader", - "blend_mode": "add" - }, - { - "type": "icon_state", - "icon_state": "multi_shader", - "blend_mode": "multiply" - } - ] + "": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "base", + "blend_mode": "overlay", + "color_ids": [1] + }, + { + "type": "icon_state", + "icon_state": "add_shader", + "blend_mode": "add" + }, + { + "type": "icon_state", + "icon_state": "multi_shader", + "blend_mode": "multiply" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/canister_default.json b/code/datums/greyscale/json_configs/canister_default.json index b965e9ec3fd..630c84cad3f 100644 --- a/code/datums/greyscale/json_configs/canister_default.json +++ b/code/datums/greyscale/json_configs/canister_default.json @@ -1,24 +1,32 @@ { - "": [ - { - "type": "reference", - "reference_type": "/datum/greyscale_config/canister/base", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "reference", - "reference_type": "/datum/greyscale_config/canister/post_effects", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "window-base": [ - { - "type": "icon_state", - "icon_state": "window-base", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "": + { + "layers": + [ + { + "type": "reference", + "reference_type": "/datum/greyscale_config/canister/base", + "blend_mode": "overlay", + "color_ids": [1] + }, + { + "type": "reference", + "reference_type": "/datum/greyscale_config/canister/post_effects", + "blend_mode": "overlay", + "color_ids": [1] + } + ] + }, + "window-base": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "window-base", + "blend_mode": "overlay", + "color_ids": [1] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/canister_double_stripe.json b/code/datums/greyscale/json_configs/canister_double_stripe.json index 33dd115d3ea..6beffb49157 100644 --- a/code/datums/greyscale/json_configs/canister_double_stripe.json +++ b/code/datums/greyscale/json_configs/canister_double_stripe.json @@ -1,37 +1,45 @@ { - "": [ - { - "type": "reference", - "reference_type": "/datum/greyscale_config/canister/base", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, + "": + { + "layers": [ { - "type": "icon_state", - "icon_state": "double_stripe", + "type": "reference", + "reference_type": "/datum/greyscale_config/canister/base", "blend_mode": "overlay", - "color_ids": [ 2 ] + "color_ids": [1] }, + [ + { + "type": "icon_state", + "icon_state": "double_stripe", + "blend_mode": "overlay", + "color_ids": [2] + }, + { + "type": "icon_state", + "icon_state": "double_stripe_shader", + "blend_mode": "subtract" + } + ], + { + "type": "reference", + "reference_type": "/datum/greyscale_config/canister/post_effects", + "blend_mode": "overlay", + "color_ids": [1] + } + ] + }, + "window-base": + { + "layers": + [ { "type": "icon_state", - "icon_state": "double_stripe_shader", - "blend_mode": "subtract" + "icon_state": "window-base", + "blend_mode": "overlay", + "color_ids": [1] } - ], - { - "type": "reference", - "reference_type": "/datum/greyscale_config/canister/post_effects", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "window-base": [ - { - "type": "icon_state", - "icon_state": "window-base", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + ] + } } diff --git a/code/datums/greyscale/json_configs/canister_hazard.json b/code/datums/greyscale/json_configs/canister_hazard.json index 81c19362231..f82cda43784 100644 --- a/code/datums/greyscale/json_configs/canister_hazard.json +++ b/code/datums/greyscale/json_configs/canister_hazard.json @@ -1,30 +1,38 @@ { - "": [ - { - "type": "reference", - "reference_type": "/datum/greyscale_config/canister/base", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "hazard_stripes", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "reference", - "reference_type": "/datum/greyscale_config/canister/post_effects", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "window-base": [ - { - "type": "icon_state", - "icon_state": "window-base", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "": + { + "layers": + [ + { + "type": "reference", + "reference_type": "/datum/greyscale_config/canister/base", + "blend_mode": "overlay", + "color_ids": [1] + }, + { + "type": "icon_state", + "icon_state": "hazard_stripes", + "blend_mode": "overlay", + "color_ids": [2] + }, + { + "type": "reference", + "reference_type": "/datum/greyscale_config/canister/post_effects", + "blend_mode": "overlay", + "color_ids": [1] + } + ] + }, + "window-base": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "window-base", + "blend_mode": "overlay", + "color_ids": [1] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/canister_post_effects.json b/code/datums/greyscale/json_configs/canister_post_effects.json index 6756c3221f9..3eb0391365d 100644 --- a/code/datums/greyscale/json_configs/canister_post_effects.json +++ b/code/datums/greyscale/json_configs/canister_post_effects.json @@ -1,15 +1,19 @@ { - "": [ - { - "type": "icon_state", - "icon_state": "outline", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "lights", - "blend_mode": "overlay" - } - ] + "": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "outline", + "blend_mode": "overlay", + "color_ids": [1] + }, + { + "type": "icon_state", + "icon_state": "lights", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/canister_proto.json b/code/datums/greyscale/json_configs/canister_proto.json index 09f19b80e9b..4d1873d0dd6 100644 --- a/code/datums/greyscale/json_configs/canister_proto.json +++ b/code/datums/greyscale/json_configs/canister_proto.json @@ -1,39 +1,43 @@ { - "": [ - { - "type": "icon_state", - "icon_state": "can_base", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "can_shader", - "blend_mode": "multiply" - }, - { - "type": "icon_state", - "icon_state": "stand", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "decals", - "blend_mode": "overlay" - }, + "": + { + "layers": [ { "type": "icon_state", - "icon_state": "light_base", + "icon_state": "can_base", "blend_mode": "overlay", - "color_ids": [ 2 ] + "color_ids": [1] }, { "type": "icon_state", - "icon_state": "light", - "blend_mode": "overlay", - "color_ids": [ 3 ] - } + "icon_state": "can_shader", + "blend_mode": "multiply" + }, + { + "type": "icon_state", + "icon_state": "stand", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "decals", + "blend_mode": "overlay" + }, + [ + { + "type": "icon_state", + "icon_state": "light_base", + "blend_mode": "overlay", + "color_ids": [2] + }, + { + "type": "icon_state", + "icon_state": "light", + "blend_mode": "overlay", + "color_ids": [3] + } + ] ] - ] + } } diff --git a/code/datums/greyscale/json_configs/canister_stripe.json b/code/datums/greyscale/json_configs/canister_stripe.json index 9e5f087c0ae..cc7c8288cf9 100644 --- a/code/datums/greyscale/json_configs/canister_stripe.json +++ b/code/datums/greyscale/json_configs/canister_stripe.json @@ -1,30 +1,38 @@ { - "": [ - { - "type": "reference", - "reference_type": "/datum/greyscale_config/canister/base", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "stripe", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "reference", - "reference_type": "/datum/greyscale_config/canister/post_effects", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "window-base": [ - { - "type": "icon_state", - "icon_state": "window-base", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "": + { + "layers": + [ + { + "type": "reference", + "reference_type": "/datum/greyscale_config/canister/base", + "blend_mode": "overlay", + "color_ids": [1] + }, + { + "type": "icon_state", + "icon_state": "stripe", + "blend_mode": "overlay", + "color_ids": [2] + }, + { + "type": "reference", + "reference_type": "/datum/greyscale_config/canister/post_effects", + "blend_mode": "overlay", + "color_ids": [1] + } + ] + }, + "window-base": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "window-base", + "blend_mode": "overlay", + "color_ids": [1] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/carp.json b/code/datums/greyscale/json_configs/carp.json index d01fda5a9ee..a11851c9c49 100644 --- a/code/datums/greyscale/json_configs/carp.json +++ b/code/datums/greyscale/json_configs/carp.json @@ -1,28 +1,36 @@ { - "base": [ - { - "type": "icon_state", - "icon_state": "base", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "base_mouth", - "blend_mode": "overlay" - } - ], - "base_dead": [ - { - "type": "icon_state", - "icon_state": "base_dead", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "base_dead_mouth", - "blend_mode": "overlay" - } - ] + "base": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "base", + "blend_mode": "overlay", + "color_ids": [1] + }, + { + "type": "icon_state", + "icon_state": "base_mouth", + "blend_mode": "overlay" + } + ] + }, + "base_dead": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "base_dead", + "blend_mode": "overlay", + "color_ids": [1] + }, + { + "type": "icon_state", + "icon_state": "base_dead_mouth", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/carp_disk_mouth.json b/code/datums/greyscale/json_configs/carp_disk_mouth.json index f74fcfdeec6..c014ba45f91 100644 --- a/code/datums/greyscale/json_configs/carp_disk_mouth.json +++ b/code/datums/greyscale/json_configs/carp_disk_mouth.json @@ -1,10 +1,14 @@ { - "disk_mouth": [ - { - "type": "icon_state", - "icon_state": "disk_mouth", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "disk_mouth": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "disk_mouth", + "blend_mode": "overlay", + "color_ids": [1] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/circuit.json b/code/datums/greyscale/json_configs/circuit.json index ed1569cda25..e2421536e9d 100644 --- a/code/datums/greyscale/json_configs/circuit.json +++ b/code/datums/greyscale/json_configs/circuit.json @@ -1,15 +1,19 @@ { - "": [ - { - "type": "icon_state", - "icon_state": "circuit_board", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "circuit_chip", - "blend_mode": "overlay" - } - ] + "": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "circuit_board", + "blend_mode": "overlay", + "color_ids": [1] + }, + { + "type": "icon_state", + "icon_state": "circuit_chip", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/ctf_light.json b/code/datums/greyscale/json_configs/ctf_light.json index e48762afa67..59576795fc5 100644 --- a/code/datums/greyscale/json_configs/ctf_light.json +++ b/code/datums/greyscale/json_configs/ctf_light.json @@ -1,15 +1,19 @@ { - "light": [ - { - "type": "icon_state", - "icon_state": "light", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "light_colours", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "light": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "light", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "light_colours", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/ctf_light_worn.json b/code/datums/greyscale/json_configs/ctf_light_worn.json index e48762afa67..59576795fc5 100644 --- a/code/datums/greyscale/json_configs/ctf_light_worn.json +++ b/code/datums/greyscale/json_configs/ctf_light_worn.json @@ -1,15 +1,19 @@ { - "light": [ - { - "type": "icon_state", - "icon_state": "light", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "light_colours", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "light": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "light", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "light_colours", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/ctf_standard.json b/code/datums/greyscale/json_configs/ctf_standard.json index f56ed5d8c06..3830cb27113 100644 --- a/code/datums/greyscale/json_configs/ctf_standard.json +++ b/code/datums/greyscale/json_configs/ctf_standard.json @@ -1,15 +1,19 @@ { - "standard": [ - { - "type": "icon_state", - "icon_state": "standard", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "standard_colours", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "standard": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "standard", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "standard_colours", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/ctf_standard_worn.json b/code/datums/greyscale/json_configs/ctf_standard_worn.json index f56ed5d8c06..3830cb27113 100644 --- a/code/datums/greyscale/json_configs/ctf_standard_worn.json +++ b/code/datums/greyscale/json_configs/ctf_standard_worn.json @@ -1,15 +1,19 @@ { - "standard": [ - { - "type": "icon_state", - "icon_state": "standard", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "standard_colours", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "standard": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "standard", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "standard_colours", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/giftdeliverybox.json b/code/datums/greyscale/json_configs/giftdeliverybox.json index 68c4ad1f76d..cc57a31a56e 100644 --- a/code/datums/greyscale/json_configs/giftdeliverybox.json +++ b/code/datums/greyscale/json_configs/giftdeliverybox.json @@ -1,16 +1,20 @@ { - "": [ - { - "type": "icon_state", - "icon_state": "giftdeliverybox_base", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "giftdeliverybox_ribbon", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] + "": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "giftdeliverybox_base", + "blend_mode": "overlay", + "color_ids": [1] + }, + { + "type": "icon_state", + "icon_state": "giftdeliverybox_ribbon", + "blend_mode": "overlay", + "color_ids": [2] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/giftdeliverycloset.json b/code/datums/greyscale/json_configs/giftdeliverycloset.json index 9de529901a2..6bac550d021 100644 --- a/code/datums/greyscale/json_configs/giftdeliverycloset.json +++ b/code/datums/greyscale/json_configs/giftdeliverycloset.json @@ -1,16 +1,20 @@ { - "": [ - { - "type": "icon_state", - "icon_state": "giftdeliverycloset_base", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "giftdeliverycloset_ribbon", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] + "": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "giftdeliverycloset_base", + "blend_mode": "overlay", + "color_ids": [1] + }, + { + "type": "icon_state", + "icon_state": "giftdeliverycloset_ribbon", + "blend_mode": "overlay", + "color_ids": [2] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/giftdeliverycrate.json b/code/datums/greyscale/json_configs/giftdeliverycrate.json index 78d864f4123..9d3200155d1 100644 --- a/code/datums/greyscale/json_configs/giftdeliverycrate.json +++ b/code/datums/greyscale/json_configs/giftdeliverycrate.json @@ -1,16 +1,20 @@ { - "": [ - { - "type": "icon_state", - "icon_state": "giftdeliverycrate_base", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "giftdeliverycrate_ribbon", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] + "": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "giftdeliverycrate_base", + "blend_mode": "overlay", + "color_ids": [1] + }, + { + "type": "icon_state", + "icon_state": "giftdeliverycrate_ribbon", + "blend_mode": "overlay", + "color_ids": [2] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/giftdeliverypackage1.json b/code/datums/greyscale/json_configs/giftdeliverypackage1.json index 7b61b49688c..6fd0c65fb8e 100644 --- a/code/datums/greyscale/json_configs/giftdeliverypackage1.json +++ b/code/datums/greyscale/json_configs/giftdeliverypackage1.json @@ -1,16 +1,20 @@ { - "": [ - { - "type": "icon_state", - "icon_state": "giftdeliverypackage1_base", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "giftdeliverypackage1_ribbon", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] + "": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "giftdeliverypackage1_base", + "blend_mode": "overlay", + "color_ids": [1] + }, + { + "type": "icon_state", + "icon_state": "giftdeliverypackage1_ribbon", + "blend_mode": "overlay", + "color_ids": [2] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/giftdeliverypackage2.json b/code/datums/greyscale/json_configs/giftdeliverypackage2.json index a2724a4d4f5..1a113ff6c29 100644 --- a/code/datums/greyscale/json_configs/giftdeliverypackage2.json +++ b/code/datums/greyscale/json_configs/giftdeliverypackage2.json @@ -1,16 +1,20 @@ { - "": [ - { - "type": "icon_state", - "icon_state": "giftdeliverypackage2_base", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "giftdeliverypackage2_ribbon", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] + "": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "giftdeliverypackage2_base", + "blend_mode": "overlay", + "color_ids": [1] + }, + { + "type": "icon_state", + "icon_state": "giftdeliverypackage2_ribbon", + "blend_mode": "overlay", + "color_ids": [2] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/giftdeliverypackage3.json b/code/datums/greyscale/json_configs/giftdeliverypackage3.json index 20b2b2a1f10..335401abae2 100644 --- a/code/datums/greyscale/json_configs/giftdeliverypackage3.json +++ b/code/datums/greyscale/json_configs/giftdeliverypackage3.json @@ -1,16 +1,20 @@ { - "": [ - { - "type": "icon_state", - "icon_state": "giftdeliverypackage3_base", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "giftdeliverypackage3_ribbon", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] + "": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "giftdeliverypackage3_base", + "blend_mode": "overlay", + "color_ids": [1] + }, + { + "type": "icon_state", + "icon_state": "giftdeliverypackage3_ribbon", + "blend_mode": "overlay", + "color_ids": [2] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/giftdeliverypackage4.json b/code/datums/greyscale/json_configs/giftdeliverypackage4.json index a75521dfd7e..29c9e26f627 100644 --- a/code/datums/greyscale/json_configs/giftdeliverypackage4.json +++ b/code/datums/greyscale/json_configs/giftdeliverypackage4.json @@ -1,16 +1,20 @@ { - "": [ - { - "type": "icon_state", - "icon_state": "giftdeliverypackage4_base", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "giftdeliverypackage4_ribbon", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] + "": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "giftdeliverypackage4_base", + "blend_mode": "overlay", + "color_ids": [1] + }, + { + "type": "icon_state", + "icon_state": "giftdeliverypackage4_ribbon", + "blend_mode": "overlay", + "color_ids": [2] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/giftdeliverypackage5.json b/code/datums/greyscale/json_configs/giftdeliverypackage5.json index 180cb27dddc..a7878d6a2ef 100644 --- a/code/datums/greyscale/json_configs/giftdeliverypackage5.json +++ b/code/datums/greyscale/json_configs/giftdeliverypackage5.json @@ -1,16 +1,20 @@ { - "": [ - { - "type": "icon_state", - "icon_state": "giftdeliverypackage5_base", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "giftdeliverypackage5_ribbon", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] + "": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "giftdeliverypackage5_base", + "blend_mode": "overlay", + "color_ids": [1] + }, + { + "type": "icon_state", + "icon_state": "giftdeliverypackage5_ribbon", + "blend_mode": "overlay", + "color_ids": [2] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/items/ceremonial_blade.json b/code/datums/greyscale/json_configs/items/ceremonial_blade.json index 16360a5e889..2a8b48b38cb 100644 --- a/code/datums/greyscale/json_configs/items/ceremonial_blade.json +++ b/code/datums/greyscale/json_configs/items/ceremonial_blade.json @@ -1,15 +1,19 @@ { - "default": [ - { - "type": "icon_state", - "icon_state": "base", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "handle", - "blend_mode": "overlay" - } - ] + "default": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "handle", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/items/ceremonial_blade_lefthand.json b/code/datums/greyscale/json_configs/items/ceremonial_blade_lefthand.json index aafdb2d897e..7e774e21fd5 100644 --- a/code/datums/greyscale/json_configs/items/ceremonial_blade_lefthand.json +++ b/code/datums/greyscale/json_configs/items/ceremonial_blade_lefthand.json @@ -1,10 +1,14 @@ { - "default": [ - { - "type": "icon_state", - "icon_state": "inhand_left", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "default": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "inhand_left", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/items/ceremonial_blade_righthand.json b/code/datums/greyscale/json_configs/items/ceremonial_blade_righthand.json index d80b0c49a25..72d7364ba8c 100644 --- a/code/datums/greyscale/json_configs/items/ceremonial_blade_righthand.json +++ b/code/datums/greyscale/json_configs/items/ceremonial_blade_righthand.json @@ -1,10 +1,14 @@ { - "default": [ - { - "type": "icon_state", - "icon_state": "inhand_right", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "default": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "inhand_right", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/items/cleric_mace.json b/code/datums/greyscale/json_configs/items/cleric_mace.json index 781c790ea6a..91eb4c32d7f 100644 --- a/code/datums/greyscale/json_configs/items/cleric_mace.json +++ b/code/datums/greyscale/json_configs/items/cleric_mace.json @@ -1,28 +1,36 @@ { - "default": [ - { - "type": "icon_state", - "icon_state": "base", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "handle", - "blend_mode": "overlay" - } - ], - "default_worn": [ - { - "type": "icon_state", - "icon_state": "worn_shaft", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "worn_handle", - "blend_mode": "overlay" - } - ] + "default": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "handle", + "blend_mode": "overlay" + } + ] + }, + "default_worn": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "worn_shaft", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "worn_handle", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/items/cleric_mace_gold.json b/code/datums/greyscale/json_configs/items/cleric_mace_gold.json index 8ca0ba3b607..54bde741f45 100644 --- a/code/datums/greyscale/json_configs/items/cleric_mace_gold.json +++ b/code/datums/greyscale/json_configs/items/cleric_mace_gold.json @@ -1,46 +1,54 @@ { - "default": [ - { - "type": "reference", - "reference_type": "/datum/greyscale_config/cleric_mace", - "icon_state": "default", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, + "default": + { + "layers": [ { "type": "reference", - "reference_type": "/datum/greyscale_config/shimmer", + "reference_type": "/datum/greyscale_config/cleric_mace", + "icon_state": "default", "blend_mode": "overlay", - "color_ids": [ "#ffffff" ] + "color_ids": [1] }, - { - "type": "icon_state", - "icon_state": "shimmer_mask", - "blend_mode": "multiply" - } + [ + { + "type": "reference", + "reference_type": "/datum/greyscale_config/shimmer", + "blend_mode": "overlay", + "color_ids": ["#ffffff"] + }, + { + "type": "icon_state", + "icon_state": "shimmer_mask", + "blend_mode": "multiply" + } + ] ] - ], - "default_worn": [ - { - "type": "reference", - "reference_type": "/datum/greyscale_config/cleric_mace", - "icon_state": "default_worn", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, + }, + "default_worn": + { + "layers": [ { "type": "reference", - "reference_type": "/datum/greyscale_config/shimmer", + "reference_type": "/datum/greyscale_config/cleric_mace", + "icon_state": "default_worn", "blend_mode": "overlay", - "color_ids": [ "#ffffff" ] + "color_ids": [1] }, - { - "type": "icon_state", - "icon_state": "shimmer_mask_worn", - "blend_mode": "multiply" - } + [ + { + "type": "reference", + "reference_type": "/datum/greyscale_config/shimmer", + "blend_mode": "overlay", + "color_ids": ["#ffffff"] + }, + { + "type": "icon_state", + "icon_state": "shimmer_mask_worn", + "blend_mode": "multiply" + } + ] ] - ] + } } diff --git a/code/datums/greyscale/json_configs/items/cleric_mace_lefthand.json b/code/datums/greyscale/json_configs/items/cleric_mace_lefthand.json index aafdb2d897e..7e774e21fd5 100644 --- a/code/datums/greyscale/json_configs/items/cleric_mace_lefthand.json +++ b/code/datums/greyscale/json_configs/items/cleric_mace_lefthand.json @@ -1,10 +1,14 @@ { - "default": [ - { - "type": "icon_state", - "icon_state": "inhand_left", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "default": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "inhand_left", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/items/cleric_mace_lefthand_gold.json b/code/datums/greyscale/json_configs/items/cleric_mace_lefthand_gold.json index 9372b4b0551..4191da7aeea 100644 --- a/code/datums/greyscale/json_configs/items/cleric_mace_lefthand_gold.json +++ b/code/datums/greyscale/json_configs/items/cleric_mace_lefthand_gold.json @@ -1,24 +1,28 @@ { - "default": [ - { - "type": "reference", - "reference_type": "/datum/greyscale_config/cleric_mace_lefthand", - "icon_state": "default", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, + "default": + { + "layers": [ { "type": "reference", - "reference_type": "/datum/greyscale_config/shimmer", + "reference_type": "/datum/greyscale_config/cleric_mace_lefthand", + "icon_state": "default", "blend_mode": "overlay", - "color_ids": [ "#ffffff" ] + "color_ids": [1] }, - { - "type": "icon_state", - "icon_state": "shimmer_mask_lefthand", - "blend_mode": "multiply" - } + [ + { + "type": "reference", + "reference_type": "/datum/greyscale_config/shimmer", + "blend_mode": "overlay", + "color_ids": ["#ffffff"] + }, + { + "type": "icon_state", + "icon_state": "shimmer_mask_lefthand", + "blend_mode": "multiply" + } + ] ] - ] + } } diff --git a/code/datums/greyscale/json_configs/items/cleric_mace_righthand.json b/code/datums/greyscale/json_configs/items/cleric_mace_righthand.json index d80b0c49a25..72d7364ba8c 100644 --- a/code/datums/greyscale/json_configs/items/cleric_mace_righthand.json +++ b/code/datums/greyscale/json_configs/items/cleric_mace_righthand.json @@ -1,10 +1,14 @@ { - "default": [ - { - "type": "icon_state", - "icon_state": "inhand_right", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "default": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "inhand_right", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/items/cleric_mace_righthand_gold.json b/code/datums/greyscale/json_configs/items/cleric_mace_righthand_gold.json index d91f1c0800c..48be3b82581 100644 --- a/code/datums/greyscale/json_configs/items/cleric_mace_righthand_gold.json +++ b/code/datums/greyscale/json_configs/items/cleric_mace_righthand_gold.json @@ -1,24 +1,28 @@ { - "default": [ - { - "type": "reference", - "reference_type": "/datum/greyscale_config/cleric_mace_righthand", - "icon_state": "default", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, + "default": + { + "layers": [ { "type": "reference", - "reference_type": "/datum/greyscale_config/shimmer", + "reference_type": "/datum/greyscale_config/cleric_mace_righthand", + "icon_state": "default", "blend_mode": "overlay", - "color_ids": [ "#ffffff" ] + "color_ids": [1] }, - { - "type": "icon_state", - "icon_state": "shimmer_mask_righthand", - "blend_mode": "multiply" - } + [ + { + "type": "reference", + "reference_type": "/datum/greyscale_config/shimmer", + "blend_mode": "overlay", + "color_ids": ["#ffffff"] + }, + { + "type": "icon_state", + "icon_state": "shimmer_mask_righthand", + "blend_mode": "multiply" + } + ] ] - ] + } } diff --git a/code/datums/greyscale/json_configs/items/cleric_mace_worn.json b/code/datums/greyscale/json_configs/items/cleric_mace_worn.json index c49a829aa2c..6ef0be472a1 100644 --- a/code/datums/greyscale/json_configs/items/cleric_mace_worn.json +++ b/code/datums/greyscale/json_configs/items/cleric_mace_worn.json @@ -1,15 +1,19 @@ { - "default": [ - { - "type": "icon_state", - "icon_state": "worn_shaft", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "worn_handle", - "blend_mode": "overlay" - } - ] + "belt_human_default_worn": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "worn_shaft", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "worn_handle", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/items/cleric_mace_worn_gold.json b/code/datums/greyscale/json_configs/items/cleric_mace_worn_gold.json index 21850436657..3abc633055e 100644 --- a/code/datums/greyscale/json_configs/items/cleric_mace_worn_gold.json +++ b/code/datums/greyscale/json_configs/items/cleric_mace_worn_gold.json @@ -1,24 +1,27 @@ { - "default": [ - { - "type": "reference", - "reference_type": "/datum/greyscale_config/cleric_mace_worn", - "icon_state": "default", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, + "default": + { + "layers": [ { "type": "reference", - "reference_type": "/datum/greyscale_config/shimmer", + "reference_type": "/datum/greyscale_config/cleric_mace_worn", "blend_mode": "overlay", - "color_ids": [ "#ffffff" ] + "color_ids": [ 1 ] }, - { - "type": "icon_state", - "icon_state": "shimmer_mask_worn", - "blend_mode": "multiply" - } + [ + { + "type": "reference", + "reference_type": "/datum/greyscale_config/shimmer", + "blend_mode": "overlay", + "color_ids": ["#ffffff"] + }, + { + "type": "icon_state", + "icon_state": "shimmer_mask_worn", + "blend_mode": "multiply" + } + ] ] - ] + } } diff --git a/code/datums/greyscale/json_configs/janicart_upgrade.json b/code/datums/greyscale/json_configs/janicart_upgrade.json index 7269059b3bc..9f2c14ac7d1 100644 --- a/code/datums/greyscale/json_configs/janicart_upgrade.json +++ b/code/datums/greyscale/json_configs/janicart_upgrade.json @@ -1,28 +1,32 @@ { - "janicart_upgrade": [ - { - "type": "icon_state", - "icon_state": "housing", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "bristles", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "accent", - "blend_mode": "overlay", - "color_ids": [ 3 ] - }, - { - "type": "icon_state", - "icon_state": "light", - "blend_mode": "overlay", - "color_ids": [ 4 ] - } - ] + "janicart_upgrade": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "housing", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "bristles", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "accent", + "blend_mode": "overlay", + "color_ids": [ 3 ] + }, + { + "type": "icon_state", + "icon_state": "light", + "blend_mode": "overlay", + "color_ids": [ 4 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/janicart_upgrade_installed.json b/code/datums/greyscale/json_configs/janicart_upgrade_installed.json index c586c92709c..5c513e7e68b 100644 --- a/code/datums/greyscale/json_configs/janicart_upgrade_installed.json +++ b/code/datums/greyscale/json_configs/janicart_upgrade_installed.json @@ -1,28 +1,32 @@ { - "janicart_upgrade": [ - { - "type": "icon_state", - "icon_state": "cart_housing", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "cart_bristles", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "cart_accent", - "blend_mode": "overlay", - "color_ids": [ 3 ] - }, - { - "type": "icon_state", - "icon_state": "cart_light", - "blend_mode": "overlay", - "color_ids": [ 4 ] - } - ] + "janicart_upgrade": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "cart_housing", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "cart_bristles", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "cart_accent", + "blend_mode": "overlay", + "color_ids": [ 3 ] + }, + { + "type": "icon_state", + "icon_state": "cart_light", + "blend_mode": "overlay", + "color_ids": [ 4 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/jumpsuit.json b/code/datums/greyscale/json_configs/jumpsuit.json index 03044770b95..73634a73fbd 100644 --- a/code/datums/greyscale/json_configs/jumpsuit.json +++ b/code/datums/greyscale/json_configs/jumpsuit.json @@ -1,28 +1,36 @@ { - "jumpsuit": [ - { - "type": "icon_state", - "icon_state": "jumpsuit", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "jumpsuit_accessories", - "blend_mode": "overlay" - } - ], - "jumpskirt": [ - { - "type": "icon_state", - "icon_state": "jumpskirt", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "jumpsuit_accessories", - "blend_mode": "overlay" - } - ] + "jumpsuit": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "jumpsuit", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "jumpsuit_accessories", + "blend_mode": "overlay" + } + ] + }, + "jumpskirt": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "jumpskirt", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "jumpsuit_accessories", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/jumpsuit_inhand.json b/code/datums/greyscale/json_configs/jumpsuit_inhand.json index 754620651b9..af10692f4de 100644 --- a/code/datums/greyscale/json_configs/jumpsuit_inhand.json +++ b/code/datums/greyscale/json_configs/jumpsuit_inhand.json @@ -1,15 +1,19 @@ { - "jumpsuit": [ - { - "type": "icon_state", - "icon_state": "jumpsuit", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "jumpsuit_accessories", - "blend_mode": "overlay" - } - ] + "jumpsuit": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "jumpsuit", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "jumpsuit_accessories", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/jumpsuit_prison.json b/code/datums/greyscale/json_configs/jumpsuit_prison.json index 1ac85b764bf..43e1e1bd3bb 100644 --- a/code/datums/greyscale/json_configs/jumpsuit_prison.json +++ b/code/datums/greyscale/json_configs/jumpsuit_prison.json @@ -1,28 +1,36 @@ { - "jumpsuit": [ - { - "type": "icon_state", - "icon_state": "jumpsuit", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "jumpsuit_prison", - "blend_mode": "overlay" - } - ], - "jumpskirt": [ - { - "type": "icon_state", - "icon_state": "jumpskirt", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "jumpsuit_prison", - "blend_mode": "overlay" - } - ] + "jumpsuit": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "jumpsuit", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "jumpsuit_prison", + "blend_mode": "overlay" + } + ] + }, + "jumpskirt": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "jumpskirt", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "jumpsuit_prison", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/jumpsuit_prison_inhand.json b/code/datums/greyscale/json_configs/jumpsuit_prison_inhand.json index be537b5a00a..0cf437eba8c 100644 --- a/code/datums/greyscale/json_configs/jumpsuit_prison_inhand.json +++ b/code/datums/greyscale/json_configs/jumpsuit_prison_inhand.json @@ -1,15 +1,19 @@ { - "jumpsuit": [ - { - "type": "icon_state", - "icon_state": "jumpsuit", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "jumpsuit_prison", - "blend_mode": "overlay" - } - ] + "jumpsuit": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "jumpsuit", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "jumpsuit_prison", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/jumpsuit_prison_worn.json b/code/datums/greyscale/json_configs/jumpsuit_prison_worn.json index 0096c95e812..1edf964b8b2 100644 --- a/code/datums/greyscale/json_configs/jumpsuit_prison_worn.json +++ b/code/datums/greyscale/json_configs/jumpsuit_prison_worn.json @@ -1,54 +1,70 @@ { - "jumpsuit": [ - { - "type": "icon_state", - "icon_state": "jumpsuit", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "jumpsuit_prison", - "blend_mode": "overlay" - } - ], - "jumpsuit_d" : [ - { - "type": "icon_state", - "icon_state": "jumpsuit_d", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "jumpsuit_d_prison", - "blend_mode": "overlay" - } - ], - "jumpskirt": [ - { - "type": "icon_state", - "icon_state": "jumpskirt", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "jumpskirt_prison", - "blend_mode": "overlay" - } - ], - "jumpskirt_d" : [ - { - "type": "icon_state", - "icon_state": "jumpskirt_d", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "jumpskirt_d_prison", - "blend_mode": "overlay" - } - ] + "jumpsuit": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "jumpsuit", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "jumpsuit_prison", + "blend_mode": "overlay" + } + ] + }, + "jumpsuit_d": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "jumpsuit_d", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "jumpsuit_d_prison", + "blend_mode": "overlay" + } + ] + }, + "jumpskirt": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "jumpskirt", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "jumpskirt_prison", + "blend_mode": "overlay" + } + ] + }, + "jumpskirt_d": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "jumpskirt_d", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "jumpskirt_d_prison", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/jumpsuit_worn.json b/code/datums/greyscale/json_configs/jumpsuit_worn.json index b2e81aa1b15..cae3f2409e7 100644 --- a/code/datums/greyscale/json_configs/jumpsuit_worn.json +++ b/code/datums/greyscale/json_configs/jumpsuit_worn.json @@ -1,44 +1,60 @@ { - "jumpsuit": [ - { - "type": "icon_state", - "icon_state": "jumpsuit", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "jumpsuit_accessories", - "blend_mode": "overlay" - } - ], - "jumpsuit_d" : [ - { - "type": "icon_state", - "icon_state": "jumpsuit_d", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "jumpskirt": [ - { - "type": "icon_state", - "icon_state": "jumpskirt", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "jumpskirt_accessories", - "blend_mode": "overlay" - } - ], - "jumpskirt_d" : [ - { - "type": "icon_state", - "icon_state": "jumpskirt_d", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "jumpsuit": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "jumpsuit", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "jumpsuit_accessories", + "blend_mode": "overlay" + } + ] + }, + "jumpsuit_d": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "jumpsuit_d", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + }, + "jumpskirt": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "jumpskirt", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "jumpskirt_accessories", + "blend_mode": "overlay" + } + ] + }, + "jumpskirt_d": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "jumpskirt_d", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/material_effects/shimmer.json b/code/datums/greyscale/json_configs/material_effects/shimmer.json index 64e2168e5c2..f2773cd501c 100644 --- a/code/datums/greyscale/json_configs/material_effects/shimmer.json +++ b/code/datums/greyscale/json_configs/material_effects/shimmer.json @@ -1,10 +1,14 @@ { - "": [ - { - "type": "icon_state", - "icon_state": "animation", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "animation", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/meter.json b/code/datums/greyscale/json_configs/meter.json index 73cfb739959..1e3dd3bdca9 100644 --- a/code/datums/greyscale/json_configs/meter.json +++ b/code/datums/greyscale/json_configs/meter.json @@ -1,374 +1,458 @@ { - "meter": [ - { - "type": "icon_state", - "icon_state": "pressure_off", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" - } - ], - "meter0": [ - { - "type": "icon_state", - "icon_state": "pressure0", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "buttons0", - "blend_mode": "overlay" - } - ], - "meter1_1": [ - { - "type": "icon_state", - "icon_state": "pressure1_1", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "buttons1", - "blend_mode": "overlay" - } - ], - "meter1_2": [ - { - "type": "icon_state", - "icon_state": "pressure1_2", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "buttons1", - "blend_mode": "overlay" - } - ], - "meter1_3": [ - { - "type": "icon_state", - "icon_state": "pressure1_3", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "buttons1", - "blend_mode": "overlay" - } - ], - "meter1_4": [ - { - "type": "icon_state", - "icon_state": "pressure1_4", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "buttons1", - "blend_mode": "overlay" - } - ], - "meter1_5": [ - { - "type": "icon_state", - "icon_state": "pressure1_5", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "buttons1", - "blend_mode": "overlay" - } - ], - "meter1_6": [ - { - "type": "icon_state", - "icon_state": "pressure1_6", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "buttons1", - "blend_mode": "overlay" - } - ], - "meter2_1": [ - { - "type": "icon_state", - "icon_state": "pressure2_1", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "buttons2", - "blend_mode": "overlay" - } - ], - "meter2_2": [ - { - "type": "icon_state", - "icon_state": "pressure2_2", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "buttons2", - "blend_mode": "overlay" - } - ], - "meter2_3": [ - { - "type": "icon_state", - "icon_state": "pressure2_3", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "buttons2", - "blend_mode": "overlay" - } - ], - "meter2_4": [ - { - "type": "icon_state", - "icon_state": "pressure2_4", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "buttons2", - "blend_mode": "overlay" - } - ], - "meter2_5": [ - { - "type": "icon_state", - "icon_state": "pressure2_5", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "buttons2", - "blend_mode": "overlay" - } - ], - "meter2_6": [ - { - "type": "icon_state", - "icon_state": "pressure2_6", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "buttons2", - "blend_mode": "overlay" - } - ], - "meter3_1": [ - { - "type": "icon_state", - "icon_state": "pressure3_1", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "buttons3", - "blend_mode": "overlay" - } - ], - "meter3_2": [ - { - "type": "icon_state", - "icon_state": "pressure3_2", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "buttons3", - "blend_mode": "overlay" - } - ], - "meter3_3": [ - { - "type": "icon_state", - "icon_state": "pressure3_3", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "buttons3", - "blend_mode": "overlay" - } - ], - "meter3_4": [ - { - "type": "icon_state", - "icon_state": "pressure3_4", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "buttons3", - "blend_mode": "overlay" - } - ], - "meter3_5": [ - { - "type": "icon_state", - "icon_state": "pressure3_5", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "buttons3", - "blend_mode": "overlay" - } - ], - "meter3_6": [ - { - "type": "icon_state", - "icon_state": "pressure3_6", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "buttons3", - "blend_mode": "overlay" - } - ], - "meter4": [ - { - "type": "icon_state", - "icon_state": "pressure4", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "buttons4", - "blend_mode": "overlay" - } - ] + "meter": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "pressure_off", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "meter_base", + "blend_mode": "overlay" + } + ] + }, + "meter0": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "pressure0", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "meter_base", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "buttons0", + "blend_mode": "overlay" + } + ] + }, + "meter1_1": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "pressure1_1", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "meter_base", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "buttons1", + "blend_mode": "overlay" + } + ] + }, + "meter1_2": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "pressure1_2", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "meter_base", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "buttons1", + "blend_mode": "overlay" + } + ] + }, + "meter1_3": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "pressure1_3", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "meter_base", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "buttons1", + "blend_mode": "overlay" + } + ] + }, + "meter1_4": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "pressure1_4", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "meter_base", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "buttons1", + "blend_mode": "overlay" + } + ] + }, + "meter1_5": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "pressure1_5", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "meter_base", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "buttons1", + "blend_mode": "overlay" + } + ] + }, + "meter1_6": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "pressure1_6", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "meter_base", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "buttons1", + "blend_mode": "overlay" + } + ] + }, + "meter2_1": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "pressure2_1", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "meter_base", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "buttons2", + "blend_mode": "overlay" + } + ] + }, + "meter2_2": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "pressure2_2", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "meter_base", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "buttons2", + "blend_mode": "overlay" + } + ] + }, + "meter2_3": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "pressure2_3", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "meter_base", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "buttons2", + "blend_mode": "overlay" + } + ] + }, + "meter2_4": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "pressure2_4", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "meter_base", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "buttons2", + "blend_mode": "overlay" + } + ] + }, + "meter2_5": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "pressure2_5", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "meter_base", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "buttons2", + "blend_mode": "overlay" + } + ] + }, + "meter2_6": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "pressure2_6", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "meter_base", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "buttons2", + "blend_mode": "overlay" + } + ] + }, + "meter3_1": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "pressure3_1", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "meter_base", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "buttons3", + "blend_mode": "overlay" + } + ] + }, + "meter3_2": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "pressure3_2", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "meter_base", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "buttons3", + "blend_mode": "overlay" + } + ] + }, + "meter3_3": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "pressure3_3", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "meter_base", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "buttons3", + "blend_mode": "overlay" + } + ] + }, + "meter3_4": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "pressure3_4", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "meter_base", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "buttons3", + "blend_mode": "overlay" + } + ] + }, + "meter3_5": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "pressure3_5", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "meter_base", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "buttons3", + "blend_mode": "overlay" + } + ] + }, + "meter3_6": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "pressure3_6", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "meter_base", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "buttons3", + "blend_mode": "overlay" + } + ] + }, + "meter4": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "pressure4", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "meter_base", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "buttons4", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/moth_coat.json b/code/datums/greyscale/json_configs/moth_coat.json index 84cdfb4821e..4418014be3c 100644 --- a/code/datums/greyscale/json_configs/moth_coat.json +++ b/code/datums/greyscale/json_configs/moth_coat.json @@ -1,15 +1,19 @@ { - "mothcoat": [ - { - "type": "icon_state", - "icon_state": "mothcoat", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "mothcoat_details", - "blend_mode": "overlay" - } - ] + "mothcoat": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "mothcoat", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "mothcoat_details", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/moth_coat_winter.json b/code/datums/greyscale/json_configs/moth_coat_winter.json index 6c8c36615e3..836e6da9656 100644 --- a/code/datums/greyscale/json_configs/moth_coat_winter.json +++ b/code/datums/greyscale/json_configs/moth_coat_winter.json @@ -1,21 +1,25 @@ { - "mothcoat_winter": [ - { - "type": "icon_state", - "icon_state": "mothcoat_mantle_top", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "mothcoat_mantle_bottom", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "mothcoat_mantle_details", - "blend_mode": "overlay" - } - ] + "mothcoat_winter": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "mothcoat_mantle_top", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "mothcoat_mantle_bottom", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "mothcoat_mantle_details", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/moth_coat_winter_worn.json b/code/datums/greyscale/json_configs/moth_coat_winter_worn.json index 04dce626ce2..ea9505fc056 100644 --- a/code/datums/greyscale/json_configs/moth_coat_winter_worn.json +++ b/code/datums/greyscale/json_configs/moth_coat_winter_worn.json @@ -1,21 +1,25 @@ { - "mothcoat_winter": [ - { - "type": "icon_state", - "icon_state": "mothcoat_mantle_top_worn", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "mothcoat_mantle_bottom_worn", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "mothcoat_mantle_details_worn", - "blend_mode": "overlay" - } - ] + "mothcoat_winter": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "mothcoat_mantle_top_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "mothcoat_mantle_bottom_worn", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "mothcoat_mantle_details_worn", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/moth_coat_worn.json b/code/datums/greyscale/json_configs/moth_coat_worn.json index c04046f7f86..fa657a6e254 100644 --- a/code/datums/greyscale/json_configs/moth_coat_worn.json +++ b/code/datums/greyscale/json_configs/moth_coat_worn.json @@ -1,15 +1,19 @@ { - "mothcoat": [ - { - "type": "icon_state", - "icon_state": "mothcoat_worn", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "mothcoat_details_worn", - "blend_mode": "overlay" - } - ] + "mothcoat": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "mothcoat_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "mothcoat_details_worn", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/pda.json b/code/datums/greyscale/json_configs/pda.json index c10b453817a..77cb8f683ee 100644 --- a/code/datums/greyscale/json_configs/pda.json +++ b/code/datums/greyscale/json_configs/pda.json @@ -1,21 +1,25 @@ { - "pda": [ - { - "type": "icon_state", - "icon_state": "pda_base", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "pda_buttons", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "pda_screen_borders", - "blend_mode": "overlay" - } - ] + "pda": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "pda_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "pda_buttons", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "pda_screen_borders", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/pda_captain.json b/code/datums/greyscale/json_configs/pda_captain.json index 52d3f9d1333..c5e36c1e546 100644 --- a/code/datums/greyscale/json_configs/pda_captain.json +++ b/code/datums/greyscale/json_configs/pda_captain.json @@ -1,33 +1,37 @@ { - "pda": [ - { - "type": "icon_state", - "icon_state": "pda_base", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "pda_buttons", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "pda_stripe_split", - "blend_mode": "overlay", - "color_ids": [ 3 ] - }, - { - "type": "icon_state", - "icon_state": "pda_stripe_thick", - "blend_mode": "overlay", - "color_ids": [ 4 ] - }, - { - "type": "icon_state", - "icon_state": "pda_screen_borders", - "blend_mode": "overlay" - } - ] + "pda": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "pda_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "pda_buttons", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "pda_stripe_split", + "blend_mode": "overlay", + "color_ids": [ 3 ] + }, + { + "type": "icon_state", + "icon_state": "pda_stripe_thick", + "blend_mode": "overlay", + "color_ids": [ 4 ] + }, + { + "type": "icon_state", + "icon_state": "pda_screen_borders", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/pda_chaplain.json b/code/datums/greyscale/json_configs/pda_chaplain.json index e4e351e339d..cd6593a4ac0 100644 --- a/code/datums/greyscale/json_configs/pda_chaplain.json +++ b/code/datums/greyscale/json_configs/pda_chaplain.json @@ -1,26 +1,30 @@ { - "pda": [ - { - "type": "icon_state", - "icon_state": "pda_base", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "pda_buttons", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "pda_cross", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "pda_screen_borders", - "blend_mode": "overlay" - } - ] + "pda": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "pda_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "pda_buttons", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "pda_cross", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "pda_screen_borders", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/pda_clown.json b/code/datums/greyscale/json_configs/pda_clown.json index e9be8922369..41f691c68ce 100644 --- a/code/datums/greyscale/json_configs/pda_clown.json +++ b/code/datums/greyscale/json_configs/pda_clown.json @@ -1,9 +1,13 @@ { - "pda": [ - { - "type": "icon_state", - "icon_state": "pda-clown", - "blend_mode": "overlay" - } - ] + "pda": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "pda-clown", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/pda_head.json b/code/datums/greyscale/json_configs/pda_head.json index c9f56870373..1095eb7e60c 100644 --- a/code/datums/greyscale/json_configs/pda_head.json +++ b/code/datums/greyscale/json_configs/pda_head.json @@ -1,26 +1,30 @@ { - "pda": [ - { - "type": "icon_state", - "icon_state": "pda_base", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "pda_buttons", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "pda_stripe_head", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "pda_screen_borders", - "blend_mode": "overlay" - } - ] + "pda": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "pda_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "pda_buttons", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "pda_stripe_head", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "pda_screen_borders", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/pda_mime.json b/code/datums/greyscale/json_configs/pda_mime.json index dc76e60649b..7f31eaa3818 100644 --- a/code/datums/greyscale/json_configs/pda_mime.json +++ b/code/datums/greyscale/json_configs/pda_mime.json @@ -1,26 +1,30 @@ { - "pda": [ - { - "type": "icon_state", - "icon_state": "pda_base", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "pda_stripe_mime", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "pda_buttons", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "pda_screen_borders", - "blend_mode": "overlay" - } - ] + "pda": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "pda_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "pda_stripe_mime", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "pda_buttons", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "pda_screen_borders", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/pda_stripe_split.json b/code/datums/greyscale/json_configs/pda_stripe_split.json index 82aaaac1031..fa6d3eefeba 100644 --- a/code/datums/greyscale/json_configs/pda_stripe_split.json +++ b/code/datums/greyscale/json_configs/pda_stripe_split.json @@ -1,27 +1,31 @@ { - "pda": [ - { - "type": "icon_state", - "icon_state": "pda_base", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "pda_buttons", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "pda_stripe_split", - "blend_mode": "overlay", - "color_ids": [ 3 ] - }, - { - "type": "icon_state", - "icon_state": "pda_screen_borders", - "blend_mode": "overlay" - } - ] + "pda": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "pda_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "pda_buttons", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "pda_stripe_split", + "blend_mode": "overlay", + "color_ids": [ 3 ] + }, + { + "type": "icon_state", + "icon_state": "pda_screen_borders", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/pda_stripe_thick.json b/code/datums/greyscale/json_configs/pda_stripe_thick.json index cc730f3816a..cfa16375040 100644 --- a/code/datums/greyscale/json_configs/pda_stripe_thick.json +++ b/code/datums/greyscale/json_configs/pda_stripe_thick.json @@ -1,27 +1,31 @@ { - "pda": [ - { - "type": "icon_state", - "icon_state": "pda_base", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "pda_buttons", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "pda_stripe_thick", - "blend_mode": "overlay", - "color_ids": [ 3 ] - }, - { - "type": "icon_state", - "icon_state": "pda_screen_borders", - "blend_mode": "overlay" - } - ] + "pda": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "pda_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "pda_buttons", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "pda_stripe_thick", + "blend_mode": "overlay", + "color_ids": [ 3 ] + }, + { + "type": "icon_state", + "icon_state": "pda_screen_borders", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/pda_stripe_thick_head.json b/code/datums/greyscale/json_configs/pda_stripe_thick_head.json index ea216b2476b..06b34aac7c7 100644 --- a/code/datums/greyscale/json_configs/pda_stripe_thick_head.json +++ b/code/datums/greyscale/json_configs/pda_stripe_thick_head.json @@ -1,32 +1,36 @@ { - "pda": [ - { - "type": "icon_state", - "icon_state": "pda_base", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "pda_buttons", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "pda_stripe_thick", - "blend_mode": "overlay", - "color_ids": [ 3 ] - }, - { - "type": "icon_state", - "icon_state": "pda_stripe_head", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "pda_screen_borders", - "blend_mode": "overlay" - } - ] + "pda": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "pda_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "pda_buttons", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "pda_stripe_thick", + "blend_mode": "overlay", + "color_ids": [ 3 ] + }, + { + "type": "icon_state", + "icon_state": "pda_stripe_head", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "pda_screen_borders", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/plushie_lizard.json b/code/datums/greyscale/json_configs/plushie_lizard.json index 5326beac0b1..01c918ce7b1 100644 --- a/code/datums/greyscale/json_configs/plushie_lizard.json +++ b/code/datums/greyscale/json_configs/plushie_lizard.json @@ -1,26 +1,30 @@ { - "map_plushie_lizard": [ - { - "type": "icon_state", - "icon_state": "plushie_lizard_body", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "plushie_lizard_eyes", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "plushie_lizard_tongue", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "plushie_lizard_pupil", - "blend_mode": "overlay" - } - ] + "map_plushie_lizard": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "plushie_lizard_body", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "plushie_lizard_eyes", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "plushie_lizard_tongue", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "plushie_lizard_pupil", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/screwdriver.json b/code/datums/greyscale/json_configs/screwdriver.json index 7604eb07465..e5abb8255ab 100644 --- a/code/datums/greyscale/json_configs/screwdriver.json +++ b/code/datums/greyscale/json_configs/screwdriver.json @@ -1,15 +1,19 @@ { - "screwdriver_map": [ - { - "type": "icon_state", - "icon_state": "screwdriver", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "screwdriver_screwybits", - "blend_mode": "overlay" - } - ] + "screwdriver_map": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "screwdriver", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "screwdriver_screwybits", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/screwdriver_worn.json b/code/datums/greyscale/json_configs/screwdriver_worn.json index 9e63bb6b883..91fe1880d0a 100644 --- a/code/datums/greyscale/json_configs/screwdriver_worn.json +++ b/code/datums/greyscale/json_configs/screwdriver_worn.json @@ -1,15 +1,19 @@ { - "screwdriver": [ - { - "type": "icon_state", - "icon_state": "screwdriver", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "screwdriver_head", - "blend_mode": "overlay" - } - ] + "screwdriver": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "screwdriver", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "screwdriver_head", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/simple_flower.json b/code/datums/greyscale/json_configs/simple_flower.json index 986615c8f15..09bc0cbd54c 100644 --- a/code/datums/greyscale/json_configs/simple_flower.json +++ b/code/datums/greyscale/json_configs/simple_flower.json @@ -1,25 +1,29 @@ { - "map_flower": [ - { - "type": "icon_state", - "icon_state": "flower_petal", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "flower_receptacle", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "flower_filament", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "flower_anthers", - "blend_mode": "overlay" - } - ] + "map_flower": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "flower_petal", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "flower_receptacle", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "flower_filament", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "flower_anthers", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/simple_flower_worn.json b/code/datums/greyscale/json_configs/simple_flower_worn.json index 9a43d2cbd98..4b77667fc52 100644 --- a/code/datums/greyscale/json_configs/simple_flower_worn.json +++ b/code/datums/greyscale/json_configs/simple_flower_worn.json @@ -1,15 +1,19 @@ { - "map_flower": [ - { - "type": "icon_state", - "icon_state": "flower_petals_worn", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "flower_stem_worn", - "blend_mode": "overlay" - } - ] + "map_flower": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "flower_petals_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "flower_stem_worn", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/smooth_canister_stationary.json b/code/datums/greyscale/json_configs/smooth_canister_stationary.json index df01ce1e6d2..9d2d9c311ab 100644 --- a/code/datums/greyscale/json_configs/smooth_canister_stationary.json +++ b/code/datums/greyscale/json_configs/smooth_canister_stationary.json @@ -1,186 +1,278 @@ { - "smooth": [ - { - "type": "icon_state", - "icon_state": "smooth", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "window-fg": [ - { - "type": "icon_state", - "icon_state": "window-fg", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "window-bg": [ - { - "type": "icon_state", - "icon_state": "window-bg", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "1-i": [ - { - "type": "icon_state", - "icon_state": "1-i", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "2-i": [ - { - "type": "icon_state", - "icon_state": "2-i", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "3-i": [ - { - "type": "icon_state", - "icon_state": "3-i", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "4-i": [ - { - "type": "icon_state", - "icon_state": "4-i", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "1-n": [ - { - "type": "icon_state", - "icon_state": "1-n", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "2-n": [ - { - "type": "icon_state", - "icon_state": "2-n", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "3-s": [ - { - "type": "icon_state", - "icon_state": "3-s", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "4-s": [ - { - "type": "icon_state", - "icon_state": "4-s", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "1-w": [ - { - "type": "icon_state", - "icon_state": "1-w", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "2-e": [ - { - "type": "icon_state", - "icon_state": "2-e", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "3-w": [ - { - "type": "icon_state", - "icon_state": "3-w", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "4-e": [ - { - "type": "icon_state", - "icon_state": "4-e", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "1-nw": [ - { - "type": "icon_state", - "icon_state": "1-nw", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "2-ne": [ - { - "type": "icon_state", - "icon_state": "2-ne", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "3-sw": [ - { - "type": "icon_state", - "icon_state": "3-sw", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "4-se": [ - { - "type": "icon_state", - "icon_state": "4-se", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "1-f": [ - { - "type": "icon_state", - "icon_state": "1-f", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "2-f": [ - { - "type": "icon_state", - "icon_state": "2-f", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "3-f": [ - { - "type": "icon_state", - "icon_state": "3-f", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "4-f": [ - { - "type": "icon_state", - "icon_state": "4-f", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "smooth": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "smooth", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + }, + "window-fg": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "window-fg", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + }, + "window-bg": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "window-bg", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + }, + "1-i": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "1-i", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + }, + "2-i": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "2-i", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + }, + "3-i": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "3-i", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + }, + "4-i": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "4-i", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + }, + "1-n": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "1-n", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + }, + "2-n": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "2-n", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + }, + "3-s": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "3-s", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + }, + "4-s": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "4-s", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + }, + "1-w": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "1-w", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + }, + "2-e": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "2-e", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + }, + "3-w": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "3-w", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + }, + "4-e": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "4-e", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + }, + "1-nw": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "1-nw", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + }, + "2-ne": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "2-ne", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + }, + "3-sw": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "3-sw", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + }, + "4-se": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "4-se", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + }, + "1-f": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "1-f", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + }, + "2-f": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "2-f", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + }, + "3-f": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "3-f", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + }, + "4-f": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "4-f", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/sneakers.json b/code/datums/greyscale/json_configs/sneakers.json index 50a064bb02b..5cd4d30f157 100644 --- a/code/datums/greyscale/json_configs/sneakers.json +++ b/code/datums/greyscale/json_configs/sneakers.json @@ -1,16 +1,20 @@ { - "sneakers": [ - { - "type": "icon_state", - "icon_state": "sneakers_back", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "sneakers_front", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] + "sneakers": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "sneakers_back", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "sneakers_front", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/sneakers_marisa.json b/code/datums/greyscale/json_configs/sneakers_marisa.json index b42838b3e15..fc839629ce9 100644 --- a/code/datums/greyscale/json_configs/sneakers_marisa.json +++ b/code/datums/greyscale/json_configs/sneakers_marisa.json @@ -1,21 +1,25 @@ { - "sneakers": [ - { - "type": "icon_state", - "icon_state": "sneakers_back", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "sneakers_front", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "sneakers_marisa", - "blend_mode": "overlay" - } - ] + "sneakers": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "sneakers_back", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "sneakers_front", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "sneakers_marisa", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/sneakers_orange.json b/code/datums/greyscale/json_configs/sneakers_orange.json index f0e27c02814..6e421e4b434 100644 --- a/code/datums/greyscale/json_configs/sneakers_orange.json +++ b/code/datums/greyscale/json_configs/sneakers_orange.json @@ -1,35 +1,43 @@ { - "sneakers": [ - { - "type": "icon_state", - "icon_state": "sneakers_back", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "sneakers_front", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ], - "sneakers_chained": [ - { - "type": "icon_state", - "icon_state": "sneakers_alt_back", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "sneakers_alt_front", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "sneakers_alt_chained", - "blend_mode": "overlay" - } - ] + "sneakers": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "sneakers_back", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "sneakers_front", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] + }, + "sneakers_chained": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "sneakers_alt_back", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "sneakers_alt_front", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "sneakers_alt_chained", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/sneakers_orange_worn.json b/code/datums/greyscale/json_configs/sneakers_orange_worn.json index fb0a07ff196..85a3aed74b1 100644 --- a/code/datums/greyscale/json_configs/sneakers_orange_worn.json +++ b/code/datums/greyscale/json_configs/sneakers_orange_worn.json @@ -1,35 +1,43 @@ { - "sneakers": [ - { - "type": "icon_state", - "icon_state": "sneakers_back", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "sneakers_front", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ], - "sneakers_chained": [ - { - "type": "icon_state", - "icon_state": "sneakers_back", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "sneakers_front", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "sneakers_chained", - "blend_mode": "overlay" - } - ] + "sneakers": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "sneakers_back", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "sneakers_front", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] + }, + "sneakers_chained": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "sneakers_back", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "sneakers_front", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "sneakers_chained", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/sneakers_wheelys.json b/code/datums/greyscale/json_configs/sneakers_wheelys.json index 221dd5717fe..9fe98a42d9d 100644 --- a/code/datums/greyscale/json_configs/sneakers_wheelys.json +++ b/code/datums/greyscale/json_configs/sneakers_wheelys.json @@ -1,21 +1,25 @@ { - "sneakers": [ - { - "type": "icon_state", - "icon_state": "sneakers_back", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "sneakers_front", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "sneakers_wheelys", - "blend_mode": "overlay" - } - ] + "sneakers": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "sneakers_back", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "sneakers_front", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "sneakers_wheelys", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/sneakers_worn.json b/code/datums/greyscale/json_configs/sneakers_worn.json index 50a064bb02b..5cd4d30f157 100644 --- a/code/datums/greyscale/json_configs/sneakers_worn.json +++ b/code/datums/greyscale/json_configs/sneakers_worn.json @@ -1,16 +1,20 @@ { - "sneakers": [ - { - "type": "icon_state", - "icon_state": "sneakers_back", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "sneakers_front", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] + "sneakers": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "sneakers_back", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "sneakers_front", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/sombrero.json b/code/datums/greyscale/json_configs/sombrero.json index 8a183c55def..35590541223 100644 --- a/code/datums/greyscale/json_configs/sombrero.json +++ b/code/datums/greyscale/json_configs/sombrero.json @@ -1,23 +1,31 @@ { - "sombrero": [ - { - "type": "reference", - "reference_type": "/datum/greyscale_config/sombrero/base", - "blend_mode": "overlay", - "color_ids": [ 1, 2 ] - } - ], - "shamebrero": [ - { - "type": "reference", - "reference_type": "/datum/greyscale_config/sombrero/base", - "blend_mode": "overlay", - "color_ids": [ 1, 2 ] - }, - { - "type": "icon_state", - "icon_state": "dongles", - "blend_mode": "overlay" - } - ] + "sombrero": + { + "layers": + [ + { + "type": "reference", + "reference_type": "/datum/greyscale_config/sombrero/base", + "blend_mode": "overlay", + "color_ids": [ 1, 2 ] + } + ] + }, + "shamebrero": + { + "layers": + [ + { + "type": "reference", + "reference_type": "/datum/greyscale_config/sombrero/base", + "blend_mode": "overlay", + "color_ids": [ 1, 2 ] + }, + { + "type": "icon_state", + "icon_state": "dongles", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/sombrero_base.json b/code/datums/greyscale/json_configs/sombrero_base.json index 9f2097ac2e8..da00849bf36 100644 --- a/code/datums/greyscale/json_configs/sombrero_base.json +++ b/code/datums/greyscale/json_configs/sombrero_base.json @@ -1,21 +1,25 @@ { - "": [ - { - "type": "icon_state", - "icon_state": "cloth", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "ornamentation", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "plate", - "blend_mode": "overlay" - } - ] + "": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "cloth", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "ornamentation", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "plate", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/sombrero_base_lefthand.json b/code/datums/greyscale/json_configs/sombrero_base_lefthand.json index d9d26e0b9c2..971940c76d6 100644 --- a/code/datums/greyscale/json_configs/sombrero_base_lefthand.json +++ b/code/datums/greyscale/json_configs/sombrero_base_lefthand.json @@ -1,16 +1,20 @@ { - "": [ - { - "type": "icon_state", - "icon_state": "cloth_lefthand", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "ornamentation_lefthand", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] + "": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "cloth_lefthand", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "ornamentation_lefthand", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/sombrero_base_righthand.json b/code/datums/greyscale/json_configs/sombrero_base_righthand.json index 32769cb21be..c45603a19d0 100644 --- a/code/datums/greyscale/json_configs/sombrero_base_righthand.json +++ b/code/datums/greyscale/json_configs/sombrero_base_righthand.json @@ -1,16 +1,20 @@ { - "": [ - { - "type": "icon_state", - "icon_state": "cloth_righthand", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "ornamentation_righthand", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] + "": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "cloth_righthand", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "ornamentation_righthand", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/sombrero_base_worn.json b/code/datums/greyscale/json_configs/sombrero_base_worn.json index e97c1875df4..b24bed99889 100644 --- a/code/datums/greyscale/json_configs/sombrero_base_worn.json +++ b/code/datums/greyscale/json_configs/sombrero_base_worn.json @@ -1,21 +1,25 @@ { - "": [ - { - "type": "icon_state", - "icon_state": "cloth_worn", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "ornamentation_worn", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "plate_worn", - "blend_mode": "overlay" - } - ] + "": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "cloth_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "ornamentation_worn", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "plate_worn", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/sombrero_lefthand.json b/code/datums/greyscale/json_configs/sombrero_lefthand.json index 5ba8a89ed28..22499a30499 100644 --- a/code/datums/greyscale/json_configs/sombrero_lefthand.json +++ b/code/datums/greyscale/json_configs/sombrero_lefthand.json @@ -1,23 +1,31 @@ { - "sombrero": [ - { - "type": "reference", - "reference_type": "/datum/greyscale_config/sombrero/base_lefthand", - "blend_mode": "overlay", - "color_ids": [ 1, 2 ] - } - ], - "shamebrero": [ - { - "type": "reference", - "reference_type": "/datum/greyscale_config/sombrero/base_lefthand", - "blend_mode": "overlay", - "color_ids": [ 1, 2 ] - }, - { - "type": "icon_state", - "icon_state": "dongles_lefthand", - "blend_mode": "overlay" - } - ] + "sombrero": + { + "layers": + [ + { + "type": "reference", + "reference_type": "/datum/greyscale_config/sombrero/base_lefthand", + "blend_mode": "overlay", + "color_ids": [ 1, 2 ] + } + ] + }, + "shamebrero": + { + "layers": + [ + { + "type": "reference", + "reference_type": "/datum/greyscale_config/sombrero/base_lefthand", + "blend_mode": "overlay", + "color_ids": [ 1, 2 ] + }, + { + "type": "icon_state", + "icon_state": "dongles_lefthand", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/sombrero_righthand.json b/code/datums/greyscale/json_configs/sombrero_righthand.json index 07737ad2532..f2895566a9e 100644 --- a/code/datums/greyscale/json_configs/sombrero_righthand.json +++ b/code/datums/greyscale/json_configs/sombrero_righthand.json @@ -1,23 +1,31 @@ { - "sombrero": [ - { - "type": "reference", - "reference_type": "/datum/greyscale_config/sombrero/base_righthand", - "blend_mode": "overlay", - "color_ids": [ 1, 2 ] - } - ], - "shamebrero": [ - { - "type": "reference", - "reference_type": "/datum/greyscale_config/sombrero/base_righthand", - "blend_mode": "overlay", - "color_ids": [ 1, 2 ] - }, - { - "type": "icon_state", - "icon_state": "dongles_righthand", - "blend_mode": "overlay" - } - ] + "sombrero": + { + "layers": + [ + { + "type": "reference", + "reference_type": "/datum/greyscale_config/sombrero/base_righthand", + "blend_mode": "overlay", + "color_ids": [ 1, 2 ] + } + ] + }, + "shamebrero": + { + "layers": + [ + { + "type": "reference", + "reference_type": "/datum/greyscale_config/sombrero/base_righthand", + "blend_mode": "overlay", + "color_ids": [ 1, 2 ] + }, + { + "type": "icon_state", + "icon_state": "dongles_righthand", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/sombrero_worn.json b/code/datums/greyscale/json_configs/sombrero_worn.json index a70cd5ce9c7..56b20246e86 100644 --- a/code/datums/greyscale/json_configs/sombrero_worn.json +++ b/code/datums/greyscale/json_configs/sombrero_worn.json @@ -1,23 +1,31 @@ { - "sombrero": [ - { - "type": "reference", - "reference_type": "/datum/greyscale_config/sombrero/base_worn", - "blend_mode": "overlay", - "color_ids": [ 1, 2 ] - } - ], - "shamebrero": [ - { - "type": "reference", - "reference_type": "/datum/greyscale_config/sombrero/base_worn", - "blend_mode": "overlay", - "color_ids": [ 1, 2 ] - }, - { - "type": "icon_state", - "icon_state": "dongles_worn", - "blend_mode": "overlay" - } - ] + "sombrero": + { + "layers": + [ + { + "type": "reference", + "reference_type": "/datum/greyscale_config/sombrero/base_worn", + "blend_mode": "overlay", + "color_ids": [ 1, 2 ] + } + ] + }, + "shamebrero": + { + "layers": + [ + { + "type": "reference", + "reference_type": "/datum/greyscale_config/sombrero/base_worn", + "blend_mode": "overlay", + "color_ids": [ 1, 2 ] + }, + { + "type": "icon_state", + "icon_state": "dongles_worn", + "blend_mode": "overlay" + } + ] + } } diff --git a/code/datums/greyscale/json_configs/structures/fulltile_window.json b/code/datums/greyscale/json_configs/structures/fulltile_window.json new file mode 100644 index 00000000000..b2b9363d1b9 --- /dev/null +++ b/code/datums/greyscale/json_configs/structures/fulltile_window.json @@ -0,0 +1,16 @@ +{ + "window": + { + "bitmask_config": 7, + "layers": + [ + { + "type": "icon_state", + "icon_state": "window", + "blend_mode": "overlay", + "bitmask": true, + "color_ids": [1] + } + ] + } +} diff --git a/code/datums/greyscale/json_configs/structures/low_wall.json b/code/datums/greyscale/json_configs/structures/low_wall.json new file mode 100644 index 00000000000..0b6ff8c9b9f --- /dev/null +++ b/code/datums/greyscale/json_configs/structures/low_wall.json @@ -0,0 +1,22 @@ +{ + "wall": + { + "bitmask_config": 7, + "layers": + [ + { + "type": "icon_state", + "icon_state": "wall", + "blend_mode": "overlay", + "bitmask": true, + "color_ids": [1] + }, + { + "type": "icon_state", + "icon_state": "shine", + "blend_mode": "overlay", + "bitmask": true + } + ] + } +} diff --git a/code/datums/greyscale/json_configs/suspenders.json b/code/datums/greyscale/json_configs/suspenders.json index e7ac4730563..df0b440012b 100644 --- a/code/datums/greyscale/json_configs/suspenders.json +++ b/code/datums/greyscale/json_configs/suspenders.json @@ -1,18 +1,26 @@ { - "suspenders": [ - { - "type": "icon_state", - "icon_state": "suspenders", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "suspenders_t": [ - { - "type": "icon_state", - "icon_state": "suspenders_t", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "suspenders": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "suspenders", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + }, + "suspenders_t": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "suspenders_t", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/suspenders_worn.json b/code/datums/greyscale/json_configs/suspenders_worn.json index e7ac4730563..df0b440012b 100644 --- a/code/datums/greyscale/json_configs/suspenders_worn.json +++ b/code/datums/greyscale/json_configs/suspenders_worn.json @@ -1,18 +1,26 @@ { - "suspenders": [ - { - "type": "icon_state", - "icon_state": "suspenders", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "suspenders_t": [ - { - "type": "icon_state", - "icon_state": "suspenders_t", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "suspenders": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "suspenders", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + }, + "suspenders_t": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "suspenders_t", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/thermomachine.json b/code/datums/greyscale/json_configs/thermomachine.json index 37a4cbd6815..82200ed0e6c 100644 --- a/code/datums/greyscale/json_configs/thermomachine.json +++ b/code/datums/greyscale/json_configs/thermomachine.json @@ -1,41 +1,54 @@ { - "thermo_base": [ - { - "type": "icon_state", - "icon_state": "temp_meter", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "thermo_base", - "blend_mode": "overlay" - } - ], - "thermo_1": [ - { - "type": "icon_state", - "icon_state": "temp_meter_1", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "thermo_base_1", - "blend_mode": "overlay" - } - ], - "thermo-open": [ - { - "type": "icon_state", - "icon_state": "temp_meter-o", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "thermo_base-o", - "blend_mode": "overlay" - } - ] + "thermo_base": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "temp_meter", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "thermo_base", + "blend_mode": "overlay" + } + ] + }, + "thermo_1": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "temp_meter_1", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "thermo_base_1", + "blend_mode": "overlay" + } + ] + }, + "thermo_open": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "temp_meter-o", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "thermo_base-o", + "blend_mode": "overlay" + } + ] + } } + diff --git a/code/datums/greyscale/json_configs/turfs/shineless_wall.json b/code/datums/greyscale/json_configs/turfs/shineless_wall.json new file mode 100644 index 00000000000..b399839d6f4 --- /dev/null +++ b/code/datums/greyscale/json_configs/turfs/shineless_wall.json @@ -0,0 +1,52 @@ +{ + "wall": + { + "bitmask_config": 7, + "layers": + [ + { + "type": "icon_state", + "icon_state": "wall", + "blend_mode": "overlay", + "bitmask": true, + "color_ids": [1] + } + ] + }, + "fwall_opening": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "fwall_opening", + "blend_mode": "overlay", + "color_ids": [1] + } + ] + }, + "fwall_open": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "fwall_open", + "blend_mode": "overlay", + "color_ids": [1] + } + ] + }, + "fwall_closing": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "fwall_closing", + "blend_mode": "overlay", + "color_ids": [1] + } + ] + } +} diff --git a/code/datums/greyscale/json_configs/turfs/shineless_wall_stripe.json b/code/datums/greyscale/json_configs/turfs/shineless_wall_stripe.json new file mode 100644 index 00000000000..0f7d9305b4b --- /dev/null +++ b/code/datums/greyscale/json_configs/turfs/shineless_wall_stripe.json @@ -0,0 +1,16 @@ +{ + "wall": + { + "bitmask_config": 7, + "layers": + [ + { + "type": "icon_state", + "icon_state": "wall", + "blend_mode": "overlay", + "bitmask": true, + "color_ids": [1] + } + ] + } +} diff --git a/code/datums/greyscale/json_configs/turfs/solid_wall.json b/code/datums/greyscale/json_configs/turfs/solid_wall.json new file mode 100644 index 00000000000..9bd5f467e8c --- /dev/null +++ b/code/datums/greyscale/json_configs/turfs/solid_wall.json @@ -0,0 +1,58 @@ +{ + "wall": + { + "bitmask_config": 7, + "layers": + [ + { + "type": "icon_state", + "icon_state": "wall", + "blend_mode": "overlay", + "bitmask": true, + "color_ids": [1] + }, + { + "type": "icon_state", + "icon_state": "shine", + "blend_mode": "overlay", + "bitmask": true + } + ] + }, + "fwall_opening": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "fwall_opening", + "blend_mode": "overlay", + "color_ids": [1] + } + ] + }, + "fwall_open": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "fwall_open", + "blend_mode": "overlay", + "color_ids": [1] + } + ] + }, + "fwall_closing": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "fwall_closing", + "blend_mode": "overlay", + "color_ids": [1] + } + ] + } +} diff --git a/code/datums/greyscale/json_configs/turfs/wall_neighbor_stripe.json b/code/datums/greyscale/json_configs/turfs/wall_neighbor_stripe.json new file mode 100644 index 00000000000..36659e88267 --- /dev/null +++ b/code/datums/greyscale/json_configs/turfs/wall_neighbor_stripe.json @@ -0,0 +1,22 @@ +{ + "stripe": + { + "bitmask_config": 1, + "layers": + [ + { + "type": "icon_state", + "icon_state": "stripe", + "blend_mode": "overlay", + "bitmask": true, + "color_ids": [1] + }, + { + "type": "icon_state", + "icon_state": "shine", + "blend_mode": "overlay", + "bitmask": true + } + ] + } +} diff --git a/code/datums/greyscale/json_configs/turfs/wall_stripe.json b/code/datums/greyscale/json_configs/turfs/wall_stripe.json new file mode 100644 index 00000000000..0b6ff8c9b9f --- /dev/null +++ b/code/datums/greyscale/json_configs/turfs/wall_stripe.json @@ -0,0 +1,22 @@ +{ + "wall": + { + "bitmask_config": 7, + "layers": + [ + { + "type": "icon_state", + "icon_state": "wall", + "blend_mode": "overlay", + "bitmask": true, + "color_ids": [1] + }, + { + "type": "icon_state", + "icon_state": "shine", + "blend_mode": "overlay", + "bitmask": true + } + ] + } +} diff --git a/code/datums/greyscale/json_configs/wintercoats.json b/code/datums/greyscale/json_configs/wintercoats.json index a1a50b04447..fdeb488740b 100644 --- a/code/datums/greyscale/json_configs/wintercoats.json +++ b/code/datums/greyscale/json_configs/wintercoats.json @@ -1,84 +1,92 @@ { - "coatwinter": [ - { - "type": "icon_state", - "icon_state": "neck", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "sleeves", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "arms", - "blend_mode": "overlay", - "color_ids": [ 3 ] - }, - { - "type": "icon_state", - "icon_state": "bodytop", - "blend_mode": "overlay", - "color_ids": [ 4 ] - }, - { - "type": "icon_state", - "icon_state": "bodymiddle", - "blend_mode": "overlay", - "color_ids": [ 5 ] - }, - { - "type": "icon_state", - "icon_state": "bodybottom", - "blend_mode": "overlay", - "color_ids": [ 6 ] - } - ], - "coatwinter_t": [ - { - "type": "icon_state", - "icon_state": "neck", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "sleeves", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "arms", - "blend_mode": "overlay", - "color_ids": [ 3 ] - }, - { - "type": "icon_state", - "icon_state": "bodytop", - "blend_mode": "overlay", - "color_ids": [ 4 ] - }, - { - "type": "icon_state", - "icon_state": "bodymiddle", - "blend_mode": "overlay", - "color_ids": [ 5 ] - }, - { - "type": "icon_state", - "icon_state": "bodybottom", - "blend_mode": "overlay", - "color_ids": [ 6 ] - }, - { - "type": "icon_state", - "icon_state": "hood", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "coatwinter": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "neck", + "blend_mode": "overlay", + "color_ids": [1] + }, + { + "type": "icon_state", + "icon_state": "sleeves", + "blend_mode": "overlay", + "color_ids": [2] + }, + { + "type": "icon_state", + "icon_state": "arms", + "blend_mode": "overlay", + "color_ids": [3] + }, + { + "type": "icon_state", + "icon_state": "bodytop", + "blend_mode": "overlay", + "color_ids": [4] + }, + { + "type": "icon_state", + "icon_state": "bodymiddle", + "blend_mode": "overlay", + "color_ids": [5] + }, + { + "type": "icon_state", + "icon_state": "bodybottom", + "blend_mode": "overlay", + "color_ids": [6] + } + ] + }, + "coatwinter_t": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "neck", + "blend_mode": "overlay", + "color_ids": [1] + }, + { + "type": "icon_state", + "icon_state": "sleeves", + "blend_mode": "overlay", + "color_ids": [2] + }, + { + "type": "icon_state", + "icon_state": "arms", + "blend_mode": "overlay", + "color_ids": [3] + }, + { + "type": "icon_state", + "icon_state": "bodytop", + "blend_mode": "overlay", + "color_ids": [4] + }, + { + "type": "icon_state", + "icon_state": "bodymiddle", + "blend_mode": "overlay", + "color_ids": [5] + }, + { + "type": "icon_state", + "icon_state": "bodybottom", + "blend_mode": "overlay", + "color_ids": [6] + }, + { + "type": "icon_state", + "icon_state": "hood", + "blend_mode": "overlay", + "color_ids": [1] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/wintercoats_hood.json b/code/datums/greyscale/json_configs/wintercoats_hood.json index d4ea34aa73a..1ad7615b658 100644 --- a/code/datums/greyscale/json_configs/wintercoats_hood.json +++ b/code/datums/greyscale/json_configs/wintercoats_hood.json @@ -1,22 +1,26 @@ { - "hood_winter": [ - { - "type": "icon_state", - "icon_state": "top_trim", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "bottom_trim", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "hood_cloth", - "blend_mode": "overlay", - "color_ids": [ 3 ] - } - ] + "hood_winter": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "top_trim", + "blend_mode": "overlay", + "color_ids": [1] + }, + { + "type": "icon_state", + "icon_state": "bottom_trim", + "blend_mode": "overlay", + "color_ids": [2] + }, + { + "type": "icon_state", + "icon_state": "hood_cloth", + "blend_mode": "overlay", + "color_ids": [3] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/wintercoats_hood_worn.json b/code/datums/greyscale/json_configs/wintercoats_hood_worn.json index d4ea34aa73a..1ad7615b658 100644 --- a/code/datums/greyscale/json_configs/wintercoats_hood_worn.json +++ b/code/datums/greyscale/json_configs/wintercoats_hood_worn.json @@ -1,22 +1,26 @@ { - "hood_winter": [ - { - "type": "icon_state", - "icon_state": "top_trim", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "bottom_trim", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "hood_cloth", - "blend_mode": "overlay", - "color_ids": [ 3 ] - } - ] + "hood_winter": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "top_trim", + "blend_mode": "overlay", + "color_ids": [1] + }, + { + "type": "icon_state", + "icon_state": "bottom_trim", + "blend_mode": "overlay", + "color_ids": [2] + }, + { + "type": "icon_state", + "icon_state": "hood_cloth", + "blend_mode": "overlay", + "color_ids": [3] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/wintercoats_worn.json b/code/datums/greyscale/json_configs/wintercoats_worn.json index 59e2e9223b1..dbe87ef7b22 100644 --- a/code/datums/greyscale/json_configs/wintercoats_worn.json +++ b/code/datums/greyscale/json_configs/wintercoats_worn.json @@ -1,79 +1,86 @@ { - "coatwinter": [ - { - "type": "icon_state", - "icon_state": "neck_worn", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "sleeves_worn", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "arms_worn", - "blend_mode": "overlay", - "color_ids": [ 3 ] - }, - { - "type": "icon_state", - "icon_state": "bodytop_worn", - "blend_mode": "overlay", - "color_ids": [ 4 ] - }, - { - "type": "icon_state", - "icon_state": "bodymiddle_worn", - "blend_mode": "overlay", - "color_ids": [ 5 ] - }, - { - "type": "icon_state", - "icon_state": "bodybottom_worn", - "blend_mode": "overlay", - "color_ids": [ 6 ] - } - ], - - "coatwinter_t": [ - { - "type": "icon_state", - "icon_state": "neck_worn", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "sleeves_worn", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "arms_worn", - "blend_mode": "overlay", - "color_ids": [ 3 ] - }, - { - "type": "icon_state", - "icon_state": "bodytop_worn_t", - "blend_mode": "overlay", - "color_ids": [ 4 ] - }, - { - "type": "icon_state", - "icon_state": "bodymiddle_worn_t", - "blend_mode": "overlay", - "color_ids": [ 5 ] - }, - { - "type": "icon_state", - "icon_state": "bodybottom_worn_t", - "blend_mode": "overlay", - "color_ids": [ 6 ] - } - ] + "coatwinter": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "neck_worn", + "blend_mode": "overlay", + "color_ids": [1] + }, + { + "type": "icon_state", + "icon_state": "sleeves_worn", + "blend_mode": "overlay", + "color_ids": [2] + }, + { + "type": "icon_state", + "icon_state": "arms_worn", + "blend_mode": "overlay", + "color_ids": [3] + }, + { + "type": "icon_state", + "icon_state": "bodytop_worn", + "blend_mode": "overlay", + "color_ids": [4] + }, + { + "type": "icon_state", + "icon_state": "bodymiddle_worn", + "blend_mode": "overlay", + "color_ids": [5] + }, + { + "type": "icon_state", + "icon_state": "bodybottom_worn", + "blend_mode": "overlay", + "color_ids": [6] + } + ] + }, + "coatwinter_t": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "neck_worn", + "blend_mode": "overlay", + "color_ids": [1] + }, + { + "type": "icon_state", + "icon_state": "sleeves_worn", + "blend_mode": "overlay", + "color_ids": [2] + }, + { + "type": "icon_state", + "icon_state": "arms_worn", + "blend_mode": "overlay", + "color_ids": [3] + }, + { + "type": "icon_state", + "icon_state": "bodytop_worn_t", + "blend_mode": "overlay", + "color_ids": [4] + }, + { + "type": "icon_state", + "icon_state": "bodymiddle_worn_t", + "blend_mode": "overlay", + "color_ids": [5] + }, + { + "type": "icon_state", + "icon_state": "bodybottom_worn_t", + "blend_mode": "overlay", + "color_ids": [6] + } + ] + } } diff --git a/code/datums/greyscale/json_configs/wirecutters.json b/code/datums/greyscale/json_configs/wirecutters.json index 0fb5c530eb5..118d1976b3e 100644 --- a/code/datums/greyscale/json_configs/wirecutters.json +++ b/code/datums/greyscale/json_configs/wirecutters.json @@ -1,15 +1,20 @@ { - "cutters_map": [ - { - "type": "icon_state", - "icon_state": "cutters", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "cutters_cutty_thingy", - "blend_mode": "overlay" - } - ] + "cutters_map": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "cutters", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "cutters_cutty_thingy", + "blend_mode": "overlay" + } + ] + } } + diff --git a/code/datums/greyscale/json_configs/wrap_paper.json b/code/datums/greyscale/json_configs/wrap_paper.json index c7ea889bc22..9dddb7673d0 100644 --- a/code/datums/greyscale/json_configs/wrap_paper.json +++ b/code/datums/greyscale/json_configs/wrap_paper.json @@ -1,16 +1,21 @@ { - "": [ - { - "type": "icon_state", - "icon_state": "wrap_paper_base", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "wrap_paper_ribbon", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] + "": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "wrap_paper_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "wrap_paper_ribbon", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] + } } + diff --git a/code/datums/greyscale/layer.dm b/code/datums/greyscale/layer.dm index 06a001c1ad8..658d1f2dcc4 100644 --- a/code/datums/greyscale/layer.dm +++ b/code/datums/greyscale/layer.dm @@ -2,6 +2,7 @@ var/layer_type var/list/color_ids var/blend_mode + var/bitmask = FALSE var/static/list/json_readers @@ -66,19 +67,18 @@ /// Used to actualy create the layer using the given colors /// Do not override, use InternalGenerate instead -/datum/greyscale_layer/proc/Generate(list/colors, list/render_steps, icon/new_icon) +/datum/greyscale_layer/proc/Generate(list/colors, list/render_steps, do_bitmask, bitmask_step) var/list/processed_colors = list() for(var/i in color_ids) if(isnum(i)) processed_colors += colors[i] else processed_colors += i - var/icon/copy_of_new_icon = icon(new_icon) // Layers shouldn't be modifying it directly, this is just for them to reference - return InternalGenerate(processed_colors, render_steps, copy_of_new_icon) + return InternalGenerate(processed_colors, render_steps, do_bitmask, bitmask_step) /// Override this to implement layers. /// The colors var will only contain colors that this layer is configured to use. -/datum/greyscale_layer/proc/InternalGenerate(list/colors, list/render_steps, icon/new_icon) +/datum/greyscale_layer/proc/InternalGenerate(list/colors, list/render_steps, do_bitmask, bitmask_step) //////////////////////////////////////////////////////// // Subtypes @@ -87,15 +87,22 @@ /datum/greyscale_layer/icon_state layer_type = "icon_state" var/icon_state + var/icon_file var/icon/icon var/color_id /datum/greyscale_layer/icon_state/Initialize(icon_file) . = ..() + src.icon_file = icon_file var/list/icon_states = icon_states(icon_file) - if(!(icon_state in icon_states)) - CRASH("Configured icon state \[[icon_state]\] was not found in [icon_file]. Double check your json configuration.") - icon = new(icon_file, icon_state) + var/state_to_check + if(bitmask) + state_to_check = "[icon_state]-0" + else + state_to_check = icon_state + if(!(state_to_check in icon_states)) + CRASH("Configured icon state \[[state_to_check]\] was not found in [icon_file]. Double check your json configuration.") + icon = new(icon_file, state_to_check) if(length(color_ids) > 1) CRASH("Icon state layers can not have more than one color id") @@ -103,32 +110,23 @@ /datum/greyscale_layer/icon_state/GetExpectedValues(list/required_values, list/optional_values) . = ..() required_values[NAMEOF(src, icon_state)] = /datum/json_reader/text + optional_values[NAMEOF(src, bitmask)] = /datum/json_reader/number -/datum/greyscale_layer/icon_state/InternalGenerate(list/colors, list/render_steps, icon/new_icon) +/datum/greyscale_layer/icon_state/InternalGenerate(list/colors, list/render_steps, do_bitmask, bitmask_step) . = ..() - var/icon/generated_icon = icon(icon) + var/icon/new_icon + if(bitmask && do_bitmask) + new_icon = icon(icon_file, "[icon_state]-[bitmask_step]") + else + new_icon = icon(icon) if(length(colors)) - generated_icon.Blend(colors[1], ICON_MULTIPLY) - return generated_icon - -/// A layer to modify the previous layer's colors with a color matrix -/datum/greyscale_layer/color_matrix - layer_type = "color_matrix" - var/list/color_matrix - -/datum/greyscale_layer/color_matrix/GetExpectedValues(list/required_values, list/optional_values) - . = ..() - required_values[NAMEOF(src, color_matrix)] = /datum/json_reader/color_matrix - -/datum/greyscale_layer/color_matrix/InternalGenerate(list/colors, list/render_steps, icon/new_icon) - . = ..() - new_icon.MapColors(arglist(color_matrix)) + new_icon.Blend(colors[1], ICON_MULTIPLY) return new_icon /// A layer created by using another greyscale icon's configuration /datum/greyscale_layer/reference layer_type = "reference" - var/icon_state = "" + var/icon_state var/datum/greyscale_config/reference_type /datum/greyscale_layer/reference/GetExpectedValues(list/required_values, list/optional_values) @@ -140,17 +138,8 @@ . = ..() return reference_type.Refresh(loadFromDisk=TRUE) -/datum/greyscale_layer/reference/CrossVerify() - . = ..() - if(!reference_type.icon_states[icon_state]) - CRASH("[src] expects icon_state '[icon_state]' but referenced configuration '[reference_type]' does not have it.") - -/datum/greyscale_layer/reference/InternalGenerate(list/colors, list/render_steps, icon/new_icon) - var/icon/generated_icon +/datum/greyscale_layer/reference/InternalGenerate(list/colors, list/render_steps, do_bitmask, bitmask_step) if(render_steps) - var/list/reference_data = list() - generated_icon = reference_type.GenerateBundle(colors, reference_data, new_icon) - render_steps += reference_data[icon_state] + return reference_type.GenerateBundle(colors, render_steps) else - generated_icon = reference_type.Generate(colors.Join(), new_icon) - return icon(generated_icon, icon_state) + return reference_type.Generate(colors.Join(), null, do_bitmask, bitmask_step) diff --git a/code/datums/greyscale/state.dm b/code/datums/greyscale/state.dm new file mode 100644 index 00000000000..f7ccb99fe21 --- /dev/null +++ b/code/datums/greyscale/state.dm @@ -0,0 +1,11 @@ +/// An icon state information for GAGS system +/datum/greyscale_state + /// Flags for the bitmasking configuration + var/bitmask_config = NONE + var/default_state_if_bitmask = FALSE + /// List of `/datum/greyscale_layer` + var/list/layers + +/datum/greyscale_state/New(layers, bitmask_config, default_state_if_bitmask) + src.layers = layers + src.bitmask_config = bitmask_config diff --git a/code/datums/materials/_material.dm b/code/datums/materials/_material.dm index 7eed429ad3d..50b1ee7febc 100644 --- a/code/datums/materials/_material.dm +++ b/code/datums/materials/_material.dm @@ -46,6 +46,20 @@ Simple datum which is instanced once per type and is used for every object of sa var/cached_texture_filter_icon ///What type of shard the material will shatter to var/obj/item/shard_type + ///Icon for walls which are plated with this material + var/wall_greyscale_config = /datum/greyscale_config/solid_wall + ///Icon for reinforced walls which are plated with this material + var/reinforced_wall_greyscale_config = /datum/greyscale_config/reinforced_solid_wall + /// Icon for painted stripes on the walls + var/wall_stripe_greyscale_config = /datum/greyscale_config/wall_stripe + /// Color of walls constructed with this material as their plating + var/wall_color + /// Type of the wall this material makes when its used as a plating, null means can't make a wall out of it. + var/wall_type = /turf/closed/wall + /// Type of the false wall this material will make when used as its plating + var/false_wall_type + /// If true, walls plated with this material that have a reinforcement, will be hard to deconstruct + var/hard_wall_decon = FALSE /** Handles initializing the material. * @@ -58,6 +72,12 @@ Simple datum which is instanced once per type and is used for every object of sa else if(isnull(id)) id = type + if(!wall_color) + wall_color = greyscale_colors + + if(wall_type && !false_wall_type) + false_wall_type = /obj/structure/falsewall + if(texture_layer_icon_state) cached_texture_filter_icon = icon('icons/materials/composite.dmi', texture_layer_icon_state) diff --git a/code/datums/materials/alloys.dm b/code/datums/materials/alloys.dm index f92df020843..5cf866b2bab 100644 --- a/code/datums/materials/alloys.dm +++ b/code/datums/materials/alloys.dm @@ -40,6 +40,8 @@ sheet_type = /obj/item/stack/sheet/plasteel categories = list(MAT_CATEGORY_RIGID=TRUE, MAT_CATEGORY_BASE_RECIPES=TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) composition = list(/datum/material/iron=1, /datum/material/plasma=1) + wall_color = "#57575c" + hard_wall_decon = TRUE /datum/material/alloy/plasteel/on_applied_obj(obj/item/target_item, amount, material_flags) . = ..() @@ -73,6 +75,11 @@ sheet_type = /obj/item/stack/sheet/mineral/plastitanium categories = list(MAT_CATEGORY_RIGID=TRUE, MAT_CATEGORY_BASE_RECIPES=TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) composition = list(/datum/material/titanium=1, /datum/material/plasma=1) + wall_greyscale_config = /datum/greyscale_config/metal_wall + wall_type = /turf/closed/wall/mineral/plastitanium + false_wall_type = /obj/structure/falsewall/plastitanium + hard_wall_decon = TRUE + wall_color = "#423b3b" /** Plasmaglass * @@ -92,6 +99,7 @@ value_per_unit = 0.075 categories = list(MAT_CATEGORY_RIGID=TRUE, MAT_CATEGORY_BASE_RECIPES=TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) composition = list(/datum/material/glass=1, /datum/material/plasma=0.5) + wall_type = null /** Titaniumglass * @@ -110,6 +118,7 @@ value_per_unit = 0.04 categories = list(MAT_CATEGORY_RIGID=TRUE, MAT_CATEGORY_BASE_RECIPES=TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) composition = list(/datum/material/glass=1, /datum/material/titanium=0.5) + wall_type = null /** Plastitanium Glass * @@ -149,6 +158,7 @@ value_per_unit = 0.4 categories = list(MAT_CATEGORY_RIGID=TRUE, MAT_CATEGORY_BASE_RECIPES=TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) composition = list(/datum/material/iron=2, /datum/material/plasma=2) + hard_wall_decon = TRUE /datum/material/alloy/alien/on_applied_obj(obj/item/target_item, amount, material_flags) . = ..() diff --git a/code/datums/materials/basemats.dm b/code/datums/materials/basemats.dm index c16526aface..660725390c2 100644 --- a/code/datums/materials/basemats.dm +++ b/code/datums/materials/basemats.dm @@ -7,6 +7,7 @@ categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) sheet_type = /obj/item/stack/sheet/iron value_per_unit = 0.0025 + wall_color = "#57575c" /datum/material/iron/on_accidental_mat_consumption(mob/living/carbon/victim, obj/item/source_item) victim.apply_damage(10, BRUTE, BODY_ZONE_HEAD, wound_bonus = 5) @@ -26,6 +27,7 @@ value_per_unit = 0.0025 beauty_modifier = 0.05 armor_modifiers = list(MELEE = 0.2, BULLET = 0.2, LASER = 0, ENERGY = 1, BOMB = 0, BIO = 0.2, FIRE = 1, ACID = 0.2) + wall_type = null /datum/material/glass/on_accidental_mat_consumption(mob/living/carbon/victim, obj/item/source_item) victim.apply_damage(10, BRUTE, BODY_ZONE_HEAD, wound_bonus = 5, sharpness = TRUE) //cronch @@ -46,6 +48,8 @@ Unless you know what you're doing, only use the first three numbers. They're in sheet_type = /obj/item/stack/sheet/mineral/silver value_per_unit = 0.025 beauty_modifier = 0.075 + wall_type = /turf/closed/wall/mineral/silver + false_wall_type = /obj/structure/falsewall/silver /datum/material/silver/on_accidental_mat_consumption(mob/living/carbon/victim, obj/item/source_item) victim.apply_damage(10, BRUTE, BODY_ZONE_HEAD, wound_bonus = 5) @@ -63,6 +67,8 @@ Unless you know what you're doing, only use the first three numbers. They're in value_per_unit = 0.0625 beauty_modifier = 0.15 armor_modifiers = list(MELEE = 1.1, BULLET = 1.1, LASER = 1.15, ENERGY = 1.15, BOMB = 1, BIO = 1, FIRE = 0.7, ACID = 1.1) + wall_type = /turf/closed/wall/mineral/gold + false_wall_type = /obj/structure/falsewall/gold /datum/material/gold/on_accidental_mat_consumption(mob/living/carbon/victim, obj/item/source_item) victim.apply_damage(10, BRUTE, BODY_ZONE_HEAD, wound_bonus = 5) @@ -80,6 +86,8 @@ Unless you know what you're doing, only use the first three numbers. They're in value_per_unit = 0.25 beauty_modifier = 0.3 armor_modifiers = list(MELEE = 1.3, BULLET = 1.3, LASER = 0.6, ENERGY = 1, BOMB = 1.2, BIO = 1, FIRE = 1, ACID = 1) + wall_type = /turf/closed/wall/mineral/diamond + false_wall_type = /obj/structure/falsewall/diamond /datum/material/diamond/on_accidental_mat_consumption(mob/living/carbon/victim, obj/item/source_item) victim.apply_damage(15, BRUTE, BODY_ZONE_HEAD, wound_bonus = 7) @@ -96,6 +104,8 @@ Unless you know what you're doing, only use the first three numbers. They're in value_per_unit = 0.05 beauty_modifier = 0.3 //It shines so beautiful armor_modifiers = list(MELEE = 1.5, BULLET = 1.4, LASER = 0.5, ENERGY = 0.5, BOMB = 0, BIO = 0, FIRE = 1, ACID = 1) + wall_type = /turf/closed/wall/mineral/uranium + false_wall_type = /obj/structure/falsewall/uranium /datum/material/uranium/on_applied(atom/source, amount, material_flags) . = ..() @@ -132,6 +142,8 @@ Unless you know what you're doing, only use the first three numbers. They're in value_per_unit = 0.1 beauty_modifier = 0.15 armor_modifiers = list(MELEE = 1.4, BULLET = 0.7, LASER = 0, ENERGY = 1.2, BOMB = 0, BIO = 1.2, FIRE = 0, ACID = 0.5) + wall_type = /turf/closed/wall/mineral/plasma + false_wall_type = /obj/structure/falsewall/plasma /datum/material/plasma/on_applied(atom/source, amount, material_flags) . = ..() @@ -163,6 +175,7 @@ Unless you know what you're doing, only use the first three numbers. They're in beauty_modifier = 0.5 sheet_type = /obj/item/stack/sheet/bluespace_crystal value_per_unit = 0.15 + wall_type = null /datum/material/bluespace/on_accidental_mat_consumption(mob/living/carbon/victim, obj/item/source_item) victim.reagents.add_reagent(/datum/reagent/bluespace, rand(5, 8)) @@ -180,6 +193,8 @@ Unless you know what you're doing, only use the first three numbers. They're in value_per_unit = 0.5 beauty_modifier = 0.5 armor_modifiers = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 100, BIO = 0, FIRE = 10, ACID = 0) //Clowns cant be blown away. + wall_type = /turf/closed/wall/mineral/bananium + false_wall_type = /obj/structure/falsewall/bananium /datum/material/bananium/on_applied(atom/source, amount, material_flags) . = ..() @@ -206,8 +221,10 @@ Unless you know what you're doing, only use the first three numbers. They're in categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) sheet_type = /obj/item/stack/sheet/mineral/titanium value_per_unit = 0.0625 - beauty_modifier = 0.05 armor_modifiers = list(MELEE = 1.35, BULLET = 1.3, LASER = 1.3, ENERGY = 1.25, BOMB = 1.25, BIO = 1, FIRE = 0.7, ACID = 1) + wall_greyscale_config = /datum/greyscale_config/metal_wall + wall_type = /turf/closed/wall/mineral/titanium + false_wall_type = /obj/structure/falsewall/titanium /datum/material/titanium/on_accidental_mat_consumption(mob/living/carbon/victim, obj/item/source_item) victim.apply_damage(15, BRUTE, BODY_ZONE_HEAD, wound_bonus = 7) @@ -265,9 +282,13 @@ Unless you know what you're doing, only use the first three numbers. They're in sheet_type = /obj/item/stack/sheet/mineral/wood categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) value_per_unit = 0.01 - beauty_modifier = 0.1 armor_modifiers = list(MELEE = 1.1, BULLET = 1.1, LASER = 0.4, ENERGY = 0.4, BOMB = 1, BIO = 0.2, FIRE = 0, ACID = 0.3) texture_layer_icon_state = "woodgrain" + wall_greyscale_config = /datum/greyscale_config/wood_wall + wall_stripe_greyscale_config = /datum/greyscale_config/wood_wall_stripe + wall_color = "#93662C" + wall_type = /turf/closed/wall/mineral/wood + false_wall_type = /obj/structure/falsewall/wood /datum/material/wood/on_applied_obj(obj/source, amount, material_flags) . = ..() @@ -404,9 +425,9 @@ Unless you know what you're doing, only use the first three numbers. They're in sheet_type = /obj/item/stack/sheet/mineral/sandstone value_per_unit = 0.0025 armor_modifiers = list(MELEE = 0.5, BULLET = 0.5, LASER = 1.25, ENERGY = 0.5, BOMB = 0.5, BIO = 0.25, FIRE = 1.5, ACID = 1.5) - beauty_modifier = 0.3 turf_sound_override = FOOTSTEP_WOOD texture_layer_icon_state = "brick" + wall_greyscale_config = /datum/greyscale_config/stone_wall /datum/material/snow name = "snow" @@ -417,9 +438,9 @@ Unless you know what you're doing, only use the first three numbers. They're in sheet_type = /obj/item/stack/sheet/mineral/snow value_per_unit = 0.0025 armor_modifiers = list(MELEE = 0.25, BULLET = 0.25, LASER = 0.25, ENERGY = 0.25, BOMB = 0.25, BIO = 0.25, FIRE = 0.25, ACID = 1.5) - beauty_modifier = 0.3 turf_sound_override = FOOTSTEP_SAND texture_layer_icon_state = "sand" + wall_greyscale_config = /datum/greyscale_config/stone_wall /datum/material/snow/on_accidental_mat_consumption(mob/living/carbon/victim, obj/item/source_item) victim.reagents.add_reagent(/datum/reagent/water, rand(5, 10)) @@ -434,8 +455,8 @@ Unless you know what you're doing, only use the first three numbers. They're in sheet_type = /obj/item/stack/sheet/runed_metal value_per_unit = 0.75 armor_modifiers = list(MELEE = 1.2, BULLET = 1.2, LASER = 1, ENERGY = 1, BOMB = 1.2, BIO = 1.2, FIRE = 1.5, ACID = 1.5) - beauty_modifier = -0.15 texture_layer_icon_state = "runed" + wall_greyscale_config = /datum/greyscale_config/cult_wall /datum/material/runedmetal/on_accidental_mat_consumption(mob/living/carbon/victim, obj/item/source_item) victim.reagents.add_reagent(/datum/reagent/fuel/unholywater, rand(8, 12)) diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm index 4941064217f..44057df5025 100644 --- a/code/game/machinery/doors/poddoor.dm +++ b/code/game/machinery/doors/poddoor.dm @@ -14,6 +14,7 @@ resistance_flags = FIRE_PROOF damage_deflection = 70 can_open_with_hands = FALSE + smoothing_groups = list(SMOOTH_GROUP_SHUTTERS_BLASTDOORS) var/datum/crafting_recipe/recipe_type = /datum/crafting_recipe/blast_doors var/deconstruction = BLASTDOOR_FINISHED // deconstruction step var/id = 1 diff --git a/code/game/objects/effects/contraband.dm b/code/game/objects/effects/contraband.dm index ee2dbb64203..77f2fe6386d 100644 --- a/code/game/objects/effects/contraband.dm +++ b/code/game/objects/effects/contraband.dm @@ -137,13 +137,6 @@ to_chat(user, span_warning("[P] has no poster... inside it? Inform a coder!")) return - // Deny placing posters on currently-diagonal walls, although the wall may change in the future. - if (smoothing_flags & SMOOTH_DIAGONAL_CORNERS) - for (var/O in overlays) - var/image/I = O - if(copytext(I.icon_state, 1, 3) == "d-") //3 == length("d-") + 1 - return - var/stuff_on_wall = 0 for(var/obj/O in contents) //Let's see if it already has a poster on it or too much stuff if(istype(O, /obj/structure/sign/poster)) diff --git a/code/game/objects/effects/effect_system/effects_foam.dm b/code/game/objects/effects/effect_system/effects_foam.dm index 06ff319eb64..a3191f31189 100644 --- a/code/game/objects/effects/effect_system/effects_foam.dm +++ b/code/game/objects/effects/effect_system/effects_foam.dm @@ -271,18 +271,13 @@ opacity = TRUE // changed in New() anchored = TRUE layer = EDGED_TURF_LAYER - plane = GAME_PLANE_UPPER resistance_flags = FIRE_PROOF | ACID_PROOF name = "foamed metal" - desc = "A lightweight foamed metal wall that can be used as base to construct a wall." + desc = "A lightweight foamed metal wall." gender = PLURAL max_integrity = 20 - can_atmos_pass = ATMOS_PASS_DENSITY - obj_flags = CAN_BE_HIT | BLOCK_Z_IN_DOWN | BLOCK_Z_IN_UP - ///Var used to prevent spamming of the construction sound - var/next_beep = 0 -/obj/structure/foamedmetal/Initialize(mapload) +/obj/structure/foamedmetal/Initialize() . = ..() air_update_turf(TRUE, TRUE) @@ -310,37 +305,6 @@ to_chat(user, span_warning("You hit [src] but bounce off it!")) playsound(src.loc, 'sound/weapons/tap.ogg', 100, TRUE) -/obj/structure/foamedmetal/attackby(obj/item/W, mob/user, params) - ///A speed modifier for how fast the wall is build - var/platingmodifier = 1 - if(HAS_TRAIT(user, TRAIT_QUICK_BUILD)) - platingmodifier = 0.7 - if(next_beep <= world.time) - next_beep = world.time + 1 SECONDS - playsound(src, 'sound/machines/clockcult/integration_cog_install.ogg', 50, TRUE) - add_fingerprint(user) - - if(!istype(W, /obj/item/stack/sheet)) - return ..() - - var/obj/item/stack/sheet/sheet_for_plating = W - if(istype(sheet_for_plating, /obj/item/stack/sheet/iron)) - if(sheet_for_plating.get_amount() < 2) - to_chat(user, span_warning("You need two sheets of iron to finish a wall on [src]!")) - return - to_chat(user, span_notice("You start adding plating to the foam structure...")) - if (do_after(user, 40*platingmodifier, target = src)) - if(!sheet_for_plating.use(2)) - return - to_chat(user, span_notice("You add the plating.")) - var/turf/T = get_turf(src) - T.PlaceOnTop(/turf/closed/wall/metal_foam_base) - transfer_fingerprints_to(T) - qdel(src) - return - - add_hiddenprint(user) - /obj/structure/foamedmetal/iron max_integrity = 50 icon_state = "ironfoam" diff --git a/code/game/objects/effects/spawners/structure.dm b/code/game/objects/effects/spawners/structure.dm index 40edbf913f0..77c97d71616 100644 --- a/code/game/objects/effects/spawners/structure.dm +++ b/code/game/objects/effects/spawners/structure.dm @@ -22,7 +22,7 @@ again. icon = 'icons/obj/structures_spawners.dmi' icon_state = "window_spawner" name = "window spawner" - spawn_list = list(/obj/structure/grille, /obj/structure/window/fulltile) + spawn_list = list(/obj/structure/low_wall, /obj/structure/window/fulltile) dir = SOUTH /obj/effect/spawner/structure/window/Initialize(mapload) @@ -32,6 +32,11 @@ again. var/turf/current_turf = get_turf(src) current_turf.rcd_memory = RCD_MEMORY_WINDOWGRILLE +/obj/effect/spawner/structure/window/wood + name = "window with wooden low wall spawner" + spawn_list = list(/obj/structure/low_wall/wood, /obj/structure/window/fulltile) + + /obj/effect/spawner/structure/window/hollow name = "hollow window spawner" icon_state = "hwindow_spawner_full" @@ -91,7 +96,16 @@ again. /obj/effect/spawner/structure/window/reinforced name = "reinforced window spawner" icon_state = "rwindow_spawner" - spawn_list = list(/obj/structure/grille, /obj/structure/window/reinforced/fulltile) + spawn_list = list(/obj/structure/low_wall, /obj/structure/window/reinforced/fulltile) + +/obj/effect/spawner/structure/window/reinforced/grille + name = "reinforced window with grille spawner" + spawn_list = list(/obj/structure/grille, /obj/structure/low_wall, /obj/structure/window/reinforced/fulltile) + +/obj/effect/spawner/structure/window/reinforced/wood + name = "reinforced window with wooden low wall spawner" + icon_state = "rwindow_spawner" + spawn_list = list(/obj/structure/low_wall/wood, /obj/structure/window/reinforced/fulltile) /obj/effect/spawner/structure/window/hollow/reinforced name = "hollow reinforced window spawner" @@ -152,7 +166,11 @@ again. /obj/effect/spawner/structure/window/reinforced/tinted name = "tinted reinforced window spawner" icon_state = "twindow_spawner" - spawn_list = list(/obj/structure/grille, /obj/structure/window/reinforced/tinted/fulltile) + spawn_list = list(/obj/structure/low_wall, /obj/structure/window/reinforced/tinted/fulltile) + +/obj/effect/spawner/structure/window/reinforced/tinted/grille + name = "tinted reinforced window with grille spawner" + spawn_list = list(/obj/structure/grille, /obj/structure/low_wall, /obj/structure/window/reinforced/tinted/fulltile) //bronze @@ -167,7 +185,7 @@ again. /obj/effect/spawner/structure/window/reinforced/shuttle name = "shuttle window spawner" icon_state = "swindow_spawner" - spawn_list = list(/obj/structure/grille, /obj/structure/window/reinforced/shuttle) + spawn_list = list(/obj/structure/low_wall/titanium, /obj/structure/window/reinforced/shuttle) //plastitanium window @@ -175,7 +193,7 @@ again. /obj/effect/spawner/structure/window/reinforced/plasma/plastitanium name = "plastitanium window spawner" icon_state = "plastitaniumwindow_spawner" - spawn_list = list(/obj/structure/grille, /obj/structure/window/reinforced/plasma/plastitanium) + spawn_list = list(/obj/structure/low_wall/plastitanium, /obj/structure/window/reinforced/plasma/plastitanium) //ice window @@ -183,7 +201,7 @@ again. /obj/effect/spawner/structure/window/ice name = "ice window spawner" icon_state = "icewindow_spawner" - spawn_list = list(/obj/structure/grille, /obj/structure/window/reinforced/fulltile/ice) + spawn_list = list(/obj/structure/low_wall, /obj/structure/window/reinforced/fulltile/ice) //survival pod window @@ -253,7 +271,7 @@ again. /obj/effect/spawner/structure/window/plasma name = "plasma window spawner" icon_state = "pwindow_spawner" - spawn_list = list(/obj/structure/grille, /obj/structure/window/plasma/fulltile) + spawn_list = list(/obj/structure/low_wall, /obj/structure/window/plasma/fulltile) /obj/effect/spawner/structure/window/hollow/plasma name = "hollow plasma window spawner" @@ -314,7 +332,7 @@ again. /obj/effect/spawner/structure/window/reinforced/plasma name = "reinforced plasma window spawner" icon_state = "prwindow_spawner" - spawn_list = list(/obj/structure/grille, /obj/structure/window/reinforced/plasma/fulltile) + spawn_list = list(/obj/structure/grille, /obj/structure/low_wall, /obj/structure/window/reinforced/plasma/fulltile) /obj/effect/spawner/structure/window/hollow/reinforced/plasma name = "hollow reinforced plasma window spawner" diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm index 2c9a60067f2..b5356af6618 100644 --- a/code/game/objects/items/RCD.dm +++ b/code/game/objects/items/RCD.dm @@ -260,7 +260,7 @@ GLOBAL_VAR_INIT(icon_holographic_window, init_holographic_window()) // and referencing that. I don't know why. /proc/init_holographic_wall() return getHologramIcon( - icon('icons/turf/walls/wall.dmi', "wall-0"), + icon('icons/turf/walls/legacy/wall.dmi', "wall-0"), opacity = 1, ) diff --git a/code/game/objects/items/paint.dm b/code/game/objects/items/paint.dm index 8f3b55010bf..94bcc9676a3 100644 --- a/code/game/objects/items/paint.dm +++ b/code/game/objects/items/paint.dm @@ -16,6 +16,10 @@ /// How many uses are left var/paintleft = 10 +/obj/item/paint/examine(mob/user) + . = ..() + . += span_notice("Paint wall stripes by right clicking a walls.") + /obj/item/paint/red name = "red paint" paint_color = COLOR_RED @@ -56,6 +60,17 @@ name = "adaptive paint" icon_state = "paint_neutral" +/obj/item/paint/anycolor/examine(mob/user) + . = ..() + . += span_notice("Choose a basic color by using the paint.") + . += span_notice("Choose any color by alt-clicking the paint.") + +/obj/item/paint/anycolor/AltClick(mob/living/user) + var/new_paint_color = input(user, "Choose new paint color", "Paint Color", paint_color) as color|null + if(new_paint_color) + paint_color = new_paint_color + icon_state = "paint_neutral" + /obj/item/paint/anycolor/attack_self(mob/user) var/list/possible_colors = list( "black" = image(icon = src.icon, icon_state = "paint_black"), @@ -102,28 +117,121 @@ return FALSE return TRUE -/obj/item/paint/afterattack(atom/target, mob/user, proximity) +/obj/item/paint/afterattack(atom/target, mob/user, proximity, params) . = ..() + if(.) + return if(!proximity) return + var/list/modifiers = params2list(params) if(paintleft <= 0) icon_state = "paint_empty" return + if(istype(target, /obj/structure/low_wall)) + var/obj/structure/low_wall/target_low_wall = target + if(LAZYACCESS(modifiers, RIGHT_CLICK)) + target_low_wall.set_stripe_paint(paint_color) + else + target_low_wall.set_wall_paint(paint_color) + user.changeNext_move(CLICK_CD_MELEE) + user.visible_message(span_notice("[user] paints \the [target_low_wall]."), \ + span_notice("You paint \the [target_low_wall].")) + return TRUE + if(iswall(target)) + var/turf/closed/wall/target_wall = target + if(LAZYACCESS(modifiers, RIGHT_CLICK)) + target_wall.paint_stripe(paint_color) + else + target_wall.paint_wall(paint_color) + user.changeNext_move(CLICK_CD_MELEE) + user.visible_message(span_notice("[user] paints \the [target_wall]."), \ + span_notice("You paint \the [target_wall].")) + return TRUE + if(isfalsewall(target)) + var/obj/structure/falsewall/target_falsewall = target + if(LAZYACCESS(modifiers, RIGHT_CLICK)) + target_falsewall.paint_stripe(paint_color) + else + target_falsewall.paint_wall(paint_color) + user.changeNext_move(CLICK_CD_MELEE) + user.visible_message(span_notice("[user] paints \the [target_falsewall]."), \ + span_notice("You paint \the [target_falsewall].")) + return TRUE if(!isturf(target) || isspaceturf(target)) - return + return TRUE target.add_atom_colour(paint_color, WASHABLE_COLOUR_PRIORITY) -/obj/item/paint/paint_remover +/obj/item/paint_remover gender = PLURAL name = "paint remover" desc = "Used to remove color from anything." + icon = 'icons/obj/items_and_weapons.dmi' icon_state = "paint_neutral" + inhand_icon_state = "paintcan" + w_class = WEIGHT_CLASS_NORMAL + resistance_flags = FLAMMABLE + max_integrity = 100 + +/obj/item/paint_remover/examine(mob/user) + . = ..() + . += span_notice("Remove wall stripe paint by right-clicking a wall.") -/obj/item/paint/paint_remover/afterattack(atom/target, mob/user, proximity) +/obj/item/paint_remover/afterattack(atom/target, mob/user, proximity, params) . = ..() + if(.) + return if(!proximity) return - if(!isturf(target) || !isobj(target)) + var/list/modifiers = params2list(params) + if(istype(target, /obj/structure/low_wall)) + var/obj/structure/low_wall/target_low_wall = target + if(LAZYACCESS(modifiers, RIGHT_CLICK)) + if(!target_low_wall.stripe_paint) + to_chat(user, span_warning("There is no paint to strip!")) + return TRUE + target_low_wall.set_stripe_paint(null) + else + if(!target_low_wall.wall_paint) + to_chat(user, span_warning("There is no paint to strip!")) + return TRUE + target_low_wall.set_wall_paint(null) + user.changeNext_move(CLICK_CD_MELEE) + user.visible_message(span_notice("[user] strips the paint from \the [target_low_wall]."), \ + span_notice("You strip the paint from \the [target_low_wall].")) + return TRUE + if(iswall(target)) + var/turf/closed/wall/target_wall = target + if(LAZYACCESS(modifiers, RIGHT_CLICK)) + if(!target_wall.stripe_paint) + to_chat(user, span_warning("There is no paint to strip!")) + return TRUE + target_wall.paint_stripe(null) + else + if(!target_wall.wall_paint) + to_chat(user, span_warning("There is no paint to strip!")) + return TRUE + target_wall.paint_wall(null) + user.changeNext_move(CLICK_CD_MELEE) + user.visible_message(span_notice("[user] strips the paint from \the [target_wall]."), \ + span_notice("You strip the paint from \the [target_wall].")) + return TRUE + if(isfalsewall(target)) + var/obj/structure/falsewall/target_falsewall = target + if(LAZYACCESS(modifiers, RIGHT_CLICK)) + if(!target_falsewall.stripe_paint) + to_chat(user, span_warning("There is no paint to strip!")) + return TRUE + target_falsewall.paint_stripe(null) + else + if(!target_falsewall.wall_paint) + to_chat(user, span_warning("There is no paint to strip!")) + return TRUE + target_falsewall.paint_wall(null) + user.changeNext_move(CLICK_CD_MELEE) + user.visible_message(span_notice("[user] strips the paint from \the [target_falsewall]."), \ + span_notice("You strip the paint from \the [target_falsewall].")) + return TRUE + if(!isturf(target) && !isobj(target)) return if(target.color != initial(target.color)) target.remove_atom_colour(WASHABLE_COLOUR_PRIORITY) diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index d8dd5a03f6e..149db4fbfbf 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -32,6 +32,7 @@ GLOBAL_LIST_INIT(glass_recipes, list ( \ matter_amount = 4 cost = 500 source = /datum/robot_energy_storage/glass + window_type = /obj/structure/window/fulltile /obj/item/stack/sheet/glass/suicide_act(mob/living/carbon/user) user.visible_message(span_suicide("[user] begins to slice [user.p_their()] neck with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!")) @@ -94,6 +95,7 @@ GLOBAL_LIST_INIT(pglass_recipes, list ( \ grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/toxin/plasma = 10) material_flags = NONE tableVariant = /obj/structure/table/glass/plasmaglass + window_type = /obj/structure/window/plasma/fulltile /obj/item/stack/sheet/plasmaglass/fifty amount = 50 @@ -149,6 +151,7 @@ GLOBAL_LIST_INIT(reinforced_glass_recipes, list ( \ point_value = 4 matter_amount = 6 tableVariant = /obj/structure/table/reinforced/rglass + window_type = /obj/structure/window/reinforced/fulltile /obj/item/stack/sheet/rglass/attackby(obj/item/W, mob/user, params) add_fingerprint(user) @@ -202,6 +205,7 @@ GLOBAL_LIST_INIT(prglass_recipes, list ( \ point_value = 23 matter_amount = 8 tableVariant = /obj/structure/table/reinforced/plasmarglass + window_type = /obj/structure/window/reinforced/plasma/fulltile /obj/item/stack/sheet/plasmarglass/get_main_recipes() . = ..() @@ -224,6 +228,7 @@ GLOBAL_LIST_INIT(titaniumglass_recipes, list( resistance_flags = ACID_PROOF merge_type = /obj/item/stack/sheet/titaniumglass tableVariant = /obj/structure/table/reinforced/titaniumglass + window_type = /obj/structure/window/reinforced/shuttle /obj/item/stack/sheet/titaniumglass/fifty amount = 50 @@ -250,6 +255,7 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list( resistance_flags = ACID_PROOF merge_type = /obj/item/stack/sheet/plastitaniumglass tableVariant = /obj/structure/table/reinforced/plastitaniumglass + window_type = /obj/structure/window/reinforced/plasma/plastitanium /obj/item/stack/sheet/plastitaniumglass/get_main_recipes() . = ..() diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 4ec51231657..c477fc1815d 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -73,6 +73,7 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ new/datum/stack_recipe("iron rod", /obj/item/stack/rods, 1, 2, 60), \ null, \ new/datum/stack_recipe("wall girders (anchored)", /obj/structure/girder, 2, time = 40, one_per_turf = TRUE, on_floor = TRUE, trait_booster = TRAIT_QUICK_BUILD, trait_modifier = 0.75), \ + new/datum/stack_recipe("low wall", /obj/structure/low_wall, 2, time = 40, one_per_turf = TRUE, on_floor = TRUE, trait_booster = TRAIT_QUICK_BUILD, trait_modifier = 0.75), \ null, \ new/datum/stack_recipe("tram wall girders (anchored)", /obj/structure/girder/tram, 2, time = 40, one_per_turf = TRUE, on_floor = FALSE, on_tram = TRUE, trait_booster = TRAIT_QUICK_BUILD, trait_modifier = 0.75), \ null, \ @@ -284,6 +285,8 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ new /datum/stack_recipe("pew (right)", /obj/structure/chair/pew/right, 3, one_per_turf = TRUE, on_floor = TRUE) )), null, \ + new/datum/stack_recipe("low wall", /obj/structure/low_wall/wood, 2, time = 40, one_per_turf = TRUE, on_floor = TRUE, trait_booster = TRAIT_QUICK_BUILD, trait_modifier = 0.75), \ + null, \ )) /obj/item/stack/sheet/mineral/wood @@ -345,7 +348,6 @@ GLOBAL_LIST_INIT(bamboo_recipes, list ( \ merge_type = /obj/item/stack/sheet/mineral/bamboo grind_results = list(/datum/reagent/cellulose = 10) material_type = /datum/material/bamboo - walltype = /turf/closed/wall/mineral/bamboo /obj/item/stack/sheet/mineral/bamboo/get_main_recipes() . = ..() @@ -661,6 +663,7 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \ material_type = /datum/material/bronze walltype = /turf/closed/wall/mineral/bronze has_unique_girder = TRUE + window_type = /obj/structure/window/bronze/fulltile /obj/item/stack/sheet/bronze/get_main_recipes() . = ..() diff --git a/code/game/objects/items/stacks/sheets/sheets.dm b/code/game/objects/items/stacks/sheets/sheets.dm index 99a26832268..9e7110e29c9 100644 --- a/code/game/objects/items/stacks/sheets/sheets.dm +++ b/code/game/objects/items/stacks/sheets/sheets.dm @@ -17,6 +17,8 @@ ///What type of wall does this sheet spawn var/walltype var/tram_wall_type + /// What type of fulltile window this sheet can construct. + var/window_type /obj/item/stack/sheet/Initialize(mapload, new_amount, merge = TRUE, list/mat_override=null, mat_amt=1) . = ..() @@ -47,3 +49,38 @@ user.visible_message(span_notice("[user] shatters the sheet of [name] on the floor, leaving [english_list(shards)]."), \ span_notice("You shatter the sheet of [name] on the floor, leaving [english_list(shards)].")) return TRUE + +/// Mob action to try and install a window if the sheet can do that +/obj/item/stack/sheet/proc/try_install_window(mob/living/user, turf/location, obj/mounted_on) + /// If we can't create a window out of this type, return FALSE to not affect attack chain. + if(!window_type) + return FALSE + if(get_amount() < SHEETS_FOR_FULLTILE_WINDOW) + to_chat(user, span_warning("You need at least two sheets of glass for that!")) + return TRUE + var/had_mounted_object = FALSE + if(mounted_on) + had_mounted_object = TRUE + if(!mounted_on.anchored) + to_chat(user, span_warning("[mounted_on] needs to be fastened to the floor first!")) + return TRUE + var/obj/structure/window/existing_window = locate() in location + if(existing_window && existing_window.fulltile) + to_chat(user, span_warning("There is already a window there!")) + return TRUE + /// Dense turf (most likely closed). Why check types of if you can check .density + if(location.density) + to_chat(user, span_warning("You can't install the window there!")) + return TRUE + to_chat(user, span_notice("You start placing the window...")) + var/atom/target = mounted_on || location + if(do_after(user, 2 SECONDS, target = target)) + /// Something we were mounting the window on was deleted, or unanchored + if(had_mounted_object && (QDELETED(mounted_on) || !mounted_on.anchored)) + return TRUE + var/obj/structure/window/window = new window_type(location) + window.set_anchored(FALSE) + window.state = 0 + use(SHEETS_FOR_FULLTILE_WINDOW) + to_chat(user, span_notice("You place \the [window] on \the [target].")) + return TRUE diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index f4a43045208..3fec5c435b5 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -671,7 +671,7 @@ /obj/item/clothing/gloves, /obj/item/melee/flyswatter, /obj/item/assembly/mousetrap, - /obj/item/paint/paint_remover, + /obj/item/paint_remover, /obj/item/pushbroom )) diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm index b02f7e9e74a..a2a28de7c79 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -55,7 +55,7 @@ new /obj/item/clothing/under/rank/civilian/janitor(src) new /obj/item/clothing/gloves/color/black(src) new /obj/item/clothing/head/soft/purple(src) - new /obj/item/paint/paint_remover(src) + new /obj/item/paint_remover(src) new /obj/item/melee/flyswatter(src) new /obj/item/flashlight(src) for(var/i in 1 to 3) diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index 2cac5b155ae..b5f30469a39 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -5,33 +5,64 @@ name = "wall" desc = "A huge chunk of metal used to separate rooms." anchored = TRUE - icon = 'icons/turf/walls/wall.dmi' + icon = 'icons/turf/walls/solid_wall.dmi' icon_state = "wall-0" base_icon_state = "wall" + color = "#57575c" //To display in mapping softwares layer = LOW_OBJ_LAYER density = TRUE opacity = TRUE max_integrity = 100 smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS) - canSmoothWith = list(SMOOTH_GROUP_WALLS) + canSmoothWith = list(SMOOTH_GROUP_SHUTTERS_BLASTDOORS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_WINDOW_FULLTILE) can_be_unanchored = FALSE can_atmos_pass = ATMOS_PASS_DENSITY rad_insulation = RAD_MEDIUM_INSULATION material_flags = MATERIAL_EFFECTS - var/mineral = /obj/item/stack/sheet/iron - var/mineral_amount = 2 - var/walltype = /turf/closed/wall - var/girder_type = /obj/structure/girder/displaced + greyscale_config = /datum/greyscale_config/low_wall + /// Material type of the plating + var/plating_material = /datum/material/iron + /// Material type of the reinforcement + var/reinf_material + /// Paint of the wall + var/wall_paint + /// Stripe paint of the wall + var/stripe_paint var/opening = FALSE + /// Typecache of the neighboring objects that we want to neighbor stripe overlay with + var/static/list/neighbor_typecache -/obj/structure/falsewall/Initialize(mapload) +/obj/structure/falsewall/Initialize() . = ..() - var/obj/item/stack/initialized_mineral = new mineral // Okay this kinda sucks. - set_custom_materials(initialized_mineral.mats_per_unit, mineral_amount) - qdel(initialized_mineral) + color = null //Clear the color that's a mapping aid air_update_turf(TRUE, TRUE) + set_wall_information(plating_material, reinf_material, wall_paint, stripe_paint) + +/obj/structure/falsewall/update_greyscale() + greyscale_colors = get_wall_color() + return ..() + +/obj/structure/falsewall/proc/get_wall_color() + var/wall_color = wall_paint + if(!wall_color) + var/datum/material/plating_mat_ref = GET_MATERIAL_REF(plating_material) + wall_color = plating_mat_ref.wall_color + return wall_color + +/obj/structure/falsewall/proc/get_stripe_color() + var/stripe_color = stripe_paint + if(!stripe_color) + stripe_color = get_wall_color() + return stripe_color + +/obj/structure/falsewall/update_name() + . = ..() + if(reinf_material) + name = "reinforced wall" + else + name = "wall" /obj/structure/falsewall/attack_hand(mob/user, list/modifiers) if(opening) @@ -76,9 +107,38 @@ icon_state = density ? "[base_icon_state]-[smoothing_junction]" : "fwall_open" return ..() +/// Partially copypasted from /turf/closed/wall +/obj/structure/falsewall/update_overlays() + //Updating the unmanaged wall overlays (unmanaged for optimisations) + overlays.Cut() + if(density && !opening) + if(stripe_paint) + var/datum/material/plating_mat_ref = GET_MATERIAL_REF(plating_material) + var/icon/stripe_icon = SSgreyscale.GetColoredIconByType(plating_mat_ref.wall_stripe_greyscale_config, get_stripe_color()) + var/mutable_appearance/smoothed_stripe = mutable_appearance(stripe_icon, icon_state) + overlays += smoothed_stripe + var/neighbor_stripe = NONE + if(!neighbor_typecache) + neighbor_typecache = typecacheof(list(/obj/machinery/door/airlock, /obj/structure/window/reinforced/fulltile, /obj/structure/window/fulltile, /obj/structure/window/reinforced/shuttle, /obj/machinery/door/poddoor)) + for(var/cardinal in GLOB.cardinals) + var/turf/step_turf = get_step(src, cardinal) + for(var/atom/movable/movable_thing as anything in step_turf) + if(neighbor_typecache[movable_thing.type]) + neighbor_stripe ^= cardinal + break + if(neighbor_stripe) + var/icon/neighbor_icon = SSgreyscale.GetColoredIconByType(/datum/greyscale_config/wall_neighbor_stripe, get_stripe_color()) + var/mutable_appearance/neighb_stripe_appearace = mutable_appearance(neighbor_icon, "stripe-[neighbor_stripe]") + overlays += neighb_stripe_appearace + //And letting anything else that may want to render on the wall to work (ie components) + return ..() + /obj/structure/falsewall/proc/ChangeToWall(delete = 1) + var/datum/material/plating_mat_ref = GET_MATERIAL_REF(plating_material) var/turf/T = get_turf(src) - T.PlaceOnTop(walltype) + T.PlaceOnTop(plating_mat_ref.wall_type) + var/turf/closed/wall/placed_wall = T + placed_wall.set_wall_information(plating_material, reinf_material, wall_paint, stripe_paint) if(delete) qdel(src) return T @@ -111,8 +171,45 @@ return TOOL_ACT_TOOLTYPE_SUCCESS return +/// Painfully copypasted from /turf/closed/wall +/obj/structure/falsewall/proc/paint_wall(new_paint) + wall_paint = new_paint + update_greyscale() + update_appearance() + +/// Painfully copypasted from /turf/closed/wall +/obj/structure/falsewall/proc/paint_stripe(new_paint) + stripe_paint = new_paint + update_appearance() + +/// Painfully copypasted from /turf/closed/wall +/obj/structure/falsewall/proc/set_wall_information(plating_mat, reinf_mat, new_paint, new_stripe_paint) + wall_paint = new_paint + stripe_paint = new_stripe_paint + set_materials(plating_mat, reinf_mat) + +/// Painfully copypasted from /turf/closed/wall +/obj/structure/falsewall/proc/set_materials(plating_mat, reinf_mat) + var/datum/material/plating_mat_ref + if(plating_mat) + plating_mat_ref = GET_MATERIAL_REF(plating_mat) + var/datum/material/reinf_mat_ref + if(reinf_mat) + reinf_mat_ref = GET_MATERIAL_REF(reinf_mat) + + if(reinf_mat_ref) + greyscale_config = plating_mat_ref.reinforced_wall_greyscale_config + else + greyscale_config = plating_mat_ref.wall_greyscale_config + + plating_material = plating_mat + reinf_material = reinf_mat + + update_greyscale() + update_appearance() + /obj/structure/falsewall/attackby(obj/item/W, mob/user, params) - if(!opening) + if(opening) to_chat(user, span_warning("You must wait until the door has stopped moving!")) return return ..() @@ -128,10 +225,9 @@ /obj/structure/falsewall/deconstruct(disassembled = TRUE) if(!(flags_1 & NODECONSTRUCT_1)) if(disassembled) - new girder_type(loc) - if(mineral_amount) - for(var/i in 1 to mineral_amount) - new mineral(loc) + new /obj/structure/girder(src.loc, reinf_material, wall_paint, stripe_paint, TRUE) + var/datum/material/plating_mat_ref = GET_MATERIAL_REF(plating_material) + new plating_mat_ref.sheet_type(src.loc, 2) qdel(src) /obj/structure/falsewall/get_dumping_location() @@ -148,12 +244,8 @@ /obj/structure/falsewall/reinforced name = "reinforced wall" desc = "A huge chunk of reinforced metal used to separate rooms." - icon = 'icons/turf/walls/reinforced_wall.dmi' - icon_state = "reinforced_wall-0" - base_icon_state = "reinforced_wall" - walltype = /turf/closed/wall/r_wall - mineral = /obj/item/stack/sheet/plasteel - smoothing_flags = SMOOTH_BITMASK + icon = 'icons/turf/walls/solid_wall_reinforced.dmi' + reinf_material = /datum/material/alloy/plasteel /obj/structure/falsewall/reinforced/examine_status(mob/user) to_chat(user, span_notice("The outer grille is fully intact.")) @@ -171,14 +263,7 @@ /obj/structure/falsewall/uranium name = "uranium wall" desc = "A wall with uranium plating. This is probably a bad idea." - icon = 'icons/turf/walls/uranium_wall.dmi' - icon_state = "uranium_wall-0" - base_icon_state = "uranium_wall" - mineral = /obj/item/stack/sheet/mineral/uranium - walltype = /turf/closed/wall/mineral/uranium - smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_URANIUM_WALLS) - canSmoothWith = list(SMOOTH_GROUP_URANIUM_WALLS) + plating_material = /datum/material/uranium var/active = null var/last_event = 0 @@ -214,146 +299,64 @@ /obj/structure/falsewall/gold name = "gold wall" desc = "A wall with gold plating. Swag!" - icon = 'icons/turf/walls/gold_wall.dmi' - icon_state = "gold_wall-0" - base_icon_state = "gold_wall" - mineral = /obj/item/stack/sheet/mineral/gold - walltype = /turf/closed/wall/mineral/gold - smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_GOLD_WALLS) - canSmoothWith = list(SMOOTH_GROUP_GOLD_WALLS) + plating_material = /datum/material/gold /obj/structure/falsewall/silver name = "silver wall" desc = "A wall with silver plating. Shiny." - icon = 'icons/turf/walls/silver_wall.dmi' - icon_state = "silver_wall-0" - base_icon_state = "silver_wall" - mineral = /obj/item/stack/sheet/mineral/silver - walltype = /turf/closed/wall/mineral/silver - smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_SILVER_WALLS) - canSmoothWith = list(SMOOTH_GROUP_SILVER_WALLS) + plating_material = /datum/material/silver /obj/structure/falsewall/diamond name = "diamond wall" desc = "A wall with diamond plating. You monster." - icon = 'icons/turf/walls/diamond_wall.dmi' - icon_state = "diamond_wall-0" - base_icon_state = "diamond_wall" - mineral = /obj/item/stack/sheet/mineral/diamond - walltype = /turf/closed/wall/mineral/diamond - smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_DIAMOND_WALLS) - canSmoothWith = list(SMOOTH_GROUP_DIAMOND_WALLS) + plating_material = /datum/material/diamond max_integrity = 800 /obj/structure/falsewall/plasma name = "plasma wall" desc = "A wall with plasma plating. This is definitely a bad idea." - icon = 'icons/turf/walls/plasma_wall.dmi' - icon_state = "plasma_wall-0" - base_icon_state = "plasma_wall" - mineral = /obj/item/stack/sheet/mineral/plasma - walltype = /turf/closed/wall/mineral/plasma - smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_PLASMA_WALLS) - canSmoothWith = list(SMOOTH_GROUP_PLASMA_WALLS) + plating_material = /datum/material/plasma /obj/structure/falsewall/bananium name = "bananium wall" desc = "A wall with bananium plating. Honk!" - icon = 'icons/turf/walls/bananium_wall.dmi' - icon_state = "bananium_wall-0" - base_icon_state = "bananium_wall" - mineral = /obj/item/stack/sheet/mineral/bananium - walltype = /turf/closed/wall/mineral/bananium - smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_BANANIUM_WALLS) - canSmoothWith = list(SMOOTH_GROUP_BANANIUM_WALLS) + plating_material = /datum/material/bananium /obj/structure/falsewall/sandstone name = "sandstone wall" desc = "A wall with sandstone plating. Rough." - icon = 'icons/turf/walls/sandstone_wall.dmi' - icon_state = "sandstone_wall-0" - base_icon_state = "sandstone_wall" - mineral = /obj/item/stack/sheet/mineral/sandstone - walltype = /turf/closed/wall/mineral/sandstone - smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_SANDSTONE_WALLS) - canSmoothWith = list(SMOOTH_GROUP_SANDSTONE_WALLS) + icon = 'icons/turf/walls/stone_wall.dmi' + plating_material = /datum/material/sandstone /obj/structure/falsewall/wood name = "wooden wall" desc = "A wall with wooden plating. Stiff." icon = 'icons/turf/walls/wood_wall.dmi' - icon_state = "wood_wall-0" - base_icon_state = "wood_wall" - mineral = /obj/item/stack/sheet/mineral/wood - walltype = /turf/closed/wall/mineral/wood - smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_WOOD_WALLS) - canSmoothWith = list(SMOOTH_GROUP_WOOD_WALLS) - -/obj/structure/falsewall/bamboo - name = "bamboo wall" - desc = "A wall with bamboo finish. Zen." - icon = 'icons/turf/walls/bamboo_wall.dmi' - icon_state = "bamboo" - mineral = /obj/item/stack/sheet/mineral/bamboo - walltype = /turf/closed/wall/mineral/bamboo - smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_BAMBOO_WALLS) - canSmoothWith = list(SMOOTH_GROUP_BAMBOO_WALLS) + plating_material = /datum/material/wood /obj/structure/falsewall/iron name = "rough iron wall" desc = "A wall with rough metal plating." - icon = 'icons/turf/walls/iron_wall.dmi' - icon_state = "iron_wall-0" - base_icon_state = "iron_wall" - mineral = /obj/item/stack/rods - mineral_amount = 5 - walltype = /turf/closed/wall/mineral/iron base_icon_state = "iron_wall" - smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_IRON_WALLS) - canSmoothWith = list(SMOOTH_GROUP_IRON_WALLS) /obj/structure/falsewall/abductor name = "alien wall" desc = "A wall with alien alloy plating." - icon = 'icons/turf/walls/abductor_wall.dmi' - icon_state = "abductor_wall-0" - base_icon_state = "abductor_wall" - mineral = /obj/item/stack/sheet/mineral/abductor - walltype = /turf/closed/wall/mineral/abductor - smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_ABDUCTOR_WALLS) - canSmoothWith = list(SMOOTH_GROUP_ABDUCTOR_WALLS) + plating_material = /datum/material/alloy/alien /obj/structure/falsewall/titanium name = "wall" desc = "A light-weight titanium wall used in shuttles." - icon = 'icons/turf/walls/shuttle_wall.dmi' - icon_state = "shuttle_wall-0" - base_icon_state = "shuttle_wall" - mineral = /obj/item/stack/sheet/mineral/titanium - walltype = /turf/closed/wall/mineral/titanium - smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_TITANIUM_WALLS) - canSmoothWith = list(SMOOTH_GROUP_TITANIUM_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTLE_PARTS) + icon = 'icons/turf/walls/metal_wall.dmi' + plating_material = /datum/material/titanium + smoothing_groups = list(SMOOTH_GROUP_WALLS) + canSmoothWith = list(SMOOTH_GROUP_SHUTTERS_BLASTDOORS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_SHUTTLE_PARTS) /obj/structure/falsewall/plastitanium name = "wall" desc = "An evil wall of plasma and titanium." - icon = 'icons/turf/walls/plastitanium_wall.dmi' - icon_state = "plastitanium_wall-0" - base_icon_state = "plastitanium_wall" - mineral = /obj/item/stack/sheet/mineral/plastitanium - walltype = /turf/closed/wall/mineral/plastitanium - smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_PLASTITANIUM_WALLS) - canSmoothWith = list(SMOOTH_GROUP_PLASTITANIUM_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTLE_PARTS) + icon = 'icons/turf/walls/metal_wall.dmi' + plating_material = /datum/material/alloy/plastitanium + smoothing_groups = list(SMOOTH_GROUP_WALLS) + canSmoothWith = list(SMOOTH_GROUP_SHUTTERS_BLASTDOORS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_SHUTTLE_PARTS) diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index a5641e47fff..bac813b86af 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -1,3 +1,7 @@ +#define GIRDER_PASSCHANCE_NORMAL 20 +#define GIRDER_PASSCHANCE_UNANCHORED 25 +#define GIRDER_PASSCHANCE_REINFORCED 0 + /obj/structure/girder name = "girder" icon_state = "girder" @@ -5,37 +9,61 @@ anchored = TRUE density = TRUE max_integrity = 200 - rad_insulation = RAD_VERY_LIGHT_INSULATION var/state = GIRDER_NORMAL - var/girderpasschance = 20 // percentage chance that a projectile passes through the girder. + var/girderpasschance = GIRDER_PASSCHANCE_NORMAL // percentage chance that a projectile passes through the girder. var/can_displace = TRUE //If the girder can be moved around by wrenching it var/next_beep = 0 //Prevents spamming of the construction sound - /// The material cost to construct something on the girder - var/static/list/construction_cost = list( - /obj/item/stack/sheet/iron = 2, - /obj/item/stack/rods = 5, - /obj/item/stack/sheet/plasteel = 2, - /obj/item/stack/sheet/bronze = 2, - /obj/item/stack/sheet/runed_metal = 1, - exotic_material = 2 // this needs to be refactored properly - ) + /// What material is this girder reinforced by + var/reinforced_material + /// Paint to apply to the wall built. Matters for deconstructed and reconstructed walls + var/wall_paint + /// Stripe paint to apply to the wall built. Matters for deconstructed and reconstructed walls + var/stripe_paint + +/obj/structure/girder/Initialize(mapload, reinforced_mat, new_paint, new_stripe_paint, unanchored) + . = ..() + wall_paint = new_paint + stripe_paint = new_stripe_paint + if(unanchored) + set_anchored(FALSE) + girderpasschance = GIRDER_PASSCHANCE_UNANCHORED + if(reinforced_mat) + reinforced_material = reinforced_mat + state = GIRDER_REINF + update_appearance() + +/obj/structure/girder/update_name() + . = ..() + if(!anchored) + name = "displaced girder" + else if (state == GIRDER_NORMAL) + name = "girder" + else + name = "reinforced girder" + +/obj/structure/girder/update_icon_state() + . = ..() + if(!anchored) + icon_state = "displaced" + else if (state == GIRDER_NORMAL) + icon_state = "girder" + else + icon_state = "reinforced" /obj/structure/girder/examine(mob/user) . = ..() switch(state) if(GIRDER_REINF) - . += span_notice("The support struts are screwed in place.") + . += span_notice("It's reinforcement can be screwed off.") if(GIRDER_REINF_STRUTS) - . += span_notice("The support struts are unscrewed and the inner grille is intact.") + . += span_notice("The reinforcement struts can be reinforced with a material or cut off.") if(GIRDER_NORMAL) - if(can_displace) - . += span_notice("The bolts are wrenched in place.") - if(GIRDER_DISPLACED) - . += span_notice("The bolts are loosened, but the screws are holding [src] together.") - if(GIRDER_DISASSEMBLED) - . += span_notice("[src] is disassembled! You probably shouldn't be able to see this examine message.") - if(GIRDER_TRAM) - . += span_notice("[src] is designed for tram usage. Deconstructed with a screwdriver!") + . += span_notice("The girder can be prepared for reinforcement with rods.") + if(anchored) + if(can_displace) + . += span_notice("The bolts are wrenched in place.") + else + . += span_notice("The bolts are loosened, but the screws are holding [src] together.") /obj/structure/girder/attackby(obj/item/W, mob/user, params) var/platingmodifier = 1 @@ -47,212 +75,93 @@ add_fingerprint(user) if(istype(W, /obj/item/gun/energy/plasmacutter)) - balloon_alert(user, "slicing apart...") + to_chat(user, span_notice("You start slicing apart the girder...")) if(W.use_tool(src, user, 40, volume=100)) + to_chat(user, span_notice("You slice apart the girder.")) var/obj/item/stack/sheet/iron/M = new (loc, 2) - if (!QDELETED(M)) - M.add_fingerprint(user) + M.add_fingerprint(user) qdel(src) - return else if(istype(W, /obj/item/stack)) - if(iswallturf(loc) || (locate(/obj/structure/falsewall) in src.loc.contents)) - balloon_alert(user, "wall already present!") + if(iswallturf(loc)) + to_chat(user, span_warning("There is already a wall present!")) return - if(!isfloorturf(src.loc) && state != GIRDER_TRAM) - balloon_alert(user, "need floor!") + if(!isfloorturf(src.loc)) + to_chat(user, span_warning("A floor must be present to build a false wall!")) return - if(state == GIRDER_TRAM) - if(!locate(/obj/structure/industrial_lift/tram) in src.loc.contents) - balloon_alert(user, "need tram floors!") - return - - if(istype(W, /obj/item/stack/rods)) - var/obj/item/stack/rods/rod = W - var/amount = construction_cost[rod.type] - if(state == GIRDER_DISPLACED) - if(rod.get_amount() < amount) - balloon_alert(user, "need [amount] rods!") - return - balloon_alert(user, "concealing entrance...") - if(do_after(user, 20, target = src)) - if(rod.get_amount() < amount) - return - rod.use(amount) - var/obj/structure/falsewall/iron/FW = new (loc) - transfer_fingerprints_to(FW) - qdel(src) - return - else - if(rod.get_amount() < amount) - balloon_alert(user, "need [amount] rods!") - return - balloon_alert(user, "adding plating...") - if(do_after(user, 40, target = src)) - if(rod.get_amount() < amount) - return - rod.use(amount) - var/turf/T = get_turf(src) - T.PlaceOnTop(/turf/closed/wall/mineral/iron) - transfer_fingerprints_to(T) - qdel(src) - return - - if(!istype(W, /obj/item/stack/sheet)) + if (locate(/obj/structure/falsewall) in src.loc.contents) + to_chat(user, span_warning("There is already a false wall present!")) return - var/obj/item/stack/sheet/sheets = W - if(istype(sheets, /obj/item/stack/sheet/iron)) - var/amount = construction_cost[/obj/item/stack/sheet/iron] - if(state == GIRDER_DISPLACED) - if(sheets.get_amount() < amount) - balloon_alert(user, "need [amount] sheets!") - return - balloon_alert(user, "concealing entrance...") - if(do_after(user, 20*platingmodifier, target = src)) - if(sheets.get_amount() < amount) - return - sheets.use(amount) - var/obj/structure/falsewall/F = new (loc) - transfer_fingerprints_to(F) - qdel(src) - return - else if(state == GIRDER_REINF) - balloon_alert(user, "need plasteel sheet!") - return - else if(state == GIRDER_TRAM) - if(sheets.get_amount() < amount) - balloon_alert(user, "need [amount] sheets!") - return - balloon_alert(user, "adding plating...") - if (do_after(user, 4 SECONDS, target = src)) - if(sheets.get_amount() < amount) - return - sheets.use(2) - var/obj/structure/tramwall/tram_wall = new sheets.tram_wall_type(loc) - transfer_fingerprints_to(tram_wall) - qdel(src) + if(istype(W, /obj/item/stack/rods)) + var/obj/item/stack/rods/S = W + if(state != GIRDER_NORMAL) return - else - if(sheets.get_amount() < amount) - balloon_alert(user, "need [amount] sheets!") - return - balloon_alert(user, "adding plating...") - if (do_after(user, 40*platingmodifier, target = src)) - if(sheets.get_amount() < amount) - return - sheets.use(amount) - var/turf/T = get_turf(src) - T.PlaceOnTop(/turf/closed/wall) - transfer_fingerprints_to(T) - qdel(src) + if(S.get_amount() < 2) + to_chat(user, span_warning("You need two rods to place reinforcement struts!")) return - - if(istype(sheets, /obj/item/stack/sheet/plasteel)) - var/amount = construction_cost[/obj/item/stack/sheet/plasteel] - if(state == GIRDER_DISPLACED) - if(sheets.get_amount() < amount) - balloon_alert(user, "need [amount] sheets!") + to_chat(user, span_notice("You start placing reinforcement struts...")) + if(do_after(user, 20*platingmodifier, target = src)) + if(S.get_amount() < 2) return - balloon_alert(user, "concealing entrance...") - if(do_after(user, 20, target = src)) - if(sheets.get_amount() < amount) - return - sheets.use(amount) - var/obj/structure/falsewall/reinforced/FW = new (loc) - transfer_fingerprints_to(FW) - qdel(src) - return - else if(state == GIRDER_REINF) - amount = 1 // hur dur let's make plasteel have different construction amounts 4norasin - if(sheets.get_amount() < amount) - return - balloon_alert(user, "adding plating...") - if(do_after(user, 50*platingmodifier, target = src)) - if(sheets.get_amount() < amount) - return - sheets.use(amount) - var/turf/T = get_turf(src) - T.PlaceOnTop(/turf/closed/wall/r_wall) - transfer_fingerprints_to(T) - qdel(src) - return - else - amount = 1 // hur dur x2 - if(sheets.get_amount() < amount) + if(state != GIRDER_NORMAL) return - balloon_alert(user, "reinforcing frame...") - if(do_after(user, 60*platingmodifier, target = src)) - if(sheets.get_amount() < amount) - return - sheets.use(amount) - var/obj/structure/girder/reinforced/R = new (loc) - transfer_fingerprints_to(R) - qdel(src) - return + to_chat(user, span_notice("You place reinforcement struts.")) + S.use(2) + state = GIRDER_REINF_STRUTS + update_appearance() - if(!sheets.has_unique_girder && sheets.material_type) - if(istype(src, /obj/structure/girder/reinforced)) - balloon_alert(user, "need plasteel!") - return + if(!istype(W, /obj/item/stack/sheet)) + return - var/M = sheets.sheettype - var/amount = construction_cost["exotic_material"] - if(state == GIRDER_TRAM) - if(!sheets.tram_wall_type) - balloon_alert(user, "need titanium, plastitanium, or iron!") + var/obj/item/stack/sheet/S = W + if(S.get_amount() < 2) + to_chat(user, span_warning("You need two sheets of [S]!")) + return + if(state == GIRDER_REINF_STRUTS) + to_chat(user, span_notice("You start reinforcing the girder...")) + if(do_after(user, 20*platingmodifier, target = src)) + if(state != GIRDER_REINF_STRUTS) return - if(sheets.get_amount() < amount) - balloon_alert(user, "need [amount] sheets!") + if(S.get_amount() < 2) return - balloon_alert(user, "adding plating...") - if (do_after(user, 4 SECONDS, target = src)) - if(sheets.get_amount() < amount) - return - sheets.use(amount) - var/obj/structure/tramwall/tram_wall = new sheets.tram_wall_type(loc) - transfer_fingerprints_to(tram_wall) - qdel(src) + S.use(2) + state = GIRDER_REINF + reinforced_material = S.material_type + update_appearance() + return + else + var/datum/material/plating_mat_ref = GET_MATERIAL_REF(S.material_type) + var/wall_type = plating_mat_ref.wall_type + if(!wall_type) + to_chat(user, span_warning("You can't figure out how to make a wall out of this!")) return - if(state == GIRDER_DISPLACED) - var/falsewall_type = text2path("/obj/structure/falsewall/[M]") - if(!falsewall_type) - balloon_alert(user, "need comptatiable sheets!") - return - if(sheets.get_amount() < amount) - balloon_alert(user, "need [amount] sheets!") - return - balloon_alert(user, "concealing entrance...") - if(do_after(user, 20, target = src)) - if(sheets.get_amount() < amount) - return - sheets.use(amount) - var/obj/structure/falsewall/FW = new falsewall_type (loc) - transfer_fingerprints_to(FW) - qdel(src) - return + if(anchored) + to_chat(user, span_notice("You start adding plating...")) else - if(sheets.get_amount() < amount) - balloon_alert(user, "need [amount] sheets!") + to_chat(user, span_notice("You start adding plating, creating a false wall...")) + if (do_after(user, 40*platingmodifier, target = src)) + if(S.get_amount() < 2) return - balloon_alert(user, "adding plating...") - if (do_after(user, 40, target = src)) - if(sheets.get_amount() < amount) - return - sheets.use(amount) - var/turf/T = get_turf(src) - if(sheets.walltype) - T.PlaceOnTop(sheets.walltype) - else - var/turf/newturf = T.PlaceOnTop(/turf/closed/wall/material) - var/list/material_list = list() - material_list[GET_MATERIAL_REF(sheets.material_type)] = MINERAL_MATERIAL_AMOUNT * 2 - if(material_list) - newturf.set_custom_materials(material_list) - - transfer_fingerprints_to(T) - qdel(src) - return + S.use(2) + if(anchored) + to_chat(user, span_notice("You add the plating.")) + else + to_chat(user, span_notice("You create the false wall.")) + var/turf/T = get_turf(src) + if(anchored) + //Build a normal wall + T.PlaceOnTop(wall_type) + var/turf/closed/wall/placed_wall = T + placed_wall.set_wall_information(S.material_type, reinforced_material, wall_paint, stripe_paint) + transfer_fingerprints_to(placed_wall) + else + //Build a false wall + var/false_wall_type = plating_mat_ref.false_wall_type + var/obj/structure/falsewall/false_wall = new false_wall_type(T) + false_wall.set_wall_information(S.material_type, reinforced_material, wall_paint, stripe_paint) + transfer_fingerprints_to(false_wall) + qdel(src) add_hiddenprint(user) @@ -261,7 +170,7 @@ if (P.pipe_type in list(0, 1, 5)) //simple pipes, simple bends, and simple manifolds. if(!user.transferItemToLoc(P, drop_location())) return - balloon_alert(user, "inserted pipe") + to_chat(user, span_notice("You fit the pipe into \the [src].")) else return ..() @@ -271,86 +180,74 @@ return TRUE . = FALSE - if(state == GIRDER_TRAM) - balloon_alert(user, "disassembling frame...") - if(tool.use_tool(src, user, 4 SECONDS, volume=100)) - if(state != GIRDER_TRAM) - return - state = GIRDER_DISASSEMBLED - var/obj/item/stack/sheet/iron/M = new (loc, 2) - if (!QDELETED(M)) - M.add_fingerprint(user) - qdel(src) - return TRUE - - if(state == GIRDER_DISPLACED) - balloon_alert(user, "disassembling frame...") - if(tool.use_tool(src, user, 40, volume=100)) - if(state != GIRDER_DISPLACED) - return - state = GIRDER_DISASSEMBLED - var/obj/item/stack/sheet/iron/M = new (loc, 2) - if (!QDELETED(M)) - M.add_fingerprint(user) - qdel(src) - return TRUE - - else if(state == GIRDER_REINF) - balloon_alert(user, "unsecuring support struts...") + if(state == GIRDER_REINF) + to_chat(user, span_notice("You start removing the reinforcement...")) if(tool.use_tool(src, user, 40, volume=100)) if(state != GIRDER_REINF) return + to_chat(user, span_notice("You remove the reinforcement.")) state = GIRDER_REINF_STRUTS + var/datum/material/reinf_mat_ref = GET_MATERIAL_REF(reinforced_material) + new reinf_mat_ref.sheet_type(loc, 2) + reinforced_material = null + update_appearance() return TRUE - else if(state == GIRDER_REINF_STRUTS) - balloon_alert(user, "securing support struts...") + else if(!anchored && state != GIRDER_REINF_STRUTS) + user.visible_message(span_warning("[user] disassembles the girder."), + span_notice("You start to disassemble the girder..."), + span_hear("You hear clanking and banging noises.")) if(tool.use_tool(src, user, 40, volume=100)) - if(state != GIRDER_REINF_STRUTS) + if(anchored) return - state = GIRDER_REINF + to_chat(user, span_notice("You disassemble the girder.")) + var/obj/item/stack/sheet/iron/M = new (loc, 2) + M.add_fingerprint(user) + qdel(src) return TRUE // Wirecutter behavior for girders /obj/structure/girder/wirecutter_act(mob/user, obj/item/tool) . = ..() if(state == GIRDER_REINF_STRUTS) - balloon_alert(user, "removing inner grille...") + to_chat(user, span_notice("You start removing the reinforcement struts...")) if(tool.use_tool(src, user, 40, volume=100)) - new /obj/item/stack/sheet/plasteel(get_turf(src)) - var/obj/structure/girder/G = new (loc) - transfer_fingerprints_to(G) - qdel(src) + to_chat(user, span_notice("You remove the reinforcement struts.")) + new /obj/item/stack/rods(get_turf(src), 2) + state = GIRDER_NORMAL + update_appearance() return TRUE /obj/structure/girder/wrench_act(mob/user, obj/item/tool) . = ..() - if(state == GIRDER_DISPLACED) + if(!anchored) if(!isfloorturf(loc)) - balloon_alert(user, "needs floor!") + to_chat(user, span_warning("A floor must be present to secure the girder!")) - balloon_alert(user, "securing frame...") + to_chat(user, span_notice("You start securing the girder...")) if(tool.use_tool(src, user, 40, volume=100)) - var/obj/structure/girder/G = new (loc) - transfer_fingerprints_to(G) - qdel(src) + to_chat(user, span_notice("You secure the girder.")) + set_anchored(TRUE) + girderpasschance = GIRDER_PASSCHANCE_NORMAL + update_appearance() return TRUE else if(state == GIRDER_NORMAL && can_displace) - balloon_alert(user, "unsecuring frame...") + to_chat(user, span_notice("You start unsecuring the girder...")) if(tool.use_tool(src, user, 40, volume=100)) - var/obj/structure/girder/displaced/D = new (loc) - transfer_fingerprints_to(D) - qdel(src) + to_chat(user, span_notice("You unsecure the girder.")) + set_anchored(FALSE) + girderpasschance = GIRDER_PASSCHANCE_UNANCHORED + update_appearance() return TRUE -/obj/structure/girder/CanAllowThrough(atom/movable/mover, border_dir) +/obj/structure/girder/CanAllowThrough(atom/movable/mover, turf/target) . = ..() if((mover.pass_flags & PASSGRILLE) || istype(mover, /obj/projectile)) return prob(girderpasschance) /obj/structure/girder/CanAStarPass(obj/item/card/id/ID, to_dir, atom/movable/caller) . = !density - if(caller) + if(istype(caller)) . = . || (caller.pass_flags & PASSGRILLE) /obj/structure/girder/deconstruct(disassembled = TRUE) @@ -365,18 +262,14 @@ /obj/structure/girder/displaced name = "displaced girder" - icon_state = "displaced" anchored = FALSE - state = GIRDER_DISPLACED - girderpasschance = 25 - max_integrity = 120 + girderpasschance = GIRDER_PASSCHANCE_UNANCHORED /obj/structure/girder/reinforced name = "reinforced girder" - icon_state = "reinforced" state = GIRDER_REINF - girderpasschance = 0 - max_integrity = 350 + reinforced_material = /datum/material/iron + girderpasschance = GIRDER_PASSCHANCE_REINFORCED /obj/structure/girder/tram name = "tram girder" @@ -393,27 +286,33 @@ /obj/structure/girder/cult/attackby(obj/item/W, mob/user, params) add_fingerprint(user) - if(W.tool_behaviour == TOOL_WELDER) + if(istype(W, /obj/item/melee/cultblade/dagger) && IS_CULTIST(user)) //Cultists can demolish cult girders instantly with their tomes + user.visible_message(span_warning("[user] strikes [src] with [W]!"), span_notice("You demolish [src].")) + new /obj/item/stack/sheet/runed_metal(drop_location(), 1) + qdel(src) + + else if(W.tool_behaviour == TOOL_WELDER) if(!W.tool_start_check(user, amount=0)) return - balloon_alert(user, "slicing apart...") + to_chat(user, span_notice("You start slicing apart the girder...")) if(W.use_tool(src, user, 40, volume=50)) + to_chat(user, span_notice("You slice apart the girder.")) var/obj/item/stack/sheet/runed_metal/R = new(drop_location(), 1) transfer_fingerprints_to(R) qdel(src) else if(istype(W, /obj/item/stack/sheet/runed_metal)) var/obj/item/stack/sheet/runed_metal/R = W - var/amount = construction_cost[R.type] - if(R.get_amount() < amount) - balloon_alert(user, "need [amount] sheet!") + if(R.get_amount() < 1) + to_chat(user, span_warning("You need at least one sheet of runed metal to construct a runed wall!")) return - balloon_alert(user, "adding plating...") + user.visible_message(span_notice("[user] begins laying runed metal on [src]..."), span_notice("You begin constructing a runed wall...")) if(do_after(user, 50, target = src)) - if(R.get_amount() < amount) + if(R.get_amount() < 1) return - R.use(amount) + user.visible_message(span_notice("[user] plates [src] with runed metal."), span_notice("You construct a runed wall.")) + R.use(1) var/turf/T = get_turf(src) T.PlaceOnTop(/turf/closed/wall/mineral/cult) qdel(src) @@ -444,10 +343,12 @@ var/turf/T = get_turf(src) switch(passed_mode) if(RCD_FLOORWALL) + to_chat(user, span_notice("You finish a wall.")) T.PlaceOnTop(/turf/closed/wall) qdel(src) return TRUE if(RCD_DECONSTRUCT) + to_chat(user, span_notice("You deconstruct the girder.")) qdel(src) return TRUE return FALSE @@ -455,6 +356,7 @@ /obj/structure/girder/bronze name = "wall gear" desc = "A girder made out of sturdy bronze, made to resemble a gear." + icon = 'icons/obj/clockwork_objects.dmi' icon_state = "wall_gear" can_displace = FALSE @@ -463,23 +365,24 @@ if(W.tool_behaviour == TOOL_WELDER) if(!W.tool_start_check(user, amount = 0)) return - balloon_alert(user, "slicing apart...") + to_chat(user, span_notice("You start slicing apart [src]...")) if(W.use_tool(src, user, 40, volume=50)) + to_chat(user, span_notice("You slice apart [src].")) var/obj/item/stack/sheet/bronze/B = new(drop_location(), 2) transfer_fingerprints_to(B) qdel(src) else if(istype(W, /obj/item/stack/sheet/bronze)) var/obj/item/stack/sheet/bronze/B = W - var/amount = construction_cost[B.type] - if(B.get_amount() < amount) - balloon_alert(user, "need [amount] sheets!") + if(B.get_amount() < 2) + to_chat(user, span_warning("You need at least two bronze sheets to build a bronze wall!")) return - balloon_alert(user, "adding plating...") + user.visible_message(span_notice("[user] begins plating [src] with bronze..."), span_notice("You begin constructing a bronze wall...")) if(do_after(user, 50, target = src)) - if(B.get_amount() < amount) + if(B.get_amount() < 2) return - B.use(amount) + user.visible_message(span_notice("[user] plates [src] with bronze!"), span_notice("You construct a bronze wall.")) + B.use(2) var/turf/T = get_turf(src) T.PlaceOnTop(/turf/closed/wall/mineral/bronze) qdel(src) diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index dfb5733fdfa..7afae3d0c5e 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -4,9 +4,10 @@ /obj/structure/grille desc = "A flimsy framework of iron rods." name = "grille" - icon = 'icons/obj/structures.dmi' - icon_state = "grille" + icon = 'icons/obj/smooth_structures/grille.dmi' + icon_state = "grille-0" base_icon_state = "grille" + color = "#545454" density = TRUE anchored = TRUE pass_flags_self = PASSGRILLE @@ -15,6 +16,9 @@ armor = list(MELEE = 50, BULLET = 70, LASER = 70, ENERGY = 100, BOMB = 10, BIO = 100, FIRE = 0, ACID = 0) max_integrity = 50 integrity_failure = 0.4 + smoothing_flags = SMOOTH_BITMASK + smoothing_groups = list(SMOOTH_GROUP_GRILLE) + canSmoothWith = list(SMOOTH_GROUP_GRILLE) var/rods_type = /obj/item/stack/rods var/rods_amount = 2 var/rods_broken = TRUE @@ -27,20 +31,19 @@ update_cable_icons_on_turf(get_turf(src)) return ..() -/obj/structure/grille/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) - . = ..() - update_appearance() - /obj/structure/grille/update_appearance(updates) - if(QDELETED(src) || broken) + if(QDELETED(src)) return - . = ..() - if((updates & UPDATE_SMOOTHING) && (smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK))) - QUEUE_SMOOTH(src) /obj/structure/grille/update_icon_state() - icon_state = "[base_icon_state][((atom_integrity / max_integrity) <= 0.5) ? "50_[rand(0, 3)]" : null]" + . = ..() + if(broken) + icon_state = "brokengrille" + +/obj/structure/grille/set_smoothed_icon_state(new_junction) + if(broken) + return return ..() /obj/structure/grille/examine(mob/user) @@ -82,9 +85,6 @@ if(repair_grille()) to_chat(user, span_notice("You rebuild the broken grille.")) - if(!clear_tile(user)) - return FALSE - if(!ispath(the_rcd.window_type, /obj/structure/window)) CRASH("Invalid window path type in RCD: [the_rcd.window_type]") var/obj/structure/window/window_path = the_rcd.window_type @@ -96,29 +96,6 @@ return TRUE return FALSE -/obj/structure/grille/proc/clear_tile(mob/user) - var/at_users_feet = get_turf(user) - - var/unanchored_items_on_tile - var/obj/item/last_item_moved - for(var/obj/item/item_to_move in loc.contents) - if(!item_to_move.anchored) - if(unanchored_items_on_tile <= CLEAR_TILE_MOVE_LIMIT) - item_to_move.forceMove(at_users_feet) - last_item_moved = item_to_move - unanchored_items_on_tile++ - - if(!unanchored_items_on_tile) - return TRUE - - to_chat(user, span_notice("You move [unanchored_items_on_tile == 1 ? "[last_item_moved]" : "some things"] out of the way.")) - - if(unanchored_items_on_tile - CLEAR_TILE_MOVE_LIMIT > 0) - to_chat(user, span_warning("There's still too much stuff in the way!")) - return FALSE - - return TRUE - /obj/structure/grille/Bumped(atom/movable/AM) if(!ismob(AM)) return @@ -204,52 +181,11 @@ R.use(1) return TRUE -//window placing begin - else if(is_glass_sheet(W) || istype(W, /obj/item/stack/sheet/bronze)) - if (!broken) - var/obj/item/stack/ST = W - if (ST.get_amount() < 2) - to_chat(user, span_warning("You need at least two sheets of glass for that!")) - return - var/dir_to_set = SOUTHWEST - if(!anchored) - to_chat(user, span_warning("[src] needs to be fastened to the floor first!")) - return - for(var/obj/structure/window/WINDOW in loc) - to_chat(user, span_warning("There is already a window there!")) - return - if(!clear_tile(user)) - return - to_chat(user, span_notice("You start placing the window...")) - if(do_after(user,20, target = src)) - if(!src.loc || !anchored) //Grille broken or unanchored while waiting - return - for(var/obj/structure/window/WINDOW in loc) //Another window already installed on grille - return - if(!clear_tile(user)) - return - var/obj/structure/window/WD - if(istype(W, /obj/item/stack/sheet/plasmarglass)) - WD = new/obj/structure/window/reinforced/plasma/fulltile(drop_location()) //reinforced plasma window - else if(istype(W, /obj/item/stack/sheet/plasmaglass)) - WD = new/obj/structure/window/plasma/fulltile(drop_location()) //plasma window - else if(istype(W, /obj/item/stack/sheet/rglass)) - WD = new/obj/structure/window/reinforced/fulltile(drop_location()) //reinforced window - else if(istype(W, /obj/item/stack/sheet/titaniumglass)) - WD = new/obj/structure/window/reinforced/shuttle(drop_location()) - else if(istype(W, /obj/item/stack/sheet/plastitaniumglass)) - WD = new/obj/structure/window/reinforced/plasma/plastitanium(drop_location()) - else if(istype(W, /obj/item/stack/sheet/bronze)) - WD = new/obj/structure/window/bronze/fulltile(drop_location()) - else - WD = new/obj/structure/window/fulltile(drop_location()) //normal window - WD.setDir(dir_to_set) - WD.set_anchored(FALSE) - WD.state = 0 - ST.use(2) - to_chat(user, span_notice("You place [WD] on [src].")) - return -//window placing end + //Try place window on the grille if the sheet supports it + else if(istype(W, /obj/item/stack/sheet)) + var/obj/item/stack/sheet/my_sheet = W + if(my_sheet.try_install_window(user, src.loc, src)) + return TRUE else if(istype(W, /obj/item/shard) || !shock(user, 70)) return ..() @@ -277,7 +213,6 @@ /obj/structure/grille/atom_break() . = ..() if(!broken && !(flags_1 & NODECONSTRUCT_1)) - icon_state = "brokengrille" set_density(FALSE) atom_integrity = 20 broken = TRUE @@ -285,15 +220,18 @@ rods_broken = FALSE var/obj/R = new rods_type(drop_location(), rods_broken) transfer_fingerprints_to(R) + smoothing_flags = NONE + update_appearance() /obj/structure/grille/proc/repair_grille() if(broken) - icon_state = "grille" set_density(TRUE) atom_integrity = max_integrity broken = FALSE rods_amount = 2 rods_broken = TRUE + smoothing_flags = SMOOTH_BITMASK + update_appearance() return TRUE return FALSE @@ -342,7 +280,6 @@ return null /obj/structure/grille/broken // Pre-broken grilles for map placement - icon_state = "brokengrille" density = FALSE broken = TRUE rods_amount = 1 diff --git a/code/game/objects/structures/low_wall.dm b/code/game/objects/structures/low_wall.dm new file mode 100644 index 00000000000..51bffc15b42 --- /dev/null +++ b/code/game/objects/structures/low_wall.dm @@ -0,0 +1,206 @@ +/obj/structure/low_wall + name = "low wall" + desc = "A low wall, with space to mount windows or grilles on top of it." + icon = 'icons/obj/smooth_structures/low_wall.dmi' + icon_state = "wall-0" + base_icon_state = "wall" + color = "#57575c" //To display in mapping softwares + greyscale_colors = "#57575c" + density = TRUE + anchored = TRUE + pass_flags_self = PASSTABLE | LETPASSTHROW + layer = LOW_WALL_LAYER + max_integrity = 150 + smoothing_flags = SMOOTH_BITMASK + smoothing_groups = list(SMOOTH_GROUP_LOW_WALL) + canSmoothWith = list(SMOOTH_GROUP_LOW_WALL, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTERS_BLASTDOORS) + armor = list(MELEE = 20, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 25, BIO = 100, FIRE = 80, ACID = 100) + greyscale_config = /datum/greyscale_config/low_wall + /// Material used in construction + var/plating_material = /datum/material/iron + /// Paint color of our wall + var/wall_paint + /// Paint colour of our stripe + var/stripe_paint + /// Typecache of airlocks to apply a neighboring stripe overlay to + var/static/list/airlock_typecache + +/obj/structure/low_wall/update_greyscale() + greyscale_colors = get_wall_color() + return ..() + +/obj/structure/low_wall/proc/get_wall_color() + var/wall_color = wall_paint + if(!wall_color) + var/datum/material/plating_mat_ref = GET_MATERIAL_REF(plating_material) + wall_color = plating_mat_ref.wall_color + return wall_color + +/obj/structure/low_wall/proc/get_stripe_color() + var/stripe_color = stripe_paint + if(!stripe_color) + stripe_color = get_wall_color() + return stripe_color + +/obj/structure/low_wall/ex_act(severity) + // Obstructed low walls cant be deleted through explosions + if(is_top_obstructed()) + return + return ..() + +/obj/structure/low_wall/examine(mob/user) + . = ..() + . += span_notice("You could weld it down.") + if(wall_paint) + . += span_notice("It's coated with a layer of paint.") + if(stripe_paint) + . += span_notice("It has a painted stripe around its base.") + +/obj/structure/low_wall/Initialize(mapload) + . = ..() + color = null //To remove the mapping preview color + AddElement(/datum/element/climbable) + set_material(plating_material) + if(wall_paint) + set_wall_paint(wall_paint) + if(stripe_paint) + set_stripe_paint(stripe_paint) + QUEUE_SMOOTH(src) + QUEUE_SMOOTH_NEIGHBORS(src) + +/obj/structure/low_wall/update_overlays() + overlays.Cut() + var/datum/material/plating_mat_ref = GET_MATERIAL_REF(plating_material) + + var/icon/stripe_icon = SSgreyscale.GetColoredIconByType(plating_mat_ref.wall_stripe_greyscale_config, get_stripe_color()) + var/mutable_appearance/smoothed_stripe = mutable_appearance(stripe_icon, icon_state, layer = LOW_WALL_STRIPE_LAYER) + overlays += smoothed_stripe + + if(!airlock_typecache) + airlock_typecache = typecacheof(list(/obj/machinery/door/airlock, /obj/machinery/door/poddoor)) + var/neighbor_stripe = NONE + for(var/cardinal in GLOB.cardinals) + var/turf/step_turf = get_step(src, cardinal) + var/obj/structure/low_wall/neighboring_lowwall = locate() in step_turf + if(neighboring_lowwall) + continue + for(var/atom/movable/movable_thing as anything in step_turf) + if(airlock_typecache[movable_thing.type]) + neighbor_stripe ^= cardinal + break + if(neighbor_stripe) + var/icon/neighbor_icon = SSgreyscale.GetColoredIconByType(/datum/greyscale_config/wall_neighbor_stripe, get_stripe_color()) + var/mutable_appearance/neighb_stripe_appearace = mutable_appearance(neighbor_icon, "stripe-[neighbor_stripe]", layer = LOW_WALL_STRIPE_LAYER) + overlays += neighb_stripe_appearace + return ..() + +/obj/structure/low_wall/CanAllowThrough(atom/movable/mover, turf/target) + . = ..() + if(.) + return + if(mover.throwing) + return TRUE + if(locate(/obj/structure/low_wall) in get_turf(mover)) + return TRUE + +/obj/structure/low_wall/attackby(obj/item/weapon, mob/living/user, params) + if(is_top_obstructed()) + return TRUE + var/list/modifiers = params2list(params) + if(!(flags_1 & NODECONSTRUCT_1) && LAZYACCESS(modifiers, RIGHT_CLICK)) + if(weapon.tool_behaviour == TOOL_WELDER) + if(weapon.tool_start_check(user, amount = 0)) + to_chat(user, span_notice("You start cutting \the [src]...")) + if (weapon.use_tool(src, user, 50, volume = 50)) + to_chat(user, span_notice("You cut \the [src] down.")) + deconstruct(TRUE) + return TRUE + if(istype(weapon, /obj/item/stack/sheet)) + var/obj/item/stack/sheet/my_sheet = weapon + if(my_sheet.try_install_window(user, src.loc, src)) + return TRUE + if(!user.combat_mode && !(weapon.item_flags & ABSTRACT)) + if(user.transferItemToLoc(weapon, loc, silent = FALSE, user_click_modifiers = modifiers)) + return TRUE + return ..() + +/obj/structure/low_wall/deconstruct(disassembled = TRUE, wrench_disassembly = 0) + var/datum/material/plating_mat_ref = GET_MATERIAL_REF(plating_material) + new plating_mat_ref.sheet_type(loc, 2) + qdel(src) + +/obj/structure/low_wall/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) + if(is_top_obstructed()) + return FALSE + switch(the_rcd.mode) + if(RCD_DECONSTRUCT) + return list("mode" = RCD_DECONSTRUCT, "delay" = 20, "cost" = 5) + if(RCD_WINDOWGRILLE) + /// Slight copypasta from grilles + var/cost = 8 + var/delay = 2 SECONDS + + if(the_rcd.window_glass == RCD_WINDOW_REINFORCED) + delay = 4 SECONDS + cost = 12 + + return rcd_result_with_memory( + list("mode" = RCD_WINDOWGRILLE, "delay" = delay, "cost" = cost), + get_turf(src), RCD_MEMORY_WINDOWGRILLE, + ) + return FALSE + +/obj/structure/low_wall/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode) + if(is_top_obstructed()) + return FALSE + switch(passed_mode) + if(RCD_DECONSTRUCT) + to_chat(user, span_notice("You deconstruct \the [src].")) + qdel(src) + return TRUE + if(RCD_WINDOWGRILLE) + /// Slight copypasta from grilles + var/turf/my_turf = loc + if(!ispath(the_rcd.window_type, /obj/structure/window)) + CRASH("Invalid window path type in RCD: [the_rcd.window_type]") + var/obj/structure/window/window_path = the_rcd.window_type + if(!valid_window_location(my_turf, user.dir, is_fulltile = initial(window_path.fulltile))) + return FALSE + to_chat(user, span_notice("You construct the window.")) + var/obj/structure/window/WD = new the_rcd.window_type(my_turf, user.dir) + WD.set_anchored(TRUE) + return TRUE + return FALSE + +/obj/structure/low_wall/proc/set_wall_paint(new_paint) + wall_paint = new_paint + update_greyscale() + update_appearance() + +/obj/structure/low_wall/proc/set_stripe_paint(new_paint) + stripe_paint = new_paint + update_appearance() + +/obj/structure/low_wall/proc/set_material(new_material_type) + plating_material = new_material_type + update_greyscale() + update_appearance() + +/// Whether the top of the low wall is obstructed by an installed grille or a window +/obj/structure/low_wall/proc/is_top_obstructed() + var/obj/structure/window/window = locate() in loc + if(window && window.anchored) + return TRUE + var/obj/structure/grille/grille = locate() in loc + if(grille && grille.anchored) + return TRUE + return FALSE + +/obj/structure/low_wall/titanium + plating_material = /datum/material/titanium + +/obj/structure/low_wall/plastitanium + plating_material = /datum/material/alloy/plastitanium + +/obj/structure/low_wall/wood + plating_material = /datum/material/wood diff --git a/code/game/objects/structures/tram_walls.dm b/code/game/objects/structures/tram_walls.dm index bb077f16bac..feee62e3799 100644 --- a/code/game/objects/structures/tram_walls.dm +++ b/code/game/objects/structures/tram_walls.dm @@ -5,7 +5,7 @@ name = "wall" desc = "A huge chunk of metal used to separate rooms." anchored = TRUE - icon = 'icons/turf/walls/wall.dmi' + icon = 'icons/turf/walls/legacy/wall.dmi' icon_state = "wall-0" base_icon_state = "wall" layer = LOW_OBJ_LAYER @@ -24,7 +24,6 @@ var/tram_wall_type = /obj/structure/tramwall var/girder_type = /obj/structure/girder/tram - /obj/structure/tramwall/Initialize(mapload) . = ..() var/obj/item/stack/initialized_mineral = new mineral @@ -76,23 +75,18 @@ /obj/structure/tramwall/titanium name = "wall" desc = "A light-weight titanium wall used in shuttles." - icon = 'icons/turf/walls/shuttle_wall.dmi' - icon_state = "shuttle_wall-0" - base_icon_state = "shuttle_wall" - mineral = /obj/item/stack/sheet/mineral/titanium + explosion_block = 3 + flags_1 = CAN_BE_DIRTY_1 + flags_ricochet = RICOCHET_SHINY | RICOCHET_HARD tram_wall_type = /obj/structure/tramwall/titanium - smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_TITANIUM_WALLS) - canSmoothWith = list(SMOOTH_GROUP_TITANIUM_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTLE_PARTS) + smoothing_groups = list(SMOOTH_GROUP_WALLS) + canSmoothWith = list(SMOOTH_GROUP_SHUTTERS_BLASTDOORS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_LOW_WALL) + color = "#b3c0c7" //To display in mapping softwares /obj/structure/tramwall/plastitanium name = "wall" desc = "An evil wall of plasma and titanium." - icon = 'icons/turf/walls/plastitanium_wall.dmi' - icon_state = "plastitanium_wall-0" - base_icon_state = "plastitanium_wall" - mineral = /obj/item/stack/sheet/mineral/plastitanium + icon = 'icons/turf/walls/metal_wall.dmi' tram_wall_type = /obj/structure/tramwall/plastitanium - smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_PLASTITANIUM_WALLS) - canSmoothWith = list(SMOOTH_GROUP_PLASTITANIUM_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTLE_PARTS) + smoothing_groups = list(SMOOTH_GROUP_WALLS) + canSmoothWith = list(SMOOTH_GROUP_SHUTTERS_BLASTDOORS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_LOW_WALL) diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 830b1147316..2f11b73cfe5 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -359,7 +359,7 @@ cut_overlay(crack_overlay) if(ratio > 75) return - crack_overlay = mutable_appearance('icons/obj/structures.dmi', "damage[ratio]", -(layer+0.1)) + crack_overlay = mutable_appearance('icons/obj/structures.dmi', "damage[ratio]", -(layer+0.1), appearance_flags = RESET_COLOR) . += crack_overlay /obj/structure/window/should_atmos_process(datum/gas_mixture/air, exposed_temperature) @@ -586,43 +586,55 @@ icon = 'icons/obj/smooth_structures/window.dmi' icon_state = "window-0" base_icon_state = "window" + color = "#AFD3E6" + greyscale_config = /datum/greyscale_config/fulltile_window + greyscale_colors = "#AFD3E6" + alpha = 180 max_integrity = 50 fulltile = TRUE flags_1 = PREVENT_CLICK_UNDER_1 smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_WINDOW_FULLTILE) - canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE) + canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTERS_BLASTDOORS) glass_amount = 2 /obj/structure/window/fulltile/unanchored anchored = FALSE /obj/structure/window/plasma/fulltile - icon = 'icons/obj/smooth_structures/plasma_window.dmi' - icon_state = "plasma_window-0" - base_icon_state = "plasma_window" + icon = 'icons/obj/smooth_structures/window.dmi' + icon_state = "window-0" + base_icon_state = "window" + color = "#c162ec" + greyscale_config = /datum/greyscale_config/fulltile_window + greyscale_colors = "#c162ec" + alpha = 180 max_integrity = 300 fulltile = TRUE flags_1 = PREVENT_CLICK_UNDER_1 smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_WINDOW_FULLTILE) - canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE) + canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTERS_BLASTDOORS) glass_amount = 2 /obj/structure/window/plasma/fulltile/unanchored anchored = FALSE /obj/structure/window/reinforced/plasma/fulltile - icon = 'icons/obj/smooth_structures/rplasma_window.dmi' - icon_state = "rplasma_window-0" - base_icon_state = "rplasma_window" + icon = 'icons/obj/smooth_structures/window.dmi' + icon_state = "window-0" + base_icon_state = "window" + color = "#c162ec" + greyscale_config = /datum/greyscale_config/fulltile_reinforced_window + greyscale_colors = "#c162ec" + alpha = 180 state = RWINDOW_SECURE - max_integrity = 1000 + max_integrity = 500 fulltile = TRUE flags_1 = PREVENT_CLICK_UNDER_1 smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_WINDOW_FULLTILE) - canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE) + canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTERS_BLASTDOORS) glass_amount = 2 /obj/structure/window/reinforced/plasma/fulltile/unanchored @@ -630,16 +642,20 @@ state = WINDOW_OUT_OF_FRAME /obj/structure/window/reinforced/fulltile - icon = 'icons/obj/smooth_structures/reinforced_window.dmi' - icon_state = "reinforced_window-0" - base_icon_state = "reinforced_window" + icon = 'icons/obj/smooth_structures/window_reinforced.dmi' + icon_state = "window-0" + base_icon_state = "window" + color = "#829eb5" + greyscale_config = /datum/greyscale_config/fulltile_reinforced_window + greyscale_colors = "#829eb5" + alpha = 180 max_integrity = 150 fulltile = TRUE flags_1 = PREVENT_CLICK_UNDER_1 state = RWINDOW_SECURE smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_WINDOW_FULLTILE) - canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE) + canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTERS_BLASTDOORS) glass_amount = 2 /obj/structure/window/reinforced/fulltile/unanchored @@ -647,20 +663,21 @@ state = WINDOW_OUT_OF_FRAME /obj/structure/window/reinforced/tinted/fulltile - icon = 'icons/obj/smooth_structures/tinted_window.dmi' - icon_state = "tinted_window-0" - base_icon_state = "tinted_window" + icon = 'icons/obj/smooth_structures/window_reinforced.dmi' + icon_state = "window-0" + base_icon_state = "window" + color = "#3b5461" + greyscale_config = /datum/greyscale_config/fulltile_reinforced_window + greyscale_colors = "#3b5461" + alpha = 180 fulltile = TRUE flags_1 = PREVENT_CLICK_UNDER_1 smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_WINDOW_FULLTILE) - canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE) + canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTERS_BLASTDOORS) glass_amount = 2 /obj/structure/window/reinforced/fulltile/ice - icon = 'icons/obj/smooth_structures/rice_window.dmi' - icon_state = "rice_window-0" - base_icon_state = "rice_window" max_integrity = 150 glass_amount = 2 @@ -668,24 +685,28 @@ /obj/structure/window/reinforced/shuttle//this is called reinforced because it is reinforced w/titanium name = "shuttle window" desc = "A reinforced, air-locked pod window." - icon = 'icons/obj/smooth_structures/shuttle_window.dmi' - icon_state = "shuttle_window-0" - base_icon_state = "shuttle_window" + icon = 'icons/obj/smooth_structures/window_reinforced.dmi' + icon_state = "window-0" + base_icon_state = "window" + color = "#D0CBD4" + greyscale_config = /datum/greyscale_config/fulltile_reinforced_window + greyscale_colors = "#D0CBD4" + alpha = 180 max_integrity = 150 wtype = "shuttle" - reinf = TRUE fulltile = TRUE flags_1 = PREVENT_CLICK_UNDER_1 reinf = TRUE heat_resistance = 1600 - armor = list(MELEE = 90, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 50, BIO = 100, FIRE = 80, ACID = 100) + armor = list(MELEE = 75, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 50, BIO = 100, FIRE = 80, ACID = 100) smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_SHUTTLE_PARTS, SMOOTH_GROUP_WINDOW_FULLTILE_SHUTTLE) - canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE_SHUTTLE) + smoothing_groups = list(SMOOTH_GROUP_WINDOW_FULLTILE_SHUTTLE) + canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE_SHUTTLE, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTERS_BLASTDOORS) explosion_block = 3 glass_type = /obj/item/stack/sheet/titaniumglass glass_amount = 2 receive_ricochet_chance_mod = 1.2 + damage_deflection = 11 /obj/structure/window/reinforced/shuttle/narsie_act() add_atom_colour("#3C3434", FIXED_COLOUR_PRIORITY) @@ -695,14 +716,17 @@ /obj/structure/window/reinforced/shuttle/unanchored anchored = FALSE - state = WINDOW_OUT_OF_FRAME /obj/structure/window/reinforced/plasma/plastitanium name = "plastitanium window" desc = "A durable looking window made of an alloy of of plasma and titanium." - icon = 'icons/obj/smooth_structures/plastitanium_window.dmi' - icon_state = "plastitanium_window-0" - base_icon_state = "plastitanium_window" + icon = 'icons/obj/smooth_structures/window.dmi' + icon_state = "window-0" + base_icon_state = "window" + color = "#D0CBD4" + greyscale_config = /datum/greyscale_config/fulltile_window + greyscale_colors = "#D0CBD4" + alpha = 180 max_integrity = 1200 wtype = "shuttle" fulltile = TRUE @@ -710,8 +734,8 @@ heat_resistance = 1600 armor = list(MELEE = 95, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 50, BIO = 100, FIRE = 80, ACID = 100) smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_SHUTTLE_PARTS, SMOOTH_GROUP_WINDOW_FULLTILE_PLASTITANIUM) - canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE_PLASTITANIUM) + smoothing_groups = list(SMOOTH_GROUP_WINDOW_FULLTILE) + canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTERS_BLASTDOORS) explosion_block = 3 damage_deflection = 21 //The same as reinforced plasma windows.3 glass_type = /obj/item/stack/sheet/plastitaniumglass @@ -814,11 +838,16 @@ anchored = FALSE /obj/structure/window/bronze/fulltile - icon_state = "clockwork_window-0" - base_icon_state = "clockwork_window" + icon = 'icons/obj/smooth_structures/window.dmi' + icon_state = "window-0" + base_icon_state = "window" + color = "#92661A" + greyscale_config = /datum/greyscale_config/fulltile_window + greyscale_colors = "#92661A" + alpha = 180 smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_WINDOW_FULLTILE_BRONZE) - canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE_BRONZE) + smoothing_groups = list(SMOOTH_GROUP_WINDOW_FULLTILE) + canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTERS_BLASTDOORS) fulltile = TRUE flags_1 = PREVENT_CLICK_UNDER_1 max_integrity = 50 diff --git a/code/game/turfs/change_turf.dm b/code/game/turfs/change_turf.dm index 544ee271a55..e449993a1ee 100644 --- a/code/game/turfs/change_turf.dm +++ b/code/game/turfs/change_turf.dm @@ -26,8 +26,11 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list( if(T.icon != icon) T.icon = icon if(color) - T.atom_colours = atom_colours.Copy() - T.update_atom_colour() + if(atom_colours) //Because, we may very well not use atom_colours while we use color, to optimize memory + T.atom_colours = atom_colours.Copy() + T.update_atom_colour() + else + T.color = color if(T.dir != dir) T.setDir(dir) return T diff --git a/code/game/turfs/closed/_closed.dm b/code/game/turfs/closed/_closed.dm index 1011c888fff..35be7b8136c 100644 --- a/code/game/turfs/closed/_closed.dm +++ b/code/game/turfs/closed/_closed.dm @@ -1,6 +1,5 @@ /turf/closed layer = CLOSED_TURF_LAYER - turf_flags = IS_SOLID opacity = TRUE density = TRUE blocks_air = TRUE @@ -41,29 +40,10 @@ icon = 'icons/turf/shuttleold.dmi' icon_state = "block" -/turf/closed/indestructible/weeb - name = "paper wall" - desc = "Reinforced paper walling. Someone really doesn't you to leave." - icon = 'icons/obj/smooth_structures/paperframes.dmi' - icon_state = "paperframes-0" - base_icon_state = "paperframes" - smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_PAPERFRAME) - canSmoothWith = list(SMOOTH_GROUP_PAPERFRAME) - var/static/mutable_appearance/indestructible_paper = mutable_appearance('icons/obj/smooth_structures/paperframes.dmi',icon_state = "paper", layer = CLOSED_TURF_LAYER - 0.1) - -/turf/closed/indestructible/weeb/Initialize(mapload) - . = ..() - update_appearance() - -/turf/closed/indestructible/weeb/update_overlays() - . = ..() - . += indestructible_paper - /turf/closed/indestructible/sandstone name = "sandstone wall" desc = "A wall with sandstone plating. Rough." - icon = 'icons/turf/walls/sandstone_wall.dmi' + icon = 'icons/turf/walls/legacy/sandstone_wall.dmi' icon_state = "sandstone_wall-0" base_icon_state = "sandstone_wall" baseturfs = /turf/closed/indestructible/sandstone @@ -115,7 +95,7 @@ INITIALIZE_IMMEDIATE(/turf/closed/indestructible/splashscreen) /turf/closed/indestructible/reinforced name = "reinforced wall" desc = "A huge chunk of reinforced metal used to separate rooms. Effectively impervious to conventional methods of destruction." - icon = 'icons/turf/walls/reinforced_wall.dmi' + icon = 'icons/turf/walls/legacy/reinforced_wall.dmi' icon_state = "reinforced_wall-0" base_icon_state = "reinforced_wall" smoothing_flags = SMOOTH_BITMASK @@ -124,7 +104,7 @@ INITIALIZE_IMMEDIATE(/turf/closed/indestructible/splashscreen) /turf/closed/indestructible/riveted - icon = 'icons/turf/walls/riveted.dmi' + icon = 'icons/turf/walls/legacy/riveted.dmi' icon_state = "riveted-0" base_icon_state = "riveted" smoothing_flags = SMOOTH_BITMASK @@ -132,15 +112,15 @@ INITIALIZE_IMMEDIATE(/turf/closed/indestructible/splashscreen) canSmoothWith = list(SMOOTH_GROUP_CLOSED_TURFS) /turf/closed/indestructible/syndicate - icon = 'icons/turf/walls/plastitanium_wall.dmi' + icon = 'icons/turf/walls/legacy/plastitanium_wall.dmi' icon_state = "plastitanium_wall-0" base_icon_state = "plastitanium_wall" smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_SYNDICATE_WALLS) - canSmoothWith = list(SMOOTH_GROUP_SYNDICATE_WALLS, SMOOTH_GROUP_PLASTITANIUM_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTLE_PARTS) + smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS) + canSmoothWith = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTLE_PARTS) /turf/closed/indestructible/riveted/uranium - icon = 'icons/turf/walls/uranium_wall.dmi' + icon = 'icons/turf/walls/legacy/uranium_wall.dmi' icon_state = "uranium_wall-0" base_icon_state = "uranium_wall" smoothing_flags = SMOOTH_BITMASK @@ -148,41 +128,33 @@ INITIALIZE_IMMEDIATE(/turf/closed/indestructible/splashscreen) /turf/closed/indestructible/riveted/plastinum name = "plastinum wall" desc = "A luxurious wall made out of a plasma-platinum alloy. Effectively impervious to conventional methods of destruction." - icon = 'icons/turf/walls/plastinum_wall.dmi' + icon = 'icons/turf/walls/legacy/plastinum_wall.dmi' icon_state = "plastinum_wall-0" base_icon_state = "plastinum_wall" - smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_PLASTINUM_WALLS) - canSmoothWith = list(SMOOTH_GROUP_PLASTINUM_WALLS) - -/turf/closed/indestructible/riveted/plastinum/nodiagonal - icon_state = "map-shuttle_nd" - smoothing_flags = SMOOTH_BITMASK /turf/closed/indestructible/wood - icon = 'icons/turf/walls/wood_wall.dmi' + icon = 'icons/turf/walls/legacy/wood_wall.dmi' icon_state = "wood_wall-0" base_icon_state = "wood_wall" smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_WOOD_WALLS) - canSmoothWith = list(SMOOTH_GROUP_WOOD_WALLS) + smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_WALLS) + canSmoothWith = list(SMOOTH_GROUP_WALLS) /turf/closed/indestructible/alien name = "alien wall" desc = "A wall with alien alloy plating." - icon = 'icons/turf/walls/abductor_wall.dmi' + icon = 'icons/turf/walls/legacy/abductor_wall.dmi' icon_state = "abductor_wall-0" base_icon_state = "abductor_wall" - smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_ABDUCTOR_WALLS) - canSmoothWith = list(SMOOTH_GROUP_ABDUCTOR_WALLS) + smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_WALLS) + canSmoothWith = list(SMOOTH_GROUP_WALLS) /turf/closed/indestructible/cult name = "runed metal wall" desc = "A cold metal wall engraved with indecipherable symbols. Studying them causes your head to pound. Effectively impervious to conventional methods of destruction." - icon = 'icons/turf/walls/cult_wall.dmi' + icon = 'icons/turf/walls/legacy/cult_wall.dmi' icon_state = "cult_wall-0" base_icon_state = "cult_wall" smoothing_flags = SMOOTH_BITMASK @@ -199,30 +171,32 @@ INITIALIZE_IMMEDIATE(/turf/closed/indestructible/splashscreen) /turf/closed/indestructible/fakeglass name = "window" - icon = 'icons/obj/smooth_structures/reinforced_window.dmi' - icon_state = "fake_window" - base_icon_state = "reinforced_window" + icon = 'icons/obj/smooth_structures/window.dmi' + icon_state = "window-0" + base_icon_state = "window" + color = "#c162ec" opacity = FALSE smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_WINDOW_FULLTILE) canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE) -/turf/closed/indestructible/fakeglass/Initialize(mapload) +/turf/closed/indestructible/fakeglass/Initialize(mapload, inherited_virtual_z) . = ..() underlays += mutable_appearance('icons/obj/structures.dmi', "grille") //add a grille underlay underlays += mutable_appearance('icons/turf/floors.dmi', "plating") //add the plating underlay, below the grille /turf/closed/indestructible/opsglass name = "window" - icon = 'icons/obj/smooth_structures/plastitanium_window.dmi' - icon_state = "plastitanium_window-0" - base_icon_state = "plastitanium_window" + icon = 'icons/obj/smooth_structures/window.dmi' + icon_state = "window-0" + base_icon_state = "window" + color = "#5d3369" opacity = FALSE smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_SHUTTLE_PARTS, SMOOTH_GROUP_WINDOW_FULLTILE_PLASTITANIUM) canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE_PLASTITANIUM) -/turf/closed/indestructible/opsglass/Initialize(mapload) +/turf/closed/indestructible/opsglass/Initialize(mapload, inherited_virtual_z) . = ..() icon_state = null underlays += mutable_appearance('icons/obj/structures.dmi', "grille") @@ -254,7 +228,7 @@ INITIALIZE_IMMEDIATE(/turf/closed/indestructible/splashscreen) icon_state = "icerock" /turf/closed/indestructible/rock/snow/ice/ore - icon = 'icons/turf/walls/icerock_wall.dmi' + icon = 'icons/turf/walls/legacy/icerock_wall.dmi' icon_state = "icerock_wall-0" base_icon_state = "icerock_wall" smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER @@ -285,18 +259,18 @@ INITIALIZE_IMMEDIATE(/turf/closed/indestructible/splashscreen) /turf/closed/indestructible/iron name = "impervious iron wall" desc = "A wall with tough iron plating." - icon = 'icons/turf/walls/iron_wall.dmi' + icon = 'icons/turf/walls/legacy/iron_wall.dmi' icon_state = "iron_wall-0" base_icon_state = "iron_wall" smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_IRON_WALLS) - canSmoothWith = list(SMOOTH_GROUP_IRON_WALLS) + smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS) + canSmoothWith = list(SMOOTH_GROUP_WALLS) opacity = FALSE /turf/closed/indestructible/riveted/boss name = "necropolis wall" desc = "A thick, seemingly indestructible stone wall." - icon = 'icons/turf/walls/boss_wall.dmi' + icon = 'icons/turf/walls/legacy/boss_wall.dmi' icon_state = "boss_wall-0" base_icon_state = "boss_wall" smoothing_flags = SMOOTH_BITMASK @@ -316,7 +290,7 @@ INITIALIZE_IMMEDIATE(/turf/closed/indestructible/splashscreen) /turf/closed/indestructible/riveted/hierophant name = "wall" desc = "A wall made out of a strange metal. The squares on it pulse in a predictable pattern." - icon = 'icons/turf/walls/hierophant_wall.dmi' + icon = 'icons/turf/walls/legacy/hierophant_wall.dmi' icon_state = "wall" smoothing_flags = SMOOTH_CORNERS smoothing_groups = list(SMOOTH_GROUP_HIERO_WALL) diff --git a/code/game/turfs/closed/minerals.dm b/code/game/turfs/closed/minerals.dm index 1b9815b3827..b3a40a1b96d 100644 --- a/code/game/turfs/closed/minerals.dm +++ b/code/game/turfs/closed/minerals.dm @@ -13,7 +13,6 @@ initial_gas_mix = AIRLESS_ATMOS opacity = TRUE density = TRUE - layer = EDGED_TURF_LAYER plane = GAME_PLANE_UPPER base_icon_state = "smoothrocks" temperature = TCMB @@ -261,7 +260,7 @@ /turf/closed/mineral/random/snow name = "snowy mountainside" icon = 'icons/turf/mining.dmi' - smooth_icon = 'icons/turf/walls/mountain_wall.dmi' + smooth_icon = 'icons/turf/walls/legacy/mountain_wall.dmi' icon_state = "mountainrock" base_icon_state = "mountain_wall" smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER @@ -275,8 +274,8 @@ /turf/closed/mineral/random/snow/Change_Ore(ore_type, random = 0) . = ..() if(mineralType) - smooth_icon = 'icons/turf/walls/icerock_wall.dmi' - icon = 'icons/turf/walls/icerock_wall.dmi' + smooth_icon = 'icons/turf/walls/legacy/icerock_wall.dmi' + icon = 'icons/turf/walls/legacy/icerock_wall.dmi' icon_state = "icerock_wall-0" base_icon_state = "icerock_wall" smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER @@ -322,7 +321,7 @@ /turf/closed/mineral/random/labormineral/ice name = "snowy mountainside" icon = 'icons/turf/mining.dmi' - smooth_icon = 'icons/turf/walls/mountain_wall.dmi' + smooth_icon = 'icons/turf/walls/legacy/mountain_wall.dmi' icon_state = "mountainrock" base_icon_state = "mountain_wall" smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER @@ -340,8 +339,8 @@ /turf/closed/mineral/random/labormineral/ice/Change_Ore(ore_type, random = 0) . = ..() if(mineralType) - smooth_icon = 'icons/turf/walls/icerock_wall.dmi' - icon = 'icons/turf/walls/icerock_wall.dmi' + smooth_icon = 'icons/turf/walls/legacy/icerock_wall.dmi' + icon = 'icons/turf/walls/legacy/icerock_wall.dmi' icon_state = "icerock_wall-0" base_icon_state = "icerock_wall" smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER @@ -352,7 +351,7 @@ /turf/closed/mineral/iron/ice icon_state = "icerock_iron" - smooth_icon = 'icons/turf/walls/icerock_wall.dmi' + smooth_icon = 'icons/turf/walls/legacy/icerock_wall.dmi' base_icon_state = "icerock_wall" smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER turf_type = /turf/open/misc/asteroid/snow/ice @@ -370,7 +369,7 @@ /turf/closed/mineral/diamond/ice icon_state = "icerock_iron" - smooth_icon = 'icons/turf/walls/icerock_wall.dmi' + smooth_icon = 'icons/turf/walls/legacy/icerock_wall.dmi' base_icon_state = "icerock_wall" smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER turf_type = /turf/open/misc/asteroid/snow/ice @@ -407,7 +406,7 @@ /turf/closed/mineral/plasma/ice icon_state = "icerock_plasma" - smooth_icon = 'icons/turf/walls/icerock_wall.dmi' + smooth_icon = 'icons/turf/walls/legacy/icerock_wall.dmi' base_icon_state = "icerock_wall" smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER turf_type = /turf/open/misc/asteroid/snow/ice @@ -444,7 +443,7 @@ /turf/closed/mineral/ash_rock //wall piece name = "rock" icon = 'icons/turf/mining.dmi' - smooth_icon = 'icons/turf/walls/rock_wall.dmi' + smooth_icon = 'icons/turf/walls/legacy/rock_wall.dmi' icon_state = "rock2" base_icon_state = "rock_wall" smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER @@ -457,7 +456,7 @@ /turf/closed/mineral/snowmountain name = "snowy mountainside" icon = 'icons/turf/mining.dmi' - smooth_icon = 'icons/turf/walls/mountain_wall.dmi' + smooth_icon = 'icons/turf/walls/legacy/mountain_wall.dmi' icon_state = "mountainrock" base_icon_state = "mountain_wall" smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER @@ -475,7 +474,7 @@ /turf/closed/mineral/snowmountain/cavern name = "ice cavern rock" icon = 'icons/turf/mining.dmi' - smooth_icon = 'icons/turf/walls/icerock_wall.dmi' + smooth_icon = 'icons/turf/walls/legacy/icerock_wall.dmi' icon_state = "icerock" base_icon_state = "icerock_wall" smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER @@ -493,13 +492,13 @@ name = "iron rock" icon = 'icons/turf/mining.dmi' icon_state = "redrock" - smooth_icon = 'icons/turf/walls/red_wall.dmi' + smooth_icon = 'icons/turf/walls/legacy/red_wall.dmi' base_icon_state = "red_wall" /turf/closed/mineral/random/stationside/asteroid name = "iron rock" icon = 'icons/turf/mining.dmi' - smooth_icon = 'icons/turf/walls/red_wall.dmi' + smooth_icon = 'icons/turf/walls/legacy/red_wall.dmi' base_icon_state = "red_wall" /turf/closed/mineral/random/stationside/asteroid/porus @@ -611,7 +610,7 @@ /turf/closed/mineral/gibtonite/ice icon_state = "icerock_Gibtonite" - smooth_icon = 'icons/turf/walls/icerock_wall.dmi' + smooth_icon = 'icons/turf/walls/legacy/icerock_wall.dmi' base_icon_state = "icerock_wall" smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER turf_type = /turf/open/misc/asteroid/snow/ice @@ -631,7 +630,7 @@ baseturfs = /turf/open/misc/asteroid/basalt/lava_land_surface initial_gas_mix = LAVALAND_DEFAULT_ATMOS defer_change = 1 - smooth_icon = 'icons/turf/walls/rock_wall.dmi' + smooth_icon = 'icons/turf/walls/legacy/rock_wall.dmi' base_icon_state = "rock_wall" smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER diff --git a/code/game/turfs/closed/wall/material_walls.dm b/code/game/turfs/closed/wall/material_walls.dm deleted file mode 100644 index e1de7f8a98d..00000000000 --- a/code/game/turfs/closed/wall/material_walls.dm +++ /dev/null @@ -1,26 +0,0 @@ -/turf/closed/wall/material - name = "wall" - desc = "A huge chunk of material used to separate rooms." - icon = 'icons/turf/walls/materialwall.dmi' - icon_state = "materialwall-0" - base_icon_state = "materialwall" - smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_MATERIAL_WALLS) - canSmoothWith = list(SMOOTH_GROUP_MATERIAL_WALLS) - rcd_memory = null - material_flags = MATERIAL_EFFECTS | MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS - -/turf/closed/wall/material/break_wall() - for(var/i in custom_materials) - var/datum/material/M = i - new M.sheet_type(src, FLOOR(custom_materials[M] / MINERAL_MATERIAL_AMOUNT, 1)) - return new girder_type(src) - -/turf/closed/wall/material/devastate_wall() - for(var/i in custom_materials) - var/datum/material/M = i - new M.sheet_type(src, FLOOR(custom_materials[M] / MINERAL_MATERIAL_AMOUNT, 1)) - -/turf/closed/wall/material/mat_update_desc(mat) - desc = "A huge chunk of [mat] used to separate rooms." - diff --git a/code/game/turfs/closed/wall/mineral_walls.dm b/code/game/turfs/closed/wall/mineral_walls.dm index 67fc5685339..cff5538d3a2 100644 --- a/code/game/turfs/closed/wall/mineral_walls.dm +++ b/code/game/turfs/closed/wall/mineral_walls.dm @@ -1,9 +1,6 @@ /turf/closed/wall/mineral name = "mineral wall" desc = "This shouldn't exist" - icon_state = "" - smoothing_flags = SMOOTH_BITMASK - canSmoothWith = null rcd_memory = null material_flags = MATERIAL_EFFECTS var/last_event = 0 @@ -12,40 +9,23 @@ /turf/closed/wall/mineral/gold name = "gold wall" desc = "A wall with gold plating. Swag!" - icon = 'icons/turf/walls/gold_wall.dmi' - icon_state = "gold_wall-0" - base_icon_state = "gold_wall" - sheet_type = /obj/item/stack/sheet/mineral/gold explosion_block = 0 //gold is a soft metal you dingus. - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_GOLD_WALLS) - canSmoothWith = list(SMOOTH_GROUP_GOLD_WALLS) - custom_materials = list(/datum/material/gold = 4000) + plating_material = /datum/material/gold + color = "#dbdd4c" //To display in mapping softwares /turf/closed/wall/mineral/silver name = "silver wall" desc = "A wall with silver plating. Shiny!" - icon = 'icons/turf/walls/silver_wall.dmi' - icon_state = "silver_wall-0" - base_icon_state = "silver_wall" - sheet_type = /obj/item/stack/sheet/mineral/silver - smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_SILVER_WALLS) - canSmoothWith = list(SMOOTH_GROUP_SILVER_WALLS) - custom_materials = list(/datum/material/silver = 4000) + plating_material = /datum/material/silver + color = "#e3f1f8" //To display in mapping softwares /turf/closed/wall/mineral/diamond name = "diamond wall" desc = "A wall with diamond plating. You monster." - icon = 'icons/turf/walls/diamond_wall.dmi' - icon_state = "diamond_wall-0" - base_icon_state = "diamond_wall" - sheet_type = /obj/item/stack/sheet/mineral/diamond slicing_duration = 200 //diamond wall takes twice as much time to slice explosion_block = 3 - smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_DIAMOND_WALLS) - canSmoothWith = list(SMOOTH_GROUP_DIAMOND_WALLS) - custom_materials = list(/datum/material/diamond = 4000) + plating_material = /datum/material/diamond + color = "#71c8f7" //To display in mapping softwares /turf/closed/wall/mineral/diamond/hulk_recoil(obj/item/bodypart/arm, mob/living/carbon/human/hulkman, damage = 41) return ..() @@ -53,40 +33,23 @@ /turf/closed/wall/mineral/bananium name = "bananium wall" desc = "A wall with bananium plating. Honk!" - icon = 'icons/turf/walls/bananium_wall.dmi' - icon_state = "bananium_wall-0" - base_icon_state = "bananium_wall" - sheet_type = /obj/item/stack/sheet/mineral/bananium - smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_BANANIUM_WALLS) - canSmoothWith = list(SMOOTH_GROUP_BANANIUM_WALLS) - custom_materials = list(/datum/material/bananium = 4000) + plating_material = /datum/material/bananium + color = "#ffff00" //To display in mapping softwares /turf/closed/wall/mineral/sandstone name = "sandstone wall" desc = "A wall with sandstone plating. Rough." - icon = 'icons/turf/walls/sandstone_wall.dmi' - icon_state = "sandstone_wall-0" - base_icon_state = "sandstone_wall" - sheet_type = /obj/item/stack/sheet/mineral/sandstone + icon = 'icons/turf/walls/stone_wall.dmi' explosion_block = 0 - smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_SANDSTONE_WALLS) - canSmoothWith = list(SMOOTH_GROUP_SANDSTONE_WALLS) - custom_materials = list(/datum/material/sandstone = 4000) + plating_material = /datum/material/sandstone + color = "#B77D31" //To display in mapping softwares /turf/closed/wall/mineral/uranium article = "a" name = "uranium wall" desc = "A wall with uranium plating. This is probably a bad idea." - icon = 'icons/turf/walls/uranium_wall.dmi' - icon_state = "uranium_wall-0" - base_icon_state = "uranium_wall" - sheet_type = /obj/item/stack/sheet/mineral/uranium - smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_URANIUM_WALLS) - canSmoothWith = list(SMOOTH_GROUP_URANIUM_WALLS) - custom_materials = list(/datum/material/uranium = 4000) + plating_material = /datum/material/uranium + color = "#30f71a" //To display in mapping softwares /turf/closed/wall/mineral/uranium/proc/radiate() if(!active) @@ -124,30 +87,19 @@ /turf/closed/wall/mineral/plasma name = "plasma wall" desc = "A wall with plasma plating. This is definitely a bad idea." - icon = 'icons/turf/walls/plasma_wall.dmi' - icon_state = "plasma_wall-0" - base_icon_state = "plasma_wall" - sheet_type = /obj/item/stack/sheet/mineral/plasma thermal_conductivity = 0.04 - smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_PLASMA_WALLS) - canSmoothWith = list(SMOOTH_GROUP_PLASMA_WALLS) - custom_materials = list(/datum/material/plasma = 4000) + plating_material = /datum/material/plasma + color = "#c162ec" //To display in mapping softwares /turf/closed/wall/mineral/wood name = "wooden wall" desc = "A wall with wooden plating. Stiff." icon = 'icons/turf/walls/wood_wall.dmi' - icon_state = "wood_wall-0" - base_icon_state = "wood_wall" - sheet_type = /obj/item/stack/sheet/mineral/wood hardness = 70 turf_flags = IS_SOLID explosion_block = 0 - smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_WOOD_WALLS) - canSmoothWith = list(SMOOTH_GROUP_WOOD_WALLS) - custom_materials = list(/datum/material/wood = 4000) + plating_material = /datum/material/wood + color = "#bb8e53" //To display in mapping softwares /turf/closed/wall/mineral/wood/attackby(obj/item/W, mob/user) if(W.get_sharpness() && W.force) @@ -164,49 +116,23 @@ /turf/closed/wall/mineral/wood/nonmetal desc = "A solidly wooden wall. It's a bit weaker than a wall made with metal." - girder_type = /obj/structure/barricade/wooden hardness = 50 -/turf/closed/wall/mineral/bamboo - name = "bamboo wall" - desc = "A wall with a bamboo finish." - icon = 'icons/turf/walls/bamboo_wall.dmi' - icon_state = "bamboo" - smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_BAMBOO_WALLS) - canSmoothWith = list(SMOOTH_GROUP_BAMBOO_WALLS) - sheet_type = /obj/item/stack/sheet/mineral/bamboo - hardness = 60 - /turf/closed/wall/mineral/iron name = "rough iron wall" desc = "A wall with rough iron plating." - icon = 'icons/turf/walls/iron_wall.dmi' - icon_state = "iron_wall-0" - base_icon_state = "iron_wall" - sheet_type = /obj/item/stack/rods - sheet_amount = 5 - smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_IRON_WALLS) - canSmoothWith = list(SMOOTH_GROUP_IRON_WALLS) - custom_materials = list(/datum/material/iron = 5000) + icon = 'icons/turf/walls/stone_wall.dmi' /turf/closed/wall/mineral/snow name = "packed snow wall" desc = "A wall made of densely packed snow blocks." - icon = 'icons/turf/walls/snow_wall.dmi' - icon_state = "snow_wall-0" - base_icon_state = "snow_wall" - smoothing_flags = SMOOTH_BITMASK + icon = 'icons/turf/walls/stone_wall.dmi' hardness = 80 explosion_block = 0 slicing_duration = 30 - sheet_type = /obj/item/stack/sheet/mineral/snow - canSmoothWith = null - girder_type = null bullet_sizzle = TRUE bullet_bounce_sound = null - custom_materials = list(/datum/material/snow = 4000) + plating_material = /datum/material/snow /turf/closed/wall/mineral/snow/hulk_recoil(obj/item/bodypart/arm, mob/living/carbon/human/hulkman, damage = 0) return ..() //No recoil damage, snow is weak @@ -214,78 +140,47 @@ /turf/closed/wall/mineral/abductor name = "alien wall" desc = "A wall with alien alloy plating." - icon = 'icons/turf/walls/abductor_wall.dmi' - icon_state = "abductor_wall-0" - base_icon_state = "abductor_wall" - sheet_type = /obj/item/stack/sheet/mineral/abductor slicing_duration = 200 //alien wall takes twice as much time to slice explosion_block = 3 - smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_ABDUCTOR_WALLS) - canSmoothWith = list(SMOOTH_GROUP_ABDUCTOR_WALLS) - custom_materials = list(/datum/material/alloy/alien = 4000) + plating_material = /datum/material/alloy/alien + color = "#6041aa" //To display in mapping softwares /////////////////////Titanium walls///////////////////// /turf/closed/wall/mineral/titanium //has to use this path due to how building walls works name = "wall" desc = "A light-weight titanium wall used in shuttles." - icon = 'icons/turf/walls/shuttle_wall.dmi' - icon_state = "shuttle_wall-0" - base_icon_state = "shuttle_wall" explosion_block = 3 flags_1 = CAN_BE_DIRTY_1 flags_ricochet = RICOCHET_SHINY | RICOCHET_HARD - sheet_type = /obj/item/stack/sheet/mineral/titanium - smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_TITANIUM_WALLS) - canSmoothWith = list(SMOOTH_GROUP_TITANIUM_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTLE_PARTS) - custom_materials = list(/datum/material/titanium = 4000) + smoothing_groups = list(SMOOTH_GROUP_WALLS) + canSmoothWith = list(SMOOTH_GROUP_SHUTTERS_BLASTDOORS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_LOW_WALL) + plating_material = /datum/material/titanium + color = "#b3c0c7" //To display in mapping softwares /turf/closed/wall/mineral/titanium/rust_heretic_act() return // titanium does not rust /turf/closed/wall/mineral/titanium/nodiagonal - icon = 'icons/turf/walls/shuttle_wall.dmi' - icon_state = "map-shuttle_nd" - base_icon_state = "shuttle_wall" - smoothing_flags = SMOOTH_BITMASK /turf/closed/wall/mineral/titanium/nosmooth - icon = 'icons/turf/shuttle.dmi' - icon_state = "wall" - smoothing_flags = NONE /turf/closed/wall/mineral/titanium/overspace - icon_state = "map-overspace" - smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS - fixed_underlay = list("space" = TRUE) - -/turf/closed/wall/mineral/titanium/interior/copyTurf(turf/T) - . = ..() - T.transform = transform -/turf/closed/wall/mineral/titanium/copyTurf(turf/T) - . = ..() - T.transform = transform +/turf/closed/wall/mineral/titanium/interior /turf/closed/wall/mineral/titanium/survival name = "pod wall" desc = "An easily-compressable wall used for temporary shelter." - icon = 'icons/turf/walls/survival_pod_walls.dmi' - icon_state = "survival_pod_walls-0" - base_icon_state = "survival_pod_walls" - smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS - canSmoothWith = list(SMOOTH_GROUP_TITANIUM_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_SHUTTLE_PARTS) + canSmoothWith = list(SMOOTH_GROUP_SURVIVAL_TIANIUM_POD, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_SHUTTLE_PARTS) + color = "#242424" //To display in mapping softwares + wall_paint = "#242424" + stripe_paint = "#824621" /turf/closed/wall/mineral/titanium/survival/nodiagonal - icon = 'icons/turf/walls/survival_pod_walls.dmi' - icon_state = "survival_pod_walls-0" - base_icon_state = "survival_pod_walls" - smoothing_flags = SMOOTH_BITMASK /turf/closed/wall/mineral/titanium/survival/pod - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_TITANIUM_WALLS, SMOOTH_GROUP_SURVIVAL_TIANIUM_POD) + smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_SURVIVAL_TIANIUM_POD) canSmoothWith = list(SMOOTH_GROUP_SURVIVAL_TIANIUM_POD) /////////////////////Plastitanium walls///////////////////// @@ -293,34 +188,21 @@ /turf/closed/wall/mineral/plastitanium name = "wall" desc = "A durable wall made of an alloy of plasma and titanium." - icon = 'icons/turf/walls/plastitanium_wall.dmi' - icon_state = "plastitanium_wall-0" - base_icon_state = "plastitanium_wall" + icon = 'icons/turf/walls/metal_wall.dmi' explosion_block = 4 - sheet_type = /obj/item/stack/sheet/mineral/plastitanium - smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_PLASTITANIUM_WALLS) - canSmoothWith = list(SMOOTH_GROUP_PLASTITANIUM_WALLS, SMOOTH_GROUP_SYNDICATE_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTLE_PARTS) - custom_materials = list(/datum/material/alloy/plastitanium = 4000) + smoothing_groups = list(SMOOTH_GROUP_WALLS) + canSmoothWith = list(SMOOTH_GROUP_SHUTTERS_BLASTDOORS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_LOW_WALL) + plating_material = /datum/material/alloy/plastitanium + color = "#3a313a" //To display in mapping softwares /turf/closed/wall/mineral/plastitanium/rust_heretic_act() return // plastitanium does not rust /turf/closed/wall/mineral/plastitanium/nodiagonal - icon = 'icons/turf/walls/plastitanium_wall.dmi' - icon_state = "map-shuttle_nd" - base_icon_state = "plastitanium_wall" - smoothing_flags = SMOOTH_BITMASK /turf/closed/wall/mineral/plastitanium/nosmooth - icon = 'icons/turf/shuttle.dmi' - icon_state = "wall" - smoothing_flags = NONE /turf/closed/wall/mineral/plastitanium/overspace - icon_state = "map-overspace" - smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS - fixed_underlay = list("space" = TRUE) /turf/closed/wall/mineral/plastitanium/explosive/ex_act(severity) @@ -328,9 +210,4 @@ bombcore.detonate() return ..() -/turf/closed/wall/mineral/plastitanium/hulk_recoil(obj/item/bodypart/arm, mob/living/carbon/human/hulkman, damage = 41) - return ..() - -/turf/closed/wall/mineral/plastitanium/copyTurf(turf/T) - . = ..() - T.transform = transform +/turf/closed/wall/mineral/plastitanium/interior diff --git a/code/game/turfs/closed/wall/misc_walls.dm b/code/game/turfs/closed/wall/misc_walls.dm index 8842aeada09..4d1f430736e 100644 --- a/code/game/turfs/closed/wall/misc_walls.dm +++ b/code/game/turfs/closed/wall/misc_walls.dm @@ -2,22 +2,16 @@ name = "runed metal wall" desc = "A cold metal wall engraved with indecipherable symbols. Studying them causes your head to pound." icon = 'icons/turf/walls/cult_wall.dmi' - icon_state = "cult_wall-0" - base_icon_state = "cult_wall" turf_flags = IS_SOLID smoothing_flags = SMOOTH_BITMASK canSmoothWith = null - sheet_type = /obj/item/stack/sheet/runed_metal - sheet_amount = 1 - girder_type = /obj/structure/girder/cult + plating_material = /datum/material/runedmetal + color = "#3C3434" //To display in mapping softwares /turf/closed/wall/mineral/cult/Initialize(mapload) new /obj/effect/temp_visual/cult/turf(src) . = ..() -/turf/closed/wall/mineral/cult/devastate_wall() - new sheet_type(get_turf(src), sheet_amount) - /turf/closed/wall/mineral/cult/Exited(atom/movable/gone, direction) . = ..() if(istype(gone, /mob/living/simple_animal/hostile/construct/harvester)) //harvesters can go through cult walls, dragging something with @@ -41,9 +35,6 @@ /turf/closed/wall/vault name = "strange wall" - icon = 'icons/turf/walls.dmi' - icon_state = "rockvault" - base_icon_state = "rockvault" turf_flags = IS_SOLID smoothing_flags = NONE canSmoothWith = null @@ -65,9 +56,6 @@ base_icon_state = "sandstonevault" /turf/closed/wall/ice - icon = 'icons/turf/walls/icedmetal_wall.dmi' - icon_state = "icedmetal_wall-0" - base_icon_state = "icedmetal_wall" desc = "A wall covered in a thick sheet of ice." turf_flags = IS_SOLID smoothing_flags = SMOOTH_BITMASK @@ -100,28 +88,20 @@ /turf/closed/wall/mineral/bronze name = "clockwork wall" desc = "A huge chunk of bronze, decorated like gears and cogs." - icon = 'icons/turf/walls/clockwork_wall.dmi' - icon_state = "clockwork_wall-0" - base_icon_state = "clockwork_wall" turf_flags = IS_SOLID smoothing_flags = SMOOTH_BITMASK - sheet_type = /obj/item/stack/sheet/bronze - sheet_amount = 2 - girder_type = /obj/structure/girder/bronze + plating_material = /datum/material/bronze + color = "#92661A" //To display in mapping softwares /turf/closed/wall/rock name = "reinforced rock" desc = "It has metal struts that need to be welded away before it can be mined." - icon = 'icons/turf/walls/reinforced_rock.dmi' + icon = 'icons/turf/walls/legacy/reinforced_rock.dmi' icon_state = "porous_rock-0" base_icon_state = "porous_rock" turf_flags = NO_RUST - sheet_amount = 1 hardness = 50 - girder_type = null - decon_type = /turf/closed/mineral/asteroid /turf/closed/wall/rock/porous name = "reinforced porous rock" desc = "This rock is filled with pockets of breathable air. It has metal struts to protect it from mining." - decon_type = /turf/closed/mineral/asteroid/porous diff --git a/code/game/turfs/closed/wall/reinf_walls.dm b/code/game/turfs/closed/wall/reinf_walls.dm index 350b3097c41..eb209b6640c 100644 --- a/code/game/turfs/closed/wall/reinf_walls.dm +++ b/code/game/turfs/closed/wall/reinf_walls.dm @@ -1,271 +1,30 @@ /turf/closed/wall/r_wall name = "reinforced wall" desc = "A huge chunk of reinforced metal used to separate rooms." - icon = 'icons/turf/walls/reinforced_wall.dmi' - icon_state = "reinforced_wall-0" - base_icon_state = "reinforced_wall" + icon = 'icons/turf/walls/solid_wall_reinforced.dmi' opacity = TRUE density = TRUE - turf_flags = IS_SOLID - smoothing_flags = SMOOTH_BITMASK hardness = 10 - sheet_type = /obj/item/stack/sheet/plasteel - sheet_amount = 1 - girder_type = /obj/structure/girder/reinforced + reinf_material = /datum/material/iron + plating_material = /datum/material/alloy/plasteel explosion_block = 2 rad_insulation = RAD_HEAVY_INSULATION heat_capacity = 312500 //a little over 5 cm thick , 312500 for 1 m by 2.5 m by 0.25 m plasteel wall. also indicates the temperature at wich the wall will melt (currently only able to melt with H/E pipes) - ///Dismantled state, related to deconstruction. - var/d_state = INTACT - - -/turf/closed/wall/r_wall/deconstruction_hints(mob/user) - switch(d_state) - if(INTACT) - return span_notice("The outer grille is fully intact.") - if(SUPPORT_LINES) - return span_notice("The outer grille has been cut, and the support lines are screwed securely to the outer cover.") - if(COVER) - return span_notice("The support lines have been unscrewed, and the metal cover is welded firmly in place.") - if(CUT_COVER) - return span_notice("The metal cover has been sliced through, and is connected loosely to the girder.") - if(ANCHOR_BOLTS) - return span_notice("The outer cover has been pried away, and the bolts anchoring the support rods are wrenched in place.") - if(SUPPORT_RODS) - return span_notice("The bolts anchoring the support rods have been loosened, but are still welded firmly to the girder.") - if(SHEATH) - return span_notice("The support rods have been sliced through, and the outer sheath is connected loosely to the girder.") - -/turf/closed/wall/r_wall/devastate_wall() - new sheet_type(src, sheet_amount) - new /obj/item/stack/sheet/iron(src, 2) - -/turf/closed/wall/r_wall/attack_animal(mob/living/simple_animal/user, list/modifiers) - user.changeNext_move(CLICK_CD_MELEE) - user.do_attack_animation(src) - if(!user.environment_smash) - return - if(user.environment_smash & ENVIRONMENT_SMASH_RWALLS) - dismantle_wall(1) - playsound(src, 'sound/effects/meteorimpact.ogg', 100, TRUE) - else - playsound(src, 'sound/effects/bang.ogg', 50, TRUE) - to_chat(user, span_warning("This wall is far too strong for you to destroy.")) - -/turf/closed/wall/r_wall/hulk_recoil(obj/item/bodypart/arm, mob/living/carbon/human/hulkman, damage = 41) - return ..() - -/turf/closed/wall/r_wall/try_decon(obj/item/W, mob/user, turf/T) - //DECONSTRUCTION - switch(d_state) - if(INTACT) - if(W.tool_behaviour == TOOL_WIRECUTTER) - W.play_tool_sound(src, 100) - d_state = SUPPORT_LINES - update_appearance() - to_chat(user, span_notice("You cut the outer grille.")) - return TRUE - - if(SUPPORT_LINES) - if(W.tool_behaviour == TOOL_SCREWDRIVER) - to_chat(user, span_notice("You begin unsecuring the support lines...")) - if(W.use_tool(src, user, 40, volume=100)) - if(!istype(src, /turf/closed/wall/r_wall) || d_state != SUPPORT_LINES) - return TRUE - d_state = COVER - update_appearance() - to_chat(user, span_notice("You unsecure the support lines.")) - return TRUE - - else if(W.tool_behaviour == TOOL_WIRECUTTER) - W.play_tool_sound(src, 100) - d_state = INTACT - update_appearance() - to_chat(user, span_notice("You repair the outer grille.")) - return TRUE - - if(COVER) - if(W.tool_behaviour == TOOL_WELDER) - if(!W.tool_start_check(user, amount=0)) - return - to_chat(user, span_notice("You begin slicing through the metal cover...")) - if(W.use_tool(src, user, 60, volume=100)) - if(!istype(src, /turf/closed/wall/r_wall) || d_state != COVER) - return TRUE - d_state = CUT_COVER - update_appearance() - to_chat(user, span_notice("You press firmly on the cover, dislodging it.")) - return TRUE - - if(W.tool_behaviour == TOOL_SCREWDRIVER) - to_chat(user, span_notice("You begin securing the support lines...")) - if(W.use_tool(src, user, 40, volume=100)) - if(!istype(src, /turf/closed/wall/r_wall) || d_state != COVER) - return TRUE - d_state = SUPPORT_LINES - update_appearance() - to_chat(user, span_notice("The support lines have been secured.")) - return TRUE - - if(CUT_COVER) - if(W.tool_behaviour == TOOL_CROWBAR) - to_chat(user, span_notice("You struggle to pry off the cover...")) - if(W.use_tool(src, user, 100, volume=100)) - if(!istype(src, /turf/closed/wall/r_wall) || d_state != CUT_COVER) - return TRUE - d_state = ANCHOR_BOLTS - update_appearance() - to_chat(user, span_notice("You pry off the cover.")) - return TRUE - - if(W.tool_behaviour == TOOL_WELDER) - if(!W.tool_start_check(user, amount=0)) - return - to_chat(user, span_notice("You begin welding the metal cover back to the frame...")) - if(W.use_tool(src, user, 60, volume=100)) - if(!istype(src, /turf/closed/wall/r_wall) || d_state != CUT_COVER) - return TRUE - d_state = COVER - update_appearance() - to_chat(user, span_notice("The metal cover has been welded securely to the frame.")) - return TRUE - - if(ANCHOR_BOLTS) - if(W.tool_behaviour == TOOL_WRENCH) - to_chat(user, span_notice("You start loosening the anchoring bolts which secure the support rods to their frame...")) - if(W.use_tool(src, user, 40, volume=100)) - if(!istype(src, /turf/closed/wall/r_wall) || d_state != ANCHOR_BOLTS) - return TRUE - d_state = SUPPORT_RODS - update_appearance() - to_chat(user, span_notice("You remove the bolts anchoring the support rods.")) - return TRUE - - if(W.tool_behaviour == TOOL_CROWBAR) - to_chat(user, span_notice("You start to pry the cover back into place...")) - if(W.use_tool(src, user, 20, volume=100)) - if(!istype(src, /turf/closed/wall/r_wall) || d_state != ANCHOR_BOLTS) - return TRUE - d_state = CUT_COVER - update_appearance() - to_chat(user, span_notice("The metal cover has been pried back into place.")) - return TRUE - - if(SUPPORT_RODS) - if(W.tool_behaviour == TOOL_WELDER) - if(!W.tool_start_check(user, amount=0)) - return - to_chat(user, span_notice("You begin slicing through the support rods...")) - if(W.use_tool(src, user, 100, volume=100)) - if(!istype(src, /turf/closed/wall/r_wall) || d_state != SUPPORT_RODS) - return TRUE - d_state = SHEATH - update_appearance() - to_chat(user, span_notice("You slice through the support rods.")) - return TRUE - - if(W.tool_behaviour == TOOL_WRENCH) - to_chat(user, span_notice("You start tightening the bolts which secure the support rods to their frame...")) - W.play_tool_sound(src, 100) - if(W.use_tool(src, user, 40)) - if(!istype(src, /turf/closed/wall/r_wall) || d_state != SUPPORT_RODS) - return TRUE - d_state = ANCHOR_BOLTS - update_appearance() - to_chat(user, span_notice("You tighten the bolts anchoring the support rods.")) - return TRUE - - if(SHEATH) - if(W.tool_behaviour == TOOL_CROWBAR) - to_chat(user, span_notice("You struggle to pry off the outer sheath...")) - if(W.use_tool(src, user, 100, volume=100)) - if(!istype(src, /turf/closed/wall/r_wall) || d_state != SHEATH) - return TRUE - to_chat(user, span_notice("You pry off the outer sheath.")) - dismantle_wall() - return TRUE - - if(W.tool_behaviour == TOOL_WELDER) - if(!W.tool_start_check(user, amount=0)) - return - to_chat(user, span_notice("You begin welding the support rods back together...")) - if(W.use_tool(src, user, 100, volume=100)) - if(!istype(src, /turf/closed/wall/r_wall) || d_state != SHEATH) - return TRUE - d_state = SUPPORT_RODS - update_appearance() - to_chat(user, span_notice("You weld the support rods back together.")) - return TRUE - return FALSE - -/turf/closed/wall/r_wall/update_icon(updates=ALL) - . = ..() - if(d_state != INTACT) - smoothing_flags = NONE - return - if (!(updates & UPDATE_SMOOTHING)) - return - smoothing_flags = SMOOTH_BITMASK - QUEUE_SMOOTH_NEIGHBORS(src) - QUEUE_SMOOTH(src) - -/turf/closed/wall/r_wall/update_icon_state() - if(d_state != INTACT) - icon_state = "r_wall-[d_state]" - else - icon_state = "[base_icon_state]-[smoothing_junction]" - return ..() - -/turf/closed/wall/r_wall/wall_singularity_pull(current_size) - if(current_size >= STAGE_FIVE) - if(prob(30)) - dismantle_wall() - -/turf/closed/wall/r_wall/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) - if(the_rcd.canRturf) - return ..() - - -/turf/closed/wall/r_wall/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode) - if(the_rcd.canRturf) - return ..() - -/turf/closed/wall/r_wall/rust_heretic_act() - if(prob(50)) - return - if(HAS_TRAIT(src, TRAIT_RUSTY)) - ScrapeAway() - return - return ..() /turf/closed/wall/r_wall/syndicate name = "hull" desc = "The armored hull of an ominous looking ship." - icon = 'icons/turf/walls/plastitanium_wall.dmi' - icon_state = "plastitanium_wall-0" - base_icon_state = "plastitanium_wall" + icon = 'icons/turf/walls/metal_wall.dmi' explosion_block = 20 - sheet_type = /obj/item/stack/sheet/mineral/plastitanium - turf_flags = IS_SOLID - smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_SYNDICATE_WALLS) - canSmoothWith = list(SMOOTH_GROUP_SYNDICATE_WALLS, SMOOTH_GROUP_PLASTITANIUM_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTLE_PARTS) + reinf_material = /datum/material/iron + plating_material = /datum/material/alloy/plastitanium + color = "#3a313a" //To display in mapping softwares /turf/closed/wall/r_wall/syndicate/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) return FALSE /turf/closed/wall/r_wall/syndicate/nodiagonal - icon = 'icons/turf/walls/plastitanium_wall.dmi' - icon_state = "map-shuttle_nd" - base_icon_state = "plastitanium_wall" - smoothing_flags = SMOOTH_BITMASK /turf/closed/wall/r_wall/syndicate/nosmooth - icon = 'icons/turf/shuttle.dmi' - icon_state = "wall" - smoothing_flags = NONE /turf/closed/wall/r_wall/syndicate/overspace - icon_state = "map-overspace" - smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS - fixed_underlay = list("space" = TRUE) diff --git a/code/game/turfs/closed/walls.dm b/code/game/turfs/closed/walls.dm index 906c0620989..8837ac9bc11 100644 --- a/code/game/turfs/closed/walls.dm +++ b/code/game/turfs/closed/walls.dm @@ -3,7 +3,7 @@ /turf/closed/wall name = "wall" desc = "A huge chunk of iron used to separate rooms." - icon = 'icons/turf/walls/wall.dmi' + icon = 'icons/turf/walls/solid_wall.dmi' icon_state = "wall-0" base_icon_state = "wall" explosion_block = 1 @@ -17,59 +17,211 @@ smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS) - canSmoothWith = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_AIRLOCK) + canSmoothWith = list(SMOOTH_GROUP_SHUTTERS_BLASTDOORS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_LOW_WALL) rcd_memory = RCD_MEMORY_WALL - ///bool on whether this wall can be chiselled into - var/can_engrave = TRUE + + color = "#57575c" //To display in mapping softwares + + greyscale_config = /datum/greyscale_config/solid_wall + greyscale_colors = "#57575c" + ///lower numbers are harder. Used to determine the probability of a hulk smashing through. var/hardness = 40 var/slicing_duration = 100 //default time taken to slice the wall - var/sheet_type = /obj/item/stack/sheet/iron - var/sheet_amount = 2 - var/girder_type = /obj/structure/girder - /// A turf that will replace this turf when this turf is destroyed - var/decon_type + /// Material type of the plating + var/plating_material = /datum/material/iron + /// Material type of the reinforcement + var/reinf_material + /// Paint color of which the wall has been painted with. + var/wall_paint + /// Paint color of which the stripe has been painted with. Will not overlay a stripe if no paint is applied + var/stripe_paint + /// Whether this wall is hard to deconstruct, like a reinforced plasteel wall. Dictated by material + var/hard_decon + /// Deconstruction state, matters if the wall is hard to deconstruct (hard_decon) + var/d_state = INTACT + /// Whether this wall is rusted or not, to apply the rusted overlay + var/rusted var/list/dent_decals + /// Typecache of all objects that we seek out to apply a neighbor stripe overlay + var/static/list/neighbor_typecache + +/turf/closed/wall/update_greyscale() + greyscale_colors = get_wall_color() + return ..() + +/turf/closed/wall/proc/get_wall_color() + var/wall_color = wall_paint + if(!wall_color) + var/datum/material/plating_mat_ref = GET_MATERIAL_REF(plating_material) + wall_color = plating_mat_ref.wall_color + return wall_color + +/turf/closed/wall/proc/get_stripe_color() + var/stripe_color = stripe_paint + if(!stripe_color) + stripe_color = get_wall_color() + return stripe_color + +/turf/closed/wall/has_material_type(datum/material/mat_type, exact=FALSE, mat_amount=0) + if(plating_material == mat_type) + return TRUE + if(reinf_material == mat_type) + return TRUE + return FALSE + +/turf/closed/wall/update_name() + . = ..() + name = "" + if(rusted) + name = "rusted " + if(reinf_material) + name += "reinforced wall" + else + name += "wall" + /turf/closed/wall/Initialize(mapload) . = ..() - if(!can_engrave) - ADD_TRAIT(src, TRAIT_NOT_ENGRAVABLE, INNATE_TRAIT) - if(is_station_level(z)) + color = null // Remove the color that was set for mapping clarity + set_materials(plating_material, reinf_material) + if(is_station_level(src)) GLOB.station_turfs += src - if(smoothing_flags & SMOOTH_DIAGONAL_CORNERS && fixed_underlay) //Set underlays for the diagonal walls. - var/mutable_appearance/underlay_appearance = mutable_appearance(layer = TURF_LAYER, plane = FLOOR_PLANE) - if(fixed_underlay["space"]) - underlay_appearance.icon = 'icons/turf/space.dmi' - underlay_appearance.icon_state = SPACE_ICON_STATE - underlay_appearance.plane = PLANE_SPACE - else - underlay_appearance.icon = fixed_underlay["icon"] - underlay_appearance.icon_state = fixed_underlay["icon_state"] - fixed_underlay = string_assoc_list(fixed_underlay) - underlays += underlay_appearance - -/turf/closed/wall/atom_destruction(damage_flag) - dismantle_wall(TRUE, FALSE) /turf/closed/wall/Destroy() if(is_station_level(z)) GLOB.station_turfs -= src return ..() +/turf/closed/wall/copyTurf(turf/T) + . = ..() + if(istype(., /turf/closed/wall)) + var/turf/closed/wall/pasted_turf = . + pasted_turf.d_state = d_state + pasted_turf.set_wall_information(plating_material, reinf_material, wall_paint, stripe_paint) + +/// Most of this code is pasted within /obj/structure/falsewall. Be mindful of this +/turf/closed/wall/update_overlays() + //Updating the unmanaged wall overlays (unmanaged for optimisations) + overlays.Cut() + + if(stripe_paint) + var/datum/material/plating_mat_ref = GET_MATERIAL_REF(plating_material) + var/icon/stripe_icon = SSgreyscale.GetColoredIconByType(plating_mat_ref.wall_stripe_greyscale_config, get_stripe_color()) + var/mutable_appearance/smoothed_stripe = mutable_appearance(stripe_icon, icon_state) + overlays += smoothed_stripe + + var/neighbor_stripe = NONE + if(!neighbor_typecache) + neighbor_typecache = typecacheof(list( + /obj/machinery/door/airlock, + /obj/structure/window/reinforced/fulltile, + /obj/structure/window/fulltile, + /obj/structure/window/reinforced/shuttle, + /obj/machinery/door/poddoor, + /obj/structure/window/reinforced/plasma/fulltile, + /obj/structure/window/plasma/fulltile, + /obj/structure/low_wall + )) + for(var/cardinal in GLOB.cardinals) + var/turf/step_turf = get_step(src, cardinal) + for(var/atom/movable/movable_thing as anything in step_turf) + if(neighbor_typecache[movable_thing.type]) + neighbor_stripe ^= cardinal + break + if(neighbor_stripe) + var/icon/neighbor_icon = SSgreyscale.GetColoredIconByType(/datum/greyscale_config/wall_neighbor_stripe, get_stripe_color()) + var/mutable_appearance/neighb_stripe_appearace = mutable_appearance(neighbor_icon, "stripe-[neighbor_stripe]") + overlays += neighb_stripe_appearace + + if(rusted) + var/mutable_appearance/rust_overlay = mutable_appearance('icons/turf/rust_overlay.dmi', "blobby_rust", appearance_flags = RESET_COLOR) + overlays += rust_overlay + + if(hard_decon && d_state) + var/mutable_appearance/decon_overlay = mutable_appearance('icons/turf/walls/decon_states.dmi', "[d_state]", appearance_flags = RESET_COLOR) + overlays += decon_overlay + + if(dent_decals) + add_overlay(dent_decals) + //And letting anything else that may want to render on the wall to work (ie components) + return ..() /turf/closed/wall/examine(mob/user) . += ..() + if(wall_paint) + . += span_notice("It's coated with a layer of paint.") + if(stripe_paint) + . += span_notice("It has a painted stripe around its base.") . += deconstruction_hints(user) /turf/closed/wall/proc/deconstruction_hints(mob/user) - return span_notice("The outer plating is welded firmly in place.") + if(hard_decon) + switch(d_state) + if(INTACT) + return span_notice("The outer grille is fully intact.") + if(SUPPORT_LINES) + return span_notice("The outer grille has been cut, and the support lines are screwed securely to the outer cover.") + if(COVER) + return span_notice("The support lines have been unscrewed, and the metal cover is welded firmly in place.") + if(CUT_COVER) + return span_notice("The metal cover has been sliced through, and is connected loosely to the girder.") + if(ANCHOR_BOLTS) + return span_notice("The outer cover has been pried away, and the bolts anchoring the support rods are wrenched in place.") + if(SUPPORT_RODS) + return span_notice("The bolts anchoring the support rods have been loosened, but are still welded firmly to the girder.") + if(SHEATH) + return span_notice("The support rods have been sliced through, and the outer sheath is connected loosely to the girder.") + else + return span_notice("The outer plating is welded firmly in place.") /turf/closed/wall/attack_tk() return +/// Most of this code is pasted within /obj/structure/falsewall. Be mindful of this +/turf/closed/wall/proc/paint_wall(new_paint) + wall_paint = new_paint + update_greyscale() + update_appearance() + +/// Most of this code is pasted within /obj/structure/falsewall. Be mindful of this +/turf/closed/wall/proc/paint_stripe(new_paint) + stripe_paint = new_paint + update_appearance() + +/// Most of this code is pasted within /obj/structure/falsewall. Be mindful of this +/turf/closed/wall/proc/set_wall_information(plating_mat, reinf_mat, new_paint, new_stripe_paint) + wall_paint = new_paint + stripe_paint = new_stripe_paint + set_materials(plating_mat, reinf_mat) + +/// Most of this code is pasted within /obj/structure/falsewall. Be mindful of this +/turf/closed/wall/proc/set_materials(plating_mat, reinf_mat) + var/datum/material/plating_mat_ref + if(plating_mat) + plating_mat_ref = GET_MATERIAL_REF(plating_mat) + var/datum/material/reinf_mat_ref + if(reinf_mat) + reinf_mat_ref = GET_MATERIAL_REF(reinf_mat) + + if(reinf_mat_ref && plating_mat_ref.hard_wall_decon) + hard_decon = TRUE + else + hard_decon = null + + if(reinf_mat_ref) + greyscale_config = plating_mat_ref.reinforced_wall_greyscale_config + else + greyscale_config = plating_mat_ref.wall_greyscale_config + + plating_material = plating_mat + reinf_material = reinf_mat + + update_greyscale() + update_appearance() + /turf/closed/wall/proc/dismantle_wall(devastated = FALSE, explode = FALSE) if(devastated) devastate_wall() @@ -83,21 +235,24 @@ if(istype(O, /obj/structure/sign/poster)) var/obj/structure/sign/poster/P = O P.roll_and_drop(src) - if(decon_type) - ChangeTurf(decon_type, flags = CHANGETURF_INHERIT_AIR) - else - ScrapeAway() - QUEUE_SMOOTH_NEIGHBORS(src) -/turf/closed/wall/proc/break_wall() - new sheet_type(src, sheet_amount) - if(girder_type) - return new girder_type(src) + ScrapeAway() + +/turf/closed/wall/proc/break_wall(drop_mats = TRUE) + if(drop_mats) + drop_materials_used() + return new /obj/structure/girder(src, reinf_material, wall_paint, stripe_paint) /turf/closed/wall/proc/devastate_wall() - new sheet_type(src, sheet_amount) - if(girder_type) - new /obj/item/stack/sheet/iron(src) + drop_materials_used(TRUE) + new /obj/item/stack/sheet/iron(src) + +/turf/closed/wall/proc/drop_materials_used(drop_reinf = FALSE) + var/datum/material/plating_mat_ref = GET_MATERIAL_REF(plating_material) + new plating_mat_ref.sheet_type(src, 2) + if(drop_reinf && reinf_material) + var/datum/material/reinf_mat_ref = GET_MATERIAL_REF(reinf_material) + new reinf_mat_ref.sheet_type(src, 2) /turf/closed/wall/ex_act(severity, target) if(target == src) @@ -131,12 +286,24 @@ /turf/closed/wall/attack_animal(mob/living/simple_animal/user, list/modifiers) - user.changeNext_move(CLICK_CD_MELEE) - user.do_attack_animation(src) - if((user.environment_smash & ENVIRONMENT_SMASH_WALLS) || (user.environment_smash & ENVIRONMENT_SMASH_RWALLS)) - playsound(src, 'sound/effects/meteorimpact.ogg', 100, TRUE) - dismantle_wall(1) - return + if(hard_decon) + user.changeNext_move(CLICK_CD_MELEE) + user.do_attack_animation(src) + if(!user.environment_smash) + return + if(user.environment_smash & ENVIRONMENT_SMASH_RWALLS) + dismantle_wall(1) + playsound(src, 'sound/effects/meteorimpact.ogg', 100, TRUE) + else + playsound(src, 'sound/effects/bang.ogg', 50, TRUE) + to_chat(user, span_warning("This wall is far too strong for you to destroy.")) + else + user.changeNext_move(CLICK_CD_MELEE) + user.do_attack_animation(src) + if((user.environment_smash & ENVIRONMENT_SMASH_WALLS) || (user.environment_smash & ENVIRONMENT_SMASH_RWALLS)) + playsound(src, 'sound/effects/meteorimpact.ogg', 100, TRUE) + dismantle_wall(1) + return /turf/closed/wall/attack_hulk(mob/living/carbon/user) ..() @@ -239,16 +406,157 @@ return FALSE /turf/closed/wall/proc/try_decon(obj/item/I, mob/user, turf/T) - if(I.tool_behaviour == TOOL_WELDER) - if(!I.tool_start_check(user, amount=0)) - return FALSE + if(hard_decon) + switch(d_state) + if(INTACT) + if(I.tool_behaviour == TOOL_WIRECUTTER) + I.play_tool_sound(src, 100) + d_state = SUPPORT_LINES + update_appearance() + to_chat(user, span_notice("You cut the outer grille.")) + return TRUE + + if(SUPPORT_LINES) + if(I.tool_behaviour == TOOL_SCREWDRIVER) + to_chat(user, span_notice("You begin unsecuring the support lines...")) + if(I.use_tool(src, user, 40, volume=100)) + if(!istype(src, /turf/closed/wall) || d_state != SUPPORT_LINES) + return TRUE + d_state = COVER + update_appearance() + to_chat(user, span_notice("You unsecure the support lines.")) + return TRUE + + else if(I.tool_behaviour == TOOL_WIRECUTTER) + I.play_tool_sound(src, 100) + d_state = INTACT + update_appearance() + to_chat(user, span_notice("You repair the outer grille.")) + return TRUE + + if(COVER) + if(I.tool_behaviour == TOOL_WELDER) + if(!I.tool_start_check(user, amount=0)) + return + to_chat(user, span_notice("You begin slicing through the metal cover...")) + if(I.use_tool(src, user, 60, volume=100)) + if(!istype(src, /turf/closed/wall) || d_state != COVER) + return TRUE + d_state = CUT_COVER + update_appearance() + to_chat(user, span_notice("You press firmly on the cover, dislodging it.")) + return TRUE + + if(I.tool_behaviour == TOOL_SCREWDRIVER) + to_chat(user, span_notice("You begin securing the support lines...")) + if(I.use_tool(src, user, 40, volume=100)) + if(!istype(src, /turf/closed/wall) || d_state != COVER) + return TRUE + d_state = SUPPORT_LINES + update_appearance() + to_chat(user, span_notice("The support lines have been secured.")) + return TRUE + + if(CUT_COVER) + if(I.tool_behaviour == TOOL_CROWBAR) + to_chat(user, span_notice("You struggle to pry off the cover...")) + if(I.use_tool(src, user, 100, volume=100)) + if(!istype(src, /turf/closed/wall) || d_state != CUT_COVER) + return TRUE + d_state = ANCHOR_BOLTS + update_appearance() + to_chat(user, span_notice("You pry off the cover.")) + return TRUE + + if(I.tool_behaviour == TOOL_WELDER) + if(!I.tool_start_check(user, amount=0)) + return + to_chat(user, span_notice("You begin welding the metal cover back to the frame...")) + if(I.use_tool(src, user, 60, volume=100)) + if(!istype(src, /turf/closed/wall) || d_state != CUT_COVER) + return TRUE + d_state = COVER + update_appearance() + to_chat(user, span_notice("The metal cover has been welded securely to the frame.")) + return TRUE + + if(ANCHOR_BOLTS) + if(I.tool_behaviour == TOOL_WRENCH) + to_chat(user, span_notice("You start loosening the anchoring bolts which secure the support rods to their frame...")) + if(I.use_tool(src, user, 40, volume=100)) + if(!istype(src, /turf/closed/wall) || d_state != ANCHOR_BOLTS) + return TRUE + d_state = SUPPORT_RODS + update_appearance() + to_chat(user, span_notice("You remove the bolts anchoring the support rods.")) + return TRUE + + if(I.tool_behaviour == TOOL_CROWBAR) + to_chat(user, span_notice("You start to pry the cover back into place...")) + if(I.use_tool(src, user, 20, volume=100)) + if(!istype(src, /turf/closed/wall) || d_state != ANCHOR_BOLTS) + return TRUE + d_state = CUT_COVER + update_appearance() + to_chat(user, span_notice("The metal cover has been pried back into place.")) + return TRUE + + if(SUPPORT_RODS) + if(I.tool_behaviour == TOOL_WELDER) + if(!I.tool_start_check(user, amount=0)) + return + to_chat(user, span_notice("You begin slicing through the support rods...")) + if(I.use_tool(src, user, 100, volume=100)) + if(!istype(src, /turf/closed/wall) || d_state != SUPPORT_RODS) + return TRUE + d_state = SHEATH + update_appearance() + to_chat(user, span_notice("You slice through the support rods.")) + return TRUE + + if(I.tool_behaviour == TOOL_WRENCH) + to_chat(user, span_notice("You start tightening the bolts which secure the support rods to their frame...")) + I.play_tool_sound(src, 100) + if(I.use_tool(src, user, 40)) + if(!istype(src, /turf/closed/wall) || d_state != SUPPORT_RODS) + return TRUE + d_state = ANCHOR_BOLTS + update_appearance() + to_chat(user, span_notice("You tighten the bolts anchoring the support rods.")) + return TRUE + + if(SHEATH) + if(I.tool_behaviour == TOOL_CROWBAR) + to_chat(user, span_notice("You struggle to pry off the outer sheath...")) + if(I.use_tool(src, user, 100, volume=100)) + if(!istype(src, /turf/closed/wall) || d_state != SHEATH) + return TRUE + to_chat(user, span_notice("You pry off the outer sheath.")) + dismantle_wall() + return TRUE + + if(I.tool_behaviour == TOOL_WELDER) + if(!I.tool_start_check(user, amount=0)) + return + to_chat(user, span_notice("You begin welding the support rods back together...")) + if(I.use_tool(src, user, 100, volume=100)) + if(!istype(src, /turf/closed/wall) || d_state != SHEATH) + return TRUE + d_state = SUPPORT_RODS + update_appearance() + to_chat(user, span_notice("You weld the support rods back together.")) + return TRUE + else + if(I.tool_behaviour == TOOL_WELDER) + if(!I.tool_start_check(user, amount=0)) + return FALSE - to_chat(user, span_notice("You begin slicing through the outer plating...")) - if(I.use_tool(src, user, slicing_duration, volume=100)) - if(iswallturf(src)) - to_chat(user, span_notice("You remove the outer plating.")) - dismantle_wall() - return TRUE + to_chat(user, span_notice("You begin slicing through the outer plating...")) + if(I.use_tool(src, user, slicing_duration, volume=100)) + if(iswallturf(src)) + to_chat(user, span_notice("You remove the outer plating.")) + dismantle_wall() + return TRUE return FALSE @@ -257,20 +565,25 @@ wall_singularity_pull(current_size) /turf/closed/wall/proc/wall_singularity_pull(current_size) - if(current_size >= STAGE_FIVE) - if(prob(50)) - dismantle_wall() - return - if(current_size == STAGE_FOUR) - if(prob(30)) - dismantle_wall() + if(hard_decon) + if(current_size >= STAGE_FIVE) + if(prob(30)) + dismantle_wall() + else + if(current_size >= STAGE_FIVE) + if(prob(50)) + dismantle_wall() + return + if(current_size == STAGE_FOUR) + if(prob(30)) + dismantle_wall() /turf/closed/wall/narsie_act(force, ignore_mobs, probability = 20) . = ..() if(.) ChangeTurf(/turf/closed/wall/mineral/cult) -/turf/closed/wall/get_dumping_location() +/turf/closed/wall/get_dumping_location(obj/item/storage/source, mob/user) return null /turf/closed/wall/acid_act(acidpwr, acid_volume) @@ -282,12 +595,16 @@ dismantle_wall(1) /turf/closed/wall/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) + if(hard_decon && !the_rcd.canRturf) + return switch(the_rcd.mode) if(RCD_DECONSTRUCT) return list("mode" = RCD_DECONSTRUCT, "delay" = 40, "cost" = 26) return FALSE /turf/closed/wall/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode) + if(hard_decon && !the_rcd.canRturf) + return switch(passed_mode) if(RCD_DECONSTRUCT) to_chat(user, span_notice("You deconstruct the wall.")) @@ -318,14 +635,13 @@ add_overlay(dent_decals) /turf/closed/wall/rust_heretic_act() - if(HAS_TRAIT(src, TRAIT_RUSTY)) - ScrapeAway() + if(rusted) + return + if(hard_decon && prob(50)) return if(prob(70)) new /obj/effect/temp_visual/glowing_rune(src) - return ..() - -/turf/closed/wall/metal_foam_base - girder_type = /obj/structure/foamedmetal + rusted = TRUE + update_appearance() #undef MAX_DENT_DECALS diff --git a/code/game/turfs/open/floor.dm b/code/game/turfs/open/floor.dm index 8e2ba018ebb..2842cc950e7 100644 --- a/code/game/turfs/open/floor.dm +++ b/code/game/turfs/open/floor.dm @@ -23,7 +23,7 @@ var/broken = FALSE var/burnt = FALSE /// Path of the tile that this floor drops - var/floor_tile = null + var/floor_tile = null var/list/broken_states var/list/burnt_states @@ -269,7 +269,8 @@ switch(passed_mode) if(RCD_FLOORWALL) to_chat(user, span_notice("You build a wall.")) - PlaceOnTop(/turf/closed/wall) + var/turf/closed/wall/placed_wall = PlaceOnTop(/turf/closed/wall) + placed_wall.set_wall_information(/datum/material/iron) return TRUE if(RCD_AIRLOCK) for(var/obj/machinery/door/door in src) diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 36d5d42f270..daaf6759fae 100755 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -42,9 +42,6 @@ GLOBAL_LIST_EMPTY(station_turfs) var/tiled_dirt = FALSE // use smooth tiled dirt decal - ///Icon-smoothing variable to map a diagonal wall corner with a fixed underlay. - var/list/fixed_underlay = null - ///Lumcount added by sources other than lighting datum objects, such as the overlay lighting component. var/dynamic_lumcount = 0 diff --git a/code/modules/cargo/goodies.dm b/code/modules/cargo/goodies.dm index 15a6c5b5724..de4671e5094 100644 --- a/code/modules/cargo/goodies.dm +++ b/code/modules/cargo/goodies.dm @@ -167,3 +167,9 @@ desc = "A complete meal package for the terminally lazy. Contains one Ready-Donk meal." cost = PAYCHECK_MEDIUM * 2 contains = list(/obj/item/food/ready_donk) + +/datum/supply_pack/goody/paint + name = "Adaptive Paint" + desc = "A single, premium can of adaptive paint. Now you can turn the entire station neon pink!" + cost = PAYCHECK_EASY * 2 + contains = list(/obj/item/paint/anycolor) diff --git a/code/modules/mapfluff/ruins/lavalandruin_code/elephantgraveyard.dm b/code/modules/mapfluff/ruins/lavalandruin_code/elephantgraveyard.dm index 1c6fdcf3a46..e0f2094e675 100644 --- a/code/modules/mapfluff/ruins/lavalandruin_code/elephantgraveyard.dm +++ b/code/modules/mapfluff/ruins/lavalandruin_code/elephantgraveyard.dm @@ -54,7 +54,7 @@ color = "#B5651D" turf_type = /turf/open/misc/asteroid/basalt/wasteland baseturfs = /turf/open/misc/asteroid/basalt/wasteland - smooth_icon = 'icons/turf/walls/rock_wall.dmi' + smooth_icon = 'icons/turf/walls/legacy/rock_wall.dmi' base_icon_state = "rock_wall" smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER diff --git a/code/modules/mapping/mapping_helpers.dm b/code/modules/mapping/mapping_helpers.dm index 3556319f852..f6a26d8d39b 100644 --- a/code/modules/mapping/mapping_helpers.dm +++ b/code/modules/mapping/mapping_helpers.dm @@ -698,3 +698,52 @@ INITIALIZE_IMMEDIATE(/obj/effect/mapping_helpers/no_lava) json_cache[json_url] = json_data query_in_progress = FALSE return json_data + + +/obj/effect/mapping_helpers/paint_wall + name = "Paint Wall Helper" + icon = 'icons/effects/paint_helpers.dmi' + icon_state = "paint" + late = TRUE + /// What wall paint this helper will apply + var/wall_paint + /// What stripe paint this helper will apply + var/stripe_paint + +/obj/effect/mapping_helpers/paint_wall/LateInitialize() + for(var/obj/effect/mapping_helpers/paint_wall/paint_helper in loc) + if(paint_helper == src) + continue + WARNING("Duplicate paint helper found at [x], [y], [z]") + qdel(src) + return + + var/did_anything = FALSE + + if(istype(loc, /turf/closed/wall)) + var/turf/closed/wall/target_wall = loc + target_wall.paint_wall(wall_paint) + target_wall.paint_stripe(stripe_paint) + did_anything = TRUE + + var/obj/structure/low_wall/low_wall = locate() in loc + if(low_wall) + low_wall.set_wall_paint(wall_paint) + low_wall.set_stripe_paint(stripe_paint) + did_anything = TRUE + + var/obj/structure/falsewall/falsewall = locate() in loc + if(falsewall) + falsewall.paint_wall(wall_paint) + falsewall.paint_stripe(stripe_paint) + did_anything = TRUE + + if(!did_anything) + WARNING("Redundant paint helper found at [x], [y], [z]") + + qdel(src) + +/obj/effect/mapping_helpers/paint_wall/bridge + name = "Bridge Wall Paint" + stripe_paint = "#334E6D" + icon_state = "paint_bridge" diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index 715eee74d25..47516130526 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -288,9 +288,16 @@ I.pixel_y = I.base_pixel_y + rand(-6, 6) I.do_drop_animation(src) -//for when the item will be immediately placed in a loc other than the ground -/mob/proc/transferItemToLoc(obj/item/I, newloc = null, force = FALSE, silent = TRUE) +//for when the item will be immediately placed in a loc other than the ground. Supports shifting the item's x and y from click modifiers. +/mob/proc/transferItemToLoc(obj/item/I, newloc = null, force = FALSE, silent = TRUE, list/user_click_modifiers) . = doUnEquip(I, force, newloc, FALSE, silent = silent) + if(. && user_click_modifiers) + //Center the icon where the user clicked. + if(!LAZYACCESS(user_click_modifiers, ICON_X) || !LAZYACCESS(user_click_modifiers, ICON_Y)) + return + //Clamp it so that the icon never moves more than 16 pixels in either direction (thus leaving the location) + I.pixel_x = clamp(text2num(LAZYACCESS(user_click_modifiers, ICON_X)) - 16, -(world.icon_size/2), world.icon_size/2) + I.pixel_y = clamp(text2num(LAZYACCESS(user_click_modifiers, ICON_Y)) - 16, -(world.icon_size/2), world.icon_size/2) I.do_drop_animation(src) //visibly unequips I but it is NOT MOVED AND REMAINS IN SRC diff --git a/code/modules/mob/living/silicon/robot/robot_model.dm b/code/modules/mob/living/silicon/robot/robot_model.dm index db9636a6d0b..b01806bfcf3 100644 --- a/code/modules/mob/living/silicon/robot/robot_model.dm +++ b/code/modules/mob/living/silicon/robot/robot_model.dm @@ -352,7 +352,7 @@ /obj/item/extinguisher/mini, /obj/item/mop/cyborg, /obj/item/reagent_containers/glass/bucket, - /obj/item/paint/paint_remover, + /obj/item/paint_remover, /obj/item/lightreplacer/cyborg, /obj/item/holosign_creator, /obj/item/reagent_containers/spray/cyborg_drying) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index dd550099053..76ff1fcaf5d 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -529,7 +529,7 @@ Difficulty: Hard /obj/effect/temp_visual/hierophant/wall //smoothing and pooling were not friends, but pooling is dead. name = "vortex wall" - icon = 'icons/turf/walls/hierophant_wall_temp.dmi' + icon = 'icons/turf/walls/legacy/hierophant_wall_temp.dmi' icon_state = "hierophant_wall_temp-0" base_icon_state = "hierophant_wall_temp" smoothing_flags = SMOOTH_BITMASK diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm index 12d5c58a25b..4eaad55c0cc 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm @@ -89,7 +89,7 @@ Difficulty: Hard /datum/action/innate/megafauna_attack/shockwave_scream name = "Shockwave Scream" - icon_icon = 'icons/turf/walls/wall.dmi' + icon_icon = 'icons/turf/walls/legacy/wall.dmi' button_icon_state = "wall-0" chosen_message = "You are now screeching, disorienting targets around you." chosen_attack_num = 3 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm index b29de2f72bc..9b1a79a3d9f 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm @@ -372,7 +372,7 @@ While using this makes the system rely on OnFire, it still gives options for tim /obj/effect/temp_visual/elite_tumor_wall name = "magic wall" - icon = 'icons/turf/walls/hierophant_wall_temp.dmi' + icon = 'icons/turf/walls/legacy/hierophant_wall_temp.dmi' icon_state = "hierophant_wall_temp-0" base_icon_state = "hierophant_wall_temp" smoothing_flags = SMOOTH_BITMASK diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm index 89a9280a677..63b9b8e3ce7 100644 --- a/code/modules/research/designs/misc_designs.dm +++ b/code/modules/research/designs/misc_designs.dm @@ -415,7 +415,7 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 1000) reagents_list = list(/datum/reagent/acetone = 60) - build_path = /obj/item/paint/paint_remover + build_path = /obj/item/paint_remover category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SERVICE diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index a4ce8ca2e83..fc144376980 100644 --- a/code/modules/vending/wardrobes.dm +++ b/code/modules/vending/wardrobes.dm @@ -322,7 +322,7 @@ /obj/item/clothing/head/soft/purple = 2, /obj/item/clothing/mask/bandana/color/purple = 2, /obj/item/pushbroom = 2, - /obj/item/paint/paint_remover = 2, + /obj/item/paint_remover = 2, /obj/item/melee/flyswatter = 2, /obj/item/flashlight = 2, /obj/item/clothing/suit/caution = 6, diff --git a/code/modules/vending/youtool.dm b/code/modules/vending/youtool.dm index 576ec656a8c..79a9ba1d5a5 100644 --- a/code/modules/vending/youtool.dm +++ b/code/modules/vending/youtool.dm @@ -17,7 +17,8 @@ /obj/item/flashlight/glowstick = 3, /obj/item/flashlight/glowstick/red = 3, /obj/item/flashlight = 5, - /obj/item/clothing/ears/earmuffs = 1 + /obj/item/clothing/ears/earmuffs = 1, + /obj/item/paint/anycolor = 5 ) contraband = list( /obj/item/clothing/gloves/color/fyellow = 2 diff --git a/icons/effects/paint_helpers.dmi b/icons/effects/paint_helpers.dmi new file mode 100644 index 00000000000..11a198fd710 Binary files /dev/null and b/icons/effects/paint_helpers.dmi differ diff --git a/icons/obj/clockwork_objects.dmi b/icons/obj/clockwork_objects.dmi new file mode 100644 index 00000000000..b867ddafc14 Binary files /dev/null and b/icons/obj/clockwork_objects.dmi differ diff --git a/icons/obj/smooth_structures/grille.dmi b/icons/obj/smooth_structures/grille.dmi new file mode 100644 index 00000000000..33d63084ecd Binary files /dev/null and b/icons/obj/smooth_structures/grille.dmi differ diff --git a/icons/obj/smooth_structures/low_wall.dmi b/icons/obj/smooth_structures/low_wall.dmi new file mode 100644 index 00000000000..bf468aa6699 Binary files /dev/null and b/icons/obj/smooth_structures/low_wall.dmi differ diff --git a/icons/obj/smooth_structures/window.dmi b/icons/obj/smooth_structures/window.dmi index 4b78390251e..10553b3a17b 100644 Binary files a/icons/obj/smooth_structures/window.dmi and b/icons/obj/smooth_structures/window.dmi differ diff --git a/icons/obj/smooth_structures/window_reinforced.dmi b/icons/obj/smooth_structures/window_reinforced.dmi new file mode 100644 index 00000000000..26824d02da5 Binary files /dev/null and b/icons/obj/smooth_structures/window_reinforced.dmi differ diff --git a/icons/turf/rust_overlay.dmi b/icons/turf/rust_overlay.dmi new file mode 100644 index 00000000000..d0aea195a33 Binary files /dev/null and b/icons/turf/rust_overlay.dmi differ diff --git a/icons/turf/walls/bamboo_wall.dmi b/icons/turf/walls/bamboo_wall.dmi deleted file mode 100644 index 4eafc79ad48..00000000000 Binary files a/icons/turf/walls/bamboo_wall.dmi and /dev/null differ diff --git a/icons/turf/walls/bananium_wall.dmi b/icons/turf/walls/bananium_wall.dmi deleted file mode 100644 index abf70635337..00000000000 Binary files a/icons/turf/walls/bananium_wall.dmi and /dev/null differ diff --git a/icons/turf/walls/clockwork_wall.dmi b/icons/turf/walls/clockwork_wall.dmi deleted file mode 100644 index d6f1872d7c0..00000000000 Binary files a/icons/turf/walls/clockwork_wall.dmi and /dev/null differ diff --git a/icons/turf/walls/cult_wall.dmi b/icons/turf/walls/cult_wall.dmi index 4990c4474ff..14051316c53 100644 Binary files a/icons/turf/walls/cult_wall.dmi and b/icons/turf/walls/cult_wall.dmi differ diff --git a/icons/turf/walls/decon_states.dmi b/icons/turf/walls/decon_states.dmi new file mode 100644 index 00000000000..76c19f05d8b Binary files /dev/null and b/icons/turf/walls/decon_states.dmi differ diff --git a/icons/turf/walls/diamond_wall.dmi b/icons/turf/walls/diamond_wall.dmi deleted file mode 100644 index 1dd44ba283f..00000000000 Binary files a/icons/turf/walls/diamond_wall.dmi and /dev/null differ diff --git a/icons/turf/walls/gold_wall.dmi b/icons/turf/walls/gold_wall.dmi deleted file mode 100644 index 7012124c271..00000000000 Binary files a/icons/turf/walls/gold_wall.dmi and /dev/null differ diff --git a/icons/turf/walls/icedmetal_wall.dmi b/icons/turf/walls/icedmetal_wall.dmi deleted file mode 100644 index b069da4394d..00000000000 Binary files a/icons/turf/walls/icedmetal_wall.dmi and /dev/null differ diff --git a/icons/turf/walls/abductor_wall.dmi b/icons/turf/walls/legacy/abductor_wall.dmi similarity index 100% rename from icons/turf/walls/abductor_wall.dmi rename to icons/turf/walls/legacy/abductor_wall.dmi diff --git a/icons/turf/walls/boss_wall.dmi b/icons/turf/walls/legacy/boss_wall.dmi similarity index 100% rename from icons/turf/walls/boss_wall.dmi rename to icons/turf/walls/legacy/boss_wall.dmi diff --git a/icons/turf/walls/legacy/cult_wall.dmi b/icons/turf/walls/legacy/cult_wall.dmi new file mode 100644 index 00000000000..4990c4474ff Binary files /dev/null and b/icons/turf/walls/legacy/cult_wall.dmi differ diff --git a/icons/turf/walls/hierophant_wall.dmi b/icons/turf/walls/legacy/hierophant_wall.dmi similarity index 100% rename from icons/turf/walls/hierophant_wall.dmi rename to icons/turf/walls/legacy/hierophant_wall.dmi diff --git a/icons/turf/walls/hierophant_wall_temp.dmi b/icons/turf/walls/legacy/hierophant_wall_temp.dmi similarity index 100% rename from icons/turf/walls/hierophant_wall_temp.dmi rename to icons/turf/walls/legacy/hierophant_wall_temp.dmi diff --git a/icons/turf/walls/icerock_wall.dmi b/icons/turf/walls/legacy/icerock_wall.dmi similarity index 100% rename from icons/turf/walls/icerock_wall.dmi rename to icons/turf/walls/legacy/icerock_wall.dmi diff --git a/icons/turf/walls/iron_wall.dmi b/icons/turf/walls/legacy/iron_wall.dmi similarity index 100% rename from icons/turf/walls/iron_wall.dmi rename to icons/turf/walls/legacy/iron_wall.dmi diff --git a/icons/turf/walls/mountain_wall.dmi b/icons/turf/walls/legacy/mountain_wall.dmi similarity index 100% rename from icons/turf/walls/mountain_wall.dmi rename to icons/turf/walls/legacy/mountain_wall.dmi diff --git a/icons/turf/walls/plastinum_wall.dmi b/icons/turf/walls/legacy/plastinum_wall.dmi similarity index 100% rename from icons/turf/walls/plastinum_wall.dmi rename to icons/turf/walls/legacy/plastinum_wall.dmi diff --git a/icons/turf/walls/plastitanium_wall.dmi b/icons/turf/walls/legacy/plastitanium_wall.dmi similarity index 100% rename from icons/turf/walls/plastitanium_wall.dmi rename to icons/turf/walls/legacy/plastitanium_wall.dmi diff --git a/icons/turf/walls/legacy/red_wall.dmi b/icons/turf/walls/legacy/red_wall.dmi new file mode 100644 index 00000000000..91ef6219344 Binary files /dev/null and b/icons/turf/walls/legacy/red_wall.dmi differ diff --git a/icons/turf/walls/reinforced_rock.dmi b/icons/turf/walls/legacy/reinforced_rock.dmi similarity index 100% rename from icons/turf/walls/reinforced_rock.dmi rename to icons/turf/walls/legacy/reinforced_rock.dmi diff --git a/icons/turf/walls/legacy/reinforced_wall.dmi b/icons/turf/walls/legacy/reinforced_wall.dmi new file mode 100644 index 00000000000..c7b05315d50 Binary files /dev/null and b/icons/turf/walls/legacy/reinforced_wall.dmi differ diff --git a/icons/turf/walls/riveted.dmi b/icons/turf/walls/legacy/riveted.dmi similarity index 100% rename from icons/turf/walls/riveted.dmi rename to icons/turf/walls/legacy/riveted.dmi diff --git a/icons/turf/walls/rock_wall.dmi b/icons/turf/walls/legacy/rock_wall.dmi similarity index 100% rename from icons/turf/walls/rock_wall.dmi rename to icons/turf/walls/legacy/rock_wall.dmi diff --git a/icons/turf/walls/sandstone_wall.dmi b/icons/turf/walls/legacy/sandstone_wall.dmi similarity index 100% rename from icons/turf/walls/sandstone_wall.dmi rename to icons/turf/walls/legacy/sandstone_wall.dmi diff --git a/icons/turf/walls/uranium_wall.dmi b/icons/turf/walls/legacy/uranium_wall.dmi similarity index 100% rename from icons/turf/walls/uranium_wall.dmi rename to icons/turf/walls/legacy/uranium_wall.dmi diff --git a/icons/turf/walls/legacy/wall.dmi b/icons/turf/walls/legacy/wall.dmi new file mode 100644 index 00000000000..651227fe8de Binary files /dev/null and b/icons/turf/walls/legacy/wall.dmi differ diff --git a/icons/turf/walls/legacy/wood_wall.dmi b/icons/turf/walls/legacy/wood_wall.dmi new file mode 100644 index 00000000000..60b785c5030 Binary files /dev/null and b/icons/turf/walls/legacy/wood_wall.dmi differ diff --git a/icons/turf/walls/materialwall.dmi b/icons/turf/walls/materialwall.dmi deleted file mode 100644 index 1027effda94..00000000000 Binary files a/icons/turf/walls/materialwall.dmi and /dev/null differ diff --git a/icons/turf/walls/metal_wall.dmi b/icons/turf/walls/metal_wall.dmi new file mode 100644 index 00000000000..2ce2964513d Binary files /dev/null and b/icons/turf/walls/metal_wall.dmi differ diff --git a/icons/turf/walls/neighbor_stripe.dmi b/icons/turf/walls/neighbor_stripe.dmi new file mode 100644 index 00000000000..45a8e0e4179 Binary files /dev/null and b/icons/turf/walls/neighbor_stripe.dmi differ diff --git a/icons/turf/walls/plasma_wall.dmi b/icons/turf/walls/plasma_wall.dmi deleted file mode 100644 index c2f10843c6d..00000000000 Binary files a/icons/turf/walls/plasma_wall.dmi and /dev/null differ diff --git a/icons/turf/walls/red_wall.dmi b/icons/turf/walls/red_wall.dmi deleted file mode 100644 index 5eb26cf6a30..00000000000 Binary files a/icons/turf/walls/red_wall.dmi and /dev/null differ diff --git a/icons/turf/walls/reinforced_wall.dmi b/icons/turf/walls/reinforced_wall.dmi deleted file mode 100644 index 9f10b2bc427..00000000000 Binary files a/icons/turf/walls/reinforced_wall.dmi and /dev/null differ diff --git a/icons/turf/walls/rusty_reinforced_wall.dmi b/icons/turf/walls/rusty_reinforced_wall.dmi deleted file mode 100644 index e2636950d27..00000000000 Binary files a/icons/turf/walls/rusty_reinforced_wall.dmi and /dev/null differ diff --git a/icons/turf/walls/rusty_wall.dmi b/icons/turf/walls/rusty_wall.dmi deleted file mode 100644 index ca27a10fe07..00000000000 Binary files a/icons/turf/walls/rusty_wall.dmi and /dev/null differ diff --git a/icons/turf/walls/shuttle_wall.dmi b/icons/turf/walls/shuttle_wall.dmi deleted file mode 100644 index c96b087f77f..00000000000 Binary files a/icons/turf/walls/shuttle_wall.dmi and /dev/null differ diff --git a/icons/turf/walls/silver_wall.dmi b/icons/turf/walls/silver_wall.dmi deleted file mode 100644 index f0f170fdfe3..00000000000 Binary files a/icons/turf/walls/silver_wall.dmi and /dev/null differ diff --git a/icons/turf/walls/snow_wall.dmi b/icons/turf/walls/snow_wall.dmi deleted file mode 100644 index 833f7245e46..00000000000 Binary files a/icons/turf/walls/snow_wall.dmi and /dev/null differ diff --git a/icons/turf/walls/solid_wall.dmi b/icons/turf/walls/solid_wall.dmi new file mode 100644 index 00000000000..cb68120cc26 Binary files /dev/null and b/icons/turf/walls/solid_wall.dmi differ diff --git a/icons/turf/walls/solid_wall_reinforced.dmi b/icons/turf/walls/solid_wall_reinforced.dmi new file mode 100644 index 00000000000..d92d558c3bd Binary files /dev/null and b/icons/turf/walls/solid_wall_reinforced.dmi differ diff --git a/icons/turf/walls/stone_wall.dmi b/icons/turf/walls/stone_wall.dmi new file mode 100644 index 00000000000..5e2e4da98c1 Binary files /dev/null and b/icons/turf/walls/stone_wall.dmi differ diff --git a/icons/turf/walls/survival_pod_walls.dmi b/icons/turf/walls/survival_pod_walls.dmi deleted file mode 100644 index 01700f1ed6f..00000000000 Binary files a/icons/turf/walls/survival_pod_walls.dmi and /dev/null differ diff --git a/icons/turf/walls/wall.dmi b/icons/turf/walls/wall.dmi deleted file mode 100644 index fd48b11b9b1..00000000000 Binary files a/icons/turf/walls/wall.dmi and /dev/null differ diff --git a/icons/turf/walls/wall_stripe.dmi b/icons/turf/walls/wall_stripe.dmi new file mode 100644 index 00000000000..6da8aa92293 Binary files /dev/null and b/icons/turf/walls/wall_stripe.dmi differ diff --git a/icons/turf/walls/wood_wall.dmi b/icons/turf/walls/wood_wall.dmi index 60b785c5030..c72f87d282c 100644 Binary files a/icons/turf/walls/wood_wall.dmi and b/icons/turf/walls/wood_wall.dmi differ diff --git a/icons/turf/walls/wood_wall_stripe.dmi b/icons/turf/walls/wood_wall_stripe.dmi new file mode 100644 index 00000000000..e539322de7c Binary files /dev/null and b/icons/turf/walls/wood_wall_stripe.dmi differ diff --git a/modular_pariah/modules/GAGS/greyscale_configs.dm b/modular_pariah/modules/GAGS/greyscale_configs.dm index 3ace0280fb0..b4a15a3917a 100644 --- a/modular_pariah/modules/GAGS/greyscale_configs.dm +++ b/modular_pariah/modules/GAGS/greyscale_configs.dm @@ -30,146 +30,10 @@ name = "Beret With Fancy Badge Worn" json_config = 'modular_pariah/modules/GAGS/json_configs/beret/beret_badge_fancy_worn.json' -//MUSHROOM CAP - -/datum/greyscale_config/mushcap - name = "Mushroom Cap" - icon_file = 'modular_pariah/modules/GAGS/icons/mushcap.dmi' - json_config = 'modular_pariah/modules/GAGS/json_configs/mush_cap/mushcap.json' - -/datum/greyscale_config/mushcap/worn - name = "Mushroom Cap Worn" - json_config = 'modular_pariah/modules/GAGS/json_configs/mush_cap/mushcap_worn.json' - -// FLATCAP - -/datum/greyscale_config/flatcap - name = "Flat Cap" - icon_file = 'modular_pariah/modules/GAGS/icons/hats.dmi' - json_config = 'modular_pariah/modules/GAGS/json_configs/flatcap/flatcap.json' - -/datum/greyscale_config/flatcap/worn - name = "Flat Cap (Worn)" - icon_file = 'modular_pariah/modules/GAGS/icons/hats.dmi' - json_config = 'modular_pariah/modules/GAGS/json_configs/flatcap/flatcap_worn.json' - -// FLOWER PIN - -/datum/greyscale_config/flowerpin - name = "Flower Pin" - icon_file = 'modular_pariah/modules/GAGS/icons/hats.dmi' - json_config = 'modular_pariah/modules/GAGS/json_configs/flowerpin/flowerpin.json' - -/datum/greyscale_config/flowerpin/worn - name = "Flower Pin (Worn)" - icon_file = 'modular_pariah/modules/GAGS/icons/hats.dmi' - json_config = 'modular_pariah/modules/GAGS/json_configs/flowerpin/flowerpin_worn.json' - -/* -* MASKS -*/ - -// CLOWN -/datum/greyscale_config/clown_mask - name = "Colourable Clown Mask" - icon_file = 'modular_pariah/modules/GAGS/icons/clown_mask.dmi' - json_config = 'modular_pariah/modules/GAGS/json_configs/clown_mask/clown_mask.json' - -/datum/greyscale_config/clown_mask/worn - name = "Colourable Clown Mask (Worn)" - json_config = 'modular_pariah/modules/GAGS/json_configs/clown_mask/clown_mask_worn.json' - - -/* -* NECK -*/ - -// RANGER PONCHO -/datum/greyscale_config/ranger_poncho - name = "Ranger Poncho" - icon_file = 'modular_pariah/modules/GAGS/icons/ranger_poncho.dmi' - json_config = 'modular_pariah/modules/GAGS/json_configs/ranger_poncho/ranger_poncho.json' - -/datum/greyscale_config/ranger_poncho/worn - name = "Ranger Poncho Worn" - json_config = 'modular_pariah/modules/GAGS/json_configs/ranger_poncho/ranger_poncho_worn.json' - -// CLOAKS -/datum/greyscale_config/cloak - name = "Cloak" - icon_file = 'modular_pariah/modules/GAGS/icons/cloak.dmi' - json_config = 'modular_pariah/modules/GAGS/json_configs/cloak/cloak.json' - -/datum/greyscale_config/cloak/worn - name = "Cloak Worn" - json_config = 'modular_pariah/modules/GAGS/json_configs/cloak/cloak_worn.json' - -/datum/greyscale_config/cloak/veil - name = "Veil" - json_config = 'modular_pariah/modules/GAGS/json_configs/cloak/veil.json' - -/datum/greyscale_config/cloak/veil/worn - name = "Veil Worn" - json_config = 'modular_pariah/modules/GAGS/json_configs/cloak/veil_worn.json' - -/datum/greyscale_config/cloak/boat - name = "Boatcloak" - json_config = 'modular_pariah/modules/GAGS/json_configs/cloak/boat.json' - -/datum/greyscale_config/cloak/boat/worn - name = "Boatcloak Worn" - json_config = 'modular_pariah/modules/GAGS/json_configs/cloak/boat_worn.json' - -/datum/greyscale_config/cloak/shroud - name = "Shroud" - json_config = 'modular_pariah/modules/GAGS/json_configs/cloak/shroud.json' - -/datum/greyscale_config/cloak/shroud/worn - name = "Shroud Worn" - json_config = 'modular_pariah/modules/GAGS/json_configs/cloak/shroud_worn.json' - /* * SUITS */ -// FANCY SUITS -/datum/greyscale_config/fancy_suit - name = "Fancy Suit" - icon_file = 'modular_pariah/modules/GAGS/icons/fancy_suits.dmi' - json_config = 'modular_pariah/modules/GAGS/json_configs/fancy_suits/fancy_suit.json' - -/datum/greyscale_config/fancy_suit/worn - name = "Fancy Suit Worn" - json_config = 'modular_pariah/modules/GAGS/json_configs/fancy_suits/fancy_suit_worn.json' - -// HOODIES -/datum/greyscale_config/hoodie - name = "Hoodie" - icon_file = 'modular_pariah/modules/GAGS/icons/hoodie.dmi' - json_config = 'modular_pariah/modules/GAGS/json_configs/hoodie/hoodie.json' - -/datum/greyscale_config/hoodie/worn - name = "Hoodie Worn" - json_config = 'modular_pariah/modules/GAGS/json_configs/hoodie/hoodie_worn.json' - -/datum/greyscale_config/hoodie_trim - name = "Trimmed Hoodie" - icon_file = 'modular_pariah/modules/GAGS/icons/hoodie.dmi' - json_config = 'modular_pariah/modules/GAGS/json_configs/hoodie/hoodie_trim.json' - -/datum/greyscale_config/hoodie_trim/worn - name = "Trimmed Hoodie Worn" - json_config = 'modular_pariah/modules/GAGS/json_configs/hoodie/hoodie_trim_worn.json' - -/datum/greyscale_config/hoodie_branded - name = "Branded Hoodie" - icon_file = 'modular_pariah/modules/GAGS/icons/hoodie.dmi' - json_config = 'modular_pariah/modules/GAGS/json_configs/hoodie/hoodie_branded.json' - -/datum/greyscale_config/hoodie_branded/worn - name = "Branded Hoodie Worn" - json_config = 'modular_pariah/modules/GAGS/json_configs/hoodie/hoodie_branded_worn.json' - // JUMPSUITS /datum/greyscale_config/jumpsuit_worn/digitigrade @@ -180,17 +44,6 @@ name = "Worn Prison Jumpsuit - Digitigrade" icon_file = 'modular_pariah/modules/GAGS/icons/jumpsuit_digi.dmi' -// KILT - -/datum/greyscale_config/kilt - name = "Kilt" - icon_file = 'modular_pariah/modules/GAGS/icons/kilt.dmi' - json_config = 'modular_pariah/modules/GAGS/json_configs/kilt/kilt.json' - -/datum/greyscale_config/kilt/worn - name = "Kilt (Worn)" - json_config = 'modular_pariah/modules/GAGS/json_configs/kilt/kilt_worn.json' - /* * SHOES */ diff --git a/modular_pariah/modules/GAGS/json_configs/beret/beret.json b/modular_pariah/modules/GAGS/json_configs/beret/beret.json index f7ee848d264..9e9fdd57247 100644 --- a/modular_pariah/modules/GAGS/json_configs/beret/beret.json +++ b/modular_pariah/modules/GAGS/json_configs/beret/beret.json @@ -1,18 +1,26 @@ { - "beret": [ - { - "type": "icon_state", - "icon_state": "beret", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "beret_flat": [ - { - "type": "icon_state", - "icon_state": "beret_flat", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "beret": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "beret", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + }, + "beret_flat": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "beret_flat", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + } } diff --git a/modular_pariah/modules/GAGS/json_configs/beret/beret_badge.json b/modular_pariah/modules/GAGS/json_configs/beret/beret_badge.json index 193c4625706..30d86d5dc77 100644 --- a/modular_pariah/modules/GAGS/json_configs/beret/beret_badge.json +++ b/modular_pariah/modules/GAGS/json_configs/beret/beret_badge.json @@ -1,72 +1,92 @@ { - "beret_badge": [ - { - "type": "icon_state", - "icon_state": "beret", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "badge", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ], - "beret_badge_bolt": [ - { - "type": "icon_state", - "icon_state": "beret", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "badge_fancy_twist_second", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ], - "beret_badge_med": [ - { - "type": "icon_state", - "icon_state": "beret", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "badge_med", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ], - "beret_badge_engi": [ - { - "type": "icon_state", - "icon_state": "beret", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "badge_engi", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ], - "beret_badge_police": [ - { - "type": "icon_state", - "icon_state": "beret", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "badge_police", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] + "beret_badge": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "beret", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] + }, + "beret_badge_bolt": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "beret", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge_fancy_twist_second", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] + }, + "beret_badge_med": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "beret", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge_med", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] + }, + "beret_badge_engi": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "beret", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge_engi", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] + }, + "beret_badge_police": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "beret", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge_police", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] + } } diff --git a/modular_pariah/modules/GAGS/json_configs/beret/beret_badge_fancy.json b/modular_pariah/modules/GAGS/json_configs/beret/beret_badge_fancy.json index 0fafdc77714..96526f263a4 100644 --- a/modular_pariah/modules/GAGS/json_configs/beret/beret_badge_fancy.json +++ b/modular_pariah/modules/GAGS/json_configs/beret/beret_badge_fancy.json @@ -1,62 +1,74 @@ { - "beret_badge_fancy": [ - { - "type": "icon_state", - "icon_state": "beret", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "badge_fancy_first", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "badge_fancy_second", - "blend_mode": "overlay", - "color_ids": [ 3 ] - } - ], - "beret_badge_fancy_diagonal": [ - { - "type": "icon_state", - "icon_state": "beret", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "badge_fancy_diagonal_first", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "badge_fancy_diagonal_second", - "blend_mode": "overlay", - "color_ids": [ 3 ] - } - ], - "beret_badge_fancy_twist": [ - { - "type": "icon_state", - "icon_state": "beret", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "badge_fancy_twist_first", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "badge_fancy_twist_second", - "blend_mode": "overlay", - "color_ids": [ 3 ] - } - ] + "beret_badge_fancy": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "beret", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge_fancy_first", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "badge_fancy_second", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] + }, + "beret_badge_fancy_diagonal": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "beret", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge_fancy_diagonal_first", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "badge_fancy_twist_second", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] + }, + "beret_badge_fancy_twist": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "beret", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge_fancy_twist_first", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "badge_fancy_twist_second", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] + } } diff --git a/modular_pariah/modules/GAGS/json_configs/beret/beret_badge_fancy_worn.json b/modular_pariah/modules/GAGS/json_configs/beret/beret_badge_fancy_worn.json index 11db050e207..1db3e954b7a 100644 --- a/modular_pariah/modules/GAGS/json_configs/beret/beret_badge_fancy_worn.json +++ b/modular_pariah/modules/GAGS/json_configs/beret/beret_badge_fancy_worn.json @@ -1,60 +1,74 @@ { - "beret_badge_fancy": [ - { - "type": "icon_state", - "icon_state": "beret_worn", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "badge_fancy_first_worn", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "badge_fancy_second_worn", - "blend_mode": "overlay", - "color_ids": [ 3 ] - } - ],"beret_badge_fancy_diagonal": [ - { - "type": "icon_state", - "icon_state": "beret_worn", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "badge_fancy_first_worn", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "badge_fancy_second_worn", - "blend_mode": "overlay", - "color_ids": [ 3 ] - } - ],"beret_badge_fancy_twist": [ - { - "type": "icon_state", - "icon_state": "beret_worn", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "badge_fancy_first_worn", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "badge_fancy_second_worn", - "blend_mode": "overlay", - "color_ids": [ 3 ] - } - ] + "beret_badge_fancy": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "beret_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge_fancy_first_worn", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "badge_fancy_second_worn", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] + }, + "beret_badge_fancy_diagonal": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "beret_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge_fancy_first_worn", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "badge_fancy_second_worn", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] + }, + "beret_badge_fancy_twist": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "beret_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge_fancy_first_worn", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "badge_fancy_second_worn", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] + } } diff --git a/modular_pariah/modules/GAGS/json_configs/beret/beret_badge_worn.json b/modular_pariah/modules/GAGS/json_configs/beret/beret_badge_worn.json index 19578536e5d..e4c1bc17e06 100644 --- a/modular_pariah/modules/GAGS/json_configs/beret/beret_badge_worn.json +++ b/modular_pariah/modules/GAGS/json_configs/beret/beret_badge_worn.json @@ -1,72 +1,92 @@ { - "beret_badge": [ - { - "type": "icon_state", - "icon_state": "beret_worn", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "badge_worn", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ], - "beret_badge_bolt": [ - { - "type": "icon_state", - "icon_state": "beret_worn", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "badge_worn", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ], - "beret_badge_med": [ - { - "type": "icon_state", - "icon_state": "beret_worn", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "badge_worn", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ], - "beret_badge_engi": [ - { - "type": "icon_state", - "icon_state": "beret_worn", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "badge_worn", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ], - "beret_badge_police": [ - { - "type": "icon_state", - "icon_state": "beret_worn", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "badge_worn", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] + "beret_badge": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "beret_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge_worn", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] + }, + "beret_badge_bolt": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "beret_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge_worn", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] + }, + "beret_badge_med": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "beret_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge_worn", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] + }, + "beret_badge_engi": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "beret_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge_worn", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] + }, + "beret_badge_police": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "beret_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge_worn", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] + } } diff --git a/modular_pariah/modules/GAGS/json_configs/beret/beret_worn.json b/modular_pariah/modules/GAGS/json_configs/beret/beret_worn.json index 8509136e53a..9924102d195 100644 --- a/modular_pariah/modules/GAGS/json_configs/beret/beret_worn.json +++ b/modular_pariah/modules/GAGS/json_configs/beret/beret_worn.json @@ -1,18 +1,26 @@ { - "beret": [ - { - "type": "icon_state", - "icon_state": "beret_worn", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "beret_flat": [ - { - "type": "icon_state", - "icon_state": "beret_worn", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "beret": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "beret_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + }, + "beret_flat": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "beret_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + } } diff --git a/modular_pariah/modules/GAGS/json_configs/cloak/boat.json b/modular_pariah/modules/GAGS/json_configs/cloak/boat.json deleted file mode 100644 index bd36d48c9df..00000000000 --- a/modular_pariah/modules/GAGS/json_configs/cloak/boat.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "gags_boat": [ - { - "type": "icon_state", - "icon_state": "boat_obj", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "boat_pattern_obj", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "boat_trim_obj", - "blend_mode": "overlay", - "color_ids": [ 3 ] - } - ] -} diff --git a/modular_pariah/modules/GAGS/json_configs/cloak/boat_worn.json b/modular_pariah/modules/GAGS/json_configs/cloak/boat_worn.json deleted file mode 100644 index f7f1fbdd007..00000000000 --- a/modular_pariah/modules/GAGS/json_configs/cloak/boat_worn.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "gags_boat": [ - { - "type": "icon_state", - "icon_state": "boat_mob", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "boat_pattern_mob", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "boat_trim_mob", - "blend_mode": "overlay", - "color_ids": [ 3 ] - } - ] -} diff --git a/modular_pariah/modules/GAGS/json_configs/cloak/cloak.json b/modular_pariah/modules/GAGS/json_configs/cloak/cloak.json deleted file mode 100644 index c5801b413cd..00000000000 --- a/modular_pariah/modules/GAGS/json_configs/cloak/cloak.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "gags_cloak": [ - { - "type": "icon_state", - "icon_state": "cloak_obj", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "cloak_pattern_obj", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "cloak_trim_obj", - "blend_mode": "overlay", - "color_ids": [ 3 ] - } - ] -} diff --git a/modular_pariah/modules/GAGS/json_configs/cloak/cloak_worn.json b/modular_pariah/modules/GAGS/json_configs/cloak/cloak_worn.json deleted file mode 100644 index ad615c69bfa..00000000000 --- a/modular_pariah/modules/GAGS/json_configs/cloak/cloak_worn.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "gags_cloak": [ - { - "type": "icon_state", - "icon_state": "cloak_mob", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "cloak_pattern_mob", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "cloak_trim_mob", - "blend_mode": "overlay", - "color_ids": [ 3 ] - } - ] -} diff --git a/modular_pariah/modules/GAGS/json_configs/cloak/shroud.json b/modular_pariah/modules/GAGS/json_configs/cloak/shroud.json deleted file mode 100644 index 222c5d133bd..00000000000 --- a/modular_pariah/modules/GAGS/json_configs/cloak/shroud.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "gags_shroud": [ - { - "type": "icon_state", - "icon_state": "shroud_obj", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "shroud_pattern_obj", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "shroud_trim_obj", - "blend_mode": "overlay", - "color_ids": [ 3 ] - } - ] -} diff --git a/modular_pariah/modules/GAGS/json_configs/cloak/shroud_worn.json b/modular_pariah/modules/GAGS/json_configs/cloak/shroud_worn.json deleted file mode 100644 index ebd8ab86d70..00000000000 --- a/modular_pariah/modules/GAGS/json_configs/cloak/shroud_worn.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "gags_shroud": [ - { - "type": "icon_state", - "icon_state": "shroud_mob", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "shroud_pattern_mob", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "shroud_trim_mob", - "blend_mode": "overlay", - "color_ids": [ 3 ] - } - ] -} diff --git a/modular_pariah/modules/GAGS/json_configs/cloak/veil.json b/modular_pariah/modules/GAGS/json_configs/cloak/veil.json deleted file mode 100644 index 87da07ffe9d..00000000000 --- a/modular_pariah/modules/GAGS/json_configs/cloak/veil.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "gags_veil": [ - { - "type": "icon_state", - "icon_state": "veil_obj", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "veil_pattern_obj", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "veil_trim_obj", - "blend_mode": "overlay", - "color_ids": [ 3 ] - } - ] -} diff --git a/modular_pariah/modules/GAGS/json_configs/cloak/veil_worn.json b/modular_pariah/modules/GAGS/json_configs/cloak/veil_worn.json deleted file mode 100644 index 48ecc28aa12..00000000000 --- a/modular_pariah/modules/GAGS/json_configs/cloak/veil_worn.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "gags_veil": [ - { - "type": "icon_state", - "icon_state": "veil_mob", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "veil_pattern_mob", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "veil_trim_mob", - "blend_mode": "overlay", - "color_ids": [ 3 ] - } - ] -} diff --git a/modular_pariah/modules/GAGS/json_configs/clown_mask/clown_mask.json b/modular_pariah/modules/GAGS/json_configs/clown_mask/clown_mask.json deleted file mode 100644 index b53e1a072df..00000000000 --- a/modular_pariah/modules/GAGS/json_configs/clown_mask/clown_mask.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "gags_mask": [ - { - "type": "icon_state", - "icon_state": "mask_obj", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "hair_obj", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "features_obj", - "blend_mode": "overlay", - "color_ids": [ 3 ] - }, - { - "type": "icon_state", - "icon_state": "eyes_obj", - "blend_mode": "overlay", - "color_ids": [ 4 ] - } - ] -} diff --git a/modular_pariah/modules/GAGS/json_configs/clown_mask/clown_mask_worn.json b/modular_pariah/modules/GAGS/json_configs/clown_mask/clown_mask_worn.json deleted file mode 100644 index 80bf4b835cc..00000000000 --- a/modular_pariah/modules/GAGS/json_configs/clown_mask/clown_mask_worn.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "gags_mask": [ - { - "type": "icon_state", - "icon_state": "mask_mob", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "hair_mob", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "features_mob", - "blend_mode": "overlay", - "color_ids": [ 3 ] - }, - { - "type": "icon_state", - "icon_state": "eyes_mob", - "blend_mode": "overlay", - "color_ids": [ 4 ] - } - ] -} diff --git a/modular_pariah/modules/GAGS/json_configs/fancy_suits/fancy_suit.json b/modular_pariah/modules/GAGS/json_configs/fancy_suits/fancy_suit.json deleted file mode 100644 index 190c44456ea..00000000000 --- a/modular_pariah/modules/GAGS/json_configs/fancy_suits/fancy_suit.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "fancy_suit": [ - { - "type": "icon_state", - "icon_state": "fancy_suit", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "fancy_suit_undershirt", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "fancy_suit_buttons", - "blend_mode": "overlay", - "color_ids": [ 3 ] - } - ] -} diff --git a/modular_pariah/modules/GAGS/json_configs/fancy_suits/fancy_suit_worn.json b/modular_pariah/modules/GAGS/json_configs/fancy_suits/fancy_suit_worn.json deleted file mode 100644 index c6e023f6d8c..00000000000 --- a/modular_pariah/modules/GAGS/json_configs/fancy_suits/fancy_suit_worn.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "fancy_suit": [ - { - "type": "icon_state", - "icon_state": "fancy_suit_worn", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "fancy_suit_undershirt_worn", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "fancy_suit_buttons_worn", - "blend_mode": "overlay", - "color_ids": [ 3 ] - } - ] -} diff --git a/modular_pariah/modules/GAGS/json_configs/flatcap/flatcap.json b/modular_pariah/modules/GAGS/json_configs/flatcap/flatcap.json deleted file mode 100644 index 758731a5a85..00000000000 --- a/modular_pariah/modules/GAGS/json_configs/flatcap/flatcap.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "flatcap": [ - { - "type": "icon_state", - "icon_state": "flatcap_obj", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] -} diff --git a/modular_pariah/modules/GAGS/json_configs/flatcap/flatcap_worn.json b/modular_pariah/modules/GAGS/json_configs/flatcap/flatcap_worn.json deleted file mode 100644 index 56c3467673e..00000000000 --- a/modular_pariah/modules/GAGS/json_configs/flatcap/flatcap_worn.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "flatcap": [ - { - "type": "icon_state", - "icon_state": "flatcap_mob", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] -} diff --git a/modular_pariah/modules/GAGS/json_configs/flowerpin/flowerpin.json b/modular_pariah/modules/GAGS/json_configs/flowerpin/flowerpin.json deleted file mode 100644 index c891b726a21..00000000000 --- a/modular_pariah/modules/GAGS/json_configs/flowerpin/flowerpin.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "flowerpin": [ - { - "type": "icon_state", - "icon_state": "flowerpin_obj", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] -} diff --git a/modular_pariah/modules/GAGS/json_configs/flowerpin/flowerpin_worn.json b/modular_pariah/modules/GAGS/json_configs/flowerpin/flowerpin_worn.json deleted file mode 100644 index 47aa98f431e..00000000000 --- a/modular_pariah/modules/GAGS/json_configs/flowerpin/flowerpin_worn.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "flowerpin": [ - { - "type": "icon_state", - "icon_state": "flowerpin_mob", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] -} diff --git a/modular_pariah/modules/GAGS/json_configs/hoodie/hoodie.json b/modular_pariah/modules/GAGS/json_configs/hoodie/hoodie.json deleted file mode 100644 index 2317c31ba00..00000000000 --- a/modular_pariah/modules/GAGS/json_configs/hoodie/hoodie.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "hoodie": [ - { - "type": "icon_state", - "icon_state": "hoodie_obj", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "hoodie_t": [ - { - "type": "icon_state", - "icon_state": "hoodie_obj", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] -} diff --git a/modular_pariah/modules/GAGS/json_configs/hoodie/hoodie_branded.json b/modular_pariah/modules/GAGS/json_configs/hoodie/hoodie_branded.json deleted file mode 100644 index b4e7afa6810..00000000000 --- a/modular_pariah/modules/GAGS/json_configs/hoodie/hoodie_branded.json +++ /dev/null @@ -1,134 +0,0 @@ -{ - "hoodie_NT": [ - { - "type": "icon_state", - "icon_state": "hoodie_obj", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "trim_obj", - "blend_mode": "overlay" - } - ], - "hoodie_NT_t": [ - { - "type": "icon_state", - "icon_state": "hoodie_obj", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "trim_obj", - "blend_mode": "overlay" - } - ], - "hoodie_NRTI": [ - { - "type": "icon_state", - "icon_state": "hoodie_obj", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "trim_alt_obj", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ], - "hoodie_NRTI_t": [ - { - "type": "icon_state", - "icon_state": "hoodie_obj", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "trim_alt_obj", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ], - "hoodie_MU": [ - { - "type": "icon_state", - "icon_state": "hoodie_obj", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "mu_logo_obj", - "blend_mode": "overlay" - } - ], - "hoodie_MU_t": [ - { - "type": "icon_state", - "icon_state": "hoodie_obj", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "mu_logo_obj", - "blend_mode": "overlay" - } - ], - "hoodie_CTI": [ - { - "type": "icon_state", - "icon_state": "hoodie_obj", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "cti_logo_obj", - "blend_mode": "overlay" - } - ], - "hoodie_CTI_t": [ - { - "type": "icon_state", - "icon_state": "hoodie_obj", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "cti_logo_obj", - "blend_mode": "overlay" - } - ], - "hoodie_SMW": [ - { - "type": "icon_state", - "icon_state": "hoodie_obj", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "smw_logo_obj", - "blend_mode": "overlay" - } - ], - "hoodie_SMW_t": [ - { - "type": "icon_state", - "icon_state": "hoodie_obj", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "smw_logo_obj", - "blend_mode": "overlay" - } - ] -} diff --git a/modular_pariah/modules/GAGS/json_configs/hoodie/hoodie_branded_worn.json b/modular_pariah/modules/GAGS/json_configs/hoodie/hoodie_branded_worn.json deleted file mode 100644 index d416bf96b1e..00000000000 --- a/modular_pariah/modules/GAGS/json_configs/hoodie/hoodie_branded_worn.json +++ /dev/null @@ -1,154 +0,0 @@ -{ - "hoodie_NT": [ - { - "type": "icon_state", - "icon_state": "hoodie", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "trim", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "nt_logo", - "blend_mode": "overlay" - } - ], - "hoodie_NT_t": [ - { - "type": "icon_state", - "icon_state": "hoodie_t", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "trim_t", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "nt_logo_t", - "blend_mode": "overlay" - } - ], - "hoodie_NRTI": [ - { - "type": "icon_state", - "icon_state": "hoodie", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "trim_alt", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "nrti_logo", - "blend_mode": "overlay" - } - ], - "hoodie_NRTI_t": [ - { - "type": "icon_state", - "icon_state": "hoodie_t", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "trim_alt_t", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "nrti_logo_t", - "blend_mode": "overlay" - } - ], - "hoodie_MU": [ - { - "type": "icon_state", - "icon_state": "hoodie", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "mu_logo", - "blend_mode": "overlay" - } - ], - "hoodie_MU_t": [ - { - "type": "icon_state", - "icon_state": "hoodie_t", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "mu_logo_t", - "blend_mode": "overlay" - } - ], - "hoodie_CTI": [ - { - "type": "icon_state", - "icon_state": "hoodie", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "cti_logo", - "blend_mode": "overlay" - } - ], - "hoodie_CTI_t": [ - { - "type": "icon_state", - "icon_state": "hoodie_t", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "cti_logo_t", - "blend_mode": "overlay" - } - ], - "hoodie_SMW": [ - { - "type": "icon_state", - "icon_state": "hoodie", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "smw_logo", - "blend_mode": "overlay" - } - ], - "hoodie_SMW_t": [ - { - "type": "icon_state", - "icon_state": "hoodie_t", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "smw_logo_t", - "blend_mode": "overlay" - } - ] -} diff --git a/modular_pariah/modules/GAGS/json_configs/hoodie/hoodie_trim.json b/modular_pariah/modules/GAGS/json_configs/hoodie/hoodie_trim.json deleted file mode 100644 index fb6613d855d..00000000000 --- a/modular_pariah/modules/GAGS/json_configs/hoodie/hoodie_trim.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "hoodie_trim": [ - { - "type": "icon_state", - "icon_state": "hoodie_obj", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "trim_obj", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ], - "hoodie_trim_t": [ - { - "type": "icon_state", - "icon_state": "hoodie_obj", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "trim_obj", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ], - "hoodie_trim_alt": [ - { - "type": "icon_state", - "icon_state": "hoodie_obj", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "trim_alt_obj", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ], - "hoodie_trim_alt_t": [ - { - "type": "icon_state", - "icon_state": "hoodie_obj", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "trim_alt_obj", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] -} diff --git a/modular_pariah/modules/GAGS/json_configs/hoodie/hoodie_trim_worn.json b/modular_pariah/modules/GAGS/json_configs/hoodie/hoodie_trim_worn.json deleted file mode 100644 index 236a62a2cdf..00000000000 --- a/modular_pariah/modules/GAGS/json_configs/hoodie/hoodie_trim_worn.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "hoodie_trim": [ - { - "type": "icon_state", - "icon_state": "hoodie", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "trim", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ], - "hoodie_trim_t": [ - { - "type": "icon_state", - "icon_state": "hoodie_t", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "trim_t", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ], - "hoodie_trim_alt": [ - { - "type": "icon_state", - "icon_state": "hoodie", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "trim_alt", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ], - "hoodie_trim_alt_t": [ - { - "type": "icon_state", - "icon_state": "hoodie_t", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "trim_alt_t", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] -} diff --git a/modular_pariah/modules/GAGS/json_configs/hoodie/hoodie_worn.json b/modular_pariah/modules/GAGS/json_configs/hoodie/hoodie_worn.json deleted file mode 100644 index 4122bdd059d..00000000000 --- a/modular_pariah/modules/GAGS/json_configs/hoodie/hoodie_worn.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "hoodie": [ - { - "type": "icon_state", - "icon_state": "hoodie", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ], - "hoodie_t": [ - { - "type": "icon_state", - "icon_state": "hoodie_t", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] -} diff --git a/modular_pariah/modules/GAGS/json_configs/kilt/kilt.json b/modular_pariah/modules/GAGS/json_configs/kilt/kilt.json deleted file mode 100644 index 94bbba667c2..00000000000 --- a/modular_pariah/modules/GAGS/json_configs/kilt/kilt.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "kilt": [ - { - "type": "icon_state", - "icon_state": "kilt_obj", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "kilt_top_obj", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] -} diff --git a/modular_pariah/modules/GAGS/json_configs/kilt/kilt_worn.json b/modular_pariah/modules/GAGS/json_configs/kilt/kilt_worn.json deleted file mode 100644 index 41a7a3832a5..00000000000 --- a/modular_pariah/modules/GAGS/json_configs/kilt/kilt_worn.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "kilt": [ - { - "type": "icon_state", - "icon_state": "kilt_mob", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "kilt_top_mob", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] -} diff --git a/modular_pariah/modules/GAGS/json_configs/mush_cap/mushcap.json b/modular_pariah/modules/GAGS/json_configs/mush_cap/mushcap.json deleted file mode 100644 index 5ca5a3e6fe2..00000000000 --- a/modular_pariah/modules/GAGS/json_configs/mush_cap/mushcap.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "mush_cap": [ - { - "type": "icon_state", - "icon_state": "mush_cap", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "mush_face", - "blend_mode": "overlay", - "color_ids": [] - } - ] -} diff --git a/modular_pariah/modules/GAGS/json_configs/mush_cap/mushcap_worn.json b/modular_pariah/modules/GAGS/json_configs/mush_cap/mushcap_worn.json deleted file mode 100644 index 9236835d3ca..00000000000 --- a/modular_pariah/modules/GAGS/json_configs/mush_cap/mushcap_worn.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "mush_cap": [ - { - "type": "icon_state", - "icon_state": "mush_cap_worn", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "mush_face_worn", - "blend_mode": "overlay", - "color_ids": [] - } - ] -} diff --git a/modular_pariah/modules/GAGS/json_configs/ranger_poncho/ranger_poncho.json b/modular_pariah/modules/GAGS/json_configs/ranger_poncho/ranger_poncho.json deleted file mode 100644 index 9dcd4115e07..00000000000 --- a/modular_pariah/modules/GAGS/json_configs/ranger_poncho/ranger_poncho.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "ranger_poncho": [ - { - "type": "icon_state", - "icon_state": "ranger_obj", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "trim_obj", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ], - "ranger_poncho_t": [ - { - "type": "icon_state", - "icon_state": "ranger_obj_t", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "trim_obj_t", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] -} diff --git a/modular_pariah/modules/GAGS/json_configs/ranger_poncho/ranger_poncho_worn.json b/modular_pariah/modules/GAGS/json_configs/ranger_poncho/ranger_poncho_worn.json deleted file mode 100644 index f35c691008f..00000000000 --- a/modular_pariah/modules/GAGS/json_configs/ranger_poncho/ranger_poncho_worn.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "ranger_poncho": [ - { - "type": "icon_state", - "icon_state": "ranger", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "trim", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ], - "ranger_poncho_t": [ - { - "type": "icon_state", - "icon_state": "ranger_t", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "trim_t", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] -} diff --git a/modular_pariah/modules/GAGS/json_configs/wraps/wraps.json b/modular_pariah/modules/GAGS/json_configs/wraps/wraps.json index c708d9526f7..a920c87121f 100644 --- a/modular_pariah/modules/GAGS/json_configs/wraps/wraps.json +++ b/modular_pariah/modules/GAGS/json_configs/wraps/wraps.json @@ -1,10 +1,14 @@ { - "clothwrap": [ - { - "type": "icon_state", - "icon_state": "wrap_obj", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "clothwrap": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "wrap_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + } } diff --git a/modular_pariah/modules/GAGS/json_configs/wraps/wraps_worn.json b/modular_pariah/modules/GAGS/json_configs/wraps/wraps_worn.json index 4d9f6d4a1d5..30600b0e02d 100644 --- a/modular_pariah/modules/GAGS/json_configs/wraps/wraps_worn.json +++ b/modular_pariah/modules/GAGS/json_configs/wraps/wraps_worn.json @@ -1,10 +1,14 @@ { - "clothwrap": [ - { - "type": "icon_state", - "icon_state": "wrap_mob", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] + "clothwrap": + { + "layers": + [ + { + "type": "icon_state", + "icon_state": "wrap_mob", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] + } } diff --git a/modular_pariah/modules/aesthetics/windows/code/windows.dm b/modular_pariah/modules/aesthetics/windows/code/windows.dm deleted file mode 100644 index bb9f422e79a..00000000000 --- a/modular_pariah/modules/aesthetics/windows/code/windows.dm +++ /dev/null @@ -1,27 +0,0 @@ -/obj/structure/window/fulltile - icon = 'modular_pariah/modules/aesthetics/windows/icons/window.dmi' - canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_AIRLOCK) - -/obj/structure/window/reinforced/fulltile - icon = 'modular_pariah/modules/aesthetics/windows/icons/r_window.dmi' - canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_AIRLOCK) - -/obj/structure/window/reinforced/tinted/fulltile - icon = 'modular_pariah/modules/aesthetics/windows/icons/r_window_tinted.dmi' - icon_state = "reinforced_window-0" - base_icon_state = "reinforced_window" - canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_AIRLOCK) - -/obj/structure/window/plasma/fulltile - icon = 'modular_pariah/modules/aesthetics/windows/icons/window_plasma.dmi' - icon_state = "window-0" - base_icon_state = "window" - canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_AIRLOCK) - -/obj/structure/window/reinforced/plasma/fulltile - icon = 'modular_pariah/modules/aesthetics/windows/icons/r_window_plasma.dmi' - icon_state = "reinforced_window-0" - base_icon_state = "reinforced_window" - canSmoothWith = list(SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_AIRLOCK) - -/obj/structure/window/reinforced/fulltile/ice diff --git a/modular_pariah/modules/aesthetics/windows/icons/r_window.dmi b/modular_pariah/modules/aesthetics/windows/icons/r_window.dmi deleted file mode 100644 index 7eeeb246284..00000000000 Binary files a/modular_pariah/modules/aesthetics/windows/icons/r_window.dmi and /dev/null differ diff --git a/modular_pariah/modules/aesthetics/windows/icons/r_window_plasma.dmi b/modular_pariah/modules/aesthetics/windows/icons/r_window_plasma.dmi deleted file mode 100644 index 8f86e2c3897..00000000000 Binary files a/modular_pariah/modules/aesthetics/windows/icons/r_window_plasma.dmi and /dev/null differ diff --git a/modular_pariah/modules/aesthetics/windows/icons/r_window_tinted.dmi b/modular_pariah/modules/aesthetics/windows/icons/r_window_tinted.dmi deleted file mode 100644 index fdbdde498cc..00000000000 Binary files a/modular_pariah/modules/aesthetics/windows/icons/r_window_tinted.dmi and /dev/null differ diff --git a/modular_pariah/modules/aesthetics/windows/icons/window.dmi b/modular_pariah/modules/aesthetics/windows/icons/window.dmi deleted file mode 100644 index 3f9d36a06a4..00000000000 Binary files a/modular_pariah/modules/aesthetics/windows/icons/window.dmi and /dev/null differ diff --git a/modular_pariah/modules/aesthetics/windows/icons/window_plasma.dmi b/modular_pariah/modules/aesthetics/windows/icons/window_plasma.dmi deleted file mode 100644 index 0842930bb9a..00000000000 Binary files a/modular_pariah/modules/aesthetics/windows/icons/window_plasma.dmi and /dev/null differ diff --git a/pariah.dme b/pariah.dme index 6a1b7546745..9059d59be87 100644 --- a/pariah.dme +++ b/pariah.dme @@ -61,6 +61,7 @@ #include "code\__DEFINES\cult.dm" #include "code\__DEFINES\database.dm" #include "code\__DEFINES\devices.dm" +#include "code\__DEFINES\direction_junctions.dm" #include "code\__DEFINES\directional.dm" #include "code\__DEFINES\diseases.dm" #include "code\__DEFINES\DNA.dm" @@ -84,6 +85,7 @@ #include "code\__DEFINES\fov.dm" #include "code\__DEFINES\ghost.dm" #include "code\__DEFINES\gravity.dm" +#include "code\__DEFINES\greyscale.dm" #include "code\__DEFINES\hud.dm" #include "code\__DEFINES\icon_smoothing.dm" #include "code\__DEFINES\id_cards.dm" @@ -707,8 +709,8 @@ #include "code\datums\components\codeword_hearing.dm" #include "code\datums\components\combustible_flooder.dm" #include "code\datums\components\connect_containers.dm" -#include "code\datums\components\connect_mob_behalf.dm" #include "code\datums\components\connect_loc_behalf.dm" +#include "code\datums\components\connect_mob_behalf.dm" #include "code\datums\components\connect_range.dm" #include "code\datums\components\construction.dm" #include "code\datums\components\conveyor_movement.dm" @@ -1014,6 +1016,7 @@ #include "code\datums\greyscale\_greyscale_config.dm" #include "code\datums\greyscale\json_reader.dm" #include "code\datums\greyscale\layer.dm" +#include "code\datums\greyscale\state.dm" #include "code\datums\greyscale\config_types\greyscale_configs.dm" #include "code\datums\greyscale\config_types\material_effects.dm" #include "code\datums\helper_datums\events.dm" @@ -1722,6 +1725,7 @@ #include "code\game\objects\structures\lattice.dm" #include "code\game\objects\structures\life_candle.dm" #include "code\game\objects\structures\loom.dm" +#include "code\game\objects\structures\low_wall.dm" #include "code\game\objects\structures\maintenance.dm" #include "code\game\objects\structures\memorial.dm" #include "code\game\objects\structures\mineral_doors.dm" @@ -1812,7 +1816,6 @@ #include "code\game\turfs\closed\_closed.dm" #include "code\game\turfs\closed\minerals.dm" #include "code\game\turfs\closed\walls.dm" -#include "code\game\turfs\closed\wall\material_walls.dm" #include "code\game\turfs\closed\wall\mineral_walls.dm" #include "code\game\turfs\closed\wall\misc_walls.dm" #include "code\game\turfs\closed\wall\reinf_walls.dm" @@ -4553,7 +4556,6 @@ #include "modular_pariah\modules\aesthetics\vending\access_vending.dm" #include "modular_pariah\modules\aesthetics\wallmed\code\wallmed.dm" #include "modular_pariah\modules\aesthetics\washing_machine\code\washing_machine.dm" -#include "modular_pariah\modules\aesthetics\windows\code\windows.dm" #include "modular_pariah\modules\alternative_job_titles\code\alt_job_titles.dm" #include "modular_pariah\modules\alternative_job_titles\code\job.dm" #include "modular_pariah\modules\announcer\code\baystation_announcer.dm"