* MXP Clients are now treated as full root agents - including being given a default avatar.

* MXP Clients now are capable of displaying primitives and objects within the Scene.
GenericGridServerConcept
Adam Frisby 2009-02-22 12:45:23 +00:00
parent 3cd5ffa82a
commit 648f55ed11
2 changed files with 44 additions and 2 deletions

View File

@ -365,7 +365,7 @@ namespace OpenSim.Client.MXP.ClientStack
public void Start() public void Start()
{ {
// We dont do this Scene.AddNewClient(this);
} }
public void Stop() public void Stop()
@ -403,6 +403,18 @@ namespace OpenSim.Client.MXP.ClientStack
public void SendRegionHandshake(RegionInfo regionInfo, RegionHandshakeArgs args) public void SendRegionHandshake(RegionInfo regionInfo, RegionHandshakeArgs args)
{ {
m_log.Info("[MXP] Completing Handshake to Region");
if (OnRegionHandShakeReply != null)
{
OnRegionHandShakeReply(this);
}
if (OnCompleteMovementToRegion != null)
{
OnCompleteMovementToRegion();
}
// Need to translate to MXP somehow // Need to translate to MXP somehow
} }
@ -552,6 +564,8 @@ namespace OpenSim.Client.MXP.ClientStack
private void MXPSendPrimitive(uint localID, UUID ownerID, Vector3 acc, Vector3 rvel, PrimitiveBaseShape primShape, Vector3 pos, UUID objectID, Vector3 vel, Quaternion rotation) private void MXPSendPrimitive(uint localID, UUID ownerID, Vector3 acc, Vector3 rvel, PrimitiveBaseShape primShape, Vector3 pos, UUID objectID, Vector3 vel, Quaternion rotation)
{ {
m_log.Info("[MXP] Transmitting Primitive");
PerceptionEventMessage pe = new PerceptionEventMessage(); PerceptionEventMessage pe = new PerceptionEventMessage();
pe.ObjectFragment.ObjectIndex = localID; pe.ObjectFragment.ObjectIndex = localID;

View File

@ -4,11 +4,13 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Reflection; using System.Reflection;
using System.Threading;
using log4net; using log4net;
using MXP; using MXP;
using MXP.Messages; using MXP.Messages;
using OpenMetaverse; using OpenMetaverse;
using OpenSim.Client.MXP.ClientStack; using OpenSim.Client.MXP.ClientStack;
using OpenSim.Framework;
using OpenSim.Region.Framework.Scenes; using OpenSim.Region.Framework.Scenes;
namespace OpenSim.Client.MXP.PacketHandler namespace OpenSim.Client.MXP.PacketHandler
@ -24,6 +26,8 @@ namespace OpenSim.Client.MXP.PacketHandler
private readonly Transmitter transmitter; private readonly Transmitter transmitter;
private readonly Thread m_clientThread;
private readonly IList<Session> sessions = new List<Session>(); private readonly IList<Session> sessions = new List<Session>();
private readonly IList<Session> sessionsToClient = new List<Session>(); private readonly IList<Session> sessionsToClient = new List<Session>();
private readonly IList<MXPClientView> sessionsToRemove = new List<MXPClientView>(); private readonly IList<MXPClientView> sessionsToRemove = new List<MXPClientView>();
@ -48,6 +52,16 @@ namespace OpenSim.Client.MXP.PacketHandler
programName = "OpenSimulator"; programName = "OpenSimulator";
transmitter = new Transmitter(port); transmitter = new Transmitter(port);
m_clientThread = new Thread(StartListener);
m_clientThread.Name = "MXPThread";
m_clientThread.IsBackground = true;
m_clientThread.Start();
ThreadTracker.Add(m_clientThread);
}
public void StartListener()
{
transmitter.Startup(); transmitter.Startup();
} }
@ -255,9 +269,23 @@ namespace OpenSim.Client.MXP.PacketHandler
MXPClientView client = new MXPClientView(session, mxpSessionID, target, MXPClientView client = new MXPClientView(session, mxpSessionID, target,
joinRequestMessage.ParticipantName); joinRequestMessage.ParticipantName);
m_log.Info("[MXP ClientStack] Created Client");
Clients.Add(client); Clients.Add(client);
target.AddNewClient(client); m_log.Info("[MXP ClientStack] Adding to Scene");
target.ClientManager.Add(client.CircuitCode, client);
m_log.Info("[MXP ClientStack] Initialising...");
try
{
client.Start();
} catch( Exception e)
{
m_log.Info(e);
}
m_log.Info("[MXP ClientStack] Connected");
//target.EventManager.TriggerOnNewClient(client);
} }
else else
{ {