From 757dfbbdc5676fb5f5bb72d77496c09b54b4d710 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Fri, 19 Jan 2018 03:28:06 +0000 Subject: [PATCH] Ports Aurora's floor tile color turf decals (For mappers) (#34492) * ports Aurora's floor tile color decals * replaces aurora's decals with new ones that actually have detail, renames turf_decal/corner to turf_decal/tile * corner > tile decal --- code/__DEFINES/colors.dm | 36 +++- code/game/objects/effects/decals/decal.dm | 162 +------------- .../objects/effects/decals/turfdecal/dirt.dm | 5 + .../effects/decals/turfdecal/markings.dm | 152 ++++++++++++++ .../effects/decals/turfdecal/tilecoloring.dm | 198 ++++++++++++++++++ icons/turf/decals.dmi | Bin 48465 -> 50787 bytes tgstation.dme | 3 + 7 files changed, 394 insertions(+), 162 deletions(-) create mode 100644 code/game/objects/effects/decals/turfdecal/dirt.dm create mode 100644 code/game/objects/effects/decals/turfdecal/markings.dm create mode 100644 code/game/objects/effects/decals/turfdecal/tilecoloring.dm diff --git a/code/__DEFINES/colors.dm b/code/__DEFINES/colors.dm index b8a9f0d6c4..d8f2658006 100644 --- a/code/__DEFINES/colors.dm +++ b/code/__DEFINES/colors.dm @@ -1,4 +1,38 @@ // This is eventualy for wjohn to add more color standardization stuff like I keep asking him >:( #define COLOR_INPUT_DISABLED "#F0F0F0" -#define COLOR_INPUT_ENABLED "#D3B5B5" \ No newline at end of file +#define COLOR_INPUT_ENABLED "#D3B5B5" + +#define COLOR_WHITE "#FFFFFF" +#define COLOR_SILVER "#C0C0C0" +#define COLOR_GRAY "#808080" +#define COLOR_FLOORTILE_GRAY "#8D8C8C" +#define COLOR_ALMOST_BLACK "#333333" +#define COLOR_BLACK "#000000" +#define COLOR_RED "#FF0000" +#define COLOR_RED_LIGHT "#FF3333" +#define COLOR_MAROON "#800000" +#define COLOR_YELLOW "#FFFF00" +#define COLOR_OLIVE "#808000" +#define COLOR_LIME "#00FF00" +#define COLOR_GREEN "#008000" +#define COLOR_CYAN "#00FFFF" +#define COLOR_TEAL "#008080" +#define COLOR_BLUE "#0000FF" +#define COLOR_BLUE_LIGHT "#33CCFF" +#define COLOR_NAVY "#000080" +#define COLOR_PINK "#FF00FF" +#define COLOR_PURPLE "#800080" +#define COLOR_ORANGE "#FF9900" +#define COLOR_BEIGE "#CEB689" +#define COLOR_BLUE_GRAY "#6A97B0" +#define COLOR_BROWN "#B19664" +#define COLOR_DARK_BROWN "#917448" +#define COLOR_DARK_ORANGE "#B95A00" +#define COLOR_GREEN_GRAY "#8DAF6A" +#define COLOR_RED_GRAY "#AA5F61" +#define COLOR_PALE_BLUE_GRAY "#8BBBD5" +#define COLOR_PALE_GREEN_GRAY "#AED18B" +#define COLOR_PALE_RED_GRAY "#CC9090" +#define COLOR_PALE_PURPLE_GRAY "#BDA2BA" +#define COLOR_PURPLE_GRAY "#A2819E" diff --git a/code/game/objects/effects/decals/decal.dm b/code/game/objects/effects/decals/decal.dm index 06c3b9a689..fed77da115 100644 --- a/code/game/objects/effects/decals/decal.dm +++ b/code/game/objects/effects/decals/decal.dm @@ -39,164 +39,4 @@ var/turf/T = loc if(!istype(T)) //you know this will happen somehow CRASH("Turf decal initialized in an object/nullspace") - T.AddComponent(/datum/component/decal, icon, icon_state, dir) - -/obj/effect/turf_decal/stripes/line - icon_state = "warningline" - -/obj/effect/turf_decal/stripes/end - icon_state = "warn_end" - -/obj/effect/turf_decal/stripes/corner - icon_state = "warninglinecorner" - -/obj/effect/turf_decal/stripes/box - icon_state = "warn_box" - -/obj/effect/turf_decal/stripes/full - icon_state = "warn_full" - -/obj/effect/turf_decal/stripes/asteroid/line - icon_state = "ast_warn" - -/obj/effect/turf_decal/stripes/asteroid/end - icon_state = "ast_warn_end" - -/obj/effect/turf_decal/stripes/asteroid/corner - icon_state = "ast_warn_corner" - -/obj/effect/turf_decal/stripes/asteroid/box - icon_state = "ast_warn_box" - -/obj/effect/turf_decal/stripes/asteroid/full - icon_state = "ast_warn_full" - -/obj/effect/turf_decal/stripes/white/line - icon_state = "warningline_white" - -/obj/effect/turf_decal/stripes/white/end - icon_state = "warn_end_white" - -/obj/effect/turf_decal/stripes/white/corner - icon_state = "warninglinecorner_white" - -/obj/effect/turf_decal/stripes/white/box - icon_state = "warn_box_white" - -/obj/effect/turf_decal/stripes/white/full - icon_state = "warn_full_white" - -/obj/effect/turf_decal/stripes/red/line - icon_state = "warningline_red" - -/obj/effect/turf_decal/stripes/red/end - icon_state = "warn_end_red" - -/obj/effect/turf_decal/stripes/red/corner - icon_state = "warninglinecorner_red" - -/obj/effect/turf_decal/stripes/red/box - icon_state = "warn_box_red" - -/obj/effect/turf_decal/stripes/red/full - icon_state = "warn_full_red" - -/obj/effect/turf_decal/delivery - icon_state = "delivery" - -/obj/effect/turf_decal/delivery/white - icon_state = "delivery_white" - -/obj/effect/turf_decal/delivery/red - icon_state = "delivery_red" - -/obj/effect/turf_decal/bot - icon_state = "bot" - -/obj/effect/turf_decal/bot/right - icon_state = "bot_right" - -/obj/effect/turf_decal/bot/left - icon_state = "bot_left" - -/obj/effect/turf_decal/bot_white - icon_state = "bot_white" - -/obj/effect/turf_decal/bot_white/right - icon_state = "bot_right_white" - -/obj/effect/turf_decal/bot_white/left - icon_state = "bot_left_white" - -/obj/effect/turf_decal/bot_red - icon_state = "bot_red" - -/obj/effect/turf_decal/bot_red/right - icon_state = "bot_right_red" - -/obj/effect/turf_decal/bot_red/left - icon_state = "bot_left_red" - -/obj/effect/turf_decal/loading_area - icon_state = "loadingarea" - -/obj/effect/turf_decal/loading_area/white - icon_state = "loadingarea_white" - -/obj/effect/turf_decal/loading_area/red - icon_state = "loadingarea_red" - -/obj/effect/turf_decal/sand - icon_state = "sandyfloor" - -/obj/effect/turf_decal/sand/plating - icon_state = "sandyplating" - -/obj/effect/turf_decal/plaque - icon_state = "plaque" - -/obj/effect/turf_decal/caution - icon_state = "caution" - -/obj/effect/turf_decal/caution/white - icon_state = "caution_white" - -/obj/effect/turf_decal/caution/red - icon_state = "caution_red" - -/obj/effect/turf_decal/caution/stand_clear - icon_state = "stand_clear" - -/obj/effect/turf_decal/caution/stand_clear/white - icon_state = "stand_clear_white" - -/obj/effect/turf_decal/caution/stand_clear/red - icon_state = "stand_clear_red" - -/obj/effect/turf_decal/arrows - icon_state = "arrows" - -/obj/effect/turf_decal/arrows/white - icon_state = "arrows_white" - -/obj/effect/turf_decal/arrows/red - icon_state = "arrows_red" - -/obj/effect/turf_decal/box - icon_state = "box" - -/obj/effect/turf_decal/box/corners - icon_state = "box_corners" - -/obj/effect/turf_decal/box/white - icon_state = "box_white" - -/obj/effect/turf_decal/box/white/corners - icon_state = "box_corners_white" - -/obj/effect/turf_decal/box/red - icon_state = "box_red" - -/obj/effect/turf_decal/box/red/corners - icon_state = "box_corners_red" - + T.AddComponent(/datum/component/decal, icon, icon_state, dir, CLEAN_GOD, color) diff --git a/code/game/objects/effects/decals/turfdecal/dirt.dm b/code/game/objects/effects/decals/turfdecal/dirt.dm new file mode 100644 index 0000000000..156c04d1ba --- /dev/null +++ b/code/game/objects/effects/decals/turfdecal/dirt.dm @@ -0,0 +1,5 @@ +/obj/effect/turf_decal/sand + icon_state = "sandyfloor" + +/obj/effect/turf_decal/sand/plating + icon_state = "sandyplating" diff --git a/code/game/objects/effects/decals/turfdecal/markings.dm b/code/game/objects/effects/decals/turfdecal/markings.dm new file mode 100644 index 0000000000..196d22b580 --- /dev/null +++ b/code/game/objects/effects/decals/turfdecal/markings.dm @@ -0,0 +1,152 @@ +/obj/effect/turf_decal/stripes/line + icon_state = "warningline" + +/obj/effect/turf_decal/stripes/end + icon_state = "warn_end" + +/obj/effect/turf_decal/stripes/corner + icon_state = "warninglinecorner" + +/obj/effect/turf_decal/stripes/box + icon_state = "warn_box" + +/obj/effect/turf_decal/stripes/full + icon_state = "warn_full" + +/obj/effect/turf_decal/stripes/asteroid/line + icon_state = "ast_warn" + +/obj/effect/turf_decal/stripes/asteroid/end + icon_state = "ast_warn_end" + +/obj/effect/turf_decal/stripes/asteroid/corner + icon_state = "ast_warn_corner" + +/obj/effect/turf_decal/stripes/asteroid/box + icon_state = "ast_warn_box" + +/obj/effect/turf_decal/stripes/asteroid/full + icon_state = "ast_warn_full" + +/obj/effect/turf_decal/stripes/white/line + icon_state = "warningline_white" + +/obj/effect/turf_decal/stripes/white/end + icon_state = "warn_end_white" + +/obj/effect/turf_decal/stripes/white/corner + icon_state = "warninglinecorner_white" + +/obj/effect/turf_decal/stripes/white/box + icon_state = "warn_box_white" + +/obj/effect/turf_decal/stripes/white/full + icon_state = "warn_full_white" + +/obj/effect/turf_decal/stripes/red/line + icon_state = "warningline_red" + +/obj/effect/turf_decal/stripes/red/end + icon_state = "warn_end_red" + +/obj/effect/turf_decal/stripes/red/corner + icon_state = "warninglinecorner_red" + +/obj/effect/turf_decal/stripes/red/box + icon_state = "warn_box_red" + +/obj/effect/turf_decal/stripes/red/full + icon_state = "warn_full_red" + +/obj/effect/turf_decal/delivery + icon_state = "delivery" + +/obj/effect/turf_decal/delivery/white + icon_state = "delivery_white" + +/obj/effect/turf_decal/delivery/red + icon_state = "delivery_red" + +/obj/effect/turf_decal/bot + icon_state = "bot" + +/obj/effect/turf_decal/bot/right + icon_state = "bot_right" + +/obj/effect/turf_decal/bot/left + icon_state = "bot_left" + +/obj/effect/turf_decal/bot_white + icon_state = "bot_white" + +/obj/effect/turf_decal/bot_white/right + icon_state = "bot_right_white" + +/obj/effect/turf_decal/bot_white/left + icon_state = "bot_left_white" + +/obj/effect/turf_decal/bot_red + icon_state = "bot_red" + +/obj/effect/turf_decal/bot_red/right + icon_state = "bot_right_red" + +/obj/effect/turf_decal/bot_red/left + icon_state = "bot_left_red" + +/obj/effect/turf_decal/loading_area + icon_state = "loadingarea" + +/obj/effect/turf_decal/loading_area/white + icon_state = "loadingarea_white" + +/obj/effect/turf_decal/loading_area/red + icon_state = "loadingarea_red" + +/obj/effect/turf_decal/caution + icon_state = "caution" + +/obj/effect/turf_decal/caution/white + icon_state = "caution_white" + +/obj/effect/turf_decal/caution/red + icon_state = "caution_red" + +/obj/effect/turf_decal/caution/stand_clear + icon_state = "stand_clear" + +/obj/effect/turf_decal/caution/stand_clear/white + icon_state = "stand_clear_white" + +/obj/effect/turf_decal/caution/stand_clear/red + icon_state = "stand_clear_red" + +/obj/effect/turf_decal/arrows + icon_state = "arrows" + +/obj/effect/turf_decal/arrows/white + icon_state = "arrows_white" + +/obj/effect/turf_decal/arrows/red + icon_state = "arrows_red" + +/obj/effect/turf_decal/box + icon_state = "box" + +/obj/effect/turf_decal/box/corners + icon_state = "box_corners" + +/obj/effect/turf_decal/box/white + icon_state = "box_white" + +/obj/effect/turf_decal/box/white/corners + icon_state = "box_corners_white" + +/obj/effect/turf_decal/box/red + icon_state = "box_red" + +/obj/effect/turf_decal/box/red/corners + icon_state = "box_corners_red" + +/obj/effect/turf_decal/plaque + icon_state = "plaque" diff --git a/code/game/objects/effects/decals/turfdecal/tilecoloring.dm b/code/game/objects/effects/decals/turfdecal/tilecoloring.dm new file mode 100644 index 0000000000..49af7a7ed7 --- /dev/null +++ b/code/game/objects/effects/decals/turfdecal/tilecoloring.dm @@ -0,0 +1,198 @@ +/obj/effect/turf_decal/tile + name = "tile decal" + icon_state = "corner_white_full" + +/obj/effect/turf_decal/tile/black + name = "black tile decal" + color = COLOR_ALMOST_BLACK + +/obj/effect/turf_decal/tile/black/diagonal + icon_state = "corner_white_diagonal" + +/obj/effect/turf_decal/tile/black/side + icon_state = "corner_white_side" + +/obj/effect/turf_decal/tile/black/corner + icon_state = "corner_white" + +/obj/effect/turf_decal/tile/blue + name = "blue tile decal" + color = COLOR_BLUE_GRAY + +/obj/effect/turf_decal/tile/blue/diagonal + icon_state = "corner_white_diagonal" + +/obj/effect/turf_decal/tile/blue/side + icon_state = "corner_white_side" + +/obj/effect/turf_decal/tile/blue/corner + icon_state = "corner_white" + +/obj/effect/turf_decal/tile/paleblue + name = "pale blue tile decal" + color = COLOR_PALE_BLUE_GRAY + +/obj/effect/turf_decal/tile/paleblue/diagonal + icon_state = "corner_white_diagonal" + +/obj/effect/turf_decal/tile/paleblue/side + icon_state = "corner_white_side" + +/obj/effect/turf_decal/tile/paleblue/corner + icon_state = "corner_white" + +/obj/effect/turf_decal/tile/green + name = "green tile decal" + color = COLOR_GREEN_GRAY + +/obj/effect/turf_decal/tile/green/diagonal + icon_state = "corner_white_diagonal" + +/obj/effect/turf_decal/tile/green/side + icon_state = "corner_white_side" + +/obj/effect/turf_decal/tile/green/corner + icon_state = "corner_white" + +/obj/effect/turf_decal/tile/lime + name = "lime tile decal" + color = COLOR_PALE_GREEN_GRAY + +/obj/effect/turf_decal/tile/lime/diagonal + icon_state = "corner_white_diagonal" + +/obj/effect/turf_decal/tile/lime/side + icon_state = "corner_white_side" + +/obj/effect/turf_decal/tile/lime/corner + icon_state = "corner_white" + +/obj/effect/turf_decal/tile/yellow + name = "yellow tile decal" + color = COLOR_BROWN + +/obj/effect/turf_decal/tile/yellow/diagonal + icon_state = "corner_white_diagonal" + +/obj/effect/turf_decal/tile/yellow/side + icon_state = "corner_white_side" + +/obj/effect/turf_decal/tile/yellow/corner + icon_state = "corner_white" + +/obj/effect/turf_decal/tile/beige + name = "beige tile decal" + color = COLOR_BEIGE + +/obj/effect/turf_decal/tile/beige/diagonal + icon_state = "corner_white_diagonal" + +/obj/effect/turf_decal/tile/beige/side + icon_state = "corner_white_side" + +/obj/effect/turf_decal/tile/beige/corner + icon_state = "corner_white" + +/obj/effect/turf_decal/tile/red + name = "red tile decal" + color = COLOR_RED_GRAY + +/obj/effect/turf_decal/tile/red/diagonal + icon_state = "corner_white_diagonal" + +/obj/effect/turf_decal/tile/red/side + icon_state = "corner_white_side" + +/obj/effect/turf_decal/tile/red/corner + icon_state = "corner_white" + +/obj/effect/turf_decal/tile/pink + name = "pink tile decal" + color = COLOR_PALE_RED_GRAY + +/obj/effect/turf_decal/tile/pink/diagonal + icon_state = "corner_white_diagonal" + +/obj/effect/turf_decal/tile/pink/side + icon_state = "corner_white_side" + +/obj/effect/turf_decal/tile/pink/corner + icon_state = "corner_white" + +/obj/effect/turf_decal/tile/purple + name = "purple tile decal" + color = COLOR_PURPLE_GRAY + +/obj/effect/turf_decal/tile/purple/diagonal + icon_state = "corner_white_diagonal" + +/obj/effect/turf_decal/tile/purple/side + icon_state = "corner_white_side" + +/obj/effect/turf_decal/tile/purple/corner + icon_state = "corner_white" + +/obj/effect/turf_decal/tile/mauve + name = "mauve tile decal" + color = COLOR_PALE_PURPLE_GRAY + +/obj/effect/turf_decal/tile/mauve/diagonal + icon_state = "corner_white_diagonal" + +/obj/effect/turf_decal/tile/mauve/side + icon_state = "corner_white_side" + +/obj/effect/turf_decal/tile/mauve/corner + icon_state = "corner_white" + +/obj/effect/turf_decal/tile/orange + name = "orange tile decal" + color = COLOR_DARK_ORANGE + +/obj/effect/turf_decal/tile/orange/diagonal + icon_state = "corner_white_diagonal" + +/obj/effect/turf_decal/tile/orange/side + icon_state = "corner_white_side" + +/obj/effect/turf_decal/tile/orange/corner + icon_state = "corner_white" + +/obj/effect/turf_decal/tile/brown + name = "brown tile decal" + color = COLOR_DARK_BROWN + +/obj/effect/turf_decal/tile/brown/diagonal + icon_state = "corner_white_diagonal" + +/obj/effect/turf_decal/tile/brown/side + icon_state = "corner_white_side" + +/obj/effect/turf_decal/tile/brown/corner + icon_state = "corner_white" + +/obj/effect/turf_decal/tile/white + name = "white tile decal" + icon_state = "corner_white" + +/obj/effect/turf_decal/tile/white/diagonal + icon_state = "corner_white_diagonal" + +/obj/effect/turf_decal/tile/white/side + icon_state = "corner_white_side" + +/obj/effect/turf_decal/tile/white/corner + icon_state = "corner_white" + +/obj/effect/turf_decal/tile/gray + name = "gray tile decal" + color = COLOR_FLOORTILE_GRAY + +/obj/effect/turf_decal/tile/gray/diagonal + icon_state = "corner_white_diagonal" + +/obj/effect/turf_decal/tile/gray/side + icon_state = "corner_white_side" + +/obj/effect/turf_decal/tile/gray/corner + icon_state = "corner_white" diff --git a/icons/turf/decals.dmi b/icons/turf/decals.dmi index 8de88bd2cadf76a6e188f946057b86ec36e01657..c5564051e400297ed9eced9d6b8ecfa49893e22e 100644 GIT binary patch literal 50787 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