wiki.sine.space | sinespace

Difference between revisions of "Scripting/SDialogues"

From wiki.sine.space
Jump to: navigation, search
(Replaced content with "https://docs.sine.space/v/scripting/client-scripting/viewer/sdialogues")
 
Line 1: Line 1:
The SDialogue class allows you to issue dialogue messages to the player to confirm various actions.
+
https://docs.sine.space/v/scripting/client-scripting/viewer/sdialogues
 
+
==Members==
+
{{ScriptFunction|void|YesNoInput|(string title, string okbutton, string cancelButton, Action<bool> result);|Shows a yes/no dialogue box to the user, and returns the result via the result callback|5=<br><br>
+
hostObject = Space.Host.ExecutingObject;<br>
+
local deltaPos = Vector.New(0,100,0);<br>
+
local teleportTo = hostObject.WorldPosition + deltaPos;<br><br>
+
function teleportMeUp (b)<br>
+
:if b then<br>
+
::Space.Scene.PlayerAvatar.Teleport(teleportTo);<br>
+
:end<br>
+
end<br><br>
+
function openDialogue ()<br>
+
:Space.Dialogues.YesNoInput ("Ready for a teleport?", "Yes", "No", teleportMeUp);<br>
+
end<br><br>
+
hostObject.SubscribeToEvents();<br>
+
hostObject.OnMouseDown(openDialogue);<br>
+
}}
+
 
+
{{ScriptFunction|void|TextInput|(string title, string okbutton, Action<string> result);|Shows a text input dialogue box to the user, and returns the result via the result callback|5=
+
''-- There is a known bug that has been fixed in the live viewer, but not in the Editor Pack (v. 10.5)''<br><br>
+
hostObject = Space.Host.ExecutingObject;<br><br>
+
printToLog = function (s)<br>
+
:Space.Log(s);<br>
+
end<br><br>
+
function openDialogue ()<br>
+
:Space.Dialogues.TextInput ("Write anything.", "Done", printToLog);<br>
+
end<br><br>
+
hostObject.SubscribeToEvents();<br>
+
hostObject.OnMouseDown(openDialogue);}}
+
 
+
{{ScriptFunction|void|OpenURL|(string url);|Opens a URL in a web browser|5=
+
hostObject = Space.Host.ExecutingObject;<br><br>
+
function openTheWebsite ()<br>
+
:Space.Dialogues.OpenURL ("http://sine.space/");<br>
+
end<br><br>
+
hostObject.SubscribeToEvents();<br>
+
hostObject.OnMouseDown(openTheWebsite);<br>
+
''-- when the object is clicked, the "sine.space" website is opened''}}
+
 
+
{{ScriptFunction|void|SendLocalChat|(string text, string from);|Sends local chat to the client window|5=
+
hostObject = Space.Host.ExecutingObject;<br><br>
+
function chatMessage ()<br>
+
:Space.Dialogues.SendLocalChat ("I've been clicked", "Clickable Object");<br>
+
end<br><br>
+
hostObject.SubscribeToEvents();<br>
+
hostObject.OnMouseDown(chatMessage);}}
+
 
+
 
+
 
+
 
+
{{ScriptFunction|void|ColorPicker|(string title, string okbutton, Action< SColor > onChange, Action< SColor > onSelect, Action onCancel, SColor defaultColor);|Opens a color picker dialogue. Any change while the color picker is open will trigger onChange(SColor). Clicking 'ok' will trigger onSelect(SColor), and clicking cancel will trigger onCancel(). [Might not work in Editor Pack. Works on Viewer.]|5=<pre>--clicking the object will open a color picker that changes the object's color
+
 
+
thisGameObject = Space.Host.ExecutingObject
+
originalColor = thisGameObject.Renderer.Material.GetColor("_Color")
+
 
+
OnChange = function(SColor)
+
thisGameObject.Renderer.Material.SetColor("_Color",SColor)
+
end
+
 
+
OnSelect = function(SColor)
+
thisGameObject.Renderer.Material.SetColor("_Color",SColor)
+
end
+
 
+
OnCancel = function()
+
thisGameObject.Renderer.Material.SetColor("_Color",originalColor)
+
end
+
 
+
OnClick = function()
+
Space.Dialogues.ColorPicker("title","okbutton", OnChange, OnSelect, OnCancel, originalColor)
+
end
+
 
+
 
+
thisGameObject.AddClickable()
+
thisGameObject.Clickable.OnClick(OnClick)</pre>}}
+
 
+
 
+
 
+
{{Scripting Navbox}}
+

Latest revision as of 15:46, 16 September 2022

https://docs.sine.space/v/scripting/client-scripting/viewer/sdialogues