From 0dbad157368e1e5e794a3b642554787b3c238cbf Mon Sep 17 00:00:00 2001 From: "Wowzewow (Wezzy)" <42310821+alsoandanswer@users.noreply.github.com> Date: Sun, 7 Feb 2021 22:45:36 +0800 Subject: [PATCH] Belt colors (#11050) rscadd: "Adds colorable belts." tweak: "Fannypacks are now recolorable." rscadd: "Belts now have a dedicated loadout section. --- aurorastation.dme | 1 + code/__defines/items_clothing.dm | 1 + code/__defines/mobs.dm | 1 + .../objects/items/weapons/storage/belt.dm | 117 ++++++++---------- .../preference_setup/loadout/loadout_belt.dm | 18 +++ .../loadout/loadout_utility.dm | 26 ---- .../mob/living/carbon/human/update_icons.dm | 57 +++++---- html/changelogs/wezzy_belt_colors.yml | 43 +++++++ icons/clothing/belts/fannypacks.dmi | Bin 3329 -> 795 bytes icons/mob/belt.dmi | Bin 10441 -> 10329 bytes icons/obj/clothing/belts.dmi | Bin 2612 -> 2576 bytes 11 files changed, 149 insertions(+), 115 deletions(-) create mode 100644 code/modules/client/preference_setup/loadout/loadout_belt.dm create mode 100644 html/changelogs/wezzy_belt_colors.yml diff --git a/aurorastation.dme b/aurorastation.dme index 843b28cc570..6487ea3ef52 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -1347,6 +1347,7 @@ #include "code\modules\client\preference_setup\loadout\loadout.dm" #include "code\modules\client\preference_setup\loadout\loadout_accessories.dm" #include "code\modules\client\preference_setup\loadout\loadout_augments.dm" +#include "code\modules\client\preference_setup\loadout\loadout_belt.dm" #include "code\modules\client\preference_setup\loadout\loadout_computer.dm" #include "code\modules\client\preference_setup\loadout\loadout_cosmetics.dm" #include "code\modules\client\preference_setup\loadout\loadout_ears.dm" diff --git a/code/__defines/items_clothing.dm b/code/__defines/items_clothing.dm index aaef3ed1617..35c45a0c1e9 100644 --- a/code/__defines/items_clothing.dm +++ b/code/__defines/items_clothing.dm @@ -101,6 +101,7 @@ #define slot_r_hand_str "slot_r_hand" #define slot_w_uniform_str "slot_w_uniform" #define slot_head_str "slot_head" +#define slot_belt_str "slot_belt" #define slot_wear_suit_str "slot_suit" #define slot_l_ear_str "slot_l_ear" #define slot_r_ear_str "slot_r_ear" diff --git a/code/__defines/mobs.dm b/code/__defines/mobs.dm index 0e35d176b31..f609c842c85 100644 --- a/code/__defines/mobs.dm +++ b/code/__defines/mobs.dm @@ -213,6 +213,7 @@ #define INV_R_HAND_DEF_ICON 'icons/mob/items/righthand.dmi' #define INV_W_UNIFORM_DEF_ICON 'icons/mob/uniform.dmi' #define INV_ACCESSORIES_DEF_ICON 'icons/mob/ties.dmi' +#define INV_BELT_DEF_ICON 'icons/mob/belt.dmi' #define INV_SUIT_DEF_ICON 'icons/mob/suit.dmi' #define INV_L_EAR_DEF_ICON 'icons/mob/l_ear.dmi' #define INV_R_EAR_DEF_ICON 'icons/mob/r_ear.dmi' diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index 40fdcac0842..0a60fea5778 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -12,24 +12,49 @@ attack_verb = list("whipped", "lashed", "disciplined") drop_sound = 'sound/items/drop/toolbelt.ogg' pickup_sound = 'sound/items/pickup/toolbelt.ogg' + var/flipped = FALSE + var/show_above_suit = FALSE - var/show_above_suit = 0 +/obj/item/storage/belt/proc/update_clothing_icon() + if(ismob(src.loc)) + var/mob/M = src.loc + M.update_inv_belt() /obj/item/storage/belt/verb/toggle_layer() set name = "Switch Belt Layer" set category = "Object" if(show_above_suit == -1) - to_chat(usr, "\The [src] cannot be worn above your suit!") + to_chat(usr, SPAN_NOTICE("\The [src] cannot be worn above your suit!")) return show_above_suit = !show_above_suit - update_icon() + update_clothing_icon() -/obj/item/storage/update_icon() - if (ismob(src.loc)) - var/mob/M = src.loc - M.update_inv_belt() +/obj/item/storage/belt/Initialize() + ..() + update_flip_verb() +/obj/item/storage/belt/proc/update_flip_verb() + if(("[initial(icon_state)]_flip") in icon_states(icon)) // Check for whether it has a flipped icon. Prevents invisible sprites. + verbs += /obj/item/storage/belt/proc/flipbelt + +/obj/item/storage/belt/proc/flipbelt(mob/user, var/self = TRUE) + set category = "Object" + set name = "Flip Belt" + set src in usr + + if(self) + if(use_check_and_message(user)) + return + else + if(use_check_and_message(user, self ? USE_ALLOW_NON_ADJACENT : 0)) + return + + flipped = !flipped + icon_state = "[initial(icon_state)][flipped ? "_flip" : ""]" + item_state = icon_state + to_chat(usr, SPAN_NOTICE("You change \the [src] to be [src.flipped ? "behind" : "in front of"] you.")) + update_clothing_icon() /obj/item/storage/belt/utility name = "tool-belt" //Carn: utility belt is nicer, but it bamboozles the text parsing. @@ -194,7 +219,7 @@ item_state = "champion" storage_slots = 1 can_hold = list( - "/obj/item/clothing/mask/luchador" + /obj/item/clothing/mask/luchador ) /obj/item/storage/belt/security/tactical @@ -413,29 +438,23 @@ ) /obj/item/storage/belt/fannypack - name = "leather fannypack" + name = "fannypack" desc = "A dorky fannypack for keeping small items in." icon = 'icons/clothing/belts/fannypacks.dmi' - icon_state = "fannypack_leather" - item_state = "fannypack_leather" + icon_state = "fannypack" + item_state = "fannypack" max_w_class = ITEMSIZE_SMALL contained_sprite = TRUE storage_slots = null max_storage_space = 8 - var/flipped = FALSE -/obj/item/storage/belt/fannypack/verb/ToggleFanny() - set name = "Adjust Fannypack" - set category = "Object" - set src in usr +/obj/item/storage/belt/fannypack/recolorable + icon_state = "fannypack_colorable" + item_state = "fannypack_colorable" - if(use_check_and_message(usr)) - return 0 - - flipped = !flipped - item_state = "[initial(icon_state)][flipped ? "_flipped" : ""]" - to_chat(usr, "You flip the belt [flipped ? "behind you" : "infront of you"].") - update_icon() +/obj/item/storage/belt/fannypack/recolorable/random/Initialize() + . = ..() + color = get_random_colour(TRUE) /obj/item/storage/belt/fannypack/component name = "component pouch" @@ -443,51 +462,6 @@ starts_with = list(/obj/item/toy/snappop/syndi = 3, /obj/item/reagent_containers/glass/beaker/vial/random/toxin = 2, /obj/item/storage/pill_bottle/dice = 1) max_storage_space = 14 -/obj/item/storage/belt/fannypack/black - name = "black fannypack" - icon_state = "fannypack_black" - item_state = "fannypack_black" - -/obj/item/storage/belt/fannypack/blue - name = "blue fannypack" - icon_state = "fannypack_blue" - item_state = "fannypack_blue" - -/obj/item/storage/belt/fannypack/cyan - name = "cyan fannypack" - icon_state = "fannypack_cyan" - item_state = "fannypack_cyan" - -/obj/item/storage/belt/fannypack/green - name = "green fannypack" - icon_state = "fannypack_green" - item_state = "fannypack_green" - -/obj/item/storage/belt/fannypack/orange - name = "orange fannypack" - icon_state = "fannypack_orange" - item_state = "fannypack_orange" - -/obj/item/storage/belt/fannypack/purple - name = "purple fannypack" - icon_state = "fannypack_purple" - item_state = "fannypack_purple" - -/obj/item/storage/belt/fannypack/red - name = "red fannypack" - icon_state = "fannypack_red" - item_state = "fannypack_red" - -/obj/item/storage/belt/fannypack/white - name = "white fannypack" - icon_state = "fannypack_white" - item_state = "fannypack_white" - -/obj/item/storage/belt/fannypack/yellow - name = "yellow fannypack" - icon_state = "fannypack_yellow" - item_state = "fannypack_yellow" - /obj/item/storage/belt/shumaila_buckle name = "hammer buckle belt" desc = "A leather belt adorned by a hammer shaped buckle, worn by priesthood and worshippers of Shumaila." @@ -501,3 +475,10 @@ Holy Village's most important buildings. When Mata'ke's original hunting party had done battle with the King of Rraknarr, her beloved was killed in the fighting. Ever since then \ she has resolved to be eternally chaste in dedication to him. She is an M'sai who is depicted wearing modest dresses and carrying a hammer on a belt. She is not known for having \ much combat prowess despite her position as head of the town watch but is a capable commander for defensive tactics." + +/obj/item/storage/belt/generic + name = "belt" + desc = "Only useful for holding up your pants." // Useless belt is useless. + icon_state = "belt" + item_state = "belt" + storage_slots = 0 diff --git a/code/modules/client/preference_setup/loadout/loadout_belt.dm b/code/modules/client/preference_setup/loadout/loadout_belt.dm new file mode 100644 index 00000000000..4d157c101c5 --- /dev/null +++ b/code/modules/client/preference_setup/loadout/loadout_belt.dm @@ -0,0 +1,18 @@ +/datum/gear/belt + display_name = "belt" + path = /obj/item/storage/belt/generic + slot = slot_belt + sort_category = "Belts" + flags = GEAR_HAS_COLOR_SELECTION + +/datum/gear/belt/fannypack + display_name = "fannypack" + cost = 2 + path = /obj/item/storage/belt/fannypack/recolorable + +/datum/gear/belt/toolbelt_alt + display_name = "tool-belt, alt" + cost = 0 + path = /obj/item/storage/belt/utility/alt + allowed_roles = list("Station Engineer", "Atmospheric Technician", "Chief Engineer", "Engineering Apprentice", "Roboticist") + flags = null diff --git a/code/modules/client/preference_setup/loadout/loadout_utility.dm b/code/modules/client/preference_setup/loadout/loadout_utility.dm index ce89460ef7b..2cdab346eee 100644 --- a/code/modules/client/preference_setup/loadout/loadout_utility.dm +++ b/code/modules/client/preference_setup/loadout/loadout_utility.dm @@ -79,32 +79,6 @@ display_name = "camera" path = /obj/item/device/camera -/datum/gear/utility/fannypack - display_name = "fannypack selection" - cost = 2 - path = /obj/item/storage/belt/fannypack - -/datum/gear/utility/fannypack/New() - ..() - var/list/fannys = list() - fannys["leather fannypack"] = /obj/item/storage/belt/fannypack - fannys["black fannypack"] = /obj/item/storage/belt/fannypack/black - fannys["blue fannypack"] = /obj/item/storage/belt/fannypack/blue - fannys["cyan fannypack"] = /obj/item/storage/belt/fannypack/cyan - fannys["green fannypack"] = /obj/item/storage/belt/fannypack/green - fannys["orange fannypack"] = /obj/item/storage/belt/fannypack/orange - fannys["purple fannypack"] = /obj/item/storage/belt/fannypack/purple - fannys["red fannypack"] = /obj/item/storage/belt/fannypack/red - fannys["white fannypack"] = /obj/item/storage/belt/fannypack/white - fannys["yellow fannypack"] = /obj/item/storage/belt/fannypack/yellow - gear_tweaks += new/datum/gear_tweak/path(fannys) - -/datum/gear/utility/toolbelt_alt - display_name = "tool-belt, alt" - cost = 0 - path = /obj/item/storage/belt/utility/alt - allowed_roles = list("Station Engineer", "Atmospheric Technician", "Chief Engineer", "Engineering Apprentice", "Roboticist") - /datum/gear/utility/himeo_kit display_name = "himean voidsuit kit" path = /obj/item/himeo_kit diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index e6c1683f075..5dfc9664abd 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -959,35 +959,42 @@ There are several things that need to be remembered: if (QDELING(src)) return - overlays_raw[BELT_LAYER] = null - overlays_raw[BELT_LAYER_ALT] = null - if(belt) - belt.screen_loc = ui_belt //TODO - var/t_state = belt.item_state - var/t_icon = belt.icon || belt.icon_state - var/image/standing + belt.screen_loc = ui_belt + var/image/result_layer = null + + //Determine the icon to use + var/t_icon = INV_BELT_DEF_ICON if(belt.contained_sprite) belt.auto_adapt_species(src) - t_state = "[UNDERSCORE_OR_NULL(belt.icon_species_tag)][belt.item_state][WORN_BELT]" - - if(belt.icon_override) - t_icon = belt.icon_override + var/t_state = "[UNDERSCORE_OR_NULL(belt.icon_species_tag)][belt.item_state][WORN_BELT]" + result_layer = image(belt.icon_override || belt.icon, t_state) else if(belt.icon_override) t_icon = belt.icon_override else if(belt.sprite_sheets && belt.sprite_sheets[GET_BODY_TYPE]) t_icon = belt.sprite_sheets[GET_BODY_TYPE] + else if(belt.item_icons && (slot_belt_str in belt.item_icons)) + t_icon = belt.item_icons[slot_belt_str] else - t_icon = 'icons/mob/belt.dmi' + t_icon = INV_BELT_DEF_ICON + + if(!result_layer) //Create the image + result_layer = image(t_icon, belt.icon_state) + + if(belt.color) + result_layer.color = belt.color + + result_layer.appearance_flags = RESET_ALPHA + var/image/worn_overlays = belt.worn_overlays(t_icon) + if(worn_overlays) + result_layer.overlays.Add(worn_overlays) - standing = image(t_icon, t_state) - standing.appearance_flags = RESET_ALPHA var/list/ovr if(belt.contents.len && istype(belt, /obj/item/storage/belt)) - ovr = list(standing) + ovr = list(result_layer) for(var/obj/item/i in belt.contents) var/c_state var/c_icon @@ -995,23 +1002,31 @@ There are several things that need to be remembered: c_state = "[UNDERSCORE_OR_NULL(i.icon_species_tag)][i.item_state][WORN_BELT]" c_icon = belt.icon_override || belt.icon else - c_icon = 'icons/mob/belt.dmi' + c_icon = INV_BELT_DEF_ICON c_state = i.item_state || i.icon_state var/image/belt_item_image = image(c_icon, c_state) + if(i.color) + belt_item_image.color = i.color belt_item_image.appearance_flags = RESET_ALPHA ovr += image(c_icon, c_state) - var/beltlayer = BELT_LAYER + var/belt_layer = BELT_LAYER if(istype(belt, /obj/item/storage/belt)) - var/obj/item/storage/belt/ubelt = belt - if(ubelt.show_above_suit) - beltlayer = BELT_LAYER_ALT + var/obj/item/storage/belt/B = belt + if(B.show_above_suit) + belt_layer = BELT_LAYER_ALT - overlays_raw[beltlayer] = ovr || standing + overlays_raw[belt_layer] = ovr || result_layer + else + overlays_raw[BELT_LAYER] = null + overlays_raw[BELT_LAYER_ALT] = null if(update_icons) update_icon() + if (QDELING(src)) + return + /mob/living/carbon/human/update_inv_wear_suit(var/update_icons=1) if (QDELING(src)) return diff --git a/html/changelogs/wezzy_belt_colors.yml b/html/changelogs/wezzy_belt_colors.yml new file mode 100644 index 00000000000..a4dfcd8fde2 --- /dev/null +++ b/html/changelogs/wezzy_belt_colors.yml @@ -0,0 +1,43 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: Wowzewow (Wezzy) + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Adds colorable belts." + - tweak: "Fannypacks are now recolorable." + - rscadd: "Belts now have a dedicated loadout section." \ No newline at end of file diff --git a/icons/clothing/belts/fannypacks.dmi b/icons/clothing/belts/fannypacks.dmi index 533bbff23d5d80eefbe2b974c87b6a473783778f..da496b1255bed6140fd7ccd46b19d4aa4831fbff 100644 GIT binary patch literal 795 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 diff --git a/icons/mob/belt.dmi b/icons/mob/belt.dmi index 010f909f544764fc8de5f9b2bf443b0020672286..5469d7a1ea9d8beb7b9882621d51cbb087380ca8 100644 GIT binary patch literal 10329 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 QJ6OW58C)&9a_`xH06r5XP5=M^ literal 10441 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 aH%zWRr}$%v8@qdo3K-}bL#lP0V*d{v#r{bE diff --git a/icons/obj/clothing/belts.dmi b/icons/obj/clothing/belts.dmi index 1f3b9184c361f98b67ebe1a10d1fe66217b3c002..54894f14c13b665538d363a9e24690b0ad6037ce 100644 GIT binary patch delta 2276 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