| 7 |
using ModularRex.RexNetwork; |
using ModularRex.RexNetwork; |
| 8 |
using Nini.Config; |
using Nini.Config; |
| 9 |
using OpenMetaverse; |
using OpenMetaverse; |
| 10 |
using OpenSim.Region.Environment.Interfaces; |
using OpenSim.Region.Framework.Interfaces; |
| 11 |
using OpenSim.Region.Environment.Scenes; |
using OpenSim.Region.Framework.Scenes; |
| 12 |
using OpenSim.Data.NHibernate; |
using OpenSim.Data.NHibernate; |
| 13 |
using OpenSim.Framework; |
using OpenSim.Framework; |
| 14 |
|
|
| 119 |
} |
} |
| 120 |
} |
} |
| 121 |
|
|
| 122 |
|
private void SendPreloadAssetsToUser(RexClientView user) |
| 123 |
|
{ |
| 124 |
|
try |
| 125 |
|
{ |
| 126 |
|
Scene ourScene = null; |
| 127 |
|
foreach (Scene s in m_scenes) |
| 128 |
|
{ |
| 129 |
|
if (user.Scene.RegionInfo.RegionHandle == s.RegionInfo.RegionHandle) |
| 130 |
|
ourScene = s; |
| 131 |
|
} |
| 132 |
|
|
| 133 |
|
if (ourScene != null) |
| 134 |
|
{ |
| 135 |
|
if (ourScene.Modules.ContainsKey("RexAssetPreload")) |
| 136 |
|
{ |
| 137 |
|
RexAssetPreload module = (RexAssetPreload)ourScene.Modules["RexAssetPreload"]; |
| 138 |
|
if (module.PreloadAssetDictionary.Count > 0) |
| 139 |
|
{ |
| 140 |
|
user.SendRexPreloadAssets(module.PreloadAssetDictionary); |
| 141 |
|
} |
| 142 |
|
} |
| 143 |
|
} |
| 144 |
|
} |
| 145 |
|
catch (Exception e) |
| 146 |
|
{ |
| 147 |
|
m_log.Error("[MODREXOBJECTS]: Sending preload assets failed.", e); |
| 148 |
|
} |
| 149 |
|
} |
| 150 |
|
|
| 151 |
void SendAllPropertiesToUser(RexClientView user) |
void SendAllPropertiesToUser(RexClientView user) |
| 152 |
{ |
{ |
| 153 |
|
SendPreloadAssetsToUser(user); |
| 154 |
|
|
| 155 |
foreach (RexObjectProperties p in GetObjects()) |
foreach (RexObjectProperties p in GetObjects()) |
| 156 |
{ |
{ |
| 157 |
user.SendRexObjectProperties(p.ParentObjectID, p); |
user.SendRexObjectProperties(p.ParentObjectID, p); |
| 220 |
return; |
return; |
| 221 |
} |
} |
| 222 |
|
|
| 223 |
if (sop.ParentGroup != null && sop.PhysActor != null) |
if (sop.ParentGroup != null && sop.PhysActor is IRexPhysicsActor) |
| 224 |
{ |
{ |
| 225 |
if (p.RexCollisionMeshUUID != UUID.Zero) |
if (p.RexCollisionMeshUUID != UUID.Zero) |
| 226 |
RexUpdateCollisionMesh(id); |
RexUpdateCollisionMesh(id); |
| 227 |
else |
else |
| 228 |
sop.PhysActor.SetCollisionMesh(null, "", false); |
((IRexPhysicsActor)sop.PhysActor).SetCollisionMesh(null, "", false); |
| 229 |
} |
} |
| 230 |
} |
} |
| 231 |
|
|
| 243 |
return; |
return; |
| 244 |
} |
} |
| 245 |
|
|
| 246 |
if (sop.ParentGroup != null && sop.PhysActor != null) |
if (sop.ParentGroup != null && sop.PhysActor is IRexPhysicsActor) |
| 247 |
{ |
{ |
| 248 |
sop.PhysActor.SetBoundsScaling(p.RexScaleToPrim); |
((IRexPhysicsActor)sop.PhysActor).SetBoundsScaling(p.RexScaleToPrim); |
| 249 |
sop.ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(sop.PhysActor); |
sop.ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(sop.PhysActor); |
| 250 |
} |
} |
| 251 |
} |
} |
| 282 |
return; |
return; |
| 283 |
} |
} |
| 284 |
|
|
| 285 |
if (p.RexCollisionMeshUUID != UUID.Zero && sop.PhysActor != null) |
if (p.RexCollisionMeshUUID != UUID.Zero && sop.PhysActor is IRexPhysicsActor) |
| 286 |
{ |
{ |
| 287 |
AssetBase tempmodel = sop.ParentGroup.Scene.AssetCache.GetAsset(p.RexCollisionMeshUUID, false); |
AssetBase tempmodel = sop.ParentGroup.Scene.CommsManager.AssetCache.GetAsset(p.RexCollisionMeshUUID, false); |
| 288 |
if (tempmodel != null) |
if (tempmodel != null) |
| 289 |
sop.PhysActor.SetCollisionMesh(tempmodel.Data, tempmodel.Metadata.Name, p.RexScaleToPrim); |
((IRexPhysicsActor)sop.PhysActor).SetCollisionMesh(tempmodel.Data, tempmodel.Name, p.RexScaleToPrim); |
| 290 |
} |
} |
| 291 |
} |
} |
| 292 |
|
|
| 293 |
|
public byte GetAssetType(UUID assetid) |
| 294 |
|
{ |
| 295 |
|
AssetBase tempmodel = m_scenes[0].CommsManager.AssetCache.GetAsset(assetid, true); |
| 296 |
|
if (tempmodel == null) |
| 297 |
|
m_scenes[0].CommsManager.AssetCache.GetAsset(assetid, false); |
| 298 |
|
|
| 299 |
|
if (tempmodel != null) |
| 300 |
|
return(byte)(tempmodel.Type); |
| 301 |
|
else |
| 302 |
|
return 0; |
| 303 |
|
} |
| 304 |
#endregion |
#endregion |
| 305 |
|
|
| 306 |
|
|