From d27b612fd33c2aee182b0fbdb5648f34045a8338 Mon Sep 17 00:00:00 2001 From: Verkister Date: Wed, 24 Nov 2021 17:34:43 +0200 Subject: [PATCH] Adds a pref toggle for autotransferability Adds a pref toggle to enable/disable autotransfer mechanics moving you. Default is enabled. --- code/game/atoms_movable.dm | 1 + code/modules/vore/eating/bellymodes_vr.dm | 8 +++++++- code/modules/vore/eating/living_vr.dm | 3 +++ code/modules/vore/eating/vore_vr.dm | 5 +++++ code/modules/vore/eating/vorepanel_vr.dm | 7 +++++++ tgui/packages/tgui/interfaces/VorePanel.js | 17 +++++++++++++++++ tgui/public/tgui.bundle.js | 2 +- 7 files changed, 41 insertions(+), 2 deletions(-) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index e2a1525663..75ac947ac9 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -30,6 +30,7 @@ var/cloaked = FALSE //If we're cloaked or not var/image/cloaked_selfimage //The image we use for our client to let them see where we are var/belly_cycles = 0 //CHOMPEdit: Counting current belly process cycles for autotransfer. + var/autotransferable = TRUE //CHOMPEdit: Toggle for autotransfer mechanics. /atom/movable/Initialize(mapload) . = ..() diff --git a/code/modules/vore/eating/bellymodes_vr.dm b/code/modules/vore/eating/bellymodes_vr.dm index 86014281bf..4ae820b0ee 100644 --- a/code/modules/vore/eating/bellymodes_vr.dm +++ b/code/modules/vore/eating/bellymodes_vr.dm @@ -25,10 +25,16 @@ break if(dest_belly) for(var/atom/movable/M in autotransfer_queue) + if(!M.autotransferable) + autotransfer_queue -= M + continue transfer_contents(M, dest_belly) autotransfer_queue.Cut() var/tally = 0 for(var/atom/movable/M in autotransferables) + if(!M.autotransferable) + autotransferables -= M + continue if(isliving(M)) var/mob/living/L = M if(L.absorbed) @@ -152,7 +158,7 @@ formatted_message = replacetext(formatted_message, "%countprey", living_count) formatted_message = replacetext(formatted_message, "%count", contents.len) to_chat(M, "[formatted_message]") - + if(to_update) updateVRPanels() diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm index 8651e81997..7441cd7ceb 100644 --- a/code/modules/vore/eating/living_vr.dm +++ b/code/modules/vore/eating/living_vr.dm @@ -237,6 +237,7 @@ P.latejoin_vore = src.latejoin_vore P.receive_reagents = src.receive_reagents P.give_reagents = src.give_reagents + P.autotransferable = src.autotransferable var/list/serialized = list() @@ -278,6 +279,7 @@ latejoin_vore = P.latejoin_vore receive_reagents = P.receive_reagents give_reagents = P.give_reagents + autotransferable = P.autotransferable if(bellies) release_vore_contents(silent = TRUE) @@ -883,6 +885,7 @@ dispvoreprefs += "Digestable: [digestable ? "Enabled" : "Disabled"]
" dispvoreprefs += "Devourable: [devourable ? "Enabled" : "Disabled"]
" dispvoreprefs += "Feedable: [feeding ? "Enabled" : "Disabled"]
" + dispvoreprefs += "Autotransferable: [autotransferable ? "Enabled" : "Disabled"]
" //CHOMPstation edit dispvoreprefs += "Absorption Permission: [absorbable ? "Allowed" : "Disallowed"]
" dispvoreprefs += "Leaves Remains: [digest_leave_remains ? "Enabled" : "Disabled"]
" dispvoreprefs += "Mob Vore: [allowmobvore ? "Enabled" : "Disabled"]
" diff --git a/code/modules/vore/eating/vore_vr.dm b/code/modules/vore/eating/vore_vr.dm index c131352ff5..1d10f53ccf 100644 --- a/code/modules/vore/eating/vore_vr.dm +++ b/code/modules/vore/eating/vore_vr.dm @@ -63,6 +63,7 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE var/receive_reagents = FALSE var/give_reagents = FALSE var/latejoin_vore = FALSE + var/autotransferable = TRUE //CHOMP stuff end var/list/belly_prefs = list() @@ -158,6 +159,7 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE latejoin_vore = json_from_file["latejoin_vore"] receive_reagents = json_from_file["receive_reagents"] give_reagents = json_from_file["give_reagents"] + autotransferable = json_from_file["autotransferable"] //Quick sanitize @@ -199,6 +201,8 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE receive_reagents = FALSE if(isnull(give_reagents)) give_reagents = FALSE + if(isnull(autotransferable)) + autotransferable = TRUE return TRUE @@ -229,6 +233,7 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE "belly_prefs" = belly_prefs, "receive_reagents" = receive_reagents, "give_reagents" = give_reagents, + "autotransferable" = autotransferable ) //List to JSON diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm index 3bf8bf4dac..a60b7522f1 100644 --- a/code/modules/vore/eating/vorepanel_vr.dm +++ b/code/modules/vore/eating/vorepanel_vr.dm @@ -301,6 +301,7 @@ //CHOMPedit start, liquid belly prefs "liq_rec" = host.receive_reagents, "liq_giv" = host.give_reagents, + "autotransferable" = host.autotransferable, "noisy_full" = host.noisy_full //Belching while full //CHOMPedit end ) @@ -536,6 +537,12 @@ host.client.prefs_vr.give_reagents = host.give_reagents unsaved_changes = TRUE return TRUE + if("toggle_autotransferable") + host.autotransferable = !host.autotransferable + if(host.client.prefs_vr) + host.client.prefs_vr.autotransferable = host.autotransferable + unsaved_changes = TRUE + return TRUE //Belch code if("toggle_noisy_full") host.noisy_full = !host.noisy_full diff --git a/tgui/packages/tgui/interfaces/VorePanel.js b/tgui/packages/tgui/interfaces/VorePanel.js index b0b77a3647..a6ee8b4ddc 100644 --- a/tgui/packages/tgui/interfaces/VorePanel.js +++ b/tgui/packages/tgui/interfaces/VorePanel.js @@ -1105,6 +1105,7 @@ const VoreUserPreferences = (props, context) => { noisy_full, liq_rec, liq_giv, + autotransferable, } = data.prefs; const { @@ -1373,6 +1374,19 @@ const VoreUserPreferences = (props, context) => { disabled: "Do Not Allow Taking Liquids", }, }, + autotransferable: { + action: "toggle_autotransferable", + test: autotransferable, + tooltip: { + main: "This button is for allowing or preventing belly auto-transfer mechanics from moving you.", + enable: "Click here to allow autotransfer.", + disable: "Click here to prevent autotransfer.", + }, + content: { + enabled: "Auto-Transfer Allowed", + disabled: "Do Not Allow Auto-Transfer", + }, + }, }; return tabIndex===4 ? null : ( @@ -1433,6 +1447,9 @@ const VoreUserPreferences = (props, context) => { + + +