mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-30 07:28:53 +01:00
Ventcrawling Item Whitelist Memory Savings (#18881)
* lets fix these * adminbus * organization
This commit is contained in:
@@ -507,6 +507,7 @@
|
||||
|
||||
if(blob.mob_radio)
|
||||
blob.mob_radio.forceMove(src)
|
||||
equip_to_appropriate_slot(blob.mob_radio) // Actually put it back on the mob in a slot
|
||||
blob.mob_radio = null
|
||||
if(blob.myid)
|
||||
blob.myid = null
|
||||
|
||||
@@ -572,6 +572,7 @@
|
||||
|
||||
if(blob.mob_radio)
|
||||
blob.mob_radio.forceMove(src)
|
||||
equip_to_appropriate_slot(blob.mob_radio) // Actually put it back on the mob in a slot
|
||||
blob.mob_radio = null
|
||||
if(blob.myid)
|
||||
blob.myid = null
|
||||
|
||||
@@ -39,9 +39,6 @@ var/list/mob_hat_cache = list()
|
||||
|
||||
can_pull_size = ITEMSIZE_NO_CONTAINER
|
||||
can_pull_mobs = MOB_PULL_SMALLER
|
||||
can_enter_vent_with = list(
|
||||
/obj,
|
||||
/atom/movable/emissive_blocker)
|
||||
|
||||
mob_bump_flag = SIMPLE_ANIMAL
|
||||
mob_swap_flags = SIMPLE_ANIMAL
|
||||
@@ -80,6 +77,14 @@ var/list/mob_hat_cache = list()
|
||||
/mob/living/silicon/robot/drone/is_sentient()
|
||||
return FALSE
|
||||
|
||||
/mob/living/silicon/robot/drone/ventcrawl_get_item_whitelist()
|
||||
// Yes this allows any object, yes it's silly. I don't know if it's ever been abused by drones though.
|
||||
return list(
|
||||
/atom/movable/emissive_blocker,
|
||||
/atom/movable/screen,
|
||||
/obj
|
||||
)
|
||||
|
||||
/mob/living/silicon/robot/drone/construction
|
||||
name = "construction drone"
|
||||
icon_state = "constructiondrone"
|
||||
|
||||
@@ -22,9 +22,6 @@
|
||||
|
||||
can_pull_size = ITEMSIZE_NO_CONTAINER
|
||||
can_pull_mobs = MOB_PULL_SMALLER
|
||||
can_enter_vent_with = list(
|
||||
/obj,
|
||||
/atom/movable/emissive_blocker)
|
||||
|
||||
mob_always_swap = 1
|
||||
|
||||
|
||||
@@ -60,42 +60,6 @@
|
||||
|
||||
allow_mind_transfer = TRUE
|
||||
|
||||
|
||||
can_enter_vent_with = list(
|
||||
/obj/item/implant,
|
||||
/obj/item/radio/borg,
|
||||
/obj/item/holder,
|
||||
/obj/machinery/camera,
|
||||
/obj/belly,
|
||||
/obj/soulgem,
|
||||
/atom/movable/screen,
|
||||
/atom/movable/emissive_blocker,
|
||||
/obj/item/material,
|
||||
/obj/item/melee,
|
||||
/obj/item/stack/,
|
||||
/obj/item/tool,
|
||||
/obj/item/reagent_containers/food,
|
||||
/obj/item/coin,
|
||||
/obj/item/aliencoin,
|
||||
/obj/item/ore,
|
||||
/obj/item/disk/nuclear,
|
||||
/obj/item/toy,
|
||||
/obj/item/card,
|
||||
/obj/item/radio,
|
||||
/obj/item/perfect_tele_beacon,
|
||||
/obj/item/clipboard,
|
||||
/obj/item/paper,
|
||||
/obj/item/pen,
|
||||
/obj/item/canvas,
|
||||
/obj/item/paint_palette,
|
||||
/obj/item/paint_brush,
|
||||
/obj/item/camera,
|
||||
/obj/item/photo,
|
||||
/obj/item/camera_film,
|
||||
/obj/item/taperecorder,
|
||||
/obj/item/rectape
|
||||
)
|
||||
|
||||
vore_active = 1
|
||||
vore_capacity = 1
|
||||
vore_bump_chance = 1
|
||||
@@ -126,6 +90,24 @@
|
||||
B.absorbchance = 1
|
||||
B.escapechance = 15
|
||||
|
||||
/mob/living/simple_mob/vore/alienanimals/catslug/ventcrawl_get_item_whitelist()
|
||||
return list(
|
||||
VENTCRAWL_BASE_WHITELIST,
|
||||
VENTCRAWL_VORE_WHITELIST,
|
||||
VENTCRAWL_SMALLITEM_WHITELIST,
|
||||
// Catslug unique items.
|
||||
/obj/item/material,
|
||||
/obj/item/melee,
|
||||
/obj/item/stack/,
|
||||
/obj/item/tool,
|
||||
/obj/item/reagent_containers/food,
|
||||
/obj/item/ore,
|
||||
/obj/item/disk/nuclear,
|
||||
/obj/item/card,
|
||||
/obj/item/radio,
|
||||
/obj/item/perfect_tele_beacon,
|
||||
)
|
||||
|
||||
/datum/ai_holder/simple_mob/melee/evasive/catslug
|
||||
hostile = FALSE
|
||||
cooperative = FALSE
|
||||
|
||||
@@ -80,8 +80,6 @@ var/list/_slime_default_emotes = list(
|
||||
var/injection_amount = 5 // This determines how much.
|
||||
var/mood = ":3" // Icon to use to display 'mood', as an overlay.
|
||||
|
||||
can_enter_vent_with = list(/obj/item/clothing/head, /obj/soulgem)
|
||||
|
||||
can_be_drop_prey = FALSE
|
||||
|
||||
species_sounds = "Slime"
|
||||
@@ -109,6 +107,14 @@ var/list/_slime_default_emotes = list(
|
||||
drop_hat()
|
||||
return ..()
|
||||
|
||||
/mob/living/silicon/robot/drone/ventcrawl_get_item_whitelist()
|
||||
return list(
|
||||
VENTCRAWL_BASE_WHITELIST,
|
||||
VENTCRAWL_VORE_WHITELIST,
|
||||
// Slime unique items
|
||||
/obj/item/clothing/head,
|
||||
)
|
||||
|
||||
/mob/living/simple_mob/slime/death()
|
||||
// Make dead slimes stop glowing.
|
||||
glow_toggle = FALSE
|
||||
|
||||
@@ -182,6 +182,8 @@
|
||||
|
||||
var/voice_name = "unidentifiable voice"
|
||||
|
||||
var/list/ventcraw_item_admin_allow = null // If this is a list, it will be appended to the default list of items the mob is allowed to ventcrawl with
|
||||
|
||||
var/faction = FACTION_NEUTRAL //Used for checking whether hostile simple animals will attack you, possibly more stuff later
|
||||
|
||||
var/can_be_antagged = FALSE // To prevent pAIs/mice/etc from getting antag in autotraitor and future auto- modes. Uses inheritance instead of a bunch of typechecks.
|
||||
|
||||
@@ -3,22 +3,6 @@ var/list/ventcrawl_machinery = list(
|
||||
/obj/machinery/atmospherics/unary/vent_scrubber
|
||||
)
|
||||
|
||||
// Vent crawling whitelisted items, whoo
|
||||
/mob/living/var/list/can_enter_vent_with = list(
|
||||
/obj/item/implant,
|
||||
/obj/item/radio/borg,
|
||||
/obj/item/radio/headset/mob_headset,
|
||||
/obj/item/holder,
|
||||
/obj/machinery/camera,
|
||||
/obj/belly,
|
||||
/obj/soulgem,
|
||||
/atom/movable/screen,
|
||||
/atom/movable/emissive_blocker,
|
||||
/obj/item/rig/protean
|
||||
)
|
||||
//VOREStation Edit : added /obj/belly, to this list, CI is complaining about this in his indentation check. Added mob_headset for those with radios so there's no weirdness.
|
||||
//mob/living/simple_mob/borer, //VORESTATION AI TEMPORARY REMOVAL REPLACE BACK IN LIST WHEN RESOLVED //VOREStation Edit
|
||||
|
||||
/mob/living/var/list/icon/pipes_shown = list()
|
||||
/mob/living/var/last_played_vent
|
||||
/mob/living/var/is_ventcrawling = FALSE
|
||||
@@ -75,7 +59,10 @@ var/list/ventcrawl_machinery = list(
|
||||
return TRUE
|
||||
//Try to find it in our allowed list (istype includes subtypes)
|
||||
var/listed = FALSE
|
||||
for(var/test_type in can_enter_vent_with)
|
||||
var/list/vent_allow = ventcrawl_get_item_whitelist()
|
||||
if(islist(ventcraw_item_admin_allow)) // If mob has a list varedited onto it, we allow anything in this list as well
|
||||
vent_allow += ventcraw_item_admin_allow
|
||||
for(var/test_type in vent_allow)
|
||||
if(istype(carried_item,test_type))
|
||||
listed = TRUE
|
||||
break
|
||||
@@ -108,6 +95,13 @@ var/list/ventcrawl_machinery = list(
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/mob/living/proc/ventcrawl_get_item_whitelist()
|
||||
return list(
|
||||
VENTCRAWL_BASE_WHITELIST,
|
||||
VENTCRAWL_VORE_WHITELIST,
|
||||
VENTCRAWL_SMALLITEM_WHITELIST
|
||||
)
|
||||
|
||||
/mob/living/simple_mob/protean_blob/ventcrawl_carry()
|
||||
for(var/atom/A in contents)
|
||||
if(!is_allowed_vent_crawl_item(A))
|
||||
|
||||
Reference in New Issue
Block a user