clockwerk-opensim – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 vero 1 /*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27  
28 using System.Collections;
29 using System.Collections.Generic;
30 using System.Security;
31 using OpenMetaverse;
32 using OpenSim.Framework;
33 using OpenSim.Region.Framework.Scenes;
34 using OpenSim.Region.Framework.Interfaces;
35  
36 namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
37 {
38 class SPAvatar : System.MarshalByRefObject, IAvatar
39 {
40 private readonly Scene m_rootScene;
41 private readonly UUID m_ID;
42 private readonly ISecurityCredential m_security;
43 //private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
44  
45 public SPAvatar(Scene scene, UUID ID, ISecurityCredential security)
46 {
47 m_rootScene = scene;
48 m_security = security;
49 m_ID = ID;
50 }
51  
52 private ScenePresence GetSP()
53 {
54 return m_rootScene.GetScenePresence(m_ID);
55 }
56  
57 public string Name
58 {
59 get { return GetSP().Name; }
60 set { throw new SecurityException("Avatar Names are a read-only property."); }
61 }
62  
63 public UUID GlobalID
64 {
65 get { return m_ID; }
66 }
67  
68 public Vector3 WorldPosition
69 {
70 get { return GetSP().AbsolutePosition; }
71 set { GetSP().Teleport(value); }
72 }
73  
74 public bool IsChildAgent
75 {
76 get { return GetSP().IsChildAgent; }
77 }
78  
79 #region IAvatar implementation
80 public IAvatarAttachment[] Attachments
81 {
82 get {
83 List<IAvatarAttachment> attachments = new List<IAvatarAttachment>();
84  
85 List<AvatarAttachment> internalAttachments = GetSP().Appearance.GetAttachments();
86 foreach (AvatarAttachment attach in internalAttachments)
87 {
88 attachments.Add(new SPAvatarAttachment(m_rootScene, this, attach.AttachPoint,
89 new UUID(attach.ItemID),
90 new UUID(attach.AssetID), m_security));
91 }
92  
93 return attachments.ToArray();
94 }
95 }
96  
97 public void LoadUrl(IObject sender, string message, string url)
98 {
99 IDialogModule dm = m_rootScene.RequestModuleInterface<IDialogModule>();
100 if (dm != null)
101 dm.SendUrlToUser(GetSP().UUID, sender.Name, sender.GlobalID, GetSP().UUID, false, message, url);
102 }
103 #endregion
104 }
105 }