ScriptSystem Class
Namespace: Stride.Engine.ProcessorsAssembly: Stride.Engine.dll
The script system handles scripts scheduling in a game.
public sealed class ScriptSystem : GameSystemBase, IDisposable, ICollectorHolder, IGameSystemBase, IComponent, IReferencable, IUpdateable, IDrawable, IContentable
| Name | Description | |
|---|---|---|
| Constructors | ||
| ScriptSystem(IServiceRegistry) | Initializes a new instance of the GameSystemBase class. |
|
| Properties | ||
| Scheduler | Gets the scheduler. |
|
| Methods | ||
| Add(ScriptComponent) | Add the provided script to the script system. |
|
| AddTask(Func<Task>, Int64) | Adds the specified micro thread function. |
|
| Destroy() | ||
| LiveReload(ScriptComponent, ScriptComponent) | Called by a live scripting debugger to notify the ScriptSystem about reloaded scripts. |
|
| NextFrame() | Allows to wait for next frame. |
|
| Remove(ScriptComponent) | Remove the provided script from the script system. |
|
| Update(GameTime) | ||
| WhenAll(MicroThread[]) | Waits all micro thread finished their task completion. |
|
Constructors
ScriptSystem(IServiceRegistry)
Initializes a new instance of the GameSystemBase class.
public ScriptSystem(IServiceRegistry registry)
Parameters
| Type | Name | Description |
|---|---|---|
| IServiceRegistry | registry | The registry. |
Remarks
The GameSystem is expecting the following services to be registered: IGame and ContentManager.
Properties
Scheduler
Gets the scheduler.
public Scheduler Scheduler { get; }
Property Value
| Type | Description |
|---|---|
| Scheduler | The scheduler. |
Methods
Add(ScriptComponent)
Add the provided script to the script system.
public void Add(ScriptComponent script)
Parameters
| Type | Name | Description |
|---|---|---|
| ScriptComponent | script | The script to add |
AddTask(Func<Task>, Int64)
Adds the specified micro thread function.
public MicroThread AddTask(Func<Task> microThreadFunction, long priority = 0L)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Func<System.Threading.Tasks.Task> | microThreadFunction | The micro thread function. |
| System.Int64 | priority |
Returns
| Type | Description |
|---|---|
| MicroThread | MicroThread. |
Destroy()
protected override void Destroy()
Overrides
LiveReload(ScriptComponent, ScriptComponent)
Called by a live scripting debugger to notify the ScriptSystem about reloaded scripts.
public void LiveReload(ScriptComponent oldScript, ScriptComponent newScript)
Parameters
| Type | Name | Description |
|---|---|---|
| ScriptComponent | oldScript | The old script |
| ScriptComponent | newScript | The new script |
NextFrame()
Allows to wait for next frame.
public ChannelMicroThreadAwaiter<int> NextFrame()
Returns
| Type | Description |
|---|---|
| ChannelMicroThreadAwaiter<System.Int32> | ChannelMicroThreadAwaiter<System.Int32>. |
Remove(ScriptComponent)
Remove the provided script from the script system.
public void Remove(ScriptComponent script)
Parameters
| Type | Name | Description |
|---|---|---|
| ScriptComponent | script | The script to remove |
Update(GameTime)
public override void Update(GameTime gameTime)
Parameters
| Type | Name | Description |
|---|---|---|
| GameTime | gameTime |
Overrides
WhenAll(MicroThread[])
Waits all micro thread finished their task completion.
public async Task WhenAll(params MicroThread[] microThreads)
Parameters
| Type | Name | Description |
|---|---|---|
| MicroThread[] | microThreads | The micro threads. |
Returns
| Type | Description |
|---|---|
| System.Threading.Tasks.Task | Task. |