mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
Adds more autotransfer filters, ore "recycling", and item digestability toggle. (#7102)
This commit is contained in:
@@ -17,7 +17,7 @@
|
|||||||
//For belly fullscreen shennanigans outside of bellies, due to Life() clearing belly fullscreens outside of bellies.
|
//For belly fullscreen shennanigans outside of bellies, due to Life() clearing belly fullscreens outside of bellies.
|
||||||
#define ATOM_BELLY_FULLSCREEN "belly_atom_vfx"
|
#define ATOM_BELLY_FULLSCREEN "belly_atom_vfx"
|
||||||
|
|
||||||
//Auto-transfer flags
|
//Auto-transfer mob flags
|
||||||
#define AT_FLAG_CREATURES 0x1
|
#define AT_FLAG_CREATURES 0x1
|
||||||
#define AT_FLAG_ABSORBED 0x2
|
#define AT_FLAG_ABSORBED 0x2
|
||||||
#define AT_FLAG_CARBON 0x4
|
#define AT_FLAG_CARBON 0x4
|
||||||
@@ -28,8 +28,15 @@
|
|||||||
#define AT_FLAG_DEAD 0x80
|
#define AT_FLAG_DEAD 0x80
|
||||||
#define AT_FLAG_CANDIGEST 0x100
|
#define AT_FLAG_CANDIGEST 0x100
|
||||||
#define AT_FLAG_CANABSORB 0x200
|
#define AT_FLAG_CANABSORB 0x200
|
||||||
#define AT_FLAG_ITEMS 0x400
|
#define AT_FLAG_HEALTHY 0x400
|
||||||
#define AT_FLAG_TRASH 0x800
|
|
||||||
#define AT_FLAG_EGGS 0x1000
|
//Auto-transfer item flags
|
||||||
#define AT_FLAG_REMAINS 0x2000
|
#define AT_FLAG_ITEMS 0x1
|
||||||
#define AT_FLAG_INDIGESTIBLE 0x4000
|
#define AT_FLAG_TRASH 0x2
|
||||||
|
#define AT_FLAG_EGGS 0x4
|
||||||
|
#define AT_FLAG_REMAINS 0x8
|
||||||
|
#define AT_FLAG_INDIGESTIBLE 0x10
|
||||||
|
#define AT_FLAG_RECYCLABLE 0x20
|
||||||
|
#define AT_FLAG_ORES 0x40
|
||||||
|
#define AT_FLAG_CLOTHES 0x80
|
||||||
|
#define AT_FLAG_FOOD 0x100
|
||||||
|
|||||||
@@ -174,10 +174,10 @@
|
|||||||
/obj/item/ore_chunk
|
/obj/item/ore_chunk
|
||||||
name = "ore chunk"
|
name = "ore chunk"
|
||||||
desc = "A conglomerate of ore."
|
desc = "A conglomerate of ore."
|
||||||
icon = 'icons/obj/mining_ore_vr.dmi'
|
icon = 'icons/obj/xenoarchaeology.dmi' //CHOMPEdit
|
||||||
icon_state = "strange"
|
icon_state = "strange"
|
||||||
randpixel = 8
|
randpixel = 8
|
||||||
w_class = ITEMSIZE_SMALL
|
w_class = ITEMSIZE_LARGE //CHOMPEdit
|
||||||
var/list/stored_ore = list(
|
var/list/stored_ore = list(
|
||||||
"sand" = 0,
|
"sand" = 0,
|
||||||
"hematite" = 0,
|
"hematite" = 0,
|
||||||
|
|||||||
@@ -70,7 +70,7 @@
|
|||||||
if(stat == UNCONSCIOUS || sleeping > 0)
|
if(stat == UNCONSCIOUS || sleeping > 0)
|
||||||
to_chat(src, "<span class='filter_notice'><I>... You can almost hear someone talking ...</I></span>")
|
to_chat(src, "<span class='filter_notice'><I>... You can almost hear someone talking ...</I></span>")
|
||||||
else
|
else
|
||||||
if(client.prefs.chat_timestamp)
|
if(client && client.prefs.chat_timestamp) //CHOMPEdit
|
||||||
msg = replacetext(msg, new/regex("^(<span(?: \[^>]*)?>)(.*</span>)", ""), "$1[time] $2")
|
msg = replacetext(msg, new/regex("^(<span(?: \[^>]*)?>)(.*</span>)", ""), "$1[time] $2")
|
||||||
to_chat(src,msg)
|
to_chat(src,msg)
|
||||||
else if(teleop)
|
else if(teleop)
|
||||||
|
|||||||
@@ -531,23 +531,33 @@
|
|||||||
w_class = ITEMSIZE_SMALL
|
w_class = ITEMSIZE_SMALL
|
||||||
|
|
||||||
/obj/belly/proc/recycle(var/obj/item/O)
|
/obj/belly/proc/recycle(var/obj/item/O)
|
||||||
if(!recycling || !LAZYLEN(O.matter))
|
if(!recycling || (!LAZYLEN(O.matter) && !istype(O, /obj/item/weapon/ore)))
|
||||||
return FALSE
|
return FALSE
|
||||||
var/list/modified_mats = list()
|
if(istype(O, /obj/item/weapon/ore))
|
||||||
var/trash = 1
|
var/obj/item/weapon/ore/ore = O
|
||||||
if(istype(O,/obj/item/trash))
|
for(var/obj/item/ore_chunk/C in contents)
|
||||||
trash = 5
|
if(istype(C))
|
||||||
if(istype(O,/obj/item/stack))
|
C.stored_ore[ore.material]++
|
||||||
var/obj/item/stack/S = O
|
return TRUE
|
||||||
trash = S.amount
|
var/obj/item/ore_chunk/newchunk = new /obj/item/ore_chunk(src)
|
||||||
for(var/mat in O.matter)
|
newchunk.stored_ore[ore.material]++
|
||||||
modified_mats[mat] = O.matter[mat] * trash
|
return TRUE
|
||||||
for(var/obj/item/debris_pack/digested/D in contents)
|
else
|
||||||
if(istype(D))
|
var/list/modified_mats = list()
|
||||||
for(var/mat in modified_mats)
|
var/trash = 1
|
||||||
D.matter[mat] += modified_mats[mat]
|
if(istype(O,/obj/item/trash))
|
||||||
if(O.w_class > D.w_class)
|
trash = 5
|
||||||
D.w_class = O.w_class
|
if(istype(O,/obj/item/stack))
|
||||||
return TRUE
|
var/obj/item/stack/S = O
|
||||||
new /obj/item/debris_pack/digested(src, modified_mats)
|
trash = S.amount
|
||||||
|
for(var/mat in O.matter)
|
||||||
|
modified_mats[mat] = O.matter[mat] * trash
|
||||||
|
for(var/obj/item/debris_pack/digested/D in contents)
|
||||||
|
if(istype(D))
|
||||||
|
for(var/mat in modified_mats)
|
||||||
|
D.matter[mat] += modified_mats[mat]
|
||||||
|
if(O.w_class > D.w_class)
|
||||||
|
D.w_class = O.w_class
|
||||||
|
return TRUE
|
||||||
|
new /obj/item/debris_pack/digested(src, modified_mats)
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|||||||
@@ -69,16 +69,21 @@
|
|||||||
var/autotransferlocation // Place to send them
|
var/autotransferlocation // Place to send them
|
||||||
var/autotransfer_whitelist = 0 // Flags for what can be transferred to the primary location //CHOMPAdd
|
var/autotransfer_whitelist = 0 // Flags for what can be transferred to the primary location //CHOMPAdd
|
||||||
var/autotransfer_blacklist = 2 // Flags for what can not be transferred to the primary location, defaults to Absorbed //CHOMPAdd
|
var/autotransfer_blacklist = 2 // Flags for what can not be transferred to the primary location, defaults to Absorbed //CHOMPAdd
|
||||||
|
var/autotransfer_whitelist_items = 0 // Flags for what can be transferred to the primary location //CHOMPAdd
|
||||||
|
var/autotransfer_blacklist_items = 0 // Flags for what can not be transferred to the primary location //CHOMPAdd
|
||||||
var/autotransferchance_secondary = 0 // % Chance of prey being autotransferred to secondary transfer location //CHOMPAdd
|
var/autotransferchance_secondary = 0 // % Chance of prey being autotransferred to secondary transfer location //CHOMPAdd
|
||||||
var/autotransferlocation_secondary // Second place to send them //CHOMPAdd
|
var/autotransferlocation_secondary // Second place to send them //CHOMPAdd
|
||||||
var/autotransfer_secondary_whitelist = 0// Flags for what can be transferred to the secondary location //CHOMPAdd
|
var/autotransfer_secondary_whitelist = 0// Flags for what can be transferred to the secondary location //CHOMPAdd
|
||||||
var/autotransfer_secondary_blacklist = 2// Flags for what can not be transferred to the secondary location, defaults to Absorbed //CHOMPAdd
|
var/autotransfer_secondary_blacklist = 2// Flags for what can not be transferred to the secondary location, defaults to Absorbed //CHOMPAdd
|
||||||
|
var/autotransfer_secondary_whitelist_items = 0// Flags for what can be transferred to the secondary location //CHOMPAdd
|
||||||
|
var/autotransfer_secondary_blacklist_items = 0// Flags for what can not be transferred to the secondary location //CHOMPAdd
|
||||||
var/autotransfer_enabled = FALSE // Player toggle
|
var/autotransfer_enabled = FALSE // Player toggle
|
||||||
var/autotransfer_min_amount = 0 // Minimum amount of things to pass at once. //CHOMPAdd
|
var/autotransfer_min_amount = 0 // Minimum amount of things to pass at once. //CHOMPAdd
|
||||||
var/autotransfer_max_amount = 0 // Maximum amount of things to pass at once. //CHOMPAdd
|
var/autotransfer_max_amount = 0 // Maximum amount of things to pass at once. //CHOMPAdd
|
||||||
var/tmp/list/autotransfer_queue = list()// Reserve for above things. //CHOMPAdd
|
var/tmp/list/autotransfer_queue = list()// Reserve for above things. //CHOMPAdd
|
||||||
//Auto-transfer flags for whitelist //CHOMPAdd
|
//Auto-transfer flags for whitelist //CHOMPAdd
|
||||||
var/tmp/static/list/autotransfer_flags_list = list("Creatures" = AT_FLAG_CREATURES, "Absorbed" = AT_FLAG_ABSORBED, "Carbon" = AT_FLAG_CARBON, "Silicon" = AT_FLAG_SILICON, "Mobs" = AT_FLAG_MOBS, "Animals" = AT_FLAG_ANIMALS, "Mice" = AT_FLAG_MICE, "Dead" = AT_FLAG_DEAD, "Digestable Creatures" = AT_FLAG_CANDIGEST, "Absorbable Creatures" = AT_FLAG_CANABSORB, "Items" = AT_FLAG_ITEMS, "Trash" = AT_FLAG_TRASH, "Eggs" = AT_FLAG_EGGS, "Remains" = AT_FLAG_REMAINS, "Indigestible Items" = AT_FLAG_INDIGESTIBLE)
|
var/tmp/static/list/autotransfer_flags_list = list("Creatures" = AT_FLAG_CREATURES, "Absorbed" = AT_FLAG_ABSORBED, "Carbon" = AT_FLAG_CARBON, "Silicon" = AT_FLAG_SILICON, "Mobs" = AT_FLAG_MOBS, "Animals" = AT_FLAG_ANIMALS, "Mice" = AT_FLAG_MICE, "Dead" = AT_FLAG_DEAD, "Digestable Creatures" = AT_FLAG_CANDIGEST, "Absorbable Creatures" = AT_FLAG_CANABSORB, "Full Health" = AT_FLAG_HEALTHY)
|
||||||
|
var/tmp/static/list/autotransfer_flags_list_items = list("Items" = AT_FLAG_ITEMS, "Trash" = AT_FLAG_TRASH, "Eggs" = AT_FLAG_EGGS, "Remains" = AT_FLAG_REMAINS, "Indigestible Items" = AT_FLAG_INDIGESTIBLE, "Recyclable Items" = AT_FLAG_RECYCLABLE, "Ores" = AT_FLAG_ORES, "Clothes and Bags" = AT_FLAG_CLOTHES, "Food" = AT_FLAG_FOOD)
|
||||||
|
|
||||||
//I don't think we've ever altered these lists. making them static until someone actually overrides them somewhere.
|
//I don't think we've ever altered these lists. making them static until someone actually overrides them somewhere.
|
||||||
//Actual full digest modes
|
//Actual full digest modes
|
||||||
@@ -321,6 +326,10 @@
|
|||||||
"autotransfer_secondary_blacklist",
|
"autotransfer_secondary_blacklist",
|
||||||
"autotransfer_whitelist",
|
"autotransfer_whitelist",
|
||||||
"autotransfer_blacklist",
|
"autotransfer_blacklist",
|
||||||
|
"autotransfer_secondary_whitelist_items",
|
||||||
|
"autotransfer_secondary_blacklist_items",
|
||||||
|
"autotransfer_whitelist_items",
|
||||||
|
"autotransfer_blacklist_items",
|
||||||
"autotransfer_min_amount",
|
"autotransfer_min_amount",
|
||||||
"autotransfer_max_amount",
|
"autotransfer_max_amount",
|
||||||
"slow_digestion",
|
"slow_digestion",
|
||||||
@@ -1724,10 +1733,16 @@
|
|||||||
/obj/belly/proc/check_autotransfer(var/atom/movable/prey)
|
/obj/belly/proc/check_autotransfer(var/atom/movable/prey)
|
||||||
if(!(prey in contents) || !prey.autotransferable) return
|
if(!(prey in contents) || !prey.autotransferable) return
|
||||||
var/dest_belly_name
|
var/dest_belly_name
|
||||||
if(autotransferlocation_secondary && prob(autotransferchance_secondary) && autotransfer_filter(prey, autotransfer_secondary_whitelist, autotransfer_secondary_blacklist))
|
if(autotransferlocation_secondary && prob(autotransferchance_secondary))
|
||||||
dest_belly_name = autotransferlocation_secondary
|
if(ismob(prey) && autotransfer_filter(prey, autotransfer_secondary_whitelist, autotransfer_secondary_blacklist))
|
||||||
if(autotransferlocation && prob(autotransferchance) && autotransfer_filter(prey, autotransfer_whitelist, autotransfer_blacklist))
|
dest_belly_name = autotransferlocation_secondary
|
||||||
dest_belly_name = autotransferlocation
|
if(isitem(prey) && autotransfer_filter(prey, autotransfer_secondary_whitelist_items, autotransfer_secondary_blacklist_items))
|
||||||
|
dest_belly_name = autotransferlocation_secondary
|
||||||
|
if(autotransferlocation && prob(autotransferchance))
|
||||||
|
if(ismob(prey) && autotransfer_filter(prey, autotransfer_whitelist, autotransfer_blacklist))
|
||||||
|
dest_belly_name = autotransferlocation
|
||||||
|
if(isitem(prey) && autotransfer_filter(prey, autotransfer_whitelist_items, autotransfer_blacklist_items))
|
||||||
|
dest_belly_name = autotransferlocation
|
||||||
if(!dest_belly_name) // Didn't transfer, so wait before retrying
|
if(!dest_belly_name) // Didn't transfer, so wait before retrying
|
||||||
prey.belly_cycles = 0
|
prey.belly_cycles = 0
|
||||||
return
|
return
|
||||||
@@ -1742,85 +1757,115 @@
|
|||||||
|
|
||||||
//Autotransfer filter CHOMPEdit Start
|
//Autotransfer filter CHOMPEdit Start
|
||||||
/obj/belly/proc/autotransfer_filter(var/atom/movable/prey, var/whitelist, var/blacklist)
|
/obj/belly/proc/autotransfer_filter(var/atom/movable/prey, var/whitelist, var/blacklist)
|
||||||
if(blacklist & autotransfer_flags_list["Absorbed"])
|
if(ismob(prey))
|
||||||
if(isliving(prey))
|
if(blacklist & autotransfer_flags_list["Absorbed"])
|
||||||
var/mob/living/L = prey
|
|
||||||
if(L.absorbed) return FALSE
|
|
||||||
if(blacklist != 2) // Default is 2 for Absorbed, if it's not 2, check everything else
|
|
||||||
if(blacklist & autotransfer_flags_list["Creatures"])
|
|
||||||
if(isliving(prey)) return FALSE
|
|
||||||
if(blacklist & autotransfer_flags_list["Carbon"])
|
|
||||||
if(iscarbon(prey)) return FALSE
|
|
||||||
if(blacklist & autotransfer_flags_list["Silicon"])
|
|
||||||
if(issilicon(prey)) return FALSE
|
|
||||||
if(blacklist & autotransfer_flags_list["Mobs"])
|
|
||||||
if(istype(prey, /mob/living/simple_mob)) return FALSE
|
|
||||||
if(blacklist & autotransfer_flags_list["Animals"])
|
|
||||||
if(istype(prey, /mob/living/simple_mob/animal)) return FALSE
|
|
||||||
if(blacklist & autotransfer_flags_list["Mice"])
|
|
||||||
if(ismouse(prey)) return FALSE
|
|
||||||
if(blacklist & autotransfer_flags_list["Dead"])
|
|
||||||
if(isliving(prey))
|
if(isliving(prey))
|
||||||
var/mob/living/L = prey
|
var/mob/living/L = prey
|
||||||
if(L.stat == DEAD) return FALSE
|
if(L.absorbed) return FALSE
|
||||||
if(blacklist & autotransfer_flags_list["Digestable Creatures"])
|
if(blacklist != 2) // Default is 2 for Absorbed, if it's not 2, check everything else
|
||||||
|
if(blacklist & autotransfer_flags_list["Creatures"])
|
||||||
|
if(isliving(prey)) return FALSE
|
||||||
|
if(blacklist & autotransfer_flags_list["Carbon"])
|
||||||
|
if(iscarbon(prey)) return FALSE
|
||||||
|
if(blacklist & autotransfer_flags_list["Silicon"])
|
||||||
|
if(issilicon(prey)) return FALSE
|
||||||
|
if(blacklist & autotransfer_flags_list["Mobs"])
|
||||||
|
if(istype(prey, /mob/living/simple_mob)) return FALSE
|
||||||
|
if(blacklist & autotransfer_flags_list["Animals"])
|
||||||
|
if(istype(prey, /mob/living/simple_mob/animal)) return FALSE
|
||||||
|
if(blacklist & autotransfer_flags_list["Mice"])
|
||||||
|
if(ismouse(prey)) return FALSE
|
||||||
|
if(blacklist & autotransfer_flags_list["Dead"])
|
||||||
|
if(isliving(prey))
|
||||||
|
var/mob/living/L = prey
|
||||||
|
if(L.stat == DEAD) return FALSE
|
||||||
|
if(blacklist & autotransfer_flags_list["Digestable Creatures"])
|
||||||
|
if(isliving(prey))
|
||||||
|
var/mob/living/L = prey
|
||||||
|
if(L.digestable) return FALSE
|
||||||
|
if(blacklist & autotransfer_flags_list["Absorbable Creatures"])
|
||||||
|
if(isliving(prey))
|
||||||
|
var/mob/living/L = prey
|
||||||
|
if(L.absorbable) return FALSE
|
||||||
|
if(blacklist & autotransfer_flags_list["Full Health"])
|
||||||
|
if(isliving(prey))
|
||||||
|
var/mob/living/L = prey
|
||||||
|
if((L.getOxyLoss() + L.getToxLoss() + L.getFireLoss() + L.getBruteLoss() + L.getCloneLoss()) == 0) return FALSE
|
||||||
|
if(whitelist == 0) return TRUE
|
||||||
|
if(whitelist & autotransfer_flags_list["Creatures"])
|
||||||
|
if(isliving(prey)) return TRUE
|
||||||
|
if(whitelist & autotransfer_flags_list["Absorbed"])
|
||||||
if(isliving(prey))
|
if(isliving(prey))
|
||||||
var/mob/living/L = prey
|
var/mob/living/L = prey
|
||||||
if(L.digestable) return FALSE
|
if(L.absorbed) return TRUE
|
||||||
if(blacklist & autotransfer_flags_list["Absorbable Creatures"])
|
if(whitelist & autotransfer_flags_list["Carbon"])
|
||||||
|
if(iscarbon(prey)) return TRUE
|
||||||
|
if(whitelist & autotransfer_flags_list["Silicon"])
|
||||||
|
if(issilicon(prey)) return TRUE
|
||||||
|
if(whitelist & autotransfer_flags_list["Mobs"])
|
||||||
|
if(istype(prey, /mob/living/simple_mob)) return TRUE
|
||||||
|
if(whitelist & autotransfer_flags_list["Animals"])
|
||||||
|
if(istype(prey, /mob/living/simple_mob/animal)) return TRUE
|
||||||
|
if(whitelist & autotransfer_flags_list["Mice"])
|
||||||
|
if(ismouse(prey)) return TRUE
|
||||||
|
if(whitelist & autotransfer_flags_list["Dead"])
|
||||||
if(isliving(prey))
|
if(isliving(prey))
|
||||||
var/mob/living/L = prey
|
var/mob/living/L = prey
|
||||||
if(L.absorbable) return FALSE
|
if(L.stat == DEAD) return TRUE
|
||||||
if(blacklist & autotransfer_flags_list["Items"])
|
if(whitelist & autotransfer_flags_list["Digestable Creatures"])
|
||||||
|
if(isliving(prey))
|
||||||
|
var/mob/living/L = prey
|
||||||
|
if(L.digestable) return TRUE
|
||||||
|
if(whitelist & autotransfer_flags_list["Absorbable Creatures"])
|
||||||
|
if(isliving(prey))
|
||||||
|
var/mob/living/L = prey
|
||||||
|
if(L.absorbable) return TRUE
|
||||||
|
if(whitelist & autotransfer_flags_list["Full Health"])
|
||||||
|
if(isliving(prey))
|
||||||
|
var/mob/living/L = prey
|
||||||
|
if((L.getOxyLoss() + L.getToxLoss() + L.getFireLoss() + L.getBruteLoss() + L.getCloneLoss()) == 0) return TRUE
|
||||||
|
else
|
||||||
|
if(blacklist & autotransfer_flags_list_items["Items"])
|
||||||
if(isitem(prey)) return FALSE
|
if(isitem(prey)) return FALSE
|
||||||
if(blacklist & autotransfer_flags_list["Trash"])
|
if(blacklist & autotransfer_flags_list_items["Trash"])
|
||||||
if(istype(prey, /obj/item/trash)) return FALSE
|
if(istype(prey, /obj/item/trash)) return FALSE
|
||||||
if(blacklist & autotransfer_flags_list["Eggs"])
|
if(blacklist & autotransfer_flags_list_items["Eggs"])
|
||||||
if(istype(prey, /obj/item/weapon/storage/vore_egg)) return FALSE
|
if(istype(prey, /obj/item/weapon/storage/vore_egg)) return FALSE
|
||||||
if(blacklist & autotransfer_flags_list["Remains"])
|
if(blacklist & autotransfer_flags_list_items["Remains"])
|
||||||
if(istype(prey, /obj/item/weapon/digestion_remains)) return FALSE
|
if(istype(prey, /obj/item/weapon/digestion_remains)) return FALSE
|
||||||
if(blacklist & autotransfer_flags_list["Indigestible Items"])
|
if(blacklist & autotransfer_flags_list_items["Indigestible Items"])
|
||||||
if(prey in items_preserved) return FALSE
|
if(prey in items_preserved) return FALSE
|
||||||
|
if(blacklist & autotransfer_flags_list_items["Recyclable Items"])
|
||||||
if(whitelist == 0) return TRUE
|
if(isitem(prey))
|
||||||
if(whitelist & autotransfer_flags_list["Creatures"])
|
var/obj/item/I = prey
|
||||||
if(isliving(prey)) return TRUE
|
if(I.matter) return FALSE
|
||||||
if(whitelist & autotransfer_flags_list["Absorbed"])
|
if(blacklist & autotransfer_flags_list_items["Ores"])
|
||||||
if(isliving(prey))
|
if(istype(prey, /obj/item/weapon/ore)) return FALSE
|
||||||
var/mob/living/L = prey
|
if(blacklist & autotransfer_flags_list_items["Clothes and Bags"])
|
||||||
if(L.absorbed) return TRUE
|
if(istype(prey, /obj/item/clothing) || istype(prey, /obj/item/weapon/storage)) return FALSE
|
||||||
if(whitelist & autotransfer_flags_list["Carbon"])
|
if(blacklist & autotransfer_flags_list_items["Food"])
|
||||||
if(iscarbon(prey)) return TRUE
|
if(istype(prey, /obj/item/weapon/reagent_containers/food)) return FALSE
|
||||||
if(whitelist & autotransfer_flags_list["Silicon"])
|
if(whitelist == 0) return TRUE
|
||||||
if(issilicon(prey)) return TRUE
|
if(whitelist & autotransfer_flags_list_items["Items"])
|
||||||
if(whitelist & autotransfer_flags_list["Mobs"])
|
if(isitem(prey)) return TRUE
|
||||||
if(istype(prey, /mob/living/simple_mob)) return TRUE
|
if(whitelist & autotransfer_flags_list_items["Trash"])
|
||||||
if(whitelist & autotransfer_flags_list["Animals"])
|
if(istype(prey, /obj/item/trash)) return TRUE
|
||||||
if(istype(prey, /mob/living/simple_mob/animal)) return TRUE
|
if(whitelist & autotransfer_flags_list_items["Eggs"])
|
||||||
if(whitelist & autotransfer_flags_list["Mice"])
|
if(istype(prey, /obj/item/weapon/storage/vore_egg)) return TRUE
|
||||||
if(ismouse(prey)) return TRUE
|
if(whitelist & autotransfer_flags_list_items["Remains"])
|
||||||
if(whitelist & autotransfer_flags_list["Dead"])
|
if(istype(prey, /obj/item/weapon/digestion_remains)) return TRUE
|
||||||
if(isliving(prey))
|
if(whitelist & autotransfer_flags_list_items["Indigestible Items"])
|
||||||
var/mob/living/L = prey
|
if(prey in items_preserved) return TRUE
|
||||||
if(L.stat == DEAD) return TRUE
|
if(whitelist & autotransfer_flags_list_items["Recyclable Items"])
|
||||||
if(whitelist & autotransfer_flags_list["Digestable Creatures"])
|
if(isitem(prey))
|
||||||
if(isliving(prey))
|
var/obj/item/I = prey
|
||||||
var/mob/living/L = prey
|
if(I.matter) return TRUE
|
||||||
if(L.digestable) return TRUE
|
if(whitelist & autotransfer_flags_list_items["Ores"])
|
||||||
if(whitelist & autotransfer_flags_list["Absorbable Creatures"])
|
if(istype(prey, /obj/item/weapon/ore)) return TRUE
|
||||||
if(isliving(prey))
|
if(whitelist & autotransfer_flags_list_items["Clothes and Bags"])
|
||||||
var/mob/living/L = prey
|
if(istype(prey, /obj/item/clothing) || istype(prey, /obj/item/weapon/storage)) return TRUE
|
||||||
if(L.absorbable) return TRUE
|
if(whitelist & autotransfer_flags_list_items["Food"])
|
||||||
if(whitelist & autotransfer_flags_list["Items"])
|
if(istype(prey, /obj/item/weapon/reagent_containers/food)) return TRUE
|
||||||
if(isitem(prey)) return TRUE
|
|
||||||
if(whitelist & autotransfer_flags_list["Trash"])
|
|
||||||
if(istype(prey, /obj/item/trash)) return TRUE
|
|
||||||
if(whitelist & autotransfer_flags_list["Eggs"])
|
|
||||||
if(istype(prey, /obj/item/weapon/storage/vore_egg)) return TRUE
|
|
||||||
if(whitelist & autotransfer_flags_list["Remains"])
|
|
||||||
if(istype(prey, /obj/item/weapon/digestion_remains)) return TRUE
|
|
||||||
if(whitelist & autotransfer_flags_list["Indigestible Items"])
|
|
||||||
if(prey in items_preserved) return TRUE
|
|
||||||
return FALSE //CHOMPEdit end
|
return FALSE //CHOMPEdit end
|
||||||
|
|
||||||
// Belly copies and then returns the copy
|
// Belly copies and then returns the copy
|
||||||
|
|||||||
@@ -21,7 +21,8 @@
|
|||||||
for(var/atom/movable/M in contents)
|
for(var/atom/movable/M in contents)
|
||||||
if(!M || !M.autotransferable) continue
|
if(!M || !M.autotransferable) continue
|
||||||
// If the prey can't pass the filter of at least one transfer location, skip it
|
// If the prey can't pass the filter of at least one transfer location, skip it
|
||||||
if(!(autotransfer_filter(M, autotransfer_secondary_whitelist, autotransfer_secondary_blacklist) || autotransfer_filter(M, autotransfer_whitelist, autotransfer_blacklist))) continue
|
if(ismob(M) && !(autotransfer_filter(M, autotransfer_secondary_whitelist, autotransfer_secondary_blacklist) || autotransfer_filter(M, autotransfer_whitelist, autotransfer_blacklist))) continue
|
||||||
|
if(isitem(M) && !(autotransfer_filter(M, autotransfer_secondary_whitelist_items, autotransfer_secondary_blacklist_items) || autotransfer_filter(M, autotransfer_whitelist_items, autotransfer_blacklist_items))) continue
|
||||||
M.belly_cycles++
|
M.belly_cycles++
|
||||||
if(M.belly_cycles < autotransferwait / 60) continue
|
if(M.belly_cycles < autotransferwait / 60) continue
|
||||||
autotransferables += M
|
autotransferables += M
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
|
|
||||||
// Ye default implementation.
|
// Ye default implementation.
|
||||||
/obj/item/proc/digest_act(atom/movable/item_storage = null, touchable_amount, splashing = 0) //CHOMPEdit
|
/obj/item/proc/digest_act(atom/movable/item_storage = null, touchable_amount, splashing = 0) //CHOMPEdit
|
||||||
|
if(!digestable) //CHOMPAdd
|
||||||
|
return FALSE //CHOMPAdd
|
||||||
if(istype(item_storage, /obj/item/device/dogborg/sleeper))
|
if(istype(item_storage, /obj/item/device/dogborg/sleeper))
|
||||||
if(istype(src, /obj/item/device/pda))
|
if(istype(src, /obj/item/device/pda))
|
||||||
var/obj/item/device/pda/P = src
|
var/obj/item/device/pda/P = src
|
||||||
@@ -206,6 +208,13 @@
|
|||||||
return FALSE
|
return FALSE
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|
||||||
|
/obj/item/ore_chunk/digest_act(atom/movable/item_storage = null) //CHOMPAdd
|
||||||
|
if(isbelly(item_storage))
|
||||||
|
var/obj/belly/B = item_storage
|
||||||
|
if(istype(B) && B.recycling)
|
||||||
|
return FALSE
|
||||||
|
. = ..()
|
||||||
|
|
||||||
/////////////
|
/////////////
|
||||||
// Some more complicated stuff
|
// Some more complicated stuff
|
||||||
/////////////
|
/////////////
|
||||||
|
|||||||
@@ -352,6 +352,16 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
|
|||||||
if(selected.autotransfer_blacklist & selected.autotransfer_flags_list[flag_name])
|
if(selected.autotransfer_blacklist & selected.autotransfer_flags_list[flag_name])
|
||||||
at_blacklist.Add(flag_name)
|
at_blacklist.Add(flag_name)
|
||||||
selected_list["autotransfer"]["autotransfer_blacklist"] = at_blacklist
|
selected_list["autotransfer"]["autotransfer_blacklist"] = at_blacklist
|
||||||
|
var/list/at_whitelist_items = list()
|
||||||
|
for(var/flag_name in selected.autotransfer_flags_list_items)
|
||||||
|
if(selected.autotransfer_whitelist_items & selected.autotransfer_flags_list_items[flag_name])
|
||||||
|
at_whitelist_items.Add(flag_name)
|
||||||
|
selected_list["autotransfer"]["autotransfer_whitelist_items"] = at_whitelist_items
|
||||||
|
var/list/at_blacklist_items = list()
|
||||||
|
for(var/flag_name in selected.autotransfer_flags_list_items)
|
||||||
|
if(selected.autotransfer_blacklist_items & selected.autotransfer_flags_list_items[flag_name])
|
||||||
|
at_blacklist_items.Add(flag_name)
|
||||||
|
selected_list["autotransfer"]["autotransfer_blacklist_items"] = at_blacklist_items
|
||||||
var/list/at_secondary_whitelist = list()
|
var/list/at_secondary_whitelist = list()
|
||||||
for(var/flag_name in selected.autotransfer_flags_list)
|
for(var/flag_name in selected.autotransfer_flags_list)
|
||||||
if(selected.autotransfer_secondary_whitelist & selected.autotransfer_flags_list[flag_name])
|
if(selected.autotransfer_secondary_whitelist & selected.autotransfer_flags_list[flag_name])
|
||||||
@@ -362,6 +372,16 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
|
|||||||
if(selected.autotransfer_secondary_blacklist & selected.autotransfer_flags_list[flag_name])
|
if(selected.autotransfer_secondary_blacklist & selected.autotransfer_flags_list[flag_name])
|
||||||
at_secondary_blacklist.Add(flag_name)
|
at_secondary_blacklist.Add(flag_name)
|
||||||
selected_list["autotransfer"]["autotransfer_secondary_blacklist"] = at_secondary_blacklist
|
selected_list["autotransfer"]["autotransfer_secondary_blacklist"] = at_secondary_blacklist
|
||||||
|
var/list/at_secondary_whitelist_items = list()
|
||||||
|
for(var/flag_name in selected.autotransfer_flags_list_items)
|
||||||
|
if(selected.autotransfer_secondary_whitelist_items & selected.autotransfer_flags_list_items[flag_name])
|
||||||
|
at_secondary_whitelist_items.Add(flag_name)
|
||||||
|
selected_list["autotransfer"]["autotransfer_secondary_whitelist_items"] = at_secondary_whitelist_items
|
||||||
|
var/list/at_secondary_blacklist_items = list()
|
||||||
|
for(var/flag_name in selected.autotransfer_flags_list_items)
|
||||||
|
if(selected.autotransfer_secondary_blacklist_items & selected.autotransfer_flags_list_items[flag_name])
|
||||||
|
at_secondary_blacklist_items.Add(flag_name)
|
||||||
|
selected_list["autotransfer"]["autotransfer_secondary_blacklist_items"] = at_secondary_blacklist_items
|
||||||
//CHOMPAdd END
|
//CHOMPAdd END
|
||||||
|
|
||||||
selected_list["disable_hud"] = selected.disable_hud
|
selected_list["disable_hud"] = selected.disable_hud
|
||||||
@@ -2853,6 +2873,35 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
|
|||||||
return FALSE
|
return FALSE
|
||||||
host.vore_selected.autotransfer_secondary_blacklist ^= host.vore_selected.autotransfer_flags_list[toggle_addon]
|
host.vore_selected.autotransfer_secondary_blacklist ^= host.vore_selected.autotransfer_flags_list[toggle_addon]
|
||||||
. = TRUE
|
. = TRUE
|
||||||
|
. = TRUE
|
||||||
|
if("b_autotransfer_whitelist_items")
|
||||||
|
var/list/menu_list = host.vore_selected.autotransfer_flags_list_items.Copy()
|
||||||
|
var/toggle_addon = tgui_input_list(usr, "Toggle Whitelist", "Whitelist Choice", menu_list)
|
||||||
|
if(!toggle_addon)
|
||||||
|
return FALSE
|
||||||
|
host.vore_selected.autotransfer_whitelist_items ^= host.vore_selected.autotransfer_flags_list_items[toggle_addon]
|
||||||
|
. = TRUE
|
||||||
|
if("b_autotransfer_blacklist_items")
|
||||||
|
var/list/menu_list = host.vore_selected.autotransfer_flags_list_items.Copy()
|
||||||
|
var/toggle_addon = tgui_input_list(usr, "Toggle Blacklist", "Blacklist Choice", menu_list)
|
||||||
|
if(!toggle_addon)
|
||||||
|
return FALSE
|
||||||
|
host.vore_selected.autotransfer_blacklist_items ^= host.vore_selected.autotransfer_flags_list_items[toggle_addon]
|
||||||
|
. = TRUE
|
||||||
|
if("b_autotransfer_secondary_whitelist_items")
|
||||||
|
var/list/menu_list = host.vore_selected.autotransfer_flags_list_items.Copy()
|
||||||
|
var/toggle_addon = tgui_input_list(usr, "Toggle Whitelist", "Whitelist Choice", menu_list)
|
||||||
|
if(!toggle_addon)
|
||||||
|
return FALSE
|
||||||
|
host.vore_selected.autotransfer_secondary_whitelist_items ^= host.vore_selected.autotransfer_flags_list_items[toggle_addon]
|
||||||
|
. = TRUE
|
||||||
|
if("b_autotransfer_secondary_blacklist_items")
|
||||||
|
var/list/menu_list = host.vore_selected.autotransfer_flags_list_items.Copy()
|
||||||
|
var/toggle_addon = tgui_input_list(usr, "Toggle Blacklist", "Blacklist Choice", menu_list)
|
||||||
|
if(!toggle_addon)
|
||||||
|
return FALSE
|
||||||
|
host.vore_selected.autotransfer_secondary_blacklist_items ^= host.vore_selected.autotransfer_flags_list_items[toggle_addon]
|
||||||
|
. = TRUE
|
||||||
if("b_autotransfer_min_amount")
|
if("b_autotransfer_min_amount")
|
||||||
var/autotransfer_min_amount_input = input(user, "Set the minimum amount of items your belly can belly auto-transfer at once. Set to 0 for no limit.", "Auto-Transfer Min Amount") as num|null
|
var/autotransfer_min_amount_input = input(user, "Set the minimum amount of items your belly can belly auto-transfer at once. Set to 0 for no limit.", "Auto-Transfer Min Amount") as num|null
|
||||||
if(!isnull(autotransfer_min_amount_input))
|
if(!isnull(autotransfer_min_amount_input))
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
var/list/ckeys_allowed_itemspawn = list()
|
var/list/ckeys_allowed_itemspawn = list()
|
||||||
var/user_vars_to_edit //fun times :3 - pretty much just grabbed from tg immabehonest - list(variable_name = variable_value) eg list("name" = "Wizardly Wizard", "real_name" = "Wizardly Wizard")
|
var/user_vars_to_edit //fun times :3 - pretty much just grabbed from tg immabehonest - list(variable_name = variable_value) eg list("name" = "Wizardly Wizard", "real_name" = "Wizardly Wizard")
|
||||||
var/user_vars_remembered //not needed for manual editing, just stores the original vars from the above list to make sure they go back to normal later
|
var/user_vars_remembered //not needed for manual editing, just stores the original vars from the above list to make sure they go back to normal later
|
||||||
|
var/digestable = TRUE
|
||||||
|
|
||||||
/obj/item/proc/item_tf_spawnpoint_set()
|
/obj/item/proc/item_tf_spawnpoint_set()
|
||||||
if(!item_tf_spawn_allowed)
|
if(!item_tf_spawn_allowed)
|
||||||
@@ -48,3 +49,11 @@
|
|||||||
if(user.vars[variable] == user_vars_to_edit[variable])
|
if(user.vars[variable] == user_vars_to_edit[variable])
|
||||||
user.vars[variable] = user_vars_remembered[variable]
|
user.vars[variable] = user_vars_remembered[variable]
|
||||||
user_vars_remembered = initial(user_vars_remembered)
|
user_vars_remembered = initial(user_vars_remembered)
|
||||||
|
|
||||||
|
/obj/item/verb/toggle_digestable()
|
||||||
|
set category = "Object"
|
||||||
|
set name = "Toggle Digestable"
|
||||||
|
set desc = "Toggle item's digestability."
|
||||||
|
digestable = !digestable
|
||||||
|
if(!digestable)
|
||||||
|
to_chat(usr, "<span class='notice'>[src] is now protected from digestion.</span>")
|
||||||
@@ -260,6 +260,16 @@
|
|||||||
if(B.autotransfer_blacklist & B.autotransfer_flags_list[flag_name])
|
if(B.autotransfer_blacklist & B.autotransfer_flags_list[flag_name])
|
||||||
at_blacklist.Add(flag_name)
|
at_blacklist.Add(flag_name)
|
||||||
belly_data["autotransfer_blacklist"] = at_blacklist
|
belly_data["autotransfer_blacklist"] = at_blacklist
|
||||||
|
var/list/at_whitelist_items = list()
|
||||||
|
for(var/flag_name in B.autotransfer_flags_list_items)
|
||||||
|
if(B.autotransfer_whitelist_items & B.autotransfer_flags_list_items[flag_name])
|
||||||
|
at_whitelist_items.Add(flag_name)
|
||||||
|
belly_data["autotransfer_whitelist_items"] = at_whitelist_items
|
||||||
|
var/list/at_blacklist_items = list()
|
||||||
|
for(var/flag_name in B.autotransfer_flags_list_items)
|
||||||
|
if(B.autotransfer_blacklist_items & B.autotransfer_flags_list_items[flag_name])
|
||||||
|
at_blacklist_items.Add(flag_name)
|
||||||
|
belly_data["autotransfer_blacklist_items"] = at_blacklist_items
|
||||||
var/list/at_secondary_whitelist = list()
|
var/list/at_secondary_whitelist = list()
|
||||||
for(var/flag_name in B.autotransfer_flags_list)
|
for(var/flag_name in B.autotransfer_flags_list)
|
||||||
if(B.autotransfer_secondary_whitelist & B.autotransfer_flags_list[flag_name])
|
if(B.autotransfer_secondary_whitelist & B.autotransfer_flags_list[flag_name])
|
||||||
@@ -270,6 +280,16 @@
|
|||||||
if(B.autotransfer_secondary_blacklist & B.autotransfer_flags_list[flag_name])
|
if(B.autotransfer_secondary_blacklist & B.autotransfer_flags_list[flag_name])
|
||||||
at_secondary_blacklist.Add(flag_name)
|
at_secondary_blacklist.Add(flag_name)
|
||||||
belly_data["autotransfer_secondary_blacklist"] = at_secondary_blacklist
|
belly_data["autotransfer_secondary_blacklist"] = at_secondary_blacklist
|
||||||
|
var/list/at_secondary_whitelist_items = list()
|
||||||
|
for(var/flag_name in B.autotransfer_flags_list_items)
|
||||||
|
if(B.autotransfer_secondary_whitelist_items & B.autotransfer_flags_list_items[flag_name])
|
||||||
|
at_secondary_whitelist_items.Add(flag_name)
|
||||||
|
belly_data["autotransfer_secondary_whitelist_items"] = at_secondary_whitelist_items
|
||||||
|
var/list/at_secondary_blacklist_items = list()
|
||||||
|
for(var/flag_name in B.autotransfer_flags_list_items)
|
||||||
|
if(B.autotransfer_secondary_blacklist_items & B.autotransfer_flags_list_items[flag_name])
|
||||||
|
at_secondary_blacklist_items.Add(flag_name)
|
||||||
|
belly_data["autotransfer_secondary_blacklist_items"] = at_secondary_blacklist_items
|
||||||
|
|
||||||
// Liquid Options
|
// Liquid Options
|
||||||
belly_data["show_liquids"] = B.show_liquids
|
belly_data["show_liquids"] = B.show_liquids
|
||||||
|
|||||||
@@ -1603,7 +1603,7 @@ const VoreSelectedBellyInteractions = (props, context) => {
|
|||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
</LabeledList.Item>
|
</LabeledList.Item>
|
||||||
<LabeledList.Item label="Auto-Transfer Primary Whitelist">
|
<LabeledList.Item label="Auto-Transfer Primary Whitelist (Mobs)">
|
||||||
{(autotransfer.autotransfer_whitelist.length &&
|
{(autotransfer.autotransfer_whitelist.length &&
|
||||||
autotransfer.autotransfer_whitelist.join(', ')) ||
|
autotransfer.autotransfer_whitelist.join(', ')) ||
|
||||||
'Everything'}
|
'Everything'}
|
||||||
@@ -1617,7 +1617,21 @@ const VoreSelectedBellyInteractions = (props, context) => {
|
|||||||
icon="plus"
|
icon="plus"
|
||||||
/>
|
/>
|
||||||
</LabeledList.Item>
|
</LabeledList.Item>
|
||||||
<LabeledList.Item label="Auto-Transfer Primary Blacklist">
|
<LabeledList.Item label="Auto-Transfer Primary Whitelist (Items)">
|
||||||
|
{(autotransfer.autotransfer_whitelist_items.length &&
|
||||||
|
autotransfer.autotransfer_whitelist_items.join(', ')) ||
|
||||||
|
'Everything'}
|
||||||
|
<Button
|
||||||
|
onClick={() =>
|
||||||
|
act('set_attribute', {
|
||||||
|
attribute: 'b_autotransfer_whitelist_items',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
ml={1}
|
||||||
|
icon="plus"
|
||||||
|
/>
|
||||||
|
</LabeledList.Item>
|
||||||
|
<LabeledList.Item label="Auto-Transfer Primary Blacklist (Mobs)">
|
||||||
{(autotransfer.autotransfer_blacklist.length &&
|
{(autotransfer.autotransfer_blacklist.length &&
|
||||||
autotransfer.autotransfer_blacklist.join(', ')) ||
|
autotransfer.autotransfer_blacklist.join(', ')) ||
|
||||||
'Nothing'}
|
'Nothing'}
|
||||||
@@ -1631,6 +1645,20 @@ const VoreSelectedBellyInteractions = (props, context) => {
|
|||||||
icon="plus"
|
icon="plus"
|
||||||
/>
|
/>
|
||||||
</LabeledList.Item>
|
</LabeledList.Item>
|
||||||
|
<LabeledList.Item label="Auto-Transfer Primary Blacklist (Items)">
|
||||||
|
{(autotransfer.autotransfer_blacklist_items.length &&
|
||||||
|
autotransfer.autotransfer_blacklist_items.join(', ')) ||
|
||||||
|
'Nothing'}
|
||||||
|
<Button
|
||||||
|
onClick={() =>
|
||||||
|
act('set_attribute', {
|
||||||
|
attribute: 'b_autotransfer_blacklist_items',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
ml={1}
|
||||||
|
icon="plus"
|
||||||
|
/>
|
||||||
|
</LabeledList.Item>
|
||||||
<LabeledList.Divider />
|
<LabeledList.Divider />
|
||||||
<LabeledList.Item label="Auto-Transfer Secondary Chance">
|
<LabeledList.Item label="Auto-Transfer Secondary Chance">
|
||||||
<Button
|
<Button
|
||||||
@@ -1656,7 +1684,7 @@ const VoreSelectedBellyInteractions = (props, context) => {
|
|||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
</LabeledList.Item>
|
</LabeledList.Item>
|
||||||
<LabeledList.Item label="Auto-Transfer Secondary Whitelist">
|
<LabeledList.Item label="Auto-Transfer Secondary Whitelist (Mobs)">
|
||||||
{(autotransfer.autotransfer_secondary_whitelist.length &&
|
{(autotransfer.autotransfer_secondary_whitelist.length &&
|
||||||
autotransfer.autotransfer_secondary_whitelist.join(', ')) ||
|
autotransfer.autotransfer_secondary_whitelist.join(', ')) ||
|
||||||
'Everything'}
|
'Everything'}
|
||||||
@@ -1670,7 +1698,23 @@ const VoreSelectedBellyInteractions = (props, context) => {
|
|||||||
icon="plus"
|
icon="plus"
|
||||||
/>
|
/>
|
||||||
</LabeledList.Item>
|
</LabeledList.Item>
|
||||||
<LabeledList.Item label="Auto-Transfer Secondary Blacklist">
|
<LabeledList.Item label="Auto-Transfer Secondary Whitelist (Items)">
|
||||||
|
{(autotransfer.autotransfer_secondary_whitelist_items.length &&
|
||||||
|
autotransfer.autotransfer_secondary_whitelist_items.join(
|
||||||
|
', '
|
||||||
|
)) ||
|
||||||
|
'Everything'}
|
||||||
|
<Button
|
||||||
|
onClick={() =>
|
||||||
|
act('set_attribute', {
|
||||||
|
attribute: 'b_autotransfer_secondary_whitelist_items',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
ml={1}
|
||||||
|
icon="plus"
|
||||||
|
/>
|
||||||
|
</LabeledList.Item>
|
||||||
|
<LabeledList.Item label="Auto-Transfer Secondary Blacklist (Mobs)">
|
||||||
{(autotransfer.autotransfer_secondary_blacklist.length &&
|
{(autotransfer.autotransfer_secondary_blacklist.length &&
|
||||||
autotransfer.autotransfer_secondary_blacklist.join(', ')) ||
|
autotransfer.autotransfer_secondary_blacklist.join(', ')) ||
|
||||||
'Nothing'}
|
'Nothing'}
|
||||||
@@ -1684,6 +1728,22 @@ const VoreSelectedBellyInteractions = (props, context) => {
|
|||||||
icon="plus"
|
icon="plus"
|
||||||
/>
|
/>
|
||||||
</LabeledList.Item>
|
</LabeledList.Item>
|
||||||
|
<LabeledList.Item label="Auto-Transfer Secondary Blacklist (Items)">
|
||||||
|
{(autotransfer.autotransfer_secondary_blacklist_items.length &&
|
||||||
|
autotransfer.autotransfer_secondary_blacklist_items.join(
|
||||||
|
', '
|
||||||
|
)) ||
|
||||||
|
'Nothing'}
|
||||||
|
<Button
|
||||||
|
onClick={() =>
|
||||||
|
act('set_attribute', {
|
||||||
|
attribute: 'b_autotransfer_secondary_blacklist_items',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
ml={1}
|
||||||
|
icon="plus"
|
||||||
|
/>
|
||||||
|
</LabeledList.Item>
|
||||||
</LabeledList>
|
</LabeledList>
|
||||||
) : (
|
) : (
|
||||||
'These options only display while Auto-Transfer is enabled.'
|
'These options only display while Auto-Transfer is enabled.'
|
||||||
|
|||||||
@@ -54,11 +54,16 @@ const AutotransferFlagIcon = {
|
|||||||
'Dead': '',
|
'Dead': '',
|
||||||
'Digestable Creatures': '',
|
'Digestable Creatures': '',
|
||||||
'Absorbable Creatures': '',
|
'Absorbable Creatures': '',
|
||||||
|
'Full Health': '',
|
||||||
'Items': '',
|
'Items': '',
|
||||||
'Trash': '',
|
'Trash': '',
|
||||||
'Eggs': '',
|
'Eggs': '',
|
||||||
'Remains': '',
|
'Remains': '',
|
||||||
'Indigestible Items': '',
|
'Indigestible Items': '',
|
||||||
|
'Recyclable Items': '',
|
||||||
|
'Ores': '',
|
||||||
|
'Clothes and Bags': '',
|
||||||
|
'Food': '',
|
||||||
};
|
};
|
||||||
|
|
||||||
const GetAddons = (addons: string[]) => {
|
const GetAddons = (addons: string[]) => {
|
||||||
@@ -259,6 +264,10 @@ type Belly = {
|
|||||||
autotransfer_blacklist: string[];
|
autotransfer_blacklist: string[];
|
||||||
autotransfer_secondary_whitelist: string[];
|
autotransfer_secondary_whitelist: string[];
|
||||||
autotransfer_secondary_blacklist: string[];
|
autotransfer_secondary_blacklist: string[];
|
||||||
|
autotransfer_whitelist_items: string[];
|
||||||
|
autotransfer_blacklist_items: string[];
|
||||||
|
autotransfer_secondary_whitelist_items: string[];
|
||||||
|
autotransfer_secondary_blacklist_items: string[];
|
||||||
|
|
||||||
// Liquid Options
|
// Liquid Options
|
||||||
show_liquids: BooleanLike;
|
show_liquids: BooleanLike;
|
||||||
@@ -423,6 +432,10 @@ const generateBellyString = (belly: Belly, index: number) => {
|
|||||||
autotransfer_blacklist,
|
autotransfer_blacklist,
|
||||||
autotransfer_secondary_whitelist,
|
autotransfer_secondary_whitelist,
|
||||||
autotransfer_secondary_blacklist,
|
autotransfer_secondary_blacklist,
|
||||||
|
autotransfer_whitelist_items,
|
||||||
|
autotransfer_blacklist_items,
|
||||||
|
autotransfer_secondary_whitelist_items,
|
||||||
|
autotransfer_secondary_blacklist_items,
|
||||||
|
|
||||||
// Liquid Options
|
// Liquid Options
|
||||||
show_liquids,
|
show_liquids,
|
||||||
@@ -776,12 +789,16 @@ const generateBellyString = (belly: Belly, index: number) => {
|
|||||||
result += '<li class="list-group-item">Auto-Transfer Max Amount: ' + autotransfer_max_amount + '</li>';
|
result += '<li class="list-group-item">Auto-Transfer Max Amount: ' + autotransfer_max_amount + '</li>';
|
||||||
result += '<li class="list-group-item">Auto-Transfer Primary Chance: ' + autotransferchance + '%</li>';
|
result += '<li class="list-group-item">Auto-Transfer Primary Chance: ' + autotransferchance + '%</li>';
|
||||||
result += '<li class="list-group-item">Auto-Transfer Primary Location: ' + autotransferlocation + '</li>';
|
result += '<li class="list-group-item">Auto-Transfer Primary Location: ' + autotransferlocation + '</li>';
|
||||||
result += '<li class="list-group-item">Auto-Transfer Primary Whitelist: ' + GetAutotransferFlags(autotransfer_whitelist, true) + '</li>';
|
result += '<li class="list-group-item">Auto-Transfer Primary Whitelist (Mobs): ' + GetAutotransferFlags(autotransfer_whitelist, true) + '</li>';
|
||||||
result += '<li class="list-group-item">Auto-Transfer Primary Blacklist: ' + GetAutotransferFlags(autotransfer_blacklist, false) + '</li>';
|
result += '<li class="list-group-item">Auto-Transfer Primary Whitelist (Items): ' + GetAutotransferFlags(autotransfer_whitelist_items, true) + '</li>';
|
||||||
|
result += '<li class="list-group-item">Auto-Transfer Primary Blacklist (Mobs): ' + GetAutotransferFlags(autotransfer_blacklist, false) + '</li>';
|
||||||
|
result += '<li class="list-group-item">Auto-Transfer Primary Blacklist (Items): ' + GetAutotransferFlags(autotransfer_blacklist_items, false) + '</li>';
|
||||||
result += '<li class="list-group-item">Auto-Transfer Secondary Chance: ' + autotransferchance_secondary + '%</li>';
|
result += '<li class="list-group-item">Auto-Transfer Secondary Chance: ' + autotransferchance_secondary + '%</li>';
|
||||||
result += '<li class="list-group-item">Auto-Transfer Secondary Location: ' + autotransferlocation_secondary + '</li>';
|
result += '<li class="list-group-item">Auto-Transfer Secondary Location: ' + autotransferlocation_secondary + '</li>';
|
||||||
result += '<li class="list-group-item">Auto-Transfer Secondary Whitelist: ' + GetAutotransferFlags(autotransfer_secondary_whitelist, true) + '</li>';
|
result += '<li class="list-group-item">Auto-Transfer Secondary Whitelist (Mobs): ' + GetAutotransferFlags(autotransfer_secondary_whitelist, true) + '</li>';
|
||||||
result += '<li class="list-group-item">Auto-Transfer Secondary Blacklist: ' + GetAutotransferFlags(autotransfer_secondary_blacklist, false) + '</li>';
|
result += '<li class="list-group-item">Auto-Transfer Secondary Whitelist (Items): ' + GetAutotransferFlags(autotransfer_secondary_whitelist_items, true) + '</li>';
|
||||||
|
result += '<li class="list-group-item">Auto-Transfer Secondary Blacklist (Mobs): ' + GetAutotransferFlags(autotransfer_secondary_blacklist, false) + '</li>';
|
||||||
|
result += '<li class="list-group-item">Auto-Transfer Secondary Blacklist (Items): ' + GetAutotransferFlags(autotransfer_secondary_blacklist_items, false) + '</li>';
|
||||||
result += '</ul>';
|
result += '</ul>';
|
||||||
result += '</div></div></div>';
|
result += '</div></div></div>';
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user