diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 740d8e2fa1e..4afe699cfa7 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -1528,7 +1528,9 @@ if(!isbelly(loc)) //VOREStation Add - Belly fullscreens safety clear_fullscreen("belly") - //clear_fullscreen("belly2") //For multilayered stomachs. Not currently implemented. + clear_fullscreen("belly2") + clear_fullscreen("belly3") + clear_fullscreen("belly4") if(config.welder_vision) var/found_welder diff --git a/code/modules/vore/eating/belly_obj_vr.dm b/code/modules/vore/eating/belly_obj_vr.dm index 5ac779a8474..669da3b1018 100644 --- a/code/modules/vore/eating/belly_obj_vr.dm +++ b/code/modules/vore/eating/belly_obj_vr.dm @@ -167,8 +167,8 @@ var/disable_hud = FALSE var/colorization_enabled = FALSE var/belly_fullscreen_color = "#823232" - - + var/belly_fullscreen_color_secondary = "#428242" + var/belly_fullscreen_color_trinary = "#f0f0f0" //For serialization, keep this updated, required for bellies to save correctly. /obj/belly/vars_to_save() @@ -230,6 +230,8 @@ "belly_fullscreen", "disable_hud", "belly_fullscreen_color", + "belly_fullscreen_color_secondary", + "belly_fullscreen_color_trinary", "colorization_enabled", "egg_type", "save_digest_mode", @@ -316,6 +318,9 @@ if(isliving(thing) && !isbelly(thing.loc)) var/mob/living/L = thing L.clear_fullscreen("belly") + L.clear_fullscreen("belly2") + L.clear_fullscreen("belly3") + L.clear_fullscreen("belly4") if(L.hud_used) if(!L.hud_used.hud_shown) L.toggle_hud_vis() @@ -336,16 +341,25 @@ var/obj/screen/fullscreen/F = L.overlay_fullscreen("belly", /obj/screen/fullscreen/belly/colorized) F.icon_state = belly_fullscreen F.color = belly_fullscreen_color - /* //Allows for 'multilayered' stomachs. Currently not implemented. - if(b_multilayered) - var/obj/screen/fullscreen/F2 = L.overlay_fullscreen("belly2", /obj/screen/fullscreen/belly) - */ + if("[belly_fullscreen]_l1" in icon_states('icons/mob/screen_full_colorized_vore_overlays.dmi')) + var/obj/screen/fullscreen/F2 = L.overlay_fullscreen("belly2", /obj/screen/fullscreen/belly/colorized/overlay) + F2.icon_state = "[belly_fullscreen]_l1" + F2.color = belly_fullscreen_color_secondary + if("[belly_fullscreen]_l2" in icon_states('icons/mob/screen_full_colorized_vore_overlays.dmi')) + var/obj/screen/fullscreen/F3 = L.overlay_fullscreen("belly3", /obj/screen/fullscreen/belly/colorized/overlay) + F3.icon_state = "[belly_fullscreen]_l2" + F3.color = belly_fullscreen_color_trinary + if("[belly_fullscreen]_nc" in icon_states('icons/mob/screen_full_colorized_vore_overlays.dmi')) + var/obj/screen/fullscreen/F4 = L.overlay_fullscreen("belly4", /obj/screen/fullscreen/belly/colorized/overlay) + F4.icon_state = "[belly_fullscreen]_nc" else var/obj/screen/fullscreen/F = L.overlay_fullscreen("belly", /obj/screen/fullscreen/belly) F.icon_state = belly_fullscreen else L.clear_fullscreen("belly") - //L.clear_fullscreen("belly2") //Allows for 'multilayered' stomachs. Currently not implemented. + L.clear_fullscreen("belly2") + L.clear_fullscreen("belly3") + L.clear_fullscreen("belly4") if(disable_hud) if(L?.hud_used?.hud_shown) @@ -363,19 +377,31 @@ var/obj/screen/fullscreen/F = L.overlay_fullscreen("belly", /obj/screen/fullscreen/belly/colorized) F.icon_state = belly_fullscreen F.color = belly_fullscreen_color - /* //Allows for 'multilayered' stomachs. Currently not implemented. - if(b_multilayered) - var/obj/screen/fullscreen/F2 = L.overlay_fullscreen("belly2", /obj/screen/fullscreen/belly) - */ + if("[belly_fullscreen]_l1" in icon_states('icons/mob/screen_full_colorized_vore_overlays.dmi')) + var/obj/screen/fullscreen/F2 = L.overlay_fullscreen("belly2", /obj/screen/fullscreen/belly/colorized/overlay) + F2.icon_state = "[belly_fullscreen]_l1" + F2.color = belly_fullscreen_color_secondary + if("[belly_fullscreen]_l2" in icon_states('icons/mob/screen_full_colorized_vore_overlays.dmi')) + var/obj/screen/fullscreen/F3 = L.overlay_fullscreen("belly3", /obj/screen/fullscreen/belly/colorized/overlay) + F3.icon_state = "[belly_fullscreen]_l2" + F3.color = belly_fullscreen_color_trinary + if("[belly_fullscreen]_nc" in icon_states('icons/mob/screen_full_colorized_vore_overlays.dmi')) + var/obj/screen/fullscreen/F4 = L.overlay_fullscreen("belly4", /obj/screen/fullscreen/belly/colorized/overlay) + F4.icon_state = "[belly_fullscreen]_nc" else var/obj/screen/fullscreen/F = L.overlay_fullscreen("belly", /obj/screen/fullscreen/belly) F.icon_state = belly_fullscreen else L.clear_fullscreen("belly") - //L.clear_fullscreen("belly2") //Allows for 'multilayered' stomachs. Currently not implemented. + L.clear_fullscreen("belly2") + L.clear_fullscreen("belly3") + L.clear_fullscreen("belly4") /obj/belly/proc/clear_preview(mob/living/L) L.clear_fullscreen("belly") + L.clear_fullscreen("belly2") + L.clear_fullscreen("belly3") + L.clear_fullscreen("belly4") @@ -1218,6 +1244,8 @@ dupe.belly_fullscreen = belly_fullscreen dupe.disable_hud = disable_hud dupe.belly_fullscreen_color = belly_fullscreen_color + dupe.belly_fullscreen_color_secondary = belly_fullscreen_color_secondary + dupe.belly_fullscreen_color_trinary = belly_fullscreen_color_trinary dupe.colorization_enabled = colorization_enabled dupe.egg_type = egg_type dupe.emote_time = emote_time diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm index 89ecbb2deba..65c776e51b9 100644 --- a/code/modules/vore/eating/living_vr.dm +++ b/code/modules/vore/eating/living_vr.dm @@ -1108,6 +1108,9 @@ /obj/screen/fullscreen/belly/colorized icon = 'icons/mob/screen_full_colorized_vore.dmi' +/obj/screen/fullscreen/belly/colorized/overlay + icon = 'icons/mob/screen_full_colorized_vore_overlays.dmi' + /mob/living/proc/vorebelly_printout() //Spew the vorepanel belly messages into chat window for copypasting. set name = "X-Print Vorebelly Settings" set category = "Preferences" diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm index b858fa6a9b4..b73a448580e 100644 --- a/code/modules/vore/eating/vorepanel_vr.dm +++ b/code/modules/vore/eating/vorepanel_vr.dm @@ -8,6 +8,12 @@ #define BELLIES_DESC_MAX 4096 #define FLAVOR_MAX 400 +//INSERT COLORIZE-ONLY STOMACHS HERE +var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono", + "a_synth_flesh_mono_hole", + "a_anim_belly", + "multi_layer_test_tummy") + /mob/living var/datum/vore_look/vorePanel @@ -202,6 +208,8 @@ "weight_ex" = host.weight_message_visible, "belly_fullscreen" = selected.belly_fullscreen, "belly_fullscreen_color" = selected.belly_fullscreen_color, + "belly_fullscreen_color_secondary" = selected.belly_fullscreen_color_secondary, + "belly_fullscreen_color_trinary" = selected.belly_fullscreen_color_trinary, "colorization_enabled" = selected.colorization_enabled, "eating_privacy_local" = selected.eating_privacy_local, "silicon_belly_overlay_preference" = selected.silicon_belly_overlay_preference, @@ -241,6 +249,8 @@ selected_list["disable_hud"] = selected.disable_hud selected_list["colorization_enabled"] = selected.colorization_enabled selected_list["belly_fullscreen_color"] = selected.belly_fullscreen_color + selected_list["belly_fullscreen_color_secondary"] = selected.belly_fullscreen_color_secondary + selected_list["belly_fullscreen_color_trinary"] = selected.belly_fullscreen_color_trinary if(selected.colorization_enabled) selected_list["possible_fullscreens"] = icon_states('icons/mob/screen_full_colorized_vore.dmi') //Makes any icons inside of here selectable. @@ -252,10 +262,7 @@ //Why? I have no flipping clue. As you can see above, vore_colorized is included in the assets but isn't working. It makes no sense. //I can only imagine this is a BYOND/TGUI issue with the cache. If you can figure out how to fix this and make it so you only need to //include things in full_colorized_vore, that would be great. For now, this is the only workaround that I could get to work. - selected_list["possible_fullscreens"] -= "a_synth_flesh_mono" - selected_list["possible_fullscreens"] -= "a_synth_flesh_mono_hole" - selected_list["possible_fullscreens"] -= "a_anim_belly" - //INSERT COLORIZE-ONLY STOMACHS HERE + selected_list["possible_fullscreens"] -= belly_colorable_only_fullscreens var/list/selected_contents = list() for(var/O in selected) @@ -534,7 +541,9 @@ host.client.prefs_vr.show_vore_fx = host.show_vore_fx if(!host.show_vore_fx) host.clear_fullscreen("belly") - //host.clear_fullscreen("belly2") //For multilayered stomachs. Not currently implemented. + host.clear_fullscreen("belly2") + host.clear_fullscreen("belly3") + host.clear_fullscreen("belly4") if(!host.hud_used.hud_shown) host.toggle_hud_vis() unsaved_changes = TRUE @@ -1400,6 +1409,16 @@ if(newcolor) host.vore_selected.belly_fullscreen_color = newcolor . = TRUE + if("b_fullscreen_color_secondary") + var/newcolor = input(usr, "Choose a color.", "", host.vore_selected.belly_fullscreen_color) as color|null + if(newcolor) + host.vore_selected.belly_fullscreen_color_secondary = newcolor + . = TRUE + if("b_fullscreen_color_trinary") + var/newcolor = input(usr, "Choose a color.", "", host.vore_selected.belly_fullscreen_color) as color|null + if(newcolor) + host.vore_selected.belly_fullscreen_color_trinary = newcolor + . = TRUE if("b_save_digest_mode") host.vore_selected.save_digest_mode = !host.vore_selected.save_digest_mode . = TRUE diff --git a/icons/mob/screen_full_colorized_vore.dmi b/icons/mob/screen_full_colorized_vore.dmi index 5926d216f63..e5f52ffe89c 100644 Binary files a/icons/mob/screen_full_colorized_vore.dmi and b/icons/mob/screen_full_colorized_vore.dmi differ diff --git a/icons/mob/screen_full_colorized_vore_overlays.dmi b/icons/mob/screen_full_colorized_vore_overlays.dmi new file mode 100644 index 00000000000..967eff35493 Binary files /dev/null and b/icons/mob/screen_full_colorized_vore_overlays.dmi differ diff --git a/icons/mob/screen_full_vore.dmi b/icons/mob/screen_full_vore.dmi index a89c272c84d..cdce06618f1 100644 Binary files a/icons/mob/screen_full_vore.dmi and b/icons/mob/screen_full_vore.dmi differ diff --git a/tgui/packages/tgui/interfaces/VorePanel.js b/tgui/packages/tgui/interfaces/VorePanel.js index f9ee175c0cc..abc5c6cdb28 100644 --- a/tgui/packages/tgui/interfaces/VorePanel.js +++ b/tgui/packages/tgui/interfaces/VorePanel.js @@ -887,6 +887,8 @@ const VoreSelectedBellyVisuals = (props, context) => { possible_fullscreens, disable_hud, belly_fullscreen_color, + belly_fullscreen_color_secondary, + belly_fullscreen_color_trinary, mapRef, colorization_enabled, } = belly; @@ -908,7 +910,37 @@ const VoreSelectedBellyVisuals = (props, context) => { val: null, }) }> - Select Color + Select Primary Color + + + + +