diff options
author | Justin Clark-Casey (justincc) | 2011-12-08 18:34:23 +0000 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2011-12-08 18:34:23 +0000 |
commit | f61e54892f2284b6f89bacf3069467c05b2eea11 (patch) | |
tree | 87cb0933707a8e02f920910c7669273232021470 /OpenSim/Region/OptionalModules | |
parent | Simplify Scene.AddNewClient() (diff) | |
download | opensim-SC-f61e54892f2284b6f89bacf3069467c05b2eea11.zip opensim-SC-f61e54892f2284b6f89bacf3069467c05b2eea11.tar.gz opensim-SC-f61e54892f2284b6f89bacf3069467c05b2eea11.tar.bz2 opensim-SC-f61e54892f2284b6f89bacf3069467c05b2eea11.tar.xz |
On a new client circuit, send the initial reply ack to let the client know it's live before sending other data.
This means that avatar/appearance data of other avatars and scene objects for a client will be sent after the ack rather than possibly before.
This may stop some avatars appearing grey on login.
This introduces a new OpenSim.Framework.ISceneAgent to accompany the existing OpenSim.Framework.ISceneObject and ISceneEntity
This allows IClientAPI to handle this as it can't reference OpenSim.Region.Framework.Interfaces
Diffstat (limited to 'OpenSim/Region/OptionalModules')
-rw-r--r-- | OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs | 8 | ||||
-rw-r--r-- | OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs | 5 |
2 files changed, 9 insertions, 4 deletions
diff --git a/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs b/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs index 380570b..70326b7 100644 --- a/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs +++ b/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs | |||
@@ -55,6 +55,8 @@ namespace OpenSim.Region.OptionalModules.Agent.InternetRelayClientView.Server | |||
55 | 55 | ||
56 | private UUID m_agentID = UUID.Random(); | 56 | private UUID m_agentID = UUID.Random(); |
57 | 57 | ||
58 | public ISceneAgent SceneAgent { get; private set; } | ||
59 | |||
58 | private string m_username; | 60 | private string m_username; |
59 | private string m_nick; | 61 | private string m_nick; |
60 | 62 | ||
@@ -547,6 +549,7 @@ namespace OpenSim.Region.OptionalModules.Agent.InternetRelayClientView.Server | |||
547 | 549 | ||
548 | m_connected = false; | 550 | m_connected = false; |
549 | m_client.Close(); | 551 | m_client.Close(); |
552 | SceneAgent = null; | ||
550 | } | 553 | } |
551 | 554 | ||
552 | public UUID SessionId | 555 | public UUID SessionId |
@@ -890,12 +893,11 @@ namespace OpenSim.Region.OptionalModules.Agent.InternetRelayClientView.Server | |||
890 | 893 | ||
891 | public void Start() | 894 | public void Start() |
892 | { | 895 | { |
893 | Scene.AddNewClient(this, PresenceType.User); | 896 | SceneAgent = m_scene.AddNewClient(this, PresenceType.User); |
894 | 897 | ||
895 | // Mimicking LLClientView which gets always set appearance from client. | 898 | // Mimicking LLClientView which gets always set appearance from client. |
896 | Scene scene = (Scene)Scene; | ||
897 | AvatarAppearance appearance; | 899 | AvatarAppearance appearance; |
898 | scene.GetAvatarAppearance(this, out appearance); | 900 | m_scene.GetAvatarAppearance(this, out appearance); |
899 | OnSetAppearance(this, appearance.Texture, (byte[])appearance.VisualParams.Clone()); | 901 | OnSetAppearance(this, appearance.Texture, (byte[])appearance.VisualParams.Clone()); |
900 | } | 902 | } |
901 | 903 | ||
diff --git a/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs b/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs index 152377a..ed60976 100644 --- a/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs +++ b/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs | |||
@@ -43,7 +43,6 @@ namespace OpenSim.Region.OptionalModules.World.NPC | |||
43 | private readonly UUID m_uuid = UUID.Random(); | 43 | private readonly UUID m_uuid = UUID.Random(); |
44 | private readonly Scene m_scene; | 44 | private readonly Scene m_scene; |
45 | 45 | ||
46 | |||
47 | public NPCAvatar(string firstname, string lastname, Vector3 position, Scene scene) | 46 | public NPCAvatar(string firstname, string lastname, Vector3 position, Scene scene) |
48 | { | 47 | { |
49 | m_firstname = firstname; | 48 | m_firstname = firstname; |
@@ -57,6 +56,8 @@ namespace OpenSim.Region.OptionalModules.World.NPC | |||
57 | get { return m_scene; } | 56 | get { return m_scene; } |
58 | } | 57 | } |
59 | 58 | ||
59 | public ISceneAgent SceneAgent { get { throw new NotImplementedException(); } } | ||
60 | |||
60 | public void Say(string message) | 61 | public void Say(string message) |
61 | { | 62 | { |
62 | SendOnChatFromClient(message, ChatTypeEnum.Say); | 63 | SendOnChatFromClient(message, ChatTypeEnum.Say); |
@@ -841,6 +842,8 @@ namespace OpenSim.Region.OptionalModules.World.NPC | |||
841 | 842 | ||
842 | public void Start() | 843 | public void Start() |
843 | { | 844 | { |
845 | // We never start the client, so always fail. | ||
846 | throw new NotImplementedException(); | ||
844 | } | 847 | } |
845 | 848 | ||
846 | public void Stop() | 849 | public void Stop() |