mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-24 05:30:05 +01:00
Custom Footstep Sounds Port (Nova Sector) (#5114)
## About The Pull Request First PR. All I know is that it works. Anyway, this PR ports customisable (barefoot) footstep sounds from Nova Sector. It incorporates the update PRs to the best of my very limited ability thanks to Artur. Various high heel footwear items are also updated with the additional footstep noises for the hell of it, going from 2 possible sounds to 4, reducing the looping effect. _Footstep options include:_ - Default - Shoes (shoe SFX while barefoot) - Highheels - Claws (Ian/similar mob SFX) - Hooves (New SFX added by PR) Files are distributed a little haphazardly. Some in the modular Zubbers folder, some in the old skyrat modular folder. I am lazy. Original PRs code was taken from (credit to https://github.com/Neocloudy for the first PR on Nova): 1. [https://github.com/NovaSector/NovaSector/pull/3404](url) 2. [https://github.com/NovaSector/NovaSector/pull/4475](url) 3. [https://github.com/NovaSector/NovaSector/pull/6035](url) ## Why It's Good For The Game I forgor to fill this out. Uhm. Customisation good I guess. Also stops SLAPPY SLAP HUMAN FLESH FEET NOISES despite being a robot etc. ## Proof Of Testing https://github.com/user-attachments/assets/aa1227fa-aea5-43f4-87a8-d52f65c752ce video WAS longer but had to cut significantly <details> <summary>Screenshots/Videos</summary> </details> ## Changelog 🆑 add: Ability to customise barefoot footstep sounds in character preference menu. /🆑 --------- Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com>
This commit is contained in:
@@ -1433,7 +1433,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/poster/contraband/korpstech, 32)
|
||||
|
||||
/obj/item/clothing/shoes/fancy_heels/drag/Initialize(mapload)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/squeak, list('modular_skyrat/modules/modular_items/lewd_items/sounds/highheel1.ogg' = 1, 'modular_skyrat/modules/modular_items/lewd_items/sounds/highheel2.ogg' = 1), 70)
|
||||
AddComponent(/datum/component/squeak, list('modular_zubbers/sound/effects/footstep/highheel1.ogg' = 1, 'modular_zubbers/sound/effects/footstep/highheel2.ogg' = 1, 'modular_zubbers/sound/effects/footstep/highheel3.ogg' = 1, 'modular_zubbers/sound/effects/footstep/highheel4.ogg' = 1), 70)
|
||||
|
||||
// Donation reward for Razurath
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
/obj/item/clothing/shoes/latex_heels/Initialize(mapload)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/squeak, list('modular_skyrat/modules/modular_items/lewd_items/sounds/highheel1.ogg' = 1, 'modular_skyrat/modules/modular_items/lewd_items/sounds/highheel2.ogg' = 1), 70)
|
||||
AddComponent(/datum/component/squeak, list('modular_zubbers/sound/effects/footstep/highheel1.ogg' = 1, 'modular_zubbers/sound/effects/footstep/highheel2.ogg' = 1, 'modular_zubbers/sound/effects/footstep/highheel3.ogg' = 1, 'modular_zubbers/sound/effects/footstep/highheel4.ogg' = 1), 70)
|
||||
|
||||
/obj/item/clothing/shoes/latex_heels/domina_heels
|
||||
name = "dominant heels"
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
/datum/preference/choiced/footstep_sound
|
||||
category = PREFERENCE_CATEGORY_SECONDARY_FEATURES
|
||||
savefile_identifier = PREFERENCE_CHARACTER
|
||||
savefile_key = "footstep_sound"
|
||||
|
||||
/datum/preference/choiced/footstep_sound/init_possible_values()
|
||||
return list("Default", "Shoes", "Highheels", "Claws", "Hooves")
|
||||
|
||||
/datum/preference/choiced/footstep_sound/create_default_value()
|
||||
return "Default"
|
||||
|
||||
/datum/preference/choiced/footstep_sound/apply_to_human(mob/living/carbon/human/target, value)
|
||||
if(value == "Default")
|
||||
return
|
||||
|
||||
/// Either use the TG footstep_type here, or specify a special_footstep_sounds list.
|
||||
/// special_footstep_sounds list formatting must be: list(list(sounds, go, here), volume, range modifier)
|
||||
/// Note: special_footstep_sounds will play the same effect on all turfs, but TG footstep sounds are very hardcoded
|
||||
/// so if you want a new custom set of sounds that's the least-painful method of adding them, with the caveat of not being able to
|
||||
/// support turf-based sounds.
|
||||
var/static/list/value_to_define = list(
|
||||
"Shoes" = FOOTSTEP_MOB_SHOE,
|
||||
"Claws" = FOOTSTEP_MOB_CLAW,
|
||||
"Highheels" = list(list(
|
||||
'modular_zubbers/sound/effects/footstep/highheel1.ogg',
|
||||
'modular_zubbers/sound/effects/footstep/highheel2.ogg',
|
||||
'modular_zubbers/sound/effects/footstep/highheel3.ogg',
|
||||
'modular_zubbers/sound/effects/footstep/highheel4.ogg'), 70, 1),
|
||||
"Hooves" = list(list(
|
||||
'modular_zubbers/sound/effects/footstep/hardhoof1.ogg',
|
||||
'modular_zubbers/sound/effects/footstep/hardhoof2.ogg',
|
||||
'modular_zubbers/sound/effects/footstep/hardhoof3.ogg',
|
||||
'modular_zubbers/sound/effects/footstep/hardhoof4.ogg'), 35, 1),
|
||||
)
|
||||
var/footstep_type = value_to_define[value]
|
||||
|
||||
var/obj/item/bodypart/leg/left_leg = target.get_bodypart(BODY_ZONE_L_LEG)
|
||||
var/obj/item/bodypart/leg/right_leg = target.get_bodypart(BODY_ZONE_R_LEG)
|
||||
if(islist(footstep_type))
|
||||
left_leg?.special_footstep_sounds = footstep_type
|
||||
right_leg?.special_footstep_sounds = footstep_type
|
||||
else
|
||||
left_leg?.footstep_type = footstep_type
|
||||
right_leg?.footstep_type = footstep_type
|
||||
|
||||
target.footstep_type = footstep_type // We are most likely going to have our legs get replaced during char creation immediately, so this is necessary to apply to any subsequent legs that get added.
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
/obj/item/clothing/shoes/heels/drag/lace/Initialize(mapload)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/squeak, list('modular_skyrat/modules/modular_items/lewd_items/sounds/highheel1.ogg' = 1, 'modular_skyrat/modules/modular_items/lewd_items/sounds/highheel2.ogg' = 1), 70)
|
||||
AddComponent(/datum/component/squeak, list('modular_zubbers/sound/effects/footstep/highheel1.ogg' = 1, 'modular_zubbers/sound/effects/footstep/highheel2.ogg' = 1, 'modular_zubbers/sound/effects/footstep/highheel3.ogg' = 1, 'modular_zubbers/sound/effects/footstep/highheel4.ogg' = 1), 70)
|
||||
|
||||
/obj/item/clothing/gloves/evening/lace
|
||||
name = "lace gloves"
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
/obj/item/clothing/shoes/latex_heels/bubber/clussy/mute/Initialize(mapload)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/squeak, list('modular_skyrat/modules/modular_items/lewd_items/sounds/highheel1.ogg' = 1, 'modular_skyrat/modules/modular_items/lewd_items/sounds/highheel2.ogg' = 1), 70)
|
||||
AddComponent(/datum/component/squeak, list('modular_zubbers/sound/effects/footstep/highheel1.ogg' = 1, 'modular_zubbers/sound/effects/footstep/highheel2.ogg' = 1, 'modular_zubbers/sound/effects/footstep/highheel3.ogg' = 1, 'modular_zubbers/sound/effects/footstep/highheel4.ogg' = 1), 70)
|
||||
|
||||
/obj/item/clothing/shoes/clown_shoes/bubber/jester
|
||||
name = "amazing jester shoes"
|
||||
|
||||
@@ -1,10 +1,22 @@
|
||||
/mob/living/carbon/human
|
||||
/// Quad eyes offset in pixels. Positive is up, negative is down. (Suggested to not go above 2 or below -2)
|
||||
var/quad_eyes_offset = 0
|
||||
/// Used for footstep type pref, to apply to any new legs that get added to this mob. Uses a var instead of checking prefs because there are a lot of clientless mob situations.
|
||||
var/footstep_type
|
||||
|
||||
|
||||
/mob/living/carbon/human/species/shadekin
|
||||
race = /datum/species/shadekin
|
||||
|
||||
// Just blanket apply the footstep pref on limb addition, it gets far too complicated otherwise as limbs are getting replaced more often than you'd think
|
||||
/obj/item/bodypart/leg/on_adding(mob/living/carbon/new_owner)
|
||||
. = ..()
|
||||
var/mob/living/carbon/human/human_owner = new_owner
|
||||
if(istype(human_owner) && human_owner.footstep_type)
|
||||
if(islist(human_owner.footstep_type))
|
||||
special_footstep_sounds = human_owner.footstep_type
|
||||
else
|
||||
footstep_type = human_owner.footstep_type
|
||||
|
||||
// This is expected to be called or used in situations where you already know the mob is dead
|
||||
/mob/living/carbon/human/proc/get_dnr()
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -9265,6 +9265,7 @@
|
||||
#include "modular_zubbers\code\modules\client\ssd.dm"
|
||||
#include "modular_zubbers\code\modules\client\autopunctuation\preferences.dm"
|
||||
#include "modular_zubbers\code\modules\client\flavor_text\flavor_text.dm"
|
||||
#include "modular_zubbers\code\modules\client\preferences\footstep_sound.dm"
|
||||
#include "modular_zubbers\code\modules\client\preferences\permanent_limp.dm"
|
||||
#include "modular_zubbers\code\modules\client\preferences\player_panel.dm"
|
||||
#include "modular_zubbers\code\modules\client\preferences\sounds.dm"
|
||||
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
import type { FeatureChoiced } from '../../base';
|
||||
import { FeatureDropdownInput } from '../../dropdowns';
|
||||
|
||||
export const footstep_sound: FeatureChoiced = {
|
||||
name: 'Footstep Sound',
|
||||
description: 'The type of sound you will make when you walk around barefoot.',
|
||||
component: FeatureDropdownInput,
|
||||
};
|
||||
Reference in New Issue
Block a user