diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm
index 5643185bfb5..71a089683ce 100644
--- a/code/modules/food_and_drinks/food/snacks.dm
+++ b/code/modules/food_and_drinks/food/snacks.dm
@@ -1,3 +1,4 @@
+#define MAX_WEIGHT_CLASS WEIGHT_CLASS_SMALL * 2
//Food items that are eaten normally and don't leave anything behind.
/obj/item/weapon/reagent_containers/food/snacks
name = "snack"
@@ -14,6 +15,7 @@
var/dry = 0
var/cooktype[0]
var/cooked_type = null //for microwave cooking. path of the resulting item after microwaving
+ var/total_w_class = 0 //for the total weight an item of food can carry
//Placeholder for effect that trigger on eating that aren't tied to reagents.
@@ -131,6 +133,10 @@
)
inaccurate = 1
else if(W.w_class <= WEIGHT_CLASS_SMALL && istype(src,/obj/item/weapon/reagent_containers/food/snacks/sliceable))
+ if(total_w_class > MAX_WEIGHT_CLASS)
+ // Nope, no bluespace slice food
+ to_chat(user, "Something is already in [src]!")
+ return 1
if(!iscarbon(user))
return 1
to_chat(user, "You slip [W] inside [src].")
@@ -138,6 +144,7 @@
if((user.client && user.s_active != src))
user.client.screen -= W
W.dropped(user)
+ total_w_class += W.w_class
add_fingerprint(user)
contents += W
return
@@ -2521,4 +2528,5 @@
icon_state = "onionrings"
list_reagents = list("nutriment" = 3)
filling_color = "#C0C9A0"
- gender = PLURAL
\ No newline at end of file
+ gender = PLURAL
+#undef MAX_WEIGHT_CLASS
\ No newline at end of file