Not exclusive whitelist diet. Vox regain access to old food. (#37497)

* Creates a secondary digestible whitelist that is not exclusive. Additionally reworks the Vox stomach.

* Update FoodSystem.cs

Remnants of an old attempt. Cleaning it.

* Update vox.yml

Remnants of an old attempt. Cleaning up.

* Whitelist no longer, now the diet exclusion var is a bool.

* Clean-up

* Update Content.Server/Body/Components/StomachComponent.cs

Typo fixing

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

* Update Content.Server/Body/Components/StomachComponent.cs

Clarifications.

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

* Update Content.Server/Nutrition/EntitySystems/FoodSystem.cs

Typo fixing

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

* Update Resources/Prototypes/Body/Organs/vox.yml

Typo fixes

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

---------

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
This commit is contained in:
Qerd
2025-05-16 12:05:49 -07:00
committed by GitHub
parent d5ef9b7345
commit 2de0a5fc82
14 changed files with 30 additions and 53 deletions

View File

@@ -47,6 +47,12 @@ namespace Content.Server.Body.Components
[DataField] [DataField]
public EntityWhitelist? SpecialDigestible = null; public EntityWhitelist? SpecialDigestible = null;
/// <summary>
/// Controls whitelist behavior. If true, this stomach can digest <i>only</i> food that passes the whitelist. If false, it can digest normal food <i>and</i> any food that passes the whitelist.
/// </summary>
[DataField]
public bool IsSpecialDigestibleExclusive = true;
/// <summary> /// <summary>
/// Used to track how long each reagent has been in the stomach /// Used to track how long each reagent has been in the stomach
/// </summary> /// </summary>

View File

@@ -442,7 +442,9 @@ public sealed class FoodSystem : EntitySystem
// Check if the food is in the whitelist // Check if the food is in the whitelist
if (_whitelistSystem.IsWhitelistPass(ent.Comp1.SpecialDigestible, food)) if (_whitelistSystem.IsWhitelistPass(ent.Comp1.SpecialDigestible, food))
return true; return true;
// They can only eat whitelist food and the food isn't in the whitelist. It's not edible.
// 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; return false;
} }

View File

@@ -27,14 +27,7 @@
specialDigestible: specialDigestible:
tags: tags:
- Trash - Trash
- Fruit isSpecialDigestibleExclusive: false
- ReptilianFood
- Meat
- Pill
- Crayon
- Paper
- VoxFood
- Vegetable
- type: entity - type: entity
parent: OrganHumanLiver parent: OrganHumanLiver

View File

@@ -20,9 +20,6 @@
reagents: reagents:
- ReagentId: Nutriment - ReagentId: Nutriment
Quantity: 5 Quantity: 5
- type: Tag
tags:
- VoxFood
- type: entity - type: entity
id: FoodBagel id: FoodBagel

View File

@@ -15,7 +15,6 @@
- type: Tag - type: Tag
tags: tags:
- Bread - Bread
- VoxFood
- type: SolutionContainerManager - type: SolutionContainerManager
solutions: solutions:
food: food:

View File

@@ -26,7 +26,6 @@
- type: Tag - type: Tag
tags: tags:
- Cake - Cake
- VoxFood
- type: SecretStash - type: SecretStash
maxItemSize: "Normal" maxItemSize: "Normal"
secretStashName: secret-stash-cake secretStashName: secret-stash-cake

View File

@@ -10,7 +10,6 @@
- type: Tag - type: Tag
tags: tags:
- Donut - Donut
- VoxFood
- type: Sprite - type: Sprite
sprite: Objects/Consumable/Food/Baked/donut.rsi sprite: Objects/Consumable/Food/Baked/donut.rsi
- type: SolutionContainerManager - type: SolutionContainerManager

View File

@@ -18,9 +18,6 @@
Quantity: 5 Quantity: 5
- type: Item - type: Item
size: Tiny size: Tiny
- type: Tag
tags:
- VoxFood
# Muffins # Muffins

View File

@@ -30,7 +30,6 @@
- type: Tag - type: Tag
tags: tags:
- Pie - Pie
- VoxFood
- type: entity - type: entity
parent: FoodInjectableBase # Not sliceable parent: FoodInjectableBase # Not sliceable

View File

@@ -22,9 +22,6 @@
reagents: reagents:
- ReagentId: Nutriment - ReagentId: Nutriment
Quantity: 20 Quantity: 20
- type: Tag
tags:
- VoxFood
# Meals # Meals

View File

@@ -18,9 +18,6 @@
reagents: reagents:
- ReagentId: Nutriment - ReagentId: Nutriment
Quantity: 20 Quantity: 20
- type: Tag
tags:
- VoxFood
# Noodles # Noodles

View File

@@ -10,7 +10,6 @@
- type: Tag - type: Tag
tags: tags:
- FoodSnack - FoodSnack
- VoxFood
- type: Sprite - type: Sprite
sprite: Objects/Consumable/Food/snacks.rsi sprite: Objects/Consumable/Food/snacks.rsi
- type: SolutionContainerManager - type: SolutionContainerManager
@@ -498,9 +497,6 @@
Quantity: 10 Quantity: 10
- ReagentId: Theobromine - ReagentId: Theobromine
Quantity: 3 Quantity: 3
- type: Tag
tags:
- VoxFood
# Trash # Trash

View File

@@ -42,7 +42,6 @@
- type: Tag - type: Tag
tags: tags:
- Soup - Soup
- VoxFood
- type: Destructible - type: Destructible
thresholds: thresholds:
- trigger: - trigger:

View File

@@ -1364,9 +1364,6 @@
- type: Tag - type: Tag
id: VoiceTrigger id: VoiceTrigger
- type: Tag # Eating fix tag
id: VoxFood
- type: Tag - type: Tag
id: Wall id: Wall