Click to touch

From Second Life Wiki
Jump to: navigation, search

Feature Design Document

(none)

Functional Spec

  • An object can be designated a touchable object by adding a script that has a touch* event in it, such as the default script does.
  • You touch an object by left clicking it while in move mode (ctrl + 2) or in normal mode (ie. if you hit escape, or by right clicking the object, then selecting "touch" from the pie menu.
  • Your cursor should turn into a hand icon when you hover it over an object that has a touch* event script on it.
  • Touch events will not register if you are in focus(ctrl+1), edit(ctrl+3), create(ctrl+4) or land(ctrl+5) mode.
  • Alpha texturing on an object does not affect whether it can be touched. Objects with fully transparent textures will still register clicks.
  • You can change the left-click behavior of an object on the general tab of the edit tools.
    • "Touch/grab (default)"
    • "Sit on object" will cause anyone clicking the object to sit on the object.
    • "Buy object" will pop up a buy dialog if the object is for sale.
    • "Pay object" will pop up a buy dialog if the object has a money event in one of its scripts.
    • "Open" will open the contents of an object if you have permissions to modify said object.
  • Touch allows you to move objects.
  • Touching an object should trigger any touch events on the object.
  • Touching and dragging your own object that has touch script and is not physical should NOT move it, even if you have the move tool (ctrl-2) selected.
  • Touching and dragging on an object, then releasing should put your cursor back to the same screen coordinates they were at when you first touched the object.
  • (you cannot drag a physical and movable object by dragging on a child prim if either the root or child prim has a touch script in it. bug?)

Test scripts

(none)

Discussion for future improvements

(none)

Relationship to other features

List of features that need to be tested when this feature changes, and why.

llSetTouchText - Replace the pie cursor "Touch" label with a user defined label.

llPassTouches - Touch events on a child object should obey llPassTouches when passing touches to the parent prim.

User Guides

touch event on LSLWiki.com

touch_start event on LSLWiki.com

touch_end event on LSLWiki.com