Files
libremetaverse/data/cablebeach_message_template.msg
John Hurliman 95a4f7fd7e * Fixing [LIBOMV-504] reported by Eves Sinister, OSDParser.Deserialize() now handles LLSDXML that starts with <?xml
* Cleaned up the Cable Beach inventory API and added LLIDL for prim serialization. This is still a proposal and no serialization/deserialization exists yet
* Updated content types and file extensions used by Cable Beach to match the table at https://wiki.secondlife.com/wiki/Asset_System

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2674 52acb1d6-8a22-11de-b505-999d5b087335
2009-04-29 17:21:46 +00:00

529 lines
8.4 KiB
Plaintext

////////////////////////////////////////////////////////////////////////////////
// World Server
////////////////////////////////////////////////////////////////////////////////
&region_info =
{
name: string,
id: uuid,
handle: binary,
online: boolean,
ip: binary,
port: integer,
address: uri,
map_texture_id: uuid,
owner: uri,
region_flags: integer,
agent_count: integer,
capabilities: { $: uri },
water_height: real,
default_position: [ real, real, real ],
default_look_at: [ real, real, real ]
}
%%create_region
-> region_info
<-
{
success: boolean,
message: string,
simulation_key: uuid
}
%%delete_region
->
{
id: uuid,
simulation_key: uuid
}
<-
{
success: boolean,
message: string
}
%%region_update
->
{
region: region_info,
simulation_key: uuid
}
<-
{
success: boolean,
message: string
}
%%fetch_region
&fetch_region_query = { id: uuid }
&fetch_region_query = { x: integer, y: integer, nearest: boolean }
&fetch_region_query = { name: string }
-> fetch_region_query
<- region_info
%%fetch_default_region
<- region_info
%%region_search
->
{
query: string
}
<-
{
regions: [ region_info, ... ]
}
%%get_region_count
<-
{
count: integer
}
////////////////////////////////////////////////////////////////////////////////
// Identity
////////////////////////////////////////////////////////////////////////////////
// This message should be ignored if it originates from anywhere other than the
// identity server for the given identity
%%request_capabilities
->
{
identity: uri,
capabilities: [ string, ... ]
}
<-
{
capabilities: { $: uri }
}
////////////////////////////////////////////////////////////////////////////////
// Assets
////////////////////////////////////////////////////////////////////////////////
&primitive =
{
attachment_position: [ real, real, real ],
attachment_rotation: [ real, real, real, real ],
before_attachment_rotation: [ real, real, real, real ],
name: string,
perms_base: integer,
perms_owner: integer,
perms_group: integer,
perms_everyone: integer,
perms_next_owner: integer,
creator_id: uuid,
owner_id: uuid,
last_attachment_point: integer,
last_owner_id: uuid,
link_number: integer,
group_id: uuid,
local_id: integer,
position: [ real, real, real ],
rotation: [ real, real, real, real ],
velocity: [ real, real, real ],
angular_velocity: [ real, real, real ],
scale: [ real, real, real ],
sit_offset: [ real, real, real ],
sit_rotation: [ real, real, real, real ],
camera_eye_offset: [ real, real, real ],
camera_at_offset: [ real, real, real ],
state: integer,
material: integer,
sound_id: uuid,
sound_gain: real,
sound_radius: real,
sound_flags: integer,
text_color: [ real, real, real, real ],
selected: boolean,
selector_id: uuid,
use_physics: boolean,
phantom: boolean,
remote_script_access_pin: integer,
volume_detect: boolean,
die_at_edge: boolean,
return_at_edge: boolean,
temporary: boolean,
sandbox: boolean,
rez_time: date,
sale_price: integer,
sale_type: integer,
shape:
{
path_curve: integer,
path_begin: real,
path_end: real,
path_scale_x: real,
path_scale_y: real,
path_shear_x: real,
path_shear_y: real,
path_twist: real,
path_twist_begin: real,
path_radius_offset: real,
path_taper_x: real,
path_taper_y: real,
path_revolutions: real,
path_skew: real,
profile_curve: integer,
profile_begin: real,
profile_end: real,
profile_hollow: real
}
faces:
[
{
face_index: integer,
image_id: uuid,
color: [ real, real, real, real ],
scale_s: real,
scale_t: real,
offset_s: real,
offset_t: real,
imagerot: real,
bump: integer,
fullbright: boolean,
media_flags: integer
},
...
],
inventory:
{
serial: integer,
items:
[
{
id: uuid,
parent_id: uuid,
name: string,
owner_id: uuid,
asset_id: uuid,
content_type: string,
creator_id: uuid,
group_id: uuid,
description: string,
group_owned: boolean,
perms_base: binary,
perms_everyone: binary,
perms_group: binary,
perms_next: binary,
perms_owner: binary,
sale_price: integer,
sale_type: integer,
flags: integer,
creation_date: integer,
permission_granter: uuid,
granted_permissions: integer
},
...
]
}
}
%%get_asset_metadata
&metadata =
{
id: uuid,
name: string,
description: string,
creation_date: date,
content_type: string,
sha256: binary,
temporary: boolean,
methods: { $: uri }
}
&metadata =
{
id: uuid,
name: string,
description: string,
creation_date: date,
content_type: string,
sha256: binary,
temporary: boolean,
methods: { $: uri }
components: integer,
layer_ends: [ integer ]
}
<- metadata
%%create_asset
&create =
{
content_type: string,
temporary: boolean,
base64_data: string
}
&create =
{
id: uuid,
content_type: string,
temporary: boolean,
base64_data: string
}
-> create
<-
{
id: uuid
}
////////////////////////////////////////////////////////////////////////////////
// Inventory
////////////////////////////////////////////////////////////////////////////////
&inventory_object =
{
id: uuid,
parent_id: uuid,
name: string,
owner_id: uuid,
asset_id: uuid,
content_type: string,
creator_id: uuid,
group_id: uuid,
description: string,
group_owned: boolean,
perms_base: binary,
perms_everyone: binary,
perms_group: binary,
perms_next: binary,
perms_owner: binary,
sale_price: integer,
sale_type: integer,
flags: integer,
creation_date: integer
}
&inventory_object =
{
id: uuid,
parent_id: uuid,
name: string,
owner_id: uuid,
preferred_content_type: string,
version: integer,
children: [ inventory_object, ... ]
}
%%create_inventory
->
{
identity: uri,
name: string
}
<-
{
root_folder_id: uuid
}
%%create_object
->
{
identity: uri,
object: inventory_object
}
<-
{
success: boolean,
message: string
}
%%fetch_object
->
{
identity: uri,
object_id: uuid
}
<-
{
success: boolean,
message: string,
object: inventory_object
}
%%purge_folder
->
{
identity: uri,
folder_id: uuid
}
<-
{
success: boolean,
message: string
}
%%get_inventory_skeleton
->
{
identity: uri
}
<-
{
folders:
[
{
name: string,
parent_id: uuid,
version: integer,
preferred_content_type: string,
folder_id: uuid
},
...
]
}
%%get_active_gestures
->
{
identity: uri
}
<-
{
gestures:
[
{
item_id: uuid,
asset_id: uuid
},
...
]
}
////////////////////////////////////////////////////////////////////////////////
// Simulators
////////////////////////////////////////////////////////////////////////////////
%%enable_client
->
{
identity: uri,
agent_id: uuid,
session_id: uuid,
secure_session_id: uuid,
circuit_code: integer,
region_handle: binary,
child_agent: boolean,
ip: binary,
client_version: string,
attributes: { },
services: { $: { $: uri } },
callback_uri: uri
}
<-
{
success: boolean,
message: string,
seed_capability: uri,
}
%%enable_client_complete
->
{
agent_id: uuid
}
%%close_agent_connection
->
{
agent_id: uuid
}
%%neighbor_update
->
{
neighbors: [ region_info, ... ]
}
%%child_agent_update
->
{
agent_id: uuid,
session_id: uuid,
position: [ real, real, real ],
velocity: [ real, real, real ],
region_handle: binary,
cam_position: [ real, real, real ],
cam_at_axis: [ real, real, real ],
cam_left_axis: [ real, real, real ],
cam_up_axis: [ real, real, real ]
}
%%pass_object
->
{
id: uuid
}
<-
{
success: boolean,
message: string
}
%%fetch_terrain
->
{
blocks:
[
{
x: integer,
y: integer
}
]
}
<-
{
blocks:
[
{
x: integer,
y: integer,
data: binary
}
]
}