mirror of
https://github.com/opensim/opensim.git
synced 2026-05-26 03:45:36 +08:00
Adds a new script command 'modInvoke' to invoke registered functions
from region modules. The LSL translator is extended to generate the
modInvoke format of commands for directly inlined function calls.
A region module can register a function Test() with the name "Test".
LSL code can call that function as "Test()". The compiler will translate
that invocation into modInvoke("Test", ...)
This commit is contained in:
@@ -31,6 +31,7 @@ using OpenMetaverse;
|
||||
namespace OpenSim.Region.Framework.Interfaces
|
||||
{
|
||||
public delegate void ScriptCommand(UUID script, string id, string module, string command, string k);
|
||||
public delegate object ScriptInvocation(UUID script, object[] parms);
|
||||
|
||||
/// <summary>
|
||||
/// Interface for communication between OpenSim modules and in-world scripts
|
||||
@@ -45,6 +46,15 @@ namespace OpenSim.Region.Framework.Interfaces
|
||||
/// </summary>
|
||||
event ScriptCommand OnScriptCommand;
|
||||
|
||||
void RegisterScriptInvocation(string name, ScriptInvocation fn, Type[] csig, Type rsig);
|
||||
|
||||
ScriptInvocation LookupScriptInvocation(string fname);
|
||||
string LookupModInvocation(string fname);
|
||||
Type[] LookupTypeSignature(string fname);
|
||||
Type LookupReturnType(string fname);
|
||||
|
||||
object InvokeOperation(UUID scriptId, string fname, params object[] parms);
|
||||
|
||||
/// <summary>
|
||||
/// Send a link_message event to an in-world script
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user