Make mechanism behaviors properly update, fix eating and drinking (#2472)
* Make mechanisms properly update and fix eating and drinking * Remove outdated component ignores * Fix nullable error * Fix mechanism behavior events * Remove unnecessary code
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
#nullable enable
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Content.Shared.GameObjects.Components.Body.Behavior;
|
||||
using Content.Shared.GameObjects.Components.Body.Part;
|
||||
using Robust.Shared.Interfaces.GameObjects;
|
||||
|
||||
@@ -10,6 +13,8 @@ namespace Content.Shared.GameObjects.Components.Body.Mechanism
|
||||
|
||||
IBodyPart? Part { get; set; }
|
||||
|
||||
IReadOnlyDictionary<Type, IMechanismBehavior> Behaviors { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Professional description of the <see cref="IMechanism"/>.
|
||||
/// </summary>
|
||||
@@ -55,6 +60,21 @@ namespace Content.Shared.GameObjects.Components.Body.Mechanism
|
||||
/// </summary>
|
||||
BodyPartCompatibility Compatibility { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Adds a behavior if it does not exist already.
|
||||
/// </summary>
|
||||
/// <typeparam name="T">The behavior type to add.</typeparam>
|
||||
/// <returns>
|
||||
/// True if the behavior already existed, false if it had to be created.
|
||||
/// </returns>
|
||||
bool EnsureBehavior<T>(out T behavior) where T : IMechanismBehavior, new();
|
||||
|
||||
bool HasBehavior<T>() where T : IMechanismBehavior;
|
||||
|
||||
bool TryRemoveBehavior<T>() where T : IMechanismBehavior;
|
||||
|
||||
void Update(float frameTime);
|
||||
|
||||
// TODO BODY Turn these into event listeners so they dont need to be exposed
|
||||
/// <summary>
|
||||
/// Called when the containing <see cref="IBodyPart"/> is attached to a
|
||||
|
||||
Reference in New Issue
Block a user