SimulatorFeatures
From OpenSimulator
Contents |
SimulatorFeaturesModule
from dev-master hash/commit time 10a8d28_1407360312
Overview
The SimulatorFeaturesModule is the mechanism used to inform the viewer about a region's ability to handle mesh model objects. This information is sent when the presence is created in the region so the viewer will be able to determine the region's mesh capabilities. There are no configurable items for the features. But, many OpenSim capable viewers support extended use of the simulator features to pass other parameters that the viewer can use to dynamically refresh values needed to properly operate components for the grid containing the region. This is particularly useful for Hypergrid since several viewer components receive parameters upon login and are specific to that grid. Unless the parameters are dynamically refreshed, the components will not work when visiting new grids. We pass the parameters inside a data structure named "OpenSimExtras" along with the simulator features.
Configuration
The region sends this data to the viewer, and we support the setting of these extras in the configuration of the simulator. But, we use the Robust or Standalone GridService and LoginService to push default values to the regions when they startup. The values we send are identical to the parameters we send in our home grid's login service when the user logs into the grid.
Robust Grid and Standalone
We currently (dev-master hash/commit time 10a8d28_1407360312 forward) support the configuration of several parameters via the Robust.ini or Robust.HG.ini for grids or via config-include/StandaloneCommon.ini for standalones.
[GridService] ; Support viewer export of content ExportSupported = true [LoginService] ; Grid Search service url SearchURL = "url to search service" ; Grid Map Service MapTileURL = "http://127.0.0.1:8002" ; Grid destination guide url (grid favorite locations) DestinationGuide = "url to destination guide"
OpenSim
OpenSimExtras are configured in several places through the code and the best way to track them is to search for modules that watch the OnSimulatorFeaturesRequest event.
For certain features, we support the override of the grid defaults in the SimulatorFeaturesModule, but the defaults should be set at the grid level to ensure that the services required to operate the viewer components will be correct when users login or enter regions via Hypergrid.
[SimulatorFeatures] ; Override search service url SearchServerURI = "url to search service for this Simulator and its region(s)" ; Override destination guide url DestinationGuideURI = "url to destination guide for this Simulator and its region(s)" ; Override map service url ;(this may be set in one of several other locations, but we can use this to be consistent) MapTileURL = "url to map service for this Simulator and its region(s)" [Chat] ; Distance in meters that ordinary chat should travel. Default is 20m say_distance = 20 ; Controls whether the chat module is enabled. Default is true. enabled = true; ; Distance in meters that whispers should travel. Default is 10m whisper_distance = 10 ; Distance in meters that shouts should travel. Default is 100m shout_distance = 100 [Materials] enable_materials = true MaxMaterialsPerTransaction = 50
Extra information sent to the viewer over the SimulatorFeatures capability
The OpenSimulator specific proportion of this is as follows (TODO: Need to document the surrounding SimulatorFeatures structure as well!).
OpenSimExtras (OSDMap) map-server-url (string) search-server-url (string) destination-guide-url (string) ExportSupported (Boolean) GridName (string) - name of this simulator's grid (can change if travelling via Hypergrid). OpenSimulator 0.8.1 onwards. GridURL (string) - login URL of this simulator's grid (can change if travelling via Hypergrid). OpenSimulator 0.8.1 onwards. say-range (integer) whisper-range (integer) shout-range (integer) MaxMaterialsPerTransaction (integer) (Added 19 June 2015 r/26085)
Any of these is optional -- it may or may not be sent by the simulators. The entire map OpenSimExtras may or may not be present.
Portions of this are available in OpenSimulator 0.7.6 onward. Grid support is only available from r/25093 (4-Aug-2014 as dev-master hash/commit time 10a8d28_1407360312) onward.