wiki.sine.space | sinespace

Difference between revisions of "Scripting/SDialogues"

From wiki.sine.space
Jump to: navigation, search
Line 54: Line 54:
  
 
thisGameObject = Space.Host.ExecutingObject
 
thisGameObject = Space.Host.ExecutingObject
 +
originalColor = thisGameObject.Renderer.Material.GetColor("_Color")
  
 
OnChange = function(SColor)  
 
OnChange = function(SColor)  
Line 64: Line 65:
  
 
OnCancel = function()
 
OnCancel = function()
Space.Log("no color was chosen")
+
thisGameObject.Renderer.Material.SetColor("_Color",originalColor)
 
end
 
end
  
 
OnClick = function()
 
OnClick = function()
Space.Dialogues.ColorPicker("title","okbutton", OnChange, OnSelect, OnCancel, Color.Red)
+
Space.Dialogues.ColorPicker("title","okbutton", OnChange, OnSelect, OnCancel, originalColor)
 
end
 
end
  

Revision as of 08:03, 12 October 2021

The SDialogue class allows you to issue dialogue messages to the player to confirm various actions.

Members

YesNoInput

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

-- There is a known bug that has been fixed in the live viewer, but not in the Editor Pack (v. 10.5)

hostObject = Space.Host.ExecutingObject;
local deltaPos = Vector.New(0,100,0);
local teleportTo = hostObject.WorldPosition + deltaPos;

function teleportMeUp (b)

if b then
Space.Scene.PlayerAvatar.Teleport(teleportTo);
end

end

function openDialogue ()

Space.Dialogues.YesNoInput ("Ready for a teleport?", "Yes", "No", teleportMeUp);

end

hostObject.SubscribeToEvents();

hostObject.OnMouseDown(openDialogue);


TextInput

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

-- There is a known bug that has been fixed in the live viewer, but not in the Editor Pack (v. 10.5)

hostObject = Space.Host.ExecutingObject;

printToLog = function (s)

Space.Log(s);

end

function openDialogue ()

Space.Dialogues.TextInput ("Write anything.", "Done", printToLog);

end

hostObject.SubscribeToEvents();

hostObject.OnMouseDown(openDialogue);


OpenURL

void OpenURL (string url);

Opens a URL in a web browser

hostObject = Space.Host.ExecutingObject;

function openTheWebsite ()

Space.Dialogues.OpenURL ("http://sine.space/");

end

hostObject.SubscribeToEvents();
hostObject.OnMouseDown(openTheWebsite);

-- when the object is clicked, the "sine.space" website is opened


SendLocalChat

void SendLocalChat (string text, string from);

Sends local chat to the client window

hostObject = Space.Host.ExecutingObject;

function chatMessage ()

Space.Dialogues.SendLocalChat ("I've been clicked", "Clickable Object");

end

hostObject.SubscribeToEvents();

hostObject.OnMouseDown(chatMessage);




ColorPicker

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.]

--clicking the object will open a color picker than changees 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)