diff --git a/Content.Server/Body/Components/StomachComponent.cs b/Content.Server/Body/Components/StomachComponent.cs index 06f03482e7..4821b78f4a 100644 --- a/Content.Server/Body/Components/StomachComponent.cs +++ b/Content.Server/Body/Components/StomachComponent.cs @@ -47,6 +47,12 @@ namespace Content.Server.Body.Components [DataField] public EntityWhitelist? SpecialDigestible = null; + /// + /// Controls whitelist behavior. If true, this stomach can digest only food that passes the whitelist. If false, it can digest normal food and any food that passes the whitelist. + /// + [DataField] + public bool IsSpecialDigestibleExclusive = true; + /// /// Used to track how long each reagent has been in the stomach /// diff --git a/Content.Server/Nutrition/EntitySystems/FoodSystem.cs b/Content.Server/Nutrition/EntitySystems/FoodSystem.cs index 8b7626e031..38c9cba72d 100644 --- a/Content.Server/Nutrition/EntitySystems/FoodSystem.cs +++ b/Content.Server/Nutrition/EntitySystems/FoodSystem.cs @@ -442,8 +442,10 @@ public sealed class FoodSystem : EntitySystem // Check if the food is in the whitelist if (_whitelistSystem.IsWhitelistPass(ent.Comp1.SpecialDigestible, food)) return true; - // They can only eat whitelist food and the food isn't in the whitelist. It's not edible. - return false; + + // If their diet is whitelist exclusive, then they cannot eat anything but what follows their whitelisted tags. Else, they can eat their tags AND human food. + if (ent.Comp1.IsSpecialDigestibleExclusive) + return false; } if (component.RequiresSpecialDigestion) diff --git a/Resources/Prototypes/Body/Organs/vox.yml b/Resources/Prototypes/Body/Organs/vox.yml index 8b38bb8d0b..3dbb65c928 100644 --- a/Resources/Prototypes/Body/Organs/vox.yml +++ b/Resources/Prototypes/Body/Organs/vox.yml @@ -27,14 +27,7 @@ specialDigestible: tags: - Trash - - Fruit - - ReptilianFood - - Meat - - Pill - - Crayon - - Paper - - VoxFood - - Vegetable + isSpecialDigestibleExclusive: false - type: entity parent: OrganHumanLiver diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/bagel.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/bagel.yml index ef0d43be3f..114b3e01f2 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/bagel.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/bagel.yml @@ -20,9 +20,6 @@ reagents: - ReagentId: Nutriment Quantity: 5 - - type: Tag - tags: - - VoxFood - type: entity id: FoodBagel diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/bread.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/bread.yml index 1945da67f3..d817d53b18 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/bread.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/bread.yml @@ -15,7 +15,6 @@ - type: Tag tags: - Bread - - VoxFood - type: SolutionContainerManager solutions: food: diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/cake.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/cake.yml index 763e8d3580..3b9ae17b6a 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/cake.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/cake.yml @@ -26,7 +26,6 @@ - type: Tag tags: - Cake - - VoxFood - type: SecretStash maxItemSize: "Normal" secretStashName: secret-stash-cake diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/donut.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/donut.yml index 4cdca4799c..52ac7b2fe9 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/donut.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/donut.yml @@ -10,7 +10,6 @@ - type: Tag tags: - Donut - - VoxFood - type: Sprite sprite: Objects/Consumable/Food/Baked/donut.rsi - type: SolutionContainerManager diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/misc.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/misc.yml index 7776906b75..c7a10d4212 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/misc.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/misc.yml @@ -18,9 +18,6 @@ Quantity: 5 - type: Item size: Tiny - - type: Tag - tags: - - VoxFood # Muffins diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/pie.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/pie.yml index 8633d0f718..b86a4201e8 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/pie.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/pie.yml @@ -30,7 +30,6 @@ - type: Tag tags: - Pie - - VoxFood - type: entity parent: FoodInjectableBase # Not sliceable diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/meals.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/meals.yml index 3576fdfc15..a4cf014bff 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/meals.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/meals.yml @@ -22,9 +22,6 @@ reagents: - ReagentId: Nutriment Quantity: 20 - - type: Tag - tags: - - VoxFood # Meals @@ -353,7 +350,7 @@ description: BBQ ribs, slathered in a healthy coating of BBQ sauce. The least vegan thing to ever exist. components: - type: Food - trash: + trash: - FoodKebabSkewer - type: FlavorProfile flavors: @@ -615,7 +612,7 @@ description: Buttery. components: - type: Food - trash: + trash: - FoodPlate - type: FlavorProfile flavors: diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/noodles.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/noodles.yml index b11b38be1c..4bff8252aa 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/noodles.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/noodles.yml @@ -18,10 +18,7 @@ reagents: - ReagentId: Nutriment Quantity: 20 - - type: Tag - tags: - - VoxFood - + # Noodles - type: entity diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/snacks.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/snacks.yml index 72243b6d06..9147a79158 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/snacks.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/snacks.yml @@ -10,7 +10,6 @@ - type: Tag tags: - FoodSnack - - VoxFood - type: Sprite sprite: Objects/Consumable/Food/snacks.rsi - type: SolutionContainerManager @@ -42,7 +41,7 @@ state: boritos - type: Item - type: Food - trash: + trash: - FoodPacketBoritosTrash - type: entity @@ -58,7 +57,7 @@ state: cnds - type: Item - type: Food - trash: + trash: - FoodPacketCnDsTrash - type: entity @@ -75,7 +74,7 @@ state: cheesiehonkers - type: Item - type: Food - trash: + trash: - FoodPacketCheesieTrash - type: entity @@ -93,7 +92,7 @@ state: chips - type: Item - type: Food - trash: + trash: - FoodPacketChipsTrash - type: entity @@ -192,7 +191,7 @@ state: pistachio - type: Item - type: Food - trash: + trash: - FoodPacketPistachioTrash - type: Tag tags: @@ -215,7 +214,7 @@ - type: Item heldPrefix: popcorn - type: Food - trash: + trash: - FoodPacketPopcornTrash - type: entity @@ -231,7 +230,7 @@ state: raisins - type: Item - type: Food - trash: + trash: - FoodPacketRaisinsTrash - type: Tag tags: @@ -250,7 +249,7 @@ state: semki - type: Item - type: Food - trash: + trash: - FoodPacketSemkiTrash - type: entity @@ -266,7 +265,7 @@ state: susjerky - type: Item - type: Food - trash: + trash: - FoodPacketSusTrash - type: Tag tags: @@ -285,7 +284,7 @@ state: syndicakes - type: Item - type: Food - trash: + trash: - FoodPacketSyndiTrash - type: entity @@ -310,7 +309,7 @@ - type: Sprite state: ramen - type: Food - trash: + trash: - FoodPacketCupRamenTrash - type: entity @@ -353,7 +352,7 @@ - ReagentId: Soysauce Quantity: 2 - type: Food - trash: + trash: - FoodPacketChowMeinTrash - type: entity @@ -382,7 +381,7 @@ - ReagentId: Soysauce Quantity: 2 - type: Food - trash: + trash: - FoodPacketDanDanTrash - type: entity @@ -408,7 +407,7 @@ heldPrefix: packet size: Tiny - type: Food - trash: + trash: - FoodCookieFortune - type: entity @@ -498,9 +497,6 @@ Quantity: 10 - ReagentId: Theobromine Quantity: 3 - - type: Tag - tags: - - VoxFood # Trash diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/soup.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/soup.yml index 2450f6ab4f..148bdf8161 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/soup.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/soup.yml @@ -8,7 +8,7 @@ - type: Item storedRotation: -90 - type: Food - trash: + trash: - FoodBowlBig utensil: Spoon - type: SolutionContainerManager @@ -42,7 +42,6 @@ - type: Tag tags: - Soup - - VoxFood - type: Destructible thresholds: - trigger: @@ -972,7 +971,7 @@ flavors: - miso - type: Food - trash: + trash: - FoodBowlFancy - type: Sprite layers: diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index 0a9980962d..9f97fa8ed0 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -1364,9 +1364,6 @@ - type: Tag id: VoiceTrigger -- type: Tag # Eating fix tag - id: VoxFood - - type: Tag id: Wall