Files
RobustToolbox/Robust.Shared/GameObjects/IEntitySystem.cs
T
AcruidandGitHub 2183cd7ca1 Massive Namespace Cleanup (#1544)
* Removed the Interfaces folder.
* All objects inside the GameObjects subfolders are now in the GameObjects namespace.
* Added a Resharper DotSettings file to mark the GameObjects subfolders as not providing namespaces.
* Simplified Robust.client.Graphics namespace.
* Automated remove redundant using statements.
2021-02-10 23:27:19 -08:00

35 lines
1.2 KiB
C#

using System;
using System.Collections.Generic;
namespace Robust.Shared.GameObjects
{
/// <summary>
/// A subsystem that acts on all components of a type at once.
/// Entity systems are similar to TGstation13 subsystems.
/// They have a set of entities to run over and run every once in a while.
/// They get managed by an <see cref="IEntitySystemManager" />.
/// </summary>
public interface IEntitySystem : IEntityEventSubscriber
{
IEnumerable<Type> UpdatesAfter { get; }
IEnumerable<Type> UpdatesBefore { get; }
/// <summary>
/// Called once when the system is created to initialize its state.
/// </summary>
void Initialize();
/// <summary>
/// Called once before the system is destroyed so that the system can clean up.
/// </summary>
void Shutdown();
/// <summary>
/// Called once per frame/tick to update the system.
/// </summary>
/// <param name="frameTime">Delta time since Update() was last called.</param>
void Update(float frameTime);
void FrameUpdate(float frameTime);
}
}