* 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()
{
// We dont do this
Scene.AddNewClient(this);
}
public void Stop()
@ -403,6 +403,18 @@ namespace OpenSim.Client.MXP.ClientStack
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
}
@ -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)
{
m_log.Info("[MXP] Transmitting Primitive");
PerceptionEventMessage pe = new PerceptionEventMessage();
pe.ObjectFragment.ObjectIndex = localID;

View File

@ -4,11 +4,13 @@
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Threading;
using log4net;
using MXP;
using MXP.Messages;
using OpenMetaverse;
using OpenSim.Client.MXP.ClientStack;
using OpenSim.Framework;
using OpenSim.Region.Framework.Scenes;
namespace OpenSim.Client.MXP.PacketHandler
@ -24,6 +26,8 @@ namespace OpenSim.Client.MXP.PacketHandler
private readonly Transmitter transmitter;
private readonly Thread m_clientThread;
private readonly IList<Session> sessions = new List<Session>();
private readonly IList<Session> sessionsToClient = new List<Session>();
private readonly IList<MXPClientView> sessionsToRemove = new List<MXPClientView>();
@ -48,6 +52,16 @@ namespace OpenSim.Client.MXP.PacketHandler
programName = "OpenSimulator";
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();
}
@ -255,9 +269,23 @@ namespace OpenSim.Client.MXP.PacketHandler
MXPClientView client = new MXPClientView(session, mxpSessionID, target,
joinRequestMessage.ParticipantName);
m_log.Info("[MXP ClientStack] Created 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
{