mirror of
https://github.com/opensim/opensim.git
synced 2026-08-06 17:32:42 +08:00
* Changed SimpleApp to use EventManager and Scene timer
* Refactored a lot of m_* and public -> wrappers
This commit is contained in:
@@ -12,6 +12,7 @@ using OpenSim.Framework.Interfaces;
|
||||
using OpenSim.Framework.Types;
|
||||
using OpenSim.Framework.Data;
|
||||
using OpenSim.Framework.Utilities;
|
||||
using OpenSim.Region.Environment.Scenes;
|
||||
|
||||
namespace SimpleApp
|
||||
{
|
||||
@@ -78,9 +79,9 @@ namespace SimpleApp
|
||||
#pragma warning restore 67
|
||||
|
||||
private LLUUID myID = LLUUID.Random();
|
||||
public MyNpcCharacter()
|
||||
public MyNpcCharacter( EventManager eventManager )
|
||||
{
|
||||
|
||||
eventManager.OnFrame += Update;
|
||||
}
|
||||
|
||||
public virtual LLVector3 StartPos
|
||||
@@ -143,18 +144,9 @@ namespace SimpleApp
|
||||
{
|
||||
this.OnRegionHandShakeReply(this);
|
||||
this.OnCompleteMovementToRegion();
|
||||
this.StartMovement();
|
||||
}
|
||||
|
||||
public void StartMovement()
|
||||
{
|
||||
Timer timer = new Timer();
|
||||
timer.Enabled = true;
|
||||
timer.Interval = 500;
|
||||
timer.Elapsed += new ElapsedEventHandler(this.Heartbeat);
|
||||
}
|
||||
|
||||
public void Heartbeat(object sender, EventArgs e)
|
||||
private void Update( )
|
||||
{
|
||||
Encoding enc = Encoding.ASCII;
|
||||
|
||||
|
||||
@@ -21,20 +21,15 @@ namespace SimpleApp
|
||||
String instanceName = "_Total";
|
||||
|
||||
m_counter = new PerformanceCounter(objectName, counterName, instanceName);
|
||||
|
||||
Timer timer = new Timer();
|
||||
timer.Enabled = true;
|
||||
timer.Interval = 100;
|
||||
timer.Elapsed += new ElapsedEventHandler(this.Heartbeat);
|
||||
|
||||
}
|
||||
|
||||
public void Heartbeat(object sender, EventArgs e)
|
||||
public override void Update( )
|
||||
{
|
||||
float cpu = m_counter.NextValue() / 40f;
|
||||
LLVector3 size = new LLVector3(cpu, cpu, cpu);
|
||||
rootPrimitive.ResizeGoup( size );
|
||||
update();
|
||||
|
||||
base.Update();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -74,24 +74,6 @@ namespace SimpleApp
|
||||
avatar.Pos = new LLVector3(128, 128, 26);
|
||||
}
|
||||
|
||||
public override void Update()
|
||||
{
|
||||
foreach (LLUUID UUID in Entities.Keys)
|
||||
{
|
||||
Entities[UUID].updateMovement();
|
||||
}
|
||||
|
||||
lock (this.m_syncRoot)
|
||||
{
|
||||
this.phyScene.Simulate(timeStep);
|
||||
}
|
||||
|
||||
foreach (LLUUID UUID in Entities.Keys)
|
||||
{
|
||||
Entities[UUID].update();
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,6 +54,7 @@ namespace SimpleApp
|
||||
UDPServer udpServer;
|
||||
|
||||
Scene scene = SetupScene(regionInfo, out udpServer);
|
||||
scene.StartTimer();
|
||||
|
||||
udpServer.ServerListener();
|
||||
|
||||
@@ -64,7 +65,7 @@ namespace SimpleApp
|
||||
SceneObject m_sceneObject = new MySceneObject(scene, scene.EventManager, LLUUID.Zero, scene.PrimIDAllocate(), pos, shape);
|
||||
scene.AddEntity(m_sceneObject);
|
||||
|
||||
MyNpcCharacter m_character = new MyNpcCharacter();
|
||||
MyNpcCharacter m_character = new MyNpcCharacter( scene.EventManager );
|
||||
scene.AddNewClient(m_character, false);
|
||||
|
||||
m_log.WriteLine(LogPriority.NORMAL, "Press enter to quit.");
|
||||
|
||||
Reference in New Issue
Block a user