* Start * Wow, text * Ultra raw * More stuff * Wow, DOT and gibbing!!! * More stuff * More * Update * Yes * Almost there * Done? * I forgot * Update * Update * Update * Update * Update * Update * Update * Update * Update * Beck * Unhardcode
52 lines
1.4 KiB
C#
52 lines
1.4 KiB
C#
using Content.Shared.Kitchen;
|
|
using Content.Shared.Storage;
|
|
using Robust.Shared.GameStates;
|
|
|
|
namespace Content.Shared.Nutrition.Components;
|
|
|
|
/// <summary>
|
|
/// Indicates that the entity can be butchered.
|
|
/// </summary>
|
|
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
|
|
public sealed partial class ButcherableComponent : Component
|
|
{
|
|
/// <summary>
|
|
/// List of the entities that this entity should spawn after being butchered.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// Note that <see cref="SharedKitchenSpikeSystem"/> spawns one item at a time and decreases the amount until it's zero and then removes the entry.
|
|
/// </remarks>
|
|
[DataField("spawned", required: true), AutoNetworkedField]
|
|
public List<EntitySpawnEntry> SpawnedEntities = [];
|
|
|
|
/// <summary>
|
|
/// Time required to butcher that entity.
|
|
/// </summary>
|
|
[DataField, AutoNetworkedField]
|
|
public float ButcherDelay = 8.0f;
|
|
|
|
/// <summary>
|
|
/// Tool type used to butcher that entity.
|
|
/// </summary>
|
|
[DataField("butcheringType"), AutoNetworkedField]
|
|
public ButcheringType Type = ButcheringType.Knife;
|
|
}
|
|
|
|
public enum ButcheringType : byte
|
|
{
|
|
/// <summary>
|
|
/// E.g. goliaths.
|
|
/// </summary>
|
|
Knife,
|
|
|
|
/// <summary>
|
|
/// E.g. monkeys.
|
|
/// </summary>
|
|
Spike,
|
|
|
|
/// <summary>
|
|
/// E.g. humans.
|
|
/// </summary>
|
|
Gibber // TODO
|
|
}
|