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")
 
(5 intermediate revisions by the same user not shown)
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=
+
''-- 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>
+
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().
+
 
+
Parameters
+
title The title of the color picker window, choose something brief and appropriate like 'Select a wall color'
+
okbutton The title of the 'OK' button, should indicate the action e.g. 'Adjust Wall'
+
onChange A callback event, will fire multiple times as the user adjusts the color
+
onSelect A callback event, indicates the final color selected by the user
+
onCancel A callback event, fires when the user clicks the Cancel button
+
defaultColor The color to open the colour picker with|5=<pre>--clicking the object will open a color picker than changees object's color
+
 
+
thisGameObject = Space.Host.ExecutingObject
+
 
+
OnChange = function(SColor)
+
thisGameObject.Renderer.Material.SetColor("_Color",SColor)
+
end
+
 
+
OnSelect = function(SColor)
+
thisGameObject.Renderer.Material.SetColor("_Color",SColor)
+
end
+
 
+
OnCancel = function()
+
Space.Log("no color was chosen")
+
end
+
 
+
OnClick = function()
+
Space.Dialogues.ColorPicker("title","okbutton", OnChange, OnSelect, OnCancel, Color.Red)
+
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