dcsext.interfaces.Command

Command class to run a deferred function.

Contents

  1. Description
  2. Methods
    1. command:register()
    2. command:unregister()
    3. command:reschedule(time)
    4. command:run(time)
  3. Metamethods
    1. command:__init(delay, name, func, …)
  4. Fields
    1. command.self
    2. command.PRIORITY

Description

Provides a basic Command class to call an arbitrary function at a later time.

Methods

command:register()

command:unregister()

command:reschedule(time)

Parameters

time
the model time to run the Command

command:run(time)

This function may be overridden. The default implementation allows the Command class to run an arbitrary function provided at instantiation.

Parameters

time

Metamethods

command:__init(delay, name, func, …)

Parameters

delay
amount of delay in seconds before the command is run.
name
name of the Command, used in log output to differentiate.
func
the function to execute later. The function should return either a number representing how long the command should be requeued for before being executed again, otherwise nil to signal the command should not be requeue.
arguments to pass to the function

Fields

command.self

The deferred function is called in a protected context where the function can take an arbitrary parameter list and returns the same number of values as if the function was called directly. If the environment variable DCSEXT_PROFILE == true a different execute function will be enabled which tracks how long the deferred function takes to execute. This could be beneficial when trying to debug stuttering.

Parameters

self
reference to Command object
time
time-step the command is executed

command.PRIORITY

lower value is higher priority; total of 127 priority values