wiki.sine.space | sinespace

Difference between revisions of "Scripting/SShared"

From wiki.sine.space
Jump to: navigation, search
(Created page with "The SShared class provides IPC methods that allow scripts to communicate with each other and objects to be passed between scripts. Variables are shared between scripts, so a...")
 
(Replaced content with "This page has moved to: https://docs.sine.space/v/scripting/client-scripting/viewer/sshared")
 
(14 intermediate revisions by 3 users not shown)
Line 1: Line 1:
The SShared class provides IPC methods that allow scripts to communicate with each other and objects to be passed between scripts. Variables are shared between scripts, so a
+
This page has moved to: https://docs.sine.space/v/scripting/client-scripting/viewer/sshared
 
+
namespace is required. This class does not replace [[Scripting/SNetwork]].
+
 
+
=Members=
+
{{ScriptFunction|void|SetGlobal|(string namespace, string key, DynValue value);|| Sets a global key to a value. The value can be any object type.|5=
+
'''Space.Shared.SetGlobal'''("com.someNameHere.world", "version", "1.02");}}
+
 
+
{{ScriptFunction|DynValue|GetGlobal|(string namespace, string key);|Retrieves a previously set global variable, or returns nil.|5=
+
local versionValue = '''Space.Shared.GetGlobal'''("com.someNameHere.world", "version");}}
+
 
+
{{ScriptFunction|void|RegisterFunction|(string ns, string func, Closure reference);| Makes func into a global function that can be accessed anywhere.|5=
+
function someFunction(name)
+
&nbsp;&nbsp;Space.Log("Hello " .. name);<br>
+
end<br><br>
+
 
+
'''Space.Shared.RegisterFunction'''("com.someNameHere.world", "func", someFunction);
+
}}
+
 
+
{{ScriptFunction|void|CallFunction|(string ns, string func, IEnumerable< DynValue > args);|Calls the registered function with the specified arguments.|5=
+
'''Space.Shared.CallFunction'''("com.someNameHere.world", "func",{"Smith"});}}
+
 
+
{{ScriptFunction|void|RegisterBroadcastFunction|(string ns, string func, Closure reference);|Makes func into a global function that can be accessed anywhere.|5=
+
function someFunction(name)
+
&nbsp;&nbsp;Space.Log("Hello " .. name);<br>
+
end<br><br>
+
 
+
'''Space.Shared.RegisterBroadcastFunction'''("com.someNameHere.world", "func", someFunction);}}
+
 
+
 
+
{{ScriptFunction|int|CallBroadcastFunction|((string ns, string func, IEnumerable< DynValue > args);|Calls every registered broadcast function with the specified arguments,
+
 
+
and returns the number of calls queued.|5=
+
''-- Script A: Receiver''<br>
+
function someFunction(status)<br>
+
&nbsp;&nbsp;if status == "start"<br>
+
&nbsp;&nbsp;then Space.Log("Do receiver 1 procedures.")<br>
+
&nbsp;&nbsp;end<br>
+
end<br><br>
+
 
+
Space.Shared.RegisterBroadcastFunction("com.someNameHere.world", "func", someFunction);<br><br>
+
 
+
 
+
''-- Script B: Another Receiver''<br>
+
function someFunction(status)<br>
+
&nbsp;&nbsp;if status == "start"<br>
+
&nbsp;&nbsp;then Space.Log("Do receiver 2 procedures.")<br>
+
&nbsp;&nbsp;end<br>
+
end<br><br>
+
 
+
Space.Shared.RegisterBroadcastFunction("com.someNameHere.world", "func", someFunction);<br><br>
+
 
+
 
+
''--Script C: Sender''<br>
+
local ball = Space.Host.ExecutingObject;<br>
+
ball.SubscribeToEvents();<br><br>
+
 
+
function onDown()<br>
+
&nbsp;&nbsp;local queue = '''Space.Shared.CallBroadcastFunction'''("com.someNameHere.world", "func", {"start"});<br>
+
&nbsp;&nbsp;Space.Log("number in queue: " .. queue);<br>
+
end<br><br>
+
 
+
 
+
ball.OnMouseDown(onDown);}}
+
 
+
 
+
{{Scripting Navbox}}
+

Latest revision as of 05:01, 19 September 2022

This page has moved to: https://docs.sine.space/v/scripting/client-scripting/viewer/sshared