diff options
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/SceneObject.cs')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObject.cs | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneObject.cs b/OpenSim/Region/Environment/Scenes/SceneObject.cs index 04ed408..3d97a06 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObject.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObject.cs | |||
@@ -63,6 +63,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
63 | return this.LocalId; | 63 | return this.LocalId; |
64 | } | 64 | } |
65 | } | 65 | } |
66 | |||
66 | /// <summary> | 67 | /// <summary> |
67 | /// | 68 | /// |
68 | /// </summary> | 69 | /// </summary> |
@@ -72,8 +73,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
72 | m_world = world; | 73 | m_world = world; |
73 | this.Pos = addPacket.ObjectData.RayEnd; | 74 | this.Pos = addPacket.ObjectData.RayEnd; |
74 | this.CreateRootFromPacket(addPacket, ownerID, localID); | 75 | this.CreateRootFromPacket(addPacket, ownerID, localID); |
75 | |||
76 | } | 76 | } |
77 | |||
77 | /// <summary> | 78 | /// <summary> |
78 | /// | 79 | /// |
79 | /// </summary> | 80 | /// </summary> |
@@ -115,6 +116,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
115 | this.rootPrimitive.AddNewChildren(primObject); | 116 | this.rootPrimitive.AddNewChildren(primObject); |
116 | } | 117 | } |
117 | 118 | ||
119 | public void AddChildToList(Primitive prim) | ||
120 | { | ||
121 | if (!this.ChildPrimitives.ContainsKey(prim.uuid)) | ||
122 | { | ||
123 | this.ChildPrimitives.Add(prim.uuid, prim); | ||
124 | } | ||
125 | } | ||
118 | /// <summary> | 126 | /// <summary> |
119 | /// | 127 | /// |
120 | /// </summary> | 128 | /// </summary> |
@@ -130,10 +138,15 @@ namespace OpenSim.Region.Environment.Scenes | |||
130 | return null; | 138 | return null; |
131 | } | 139 | } |
132 | 140 | ||
141 | /// <summary> | ||
142 | /// | ||
143 | /// </summary> | ||
144 | /// <param name="localID"></param> | ||
145 | /// <returns></returns> | ||
133 | public Primitive HasChildPrim(uint localID) | 146 | public Primitive HasChildPrim(uint localID) |
134 | { | 147 | { |
135 | Primitive returnPrim = null; | 148 | Primitive returnPrim = null; |
136 | foreach (Primitive prim in this.children) | 149 | foreach (Primitive prim in this.ChildPrimitives.Values) |
137 | { | 150 | { |
138 | if (prim.LocalId == localID) | 151 | if (prim.LocalId == localID) |
139 | { | 152 | { |
@@ -144,6 +157,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
144 | return returnPrim; | 157 | return returnPrim; |
145 | } | 158 | } |
146 | 159 | ||
160 | public void SendAllChildPrimsToClient(IClientAPI client) | ||
161 | { | ||
162 | this.rootPrimitive.SendFullUpdateForAllChildren(client); | ||
163 | } | ||
164 | |||
147 | /// <summary> | 165 | /// <summary> |
148 | /// | 166 | /// |
149 | /// </summary> | 167 | /// </summary> |
@@ -160,7 +178,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
160 | /// <param name="remoteClient"></param> | 178 | /// <param name="remoteClient"></param> |
161 | public void GrapMovement(LLVector3 offset, LLVector3 pos, IClientAPI remoteClient) | 179 | public void GrapMovement(LLVector3 offset, LLVector3 pos, IClientAPI remoteClient) |
162 | { | 180 | { |
163 | this.Pos = pos; | 181 | //this.Pos = pos; |
164 | this.rootPrimitive.Pos = pos; | 182 | this.rootPrimitive.Pos = pos; |
165 | this.rootPrimitive.SendTerseUpdateForAllChildren(remoteClient); | 183 | this.rootPrimitive.SendTerseUpdateForAllChildren(remoteClient); |
166 | } | 184 | } |