diff --git a/libsecondlife/AgentManager.cs b/libsecondlife/AgentManager.cs
index d1ad5d01..cfa055d8 100644
--- a/libsecondlife/AgentManager.cs
+++ b/libsecondlife/AgentManager.cs
@@ -660,7 +660,7 @@ namespace libsecondlife
///
/// A convenience reference to the
/// SignaledAnimations collection
- public delegate void AnimationsChangedCallback(SafeDictionary agentAnimations);
+ public delegate void AnimationsChangedCallback(InternalDictionary agentAnimations);
///
/// Triggered when an object or avatar forcefully collides with our
@@ -716,7 +716,7 @@ namespace libsecondlife
/// check the current movement status such as walking, hovering, aiming,
/// etc. by checking for system animations in the Animations
/// class
- public SafeDictionary SignaledAnimations = new SafeDictionary();
+ public InternalDictionary SignaledAnimations = new InternalDictionary();
#region Properties
@@ -787,7 +787,7 @@ namespace libsecondlife
if (sittingOn != 0)
{
Primitive parent;
- if (Client.Network.CurrentSim != null && Client.Network.CurrentSim.Objects.TryGetPrimitive(sittingOn, out parent))
+ if(Client.Network.CurrentSim != null && Client.Network.CurrentSim.ObjectsPrimitives.TryGetValue(sittingOn, out parent))
{
return parent.Position + relativePosition;
}
@@ -811,7 +811,7 @@ namespace libsecondlife
if (sittingOn != 0)
{
Primitive parent;
- if (Client.Network.CurrentSim != null && Client.Network.CurrentSim.Objects.TryGetPrimitive(sittingOn, out parent))
+ if (Client.Network.CurrentSim != null && Client.Network.CurrentSim.ObjectsPrimitives.TryGetValue(sittingOn, out parent))
{
return relativeRotation * parent.Rotation;
}
diff --git a/libsecondlife/SafeDictionary.cs b/libsecondlife/InternalDictionary.cs
similarity index 90%
rename from libsecondlife/SafeDictionary.cs
rename to libsecondlife/InternalDictionary.cs
index 27de0c81..f61df9a1 100644
--- a/libsecondlife/SafeDictionary.cs
+++ b/libsecondlife/InternalDictionary.cs
@@ -29,23 +29,23 @@ using System.Collections.Generic;
namespace libsecondlife
{
- public class SafeDictionary
+ public class InternalDictionary
{
internal Dictionary Dictionary;
public int Count { get { return Dictionary.Count; } }
- public SafeDictionary()
+ public InternalDictionary()
{
Dictionary = new Dictionary();
}
- public SafeDictionary(IDictionary dictionary)
+ public InternalDictionary(IDictionary dictionary)
{
Dictionary = new Dictionary(dictionary);
}
- public SafeDictionary(int capacity)
+ public InternalDictionary(int capacity)
{
Dictionary = new Dictionary(capacity);
}
diff --git a/libsecondlife/ObjectManager.cs b/libsecondlife/ObjectManager.cs
index 59473b6e..63aaeaed 100644
--- a/libsecondlife/ObjectManager.cs
+++ b/libsecondlife/ObjectManager.cs
@@ -2067,31 +2067,38 @@ namespace libsecondlife
{
KillObjectPacket kill = (KillObjectPacket)packet;
+ // Run the for loop multiple times so we only have to lock a total
+ // of two times. Locking is by far the most expensive operation here
+
if (Client.Settings.OBJECT_TRACKING)
{
- for (int i = 0; i < kill.ObjectData.Length; i++)
+ uint localID;
+
+ lock (simulator.ObjectsPrimitives.Dictionary)
{
- uint localID = kill.ObjectData[i].ID;
-
- if (simulator.Objects.Prims.ContainsKey(localID))
+ for (int i = 0; i < kill.ObjectData.Length; i++)
{
- lock (simulator.Objects.Prims)
- simulator.Objects.Prims.Remove(localID);
- }
- if (simulator.Objects.Avatars.ContainsKey(localID))
- {
- lock (simulator.Objects.Avatars)
- simulator.Objects.Avatars.Remove(localID);
- }
+ localID = kill.ObjectData[i].ID;
- FireOnObjectKilled(simulator, localID);
+ if (simulator.ObjectsPrimitives.Dictionary.ContainsKey(localID))
+ simulator.ObjectsPrimitives.Dictionary.Remove(localID);
+ }
+ }
+
+ lock (simulator.ObjectsAvatars.Dictionary)
+ {
+ for (int i = 0; i < kill.ObjectData.Length; i++)
+ {
+ localID = kill.ObjectData[i].ID;
+
+ if (simulator.ObjectsAvatars.Dictionary.ContainsKey(localID))
+ simulator.ObjectsAvatars.Dictionary.Remove(localID);
+ }
}
}
- else
- {
- for (int i = 0; i < kill.ObjectData.Length; i++)
- FireOnObjectKilled(simulator, kill.ObjectData[i].ID);
- }
+
+ for (int i = 0; i < kill.ObjectData.Length; i++)
+ FireOnObjectKilled(simulator, kill.ObjectData[i].ID);
}
protected void ObjectPropertiesHandler(Packet p, Simulator sim)
@@ -2135,15 +2142,15 @@ namespace libsecondlife
if (Client.Settings.OBJECT_TRACKING)
{
- Primitive findPrim = sim.Objects.Find(
+ Primitive findPrim = sim.ObjectsPrimitives.Find(
delegate(Primitive prim) { return prim.ID == props.ObjectID; });
if (findPrim != null)
{
- lock (sim.Objects.Prims)
+ lock (sim.ObjectsPrimitives.Dictionary)
{
- if (sim.Objects.Prims.ContainsKey(findPrim.LocalID))
- sim.Objects.Prims[findPrim.LocalID].Properties = props;
+ if (sim.ObjectsPrimitives.Dictionary.ContainsKey(findPrim.LocalID))
+ sim.ObjectsPrimitives.Dictionary[findPrim.LocalID].Properties = props;
}
}
}
@@ -2176,15 +2183,15 @@ namespace libsecondlife
if (Client.Settings.OBJECT_TRACKING)
{
- Primitive findPrim = sim.Objects.Find(
+ Primitive findPrim = sim.ObjectsPrimitives.Find(
delegate(Primitive prim) { return prim.ID == props.ObjectID; });
if (findPrim != null)
{
- lock (sim.Objects.Prims)
+ lock (sim.ObjectsPrimitives.Dictionary)
{
- if (sim.Objects.Prims.ContainsKey(findPrim.LocalID))
- sim.Objects.Prims[findPrim.LocalID].PropertiesFamily = props;
+ if (sim.ObjectsPrimitives.Dictionary.ContainsKey(findPrim.LocalID))
+ sim.ObjectsPrimitives.Dictionary[findPrim.LocalID].PropertiesFamily = props;
}
}
}
@@ -2321,7 +2328,7 @@ namespace libsecondlife
{
Primitive prim;
- if (simulator.Objects.Prims.TryGetValue(localID, out prim))
+ if (simulator.ObjectsPrimitives.TryGetValue(localID, out prim))
{
return prim;
}
@@ -2330,8 +2337,8 @@ namespace libsecondlife
prim = new Primitive();
prim.LocalID = localID;
prim.ID = fullID;
- lock (simulator.Objects.Prims)
- simulator.Objects.Prims[localID] = prim;
+ lock (simulator.ObjectsPrimitives.Dictionary)
+ simulator.ObjectsPrimitives.Dictionary[localID] = prim;
return prim;
}
@@ -2348,7 +2355,7 @@ namespace libsecondlife
{
Avatar avatar;
- if (simulator.Objects.Avatars.TryGetValue(localID, out avatar))
+ if (simulator.ObjectsAvatars.TryGetValue(localID, out avatar))
{
return avatar;
}
@@ -2357,8 +2364,8 @@ namespace libsecondlife
avatar = new Avatar();
avatar.LocalID = localID;
avatar.ID = fullID;
- lock (simulator.Objects.Avatars)
- simulator.Objects.Avatars[localID] = avatar;
+ lock (simulator.ObjectsAvatars.Dictionary)
+ simulator.ObjectsAvatars.Dictionary[localID] = avatar;
return avatar;
}
@@ -2386,9 +2393,9 @@ namespace libsecondlife
float adjSeconds = seconds * Client.Network.Simulators[i].Stats.Dilation;
// Iterate through all of this sims avatars
- lock (Client.Network.Simulators[i].Objects.Avatars)
+ lock (Client.Network.Simulators[i].ObjectsAvatars.Dictionary)
{
- foreach (Avatar avatar in Client.Network.Simulators[i].Objects.Avatars.Values)
+ foreach (Avatar avatar in Client.Network.Simulators[i].ObjectsAvatars.Dictionary.Values)
{
#region Linear Motion
// Only do movement interpolation (extrapolation) when there is a non-zero velocity but
@@ -2404,9 +2411,9 @@ namespace libsecondlife
}
// Iterate through all of this sims primitives
- lock (Client.Network.Simulators[i].Objects.Prims)
+ lock (Client.Network.Simulators[i].ObjectsPrimitives.Dictionary)
{
- foreach (Primitive prim in Client.Network.Simulators[i].Objects.Prims.Values)
+ foreach (Primitive prim in Client.Network.Simulators[i].ObjectsPrimitives.Dictionary.Values)
{
if (prim.Joint == Primitive.JointType.Invalid)
{
diff --git a/libsecondlife/ParcelManager.cs b/libsecondlife/ParcelManager.cs
index 742aa6ae..42e6099e 100644
--- a/libsecondlife/ParcelManager.cs
+++ b/libsecondlife/ParcelManager.cs
@@ -611,7 +611,7 @@ namespace libsecondlife
/// Simulator the parcel is in
/// Read-only dictionary containing parcel details for the simulator
/// 64,64 array containing sim position to localID mapping
- public delegate void SimParcelsDownloaded(Simulator simulator, SafeDictionary simParcels, int[,] parcelMap);
+ public delegate void SimParcelsDownloaded(Simulator simulator, InternalDictionary simParcels, int[,] parcelMap);
#endregion Delegates
diff --git a/libsecondlife/Simulator.cs b/libsecondlife/Simulator.cs
index 2fcab123..947a160f 100644
--- a/libsecondlife/Simulator.cs
+++ b/libsecondlife/Simulator.cs
@@ -271,7 +271,11 @@ namespace libsecondlife
/// Provides access to two thread-safe dictionaries containing
/// avatars and primitives found in this simulator
- public ObjectTracker Objects = new ObjectTracker();
+ //public ObjectTracker Objects = new ObjectTracker();
+
+ public InternalDictionary ObjectsAvatars = new InternalDictionary();
+
+ public InternalDictionary ObjectsPrimitives = new InternalDictionary();
/// Used to obtain a lock on the sequence number for packets
/// sent to this simulator. Only useful for applications manipulating
@@ -286,7 +290,7 @@ namespace libsecondlife
/// Provides access to an internal thread-safe dictionary containing parcel
/// information found in this simulator
///
- public SafeDictionary Parcels = new SafeDictionary();
+ public InternalDictionary Parcels = new InternalDictionary();
///
/// Provides access to an internal thread-safe multidimensional array containing a x,y grid mapped
diff --git a/libsecondlife/examples/TestClient/Commands/Appearance/AttachmentsCommand.cs b/libsecondlife/examples/TestClient/Commands/Appearance/AttachmentsCommand.cs
index d7fce9ab..4ca4d655 100644
--- a/libsecondlife/examples/TestClient/Commands/Appearance/AttachmentsCommand.cs
+++ b/libsecondlife/examples/TestClient/Commands/Appearance/AttachmentsCommand.cs
@@ -15,7 +15,7 @@ namespace libsecondlife.TestClient
public override string Execute(string[] args, LLUUID fromAgentID)
{
- List attachments = Client.Network.CurrentSim.Objects.FindAll(
+ List attachments = Client.Network.CurrentSim.ObjectsPrimitives.FindAll(
delegate(Primitive prim) { return prim.ParentID == Client.Self.LocalID; }
);
diff --git a/libsecondlife/examples/TestClient/Commands/Inventory/DumpOutfitCommand.cs b/libsecondlife/examples/TestClient/Commands/Inventory/DumpOutfitCommand.cs
index 251d7525..91a7ea1c 100644
--- a/libsecondlife/examples/TestClient/Commands/Inventory/DumpOutfitCommand.cs
+++ b/libsecondlife/examples/TestClient/Commands/Inventory/DumpOutfitCommand.cs
@@ -34,7 +34,7 @@ namespace libsecondlife.TestClient
{
Avatar targetAv;
- targetAv = Client.Network.Simulators[i].Objects.Find(
+ targetAv = Client.Network.Simulators[i].ObjectsAvatars.Find(
delegate(Avatar avatar)
{
return avatar.ID == target;
diff --git a/libsecondlife/examples/TestClient/Commands/Inventory/ObjectInventoryCommand.cs b/libsecondlife/examples/TestClient/Commands/Inventory/ObjectInventoryCommand.cs
index e4e4aecf..bd4ec6c7 100644
--- a/libsecondlife/examples/TestClient/Commands/Inventory/ObjectInventoryCommand.cs
+++ b/libsecondlife/examples/TestClient/Commands/Inventory/ObjectInventoryCommand.cs
@@ -22,7 +22,7 @@ namespace libsecondlife.TestClient
if (!LLUUID.TryParse(args[0], out objectID))
return "Usage: objectinventory [objectID]";
- Primitive found = Client.Network.CurrentSim.Objects.Find(delegate(Primitive prim) { return prim.ID == objectID; });
+ Primitive found = Client.Network.CurrentSim.ObjectsPrimitives.Find(delegate(Primitive prim) { return prim.ID == objectID; });
if (found != null)
objectLocalID = found.LocalID;
else
diff --git a/libsecondlife/examples/TestClient/Commands/Movement/FollowCommand.cs b/libsecondlife/examples/TestClient/Commands/Movement/FollowCommand.cs
index a2454349..b37def05 100644
--- a/libsecondlife/examples/TestClient/Commands/Movement/FollowCommand.cs
+++ b/libsecondlife/examples/TestClient/Commands/Movement/FollowCommand.cs
@@ -48,7 +48,7 @@ namespace libsecondlife.TestClient
{
for (int i = 0; i < Client.Network.Simulators.Count; i++)
{
- Avatar target = Client.Network.Simulators[i].Objects.Find(
+ Avatar target = Client.Network.Simulators[i].ObjectsAvatars.Find(
delegate(Avatar avatar)
{
return avatar.Name == name;
@@ -74,7 +74,7 @@ namespace libsecondlife.TestClient
{
for (int i = 0; i < Client.Network.Simulators.Count; i++)
{
- Avatar target = Client.Network.Simulators[i].Objects.Find(
+ Avatar target = Client.Network.Simulators[i].ObjectsAvatars.Find(
delegate(Avatar avatar)
{
return avatar.ID == id;
@@ -103,7 +103,7 @@ namespace libsecondlife.TestClient
{
Avatar targetAv;
- if (Client.Network.Simulators[i].Objects.TryGetAvatar(targetLocalID, out targetAv))
+ if (Client.Network.Simulators[i].ObjectsAvatars.TryGetValue(targetLocalID, out targetAv))
{
float distance = 0.0f;
diff --git a/libsecondlife/examples/TestClient/Commands/Movement/SitCommand.cs b/libsecondlife/examples/TestClient/Commands/Movement/SitCommand.cs
index cc9b0548..b1b0392b 100644
--- a/libsecondlife/examples/TestClient/Commands/Movement/SitCommand.cs
+++ b/libsecondlife/examples/TestClient/Commands/Movement/SitCommand.cs
@@ -19,7 +19,7 @@ namespace libsecondlife.TestClient
Primitive closest = null;
double closestDistance = Double.MaxValue;
- Client.Network.CurrentSim.Objects.ForEach(
+ Client.Network.CurrentSim.ObjectsPrimitives.ForEach(
delegate(Primitive prim)
{
float distance = LLVector3.Dist(Client.Self.SimPosition, prim.Position);
diff --git a/libsecondlife/examples/TestClient/Commands/Movement/SitOnCommand.cs b/libsecondlife/examples/TestClient/Commands/Movement/SitOnCommand.cs
index 3ef0e26b..ac1e4c74 100644
--- a/libsecondlife/examples/TestClient/Commands/Movement/SitOnCommand.cs
+++ b/libsecondlife/examples/TestClient/Commands/Movement/SitOnCommand.cs
@@ -23,7 +23,7 @@ namespace libsecondlife.TestClient
if (LLUUID.TryParse(args[0], out target))
{
- Primitive targetPrim = Client.Network.CurrentSim.Objects.Find(
+ Primitive targetPrim = Client.Network.CurrentSim.ObjectsPrimitives.Find(
delegate(Primitive prim)
{
return prim.ID == target;
@@ -42,4 +42,4 @@ namespace libsecondlife.TestClient
return "Couldn't find a prim to sit on with UUID " + args[0];
}
}
-}
\ No newline at end of file
+}
diff --git a/libsecondlife/examples/TestClient/Commands/Prims/ChangePermsCommand.cs b/libsecondlife/examples/TestClient/Commands/Prims/ChangePermsCommand.cs
index aa2c5b43..189a8986 100644
--- a/libsecondlife/examples/TestClient/Commands/Prims/ChangePermsCommand.cs
+++ b/libsecondlife/examples/TestClient/Commands/Prims/ChangePermsCommand.cs
@@ -61,7 +61,7 @@ namespace libsecondlife.TestClient
Client.DebugLog("Using PermissionMask: " + Perms.ToString());
// Find the requested prim
- rootPrim = Client.Network.CurrentSim.Objects.Find(delegate(Primitive prim) { return prim.ID == rootID; });
+ rootPrim = Client.Network.CurrentSim.ObjectsPrimitives.Find(delegate(Primitive prim) { return prim.ID == rootID; });
if (rootPrim == null)
return "Cannot find requested prim " + rootID.ToString();
else
@@ -70,14 +70,14 @@ namespace libsecondlife.TestClient
if (rootPrim.ParentID != 0)
{
// This is not actually a root prim, find the root
- if (!Client.Network.CurrentSim.Objects.TryGetPrimitive(rootPrim.ParentID, out rootPrim))
+ if (!Client.Network.CurrentSim.ObjectsPrimitives.TryGetValue(rootPrim.ParentID, out rootPrim))
return "Cannot find root prim for requested object";
else
Client.DebugLog("Set root prim to " + rootPrim.ID.ToString());
}
// Find all of the child objects linked to this root
- childPrims = Client.Network.CurrentSim.Objects.FindAll(delegate(Primitive prim) { return prim.ParentID == rootPrim.LocalID; });
+ childPrims = Client.Network.CurrentSim.ObjectsPrimitives.FindAll(delegate(Primitive prim) { return prim.ParentID == rootPrim.LocalID; });
// Build a dictionary of primitives for referencing later
Objects[rootPrim.ID] = rootPrim;
diff --git a/libsecondlife/examples/TestClient/Commands/Prims/ExportCommand.cs b/libsecondlife/examples/TestClient/Commands/Prims/ExportCommand.cs
index 58abbb9f..db7ea112 100644
--- a/libsecondlife/examples/TestClient/Commands/Prims/ExportCommand.cs
+++ b/libsecondlife/examples/TestClient/Commands/Prims/ExportCommand.cs
@@ -50,7 +50,7 @@ namespace libsecondlife.TestClient
Primitive exportPrim;
- exportPrim = Client.Network.CurrentSim.Objects.Find(
+ exportPrim = Client.Network.CurrentSim.ObjectsPrimitives.Find(
delegate(Primitive prim) { return prim.ID == id; }
);
@@ -81,7 +81,7 @@ namespace libsecondlife.TestClient
}
}
- List prims = Client.Network.CurrentSim.Objects.FindAll(
+ List prims = Client.Network.CurrentSim.ObjectsPrimitives.FindAll(
delegate(Primitive prim)
{
return (prim.LocalID == localid || prim.ParentID == localid);
@@ -92,21 +92,38 @@ namespace libsecondlife.TestClient
if (!complete)
{
- Console.WriteLine("Warning: Unable to retrieve full properties for:");
+ Client.Log("Warning: Unable to retrieve full properties for:", Helpers.LogLevel.Warning);
foreach (LLUUID uuid in PrimsWaiting.Keys)
- Console.WriteLine(uuid);
+ Client.Log(uuid.ToString(), Helpers.LogLevel.Warning);
}
string output = LLSDParser.SerializeXmlString(Helpers.PrimListToLLSD(prims));
try { File.WriteAllText(file, output); }
catch (Exception e) { return e.Message; }
- return "Exported " + prims.Count + " prims to " + file;
+ Client.Log("Exported " + prims.Count + " prims to " + file, Helpers.LogLevel.Info);
+
+ // Create a list of all of the textures to download
+ Dictionary textures = new Dictionary();
+ for (int i = 0; i < prims.Count; i++)
+ {
+ Primitive prim = prims[i];
+
+ textures[prim.Textures.DefaultTexture.TextureID] = prim.Textures.DefaultTexture.TextureID;
+
+ for (int j = 0; j < prim.Textures.FaceTextures.Length; j++)
+ {
+ if (prim.Textures.FaceTextures[j] != null)
+ textures[prim.Textures.FaceTextures[j].TextureID] = prim.Textures.FaceTextures[j].TextureID;
+ }
+ }
+
+ return "Exported complete";
}
else
{
return "Couldn't find UUID " + id.ToString() + " in the " +
- Client.Network.CurrentSim.Objects.PrimCount +
+ Client.Network.CurrentSim.ObjectsPrimitives.Count +
"objects currently indexed in the current simulator";
}
}
diff --git a/libsecondlife/examples/TestClient/Commands/Prims/ExportParticlesCommand.cs b/libsecondlife/examples/TestClient/Commands/Prims/ExportParticlesCommand.cs
index 953f78e0..3625e009 100644
--- a/libsecondlife/examples/TestClient/Commands/Prims/ExportParticlesCommand.cs
+++ b/libsecondlife/examples/TestClient/Commands/Prims/ExportParticlesCommand.cs
@@ -27,7 +27,7 @@ namespace libsecondlife.TestClient
{
for (int i = 0; i < Client.Network.Simulators.Count; i++)
{
- Primitive exportPrim = Client.Network.Simulators[i].Objects.Find(
+ Primitive exportPrim = Client.Network.Simulators[i].ObjectsPrimitives.Find(
delegate(Primitive prim)
{
return prim.ID == id;
diff --git a/libsecondlife/examples/TestClient/Commands/Prims/FindObjectsCommand.cs b/libsecondlife/examples/TestClient/Commands/Prims/FindObjectsCommand.cs
index 76db6de9..2ee73da4 100644
--- a/libsecondlife/examples/TestClient/Commands/Prims/FindObjectsCommand.cs
+++ b/libsecondlife/examples/TestClient/Commands/Prims/FindObjectsCommand.cs
@@ -33,7 +33,7 @@ namespace libsecondlife.TestClient
LLVector3 location = Client.Self.SimPosition;
// *** find all objects in radius ***
- List prims = Client.Network.CurrentSim.Objects.FindAll(
+ List prims = Client.Network.CurrentSim.ObjectsPrimitives.FindAll(
delegate(Primitive prim) {
LLVector3 pos = prim.Position;
return ((prim.ParentID == 0) && (pos != LLVector3.Zero) && (LLVector3.Dist(pos, location) < radius));
diff --git a/libsecondlife/examples/TestClient/Commands/Prims/FindTextureCommand.cs b/libsecondlife/examples/TestClient/Commands/Prims/FindTextureCommand.cs
index 1e285d18..6d0e5530 100644
--- a/libsecondlife/examples/TestClient/Commands/Prims/FindTextureCommand.cs
+++ b/libsecondlife/examples/TestClient/Commands/Prims/FindTextureCommand.cs
@@ -23,7 +23,7 @@ namespace libsecondlife.TestClient
if (Int32.TryParse(args[0], out faceIndex) &&
LLUUID.TryParse(args[1], out textureID))
{
- Client.Network.CurrentSim.Objects.ForEach(
+ Client.Network.CurrentSim.ObjectsPrimitives.ForEach(
delegate(Primitive prim)
{
if (prim.Textures != null && prim.Textures.FaceTextures[faceIndex] != null)
diff --git a/libsecondlife/examples/TestClient/Commands/Prims/PrimCountCommand.cs b/libsecondlife/examples/TestClient/Commands/Prims/PrimCountCommand.cs
index 9633d7b5..b4c4615b 100644
--- a/libsecondlife/examples/TestClient/Commands/Prims/PrimCountCommand.cs
+++ b/libsecondlife/examples/TestClient/Commands/Prims/PrimCountCommand.cs
@@ -19,8 +19,8 @@ namespace libsecondlife.TestClient
{
for (int i = 0; i < Client.Network.Simulators.Count; i++)
{
- int avcount = Client.Network.Simulators[i].Objects.AvatarCount;
- int primcount = Client.Network.Simulators[i].Objects.PrimCount;
+ int avcount = Client.Network.Simulators[i].ObjectsAvatars.Count;
+ int primcount = Client.Network.Simulators[i].ObjectsPrimitives.Count;
Console.WriteLine("{0} (Avatars: {1} Primitives: {2})",
Client.Network.Simulators[i].Name, avcount, primcount);
diff --git a/libsecondlife/examples/TestClient/Commands/Prims/PrimInfoCommand.cs b/libsecondlife/examples/TestClient/Commands/Prims/PrimInfoCommand.cs
index 1620851d..d2510553 100644
--- a/libsecondlife/examples/TestClient/Commands/Prims/PrimInfoCommand.cs
+++ b/libsecondlife/examples/TestClient/Commands/Prims/PrimInfoCommand.cs
@@ -20,7 +20,7 @@ namespace libsecondlife.TestClient
if (LLUUID.TryParse(args[0], out primID))
{
- Primitive target = Client.Network.CurrentSim.Objects.Find(
+ Primitive target = Client.Network.CurrentSim.ObjectsPrimitives.Find(
delegate(Primitive prim) { return prim.ID == primID; }
);
diff --git a/libsecondlife/examples/TestClient/Commands/Prims/PrimRegexCommand.cs b/libsecondlife/examples/TestClient/Commands/Prims/PrimRegexCommand.cs
index 6dd33edb..e0793562 100644
--- a/libsecondlife/examples/TestClient/Commands/Prims/PrimRegexCommand.cs
+++ b/libsecondlife/examples/TestClient/Commands/Prims/PrimRegexCommand.cs
@@ -30,8 +30,8 @@ namespace libsecondlife.TestClient
Regex regexPrimName = new Regex(predicatPrim.ToLower());
// Print result
- Client.Log(string.Format("Searching prim for [{0}] ({1} prims loaded in simulator)\n", predicatPrim, Client.Network.CurrentSim.Objects.PrimCount), Helpers.LogLevel.Info);
- Client.Network.CurrentSim.Objects.ForEach(
+ Client.Log(string.Format("Searching prim for [{0}] ({1} prims loaded in simulator)\n", predicatPrim, Client.Network.CurrentSim.ObjectsPrimitives.Count), Helpers.LogLevel.Info);
+ Client.Network.CurrentSim.ObjectsPrimitives.ForEach(
delegate(Primitive prim)
{
if (prim.Text != null && regexPrimName.IsMatch(prim.Text.ToLower()))
diff --git a/libsecondlife/examples/TestClient/Commands/System/SetMasterKeyCommand.cs b/libsecondlife/examples/TestClient/Commands/System/SetMasterKeyCommand.cs
index 117b9dd9..f721d41a 100644
--- a/libsecondlife/examples/TestClient/Commands/System/SetMasterKeyCommand.cs
+++ b/libsecondlife/examples/TestClient/Commands/System/SetMasterKeyCommand.cs
@@ -24,7 +24,7 @@ namespace libsecondlife.TestClient
{
for (int i = 0; i < Client.Network.Simulators.Count; i++)
{
- Avatar master = Client.Network.Simulators[i].Objects.Find(
+ Avatar master = Client.Network.Simulators[i].ObjectsAvatars.Find(
delegate(Avatar avatar)
{
return avatar.ID == Client.MasterKey;
diff --git a/libsecondlife/examples/TestClient/Commands/TouchCommand.cs b/libsecondlife/examples/TestClient/Commands/TouchCommand.cs
index cdd9e095..1c60e721 100644
--- a/libsecondlife/examples/TestClient/Commands/TouchCommand.cs
+++ b/libsecondlife/examples/TestClient/Commands/TouchCommand.cs
@@ -23,7 +23,7 @@ namespace libsecondlife.TestClient
if (LLUUID.TryParse(args[0], out target))
{
- Primitive targetPrim = Client.Network.CurrentSim.Objects.Find(
+ Primitive targetPrim = Client.Network.CurrentSim.ObjectsPrimitives.Find(
delegate(Primitive prim)
{
return prim.ID == target;
@@ -40,4 +40,4 @@ namespace libsecondlife.TestClient
return "Couldn't find a prim to touch with UUID " + args[0];
}
}
-}
\ No newline at end of file
+}
diff --git a/libsecondlife/examples/TestClient/Commands/WhoCommand.cs b/libsecondlife/examples/TestClient/Commands/WhoCommand.cs
index 7ba4a013..8b08e4d0 100644
--- a/libsecondlife/examples/TestClient/Commands/WhoCommand.cs
+++ b/libsecondlife/examples/TestClient/Commands/WhoCommand.cs
@@ -22,7 +22,7 @@ namespace libsecondlife.TestClient
{
for (int i = 0; i < Client.Network.Simulators.Count; i++)
{
- Client.Network.Simulators[i].Objects.ForEach(
+ Client.Network.Simulators[i].ObjectsAvatars.ForEach(
delegate(Avatar av)
{
result.AppendLine();
diff --git a/libsecondlife/libsecondlife.csproj b/libsecondlife/libsecondlife.csproj
index 9fcf547b..db39929d 100644
--- a/libsecondlife/libsecondlife.csproj
+++ b/libsecondlife/libsecondlife.csproj
@@ -157,7 +157,7 @@
Code
-
+
Code
@@ -183,4 +183,4 @@
xcopy "$(ProjectDir)\Resources\*.*" "$(OutDir)libsl_data" /i /d /y
-
\ No newline at end of file
+