You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
3.7 KiB
99 lines
3.7 KiB
// This code is part of the Fungus library (http://fungusgames.com) maintained by Chris Gregan (http://twitter.com/gofungus). |
|
// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) |
|
|
|
using System; |
|
|
|
namespace Fungus |
|
{ |
|
[Flags] |
|
public enum ExecuteMethod |
|
{ |
|
AfterPeriodOfTime = 1 << 0, |
|
Start = 1 << 1, |
|
Update = 1 << 2, |
|
FixedUpdate = 1 << 3, |
|
LateUpdate = 1 << 4, |
|
OnDestroy = 1 << 5, |
|
OnEnable = 1 << 6, |
|
OnDisable = 1 << 7, |
|
OnControllerColliderHit = 1 << 8, |
|
OnParticleCollision = 1 << 9, |
|
OnJointBreak = 1 << 10, |
|
OnBecameInvisible = 1 << 11, |
|
OnBecameVisible = 1 << 12, |
|
OnTriggerEnter = 1 << 13, |
|
OnTriggerExit = 1 << 14, |
|
OnTriggerStay = 1 << 15, |
|
OnCollisionEnter = 1 << 16, |
|
OnCollisionExit = 1 << 17, |
|
OnCollisionStay = 1 << 18, |
|
OnTriggerEnter2D = 1 << 19, |
|
OnTriggerExit2D = 1 << 20, |
|
OnTriggerStay2D = 1 << 21, |
|
OnCollisionEnter2D = 1 << 22, |
|
OnCollisionExit2D = 1 << 23, |
|
OnCollisionStay2D = 1 << 24, |
|
} |
|
|
|
/// <summary> |
|
/// Executes an LuaScript component in the same gameobject when a condition occurs. |
|
/// </summary> |
|
public interface IExecuteHandler |
|
{ |
|
float ExecuteAfterTime { get; set; } |
|
|
|
bool RepeatExecuteTime { get; set; } |
|
|
|
float RepeatEveryTime { get; set; } |
|
|
|
int ExecuteAfterFrames { get; set; } |
|
|
|
bool RepeatExecuteFrame { get; set; } |
|
|
|
int RepeatEveryFrame { get; set; } |
|
|
|
ExecuteMethod ExecuteMethods { get; set; } |
|
|
|
/// <summary> |
|
/// Returns true if the specified execute method option has been enabled. |
|
/// </summary> |
|
bool IsExecuteMethodSelected(ExecuteMethod method); |
|
|
|
/// <summary> |
|
/// Execute the Lua script immediately. |
|
/// This is the function to call if you want to trigger execution from an external script. |
|
/// </summary> |
|
void Execute(); |
|
} |
|
|
|
public interface IExecuteHandlerConfigurator |
|
{ |
|
/// <summary> |
|
/// If the assertion is evaluated in Update, after how many frame should the evaluation start. Defult is 1 (first frame) |
|
/// </summary> |
|
int UpdateExecuteStartOnFrame { set; } |
|
/// <summary> |
|
/// If the assertion is evaluated in Update and UpdateExecuteRepeat is true, how many frame should pass between evaluations |
|
/// </summary> |
|
int UpdateExecuteRepeatFrequency { set; } |
|
/// <summary> |
|
/// If the assertion is evaluated in Update, should the evaluation be repeated after UpdateExecuteRepeatFrequency frames |
|
/// </summary> |
|
bool UpdateExecuteRepeat { set; } |
|
|
|
/// <summary> |
|
/// If the assertion is evaluated after a period of time, after how many seconds the first evaluation should be done |
|
/// </summary> |
|
float TimeExecuteStartAfter { set; } |
|
/// <summary> |
|
/// If the assertion is evaluated after a period of time and TimeExecuteRepeat is true, after how many seconds should the next evaluation happen |
|
/// </summary> |
|
float TimeExecuteRepeatFrequency { set; } |
|
/// <summary> |
|
/// If the assertion is evaluated after a period, should the evaluation happen again after TimeExecuteRepeatFrequency seconds |
|
/// </summary> |
|
bool TimeExecuteRepeat { set; } |
|
|
|
ExecuteHandler Component { get; } |
|
} |
|
} |