SShared

Index

Functions Index

Function Name

Functions

SetGlobal

void SetGlobal(string ns, string key, DynValue value)

Sets a global key to a value. The value can be any object type.

Parameter
Type
Description

ns

string

key

string

value

DynValue

Space.Shared.SetGlobal("com.someNameHere.world", "version", "1.02");
-- This one script placed on a multiple number of objects  will track the number
-- of clicks user has made using a Global Variable
-- note: the GetGlobal/SetGlobal functions are client side

thisObject = Space.Host.ExecutingObject
namespace = "com.example.shared" 
key = "clicktracker"


OnClick = function()

local currentClicks = Space.Shared.GetGlobal(namespace, key)

if currentClicks == nil then
  currentClicks = 1
else
  currentClicks = currentClicks + 1
end

Space.Shared.SetGlobal(namespace, key, currentClicks)
Space.Log("Total Clicks = " .. currentClicks)

end
  

thisObject.AddClickable()
thisObject.Clickable.OnClick(OnClick)

SetSuperGlobal

void SetSuperGlobal(string ns, string key, DynValue value)

Function Description

Parameter
Type
Description

Space.Shared.SetSuperGlobal("com.someNameHere.world", "version", "1.02");
example 2

GetGlobal

DynValue GetGlobal(string ns, string key)

Retrieves a previously set global variable, or returns nil.

Parameter
Type
Description

versionValue = Space.Shared.GetGlobal("com.someNameHere.world", "version")
-- This one script placed on a multiple number of objects  will track the number
-- of clicks user has made using a Global Variable
-- note: the GetGlobal/SetGlobal functions are client side

thisObject = Space.Host.ExecutingObject
namespace = "com.example.shared" 
key = "clicktracker"


OnClick = function()

local currentClicks = Space.Shared.GetGlobal(namespace, key)

if currentClicks == nil then
  currentClicks = 1
else
  currentClicks = currentClicks + 1
end

Space.Shared.SetGlobal(namespace, key, currentClicks)
Space.Log("Total Clicks = " .. currentClicks)

end
  

thisObject.AddClickable()
thisObject.Clickable.OnClick(OnClick)

GetSuperGlobal

DynValue GetSuperGlobal(string ns, string key)

Retrieves a previously set super global variable, or returns nil.

Parameter
Type
Description

versionValue = Space.Shared.GetSuperGlobal("com.someNameHere.world", "version");
--these two scripts are in two different regions but script B will know that you came from A

--REGION A script
username = Space.Scene.PlayerAvatar.Username
region = Space.Scene.Name
Space.Shared.SetSuperGlobal (username, "Last Location", region)



--REGION B script
username = Space.Scene.PlayerAvatar.Username
region = Space.Shared.GetSuperGlobal (username, "Last Location")
Space.Dialogues.SendLocalChat ("You have arrived from ".. region, "Last Location")

RegisterFunction

void RegisterFunction(string ns, string func, Closure reference)

Makes func into a global function that can be accessed anywhere.

Parameter
Type
Description

function someFunction(name)
  Space.Log("Hello " .. name);
end

Space.Shared.RegisterFunction("com.someNameHere.world", "func", someFunction);
--Script placed on object A will allow other objects to call one of it's registered functions when clicked

--Script in Object A
thisObject = Space.Host.ExecutingObject
namespace = "com.example.shared" 

LogFunction = function(Parameter)
Space.Log("I've been called with parameter: " .. Parameter)  
end

Space.Shared.RegisterFunction(namespace, "Log", LogFunction)



-- Script in Other Objects
thisObject = Space.Host.ExecutingObject
namespace = "com.example.shared" 

OnClick = function()
Space.Shared.CallFunction(namespace, "Log", {"Example"}) 
end

thisObject.AddClickable()
thisObject.Clickable.OnClick(OnClick)

RegisterBroadcastFunction

void RegisterBroadcastFunction(string ns, string func, Closure reference)

Makes func into a global function that can be accessed anywhere.

Parameter
Type
Description

function someFunction(name)
  Space.Log("Hello " .. name);
end

Space.Shared.RegisterBroadcastFunction("com.someNameHere.world", "func", someFunction);

UnregisterBroadcastFunction

void UnregisterBroadcastFunction(string ns, string func, Closure reference) void UnregisterBroadcastFunction(string ns, string func)

Function Description

Parameter
Type
Description

-- Script A: Receiver
function someFunction(status)
  if status == "start"
  then Space.Log("Do receiver 1 procedures.")
  end
end

Space.Shared.RegisterBroadcastFunction("com.someNameHere.world", "func", someFunction);


-- Script B: Another Receiver
function someFunction(status)
  if status == "start"
  then Space.Log("Do receiver 2 procedures.")
  end
end

Space.Shared.RegisterBroadcastFunction("com.someNameHere.world", "func", someFunction);


--Script C: Sender
local ball = Space.Host.ExecutingObject;
ball.SubscribeToEvents();

function onDown()
  local queue = Space.Shared.CallBroadcastFunction("com.someNameHere.world", "func", {"start"});
  Space.Log("number in queue: " .. queue);
  Space.Shared.UnregisterBroadcastFunction("com.someNameHere.world", "func", someFunction);
  Space.Log("UnregisterBroadcastFunction");
end


ball.OnMouseDown(onDown);

CallFunction

void CallFunction(string ns, string func, IEnumerable< DynValue > args)

Calls the registered function with the specified arguments.

Parameter
Type
Description

Space.Shared.CallFunction("com.someNameHere.world", "func",{"Smith"});
--Script placed on object A will allow other objects to call one of it's registered functions when clicked

--Script in Object A
thisObject = Space.Host.ExecutingObject
namespace = "com.example.shared" 

LogFunction = function(Parameter)
Space.Log("I've been called with parameter: " .. Parameter)  
end

Space.Shared.RegisterFunction(namespace, "Log", LogFunction)



-- Script in Other Objects
thisObject = Space.Host.ExecutingObject
namespace = "com.example.shared" 

OnClick = function()
Space.Shared.CallFunction(namespace, "Log", {"Example"}) 
end

thisObject.AddClickable()
thisObject.Clickable.OnClick(OnClick)

CallBroadcastFunction

void CallBroadcastFunction(string ns, string func, IEnumerable< DynValue > args)

Makes func into a global function that can be accessed anywhere.

Parameter
Type
Description

function someFunction(name)
  Space.Log("Hello " .. name);
end

Space.Shared.RegisterBroadcastFunction("com.someNameHere.world", "func", someFunction);

Last updated

Sinespace® is a registered trademark of Sine Wave Entertainment Ltd, All Rights Reserved.