From da794f34a56f7c88904315ae538de8f3790e6891 Mon Sep 17 00:00:00 2001
From: Dan Lake
Date: Wed, 19 Oct 2011 14:41:44 -0700
Subject: Renamed and rearranged AvatarFactoryModule to eliminate redundant
lookups of scene presence by client ID.
---
.../Region/Framework/Interfaces/IAvatarFactory.cs | 64 ---------------------
.../Framework/Interfaces/IAvatarFactoryModule.cs | 67 ++++++++++++++++++++++
OpenSim/Region/Framework/Scenes/Scene.cs | 6 +-
OpenSim/Region/Framework/Scenes/ScenePresence.cs | 2 +-
4 files changed, 71 insertions(+), 68 deletions(-)
delete mode 100644 OpenSim/Region/Framework/Interfaces/IAvatarFactory.cs
create mode 100644 OpenSim/Region/Framework/Interfaces/IAvatarFactoryModule.cs
(limited to 'OpenSim/Region/Framework')
diff --git a/OpenSim/Region/Framework/Interfaces/IAvatarFactory.cs b/OpenSim/Region/Framework/Interfaces/IAvatarFactory.cs
deleted file mode 100644
index 4dbddf4..0000000
--- a/OpenSim/Region/Framework/Interfaces/IAvatarFactory.cs
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System.Collections.Generic;
-using OpenMetaverse;
-using OpenSim.Framework;
-
-namespace OpenSim.Region.Framework.Interfaces
-{
- public interface IAvatarFactory
- {
- ///
- /// Send the appearance of an avatar to others in the scene.
- ///
- ///
- ///
- bool SendAppearance(UUID agentId);
-
- ///
- /// Return the baked texture ids of the given agent.
- ///
- ///
- /// An empty list if this agent has no baked textures (e.g. because it's a child agent)
- Dictionary GetBakedTextureFaces(UUID agentId);
-
- ///
- /// Save the baked textures for the given agent permanently in the asset database.
- ///
- ///
- /// This is used to preserve apperance textures for NPCs
- ///
- ///
- /// true if a valid agent was found, false otherwise
- bool SaveBakedTextures(UUID agentId);
-
- bool ValidateBakedTextureCache(IClientAPI client);
- void QueueAppearanceSend(UUID agentid);
- void QueueAppearanceSave(UUID agentid);
- }
-}
\ No newline at end of file
diff --git a/OpenSim/Region/Framework/Interfaces/IAvatarFactoryModule.cs b/OpenSim/Region/Framework/Interfaces/IAvatarFactoryModule.cs
new file mode 100644
index 0000000..98228e4
--- /dev/null
+++ b/OpenSim/Region/Framework/Interfaces/IAvatarFactoryModule.cs
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) Contributors, http://opensimulator.org/
+ * See CONTRIBUTORS.TXT for a full list of copyright holders.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the OpenSimulator Project nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+using System.Collections.Generic;
+using OpenMetaverse;
+using OpenSim.Framework;
+
+namespace OpenSim.Region.Framework.Interfaces
+{
+ public interface IAvatarFactoryModule
+ {
+
+ void SetAppearance(IScenePresence sp, Primitive.TextureEntry textureEntry, byte[] visualParams);
+
+ ///
+ /// Send the appearance of an avatar to others in the scene.
+ ///
+ ///
+ ///
+ bool SendAppearance(UUID agentId);
+
+ ///
+ /// Return the baked texture ids of the given agent.
+ ///
+ ///
+ /// An empty list if this agent has no baked textures (e.g. because it's a child agent)
+ Dictionary GetBakedTextureFaces(UUID agentId);
+
+ ///
+ /// Save the baked textures for the given agent permanently in the asset database.
+ ///
+ ///
+ /// This is used to preserve apperance textures for NPCs
+ ///
+ ///
+ /// true if a valid agent was found, false otherwise
+ bool SaveBakedTextures(UUID agentId);
+
+ bool ValidateBakedTextureCache(IScenePresence sp);
+ void QueueAppearanceSend(UUID agentid);
+ void QueueAppearanceSave(UUID agentid);
+ }
+}
\ No newline at end of file
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 8a32e1d..724c635 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -135,7 +135,7 @@ namespace OpenSim.Region.Framework.Scenes
protected IXMLRPC m_xmlrpcModule;
protected IWorldComm m_worldCommModule;
- protected IAvatarFactory m_AvatarFactory;
+ protected IAvatarFactoryModule m_AvatarFactory;
protected IConfigSource m_config;
protected IRegionSerialiserModule m_serialiser;
protected IDialogModule m_dialogModule;
@@ -444,7 +444,7 @@ namespace OpenSim.Region.Framework.Scenes
public IAttachmentsModule AttachmentsModule { get; set; }
- public IAvatarFactory AvatarFactory
+ public IAvatarFactoryModule AvatarFactory
{
get { return m_AvatarFactory; }
}
@@ -1154,7 +1154,7 @@ namespace OpenSim.Region.Framework.Scenes
m_xmlrpcModule = RequestModuleInterface();
m_worldCommModule = RequestModuleInterface();
XferManager = RequestModuleInterface();
- m_AvatarFactory = RequestModuleInterface();
+ m_AvatarFactory = RequestModuleInterface();
AttachmentsModule = RequestModuleInterface();
m_serialiser = RequestModuleInterface();
m_dialogModule = RequestModuleInterface();
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index e0fd84a..464f8f0 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -2538,7 +2538,7 @@ namespace OpenSim.Region.Framework.Scenes
// We have an appearance but we may not have the baked textures. Check the asset cache
// to see if all the baked textures are already here.
if (m_scene.AvatarFactory != null)
- cachedappearance = m_scene.AvatarFactory.ValidateBakedTextureCache(ControllingClient);
+ cachedappearance = m_scene.AvatarFactory.ValidateBakedTextureCache(this);
// If we aren't using a cached appearance, then clear out the baked textures
if (!cachedappearance)
--
cgit v1.1