From bf2f3ea29ab045cf8fe1e8223adb176e11c14569 Mon Sep 17 00:00:00 2001 From: MW Date: Sun, 15 Jul 2007 21:10:05 +0000 Subject: Hijacked simpleApp again (sorry lbsa71, guess I should create my own simpleApp), to try out a basic test npc character(/class). --- .../Region/Examples/SimpleApp/MyNpcCharacter.cs | 174 +++++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100644 OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs (limited to 'OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs') diff --git a/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs new file mode 100644 index 0000000..1c267c6 --- /dev/null +++ b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs @@ -0,0 +1,174 @@ +using System.Collections.Generic; +using System.Net; +using System.Timers; +using System; +using System.Text; + +using libsecondlife; +using libsecondlife.Packets; + +using OpenSim.Framework; +using OpenSim.Framework.Interfaces; +using OpenSim.Framework.Types; +using OpenSim.Framework.Data; +using OpenSim.Framework.Utilities; + +namespace SimpleApp +{ + public class MyNpcCharacter : IClientAPI + { + private uint movementDirection = 0; + private bool fly = true; + private LLQuaternion bodyDirection = LLQuaternion.Identity; + + public event ImprovedInstantMessage OnInstantMessage; + public event ChatFromViewer OnChatFromViewer; + public event RezObject OnRezObject; + public event ModifyTerrain OnModifyTerrain; + public event SetAppearance OnSetAppearance; + public event StartAnim OnStartAnim; + public event LinkObjects OnLinkObjects; + public event RequestMapBlocks OnRequestMapBlocks; + public event TeleportLocationRequest OnTeleportLocationRequest; + + public event GenericCall4 OnDeRezObject; + public event GenericCall OnRegionHandShakeReply; + public event GenericCall OnRequestWearables; + public event GenericCall2 OnCompleteMovementToRegion; + public event UpdateAgent OnAgentUpdate; + public event GenericCall OnRequestAvatarsData; + public event AddNewPrim OnAddPrim; + public event ObjectDuplicate OnObjectDuplicate; + public event UpdateVector OnGrapObject; + public event ObjectSelect OnDeGrapObject; + public event MoveObject OnGrapUpdate; + + public event UpdateShape OnUpdatePrimShape; + public event ObjectSelect OnObjectSelect; + public event GenericCall7 OnObjectDescription; + public event GenericCall7 OnObjectName; + public event UpdatePrimFlags OnUpdatePrimFlags; + public event UpdatePrimTexture OnUpdatePrimTexture; + public event UpdateVector OnUpdatePrimGroupPosition; + public event UpdateVector OnUpdatePrimSinglePosition; + public event UpdatePrimRotation OnUpdatePrimGroupRotation; + public event UpdatePrimSingleRotation OnUpdatePrimSingleRotation; + public event UpdatePrimGroupRotation OnUpdatePrimGroupMouseRotation; + public event UpdateVector OnUpdatePrimScale; + public event StatusChange OnChildAgentStatus; + public event GenericCall2 OnStopMovement; + public event NewAvatar OnNewAvatar; + public event GenericCall6 OnRemoveAvatar; + + public event UUIDNameRequest OnNameFromUUIDRequest; + + public event ParcelPropertiesRequest OnParcelPropertiesRequest; + public event ParcelDivideRequest OnParcelDivideRequest; + public event ParcelJoinRequest OnParcelJoinRequest; + public event ParcelPropertiesUpdateRequest OnParcelPropertiesUpdateRequest; + + public event ParcelSelectObjects OnParcelSelectObjects; + + public event EstateOwnerMessageRequest OnEstateOwnerMessage; + + private LLUUID myID = LLUUID.Random(); + public MyNpcCharacter() + { + + } + + public virtual LLVector3 StartPos + { + get { return new LLVector3(128, 100, 2); } + set { } + } + + public virtual LLUUID AgentId + { + get { return myID; } + } + + public virtual string FirstName + { + get { return "Annoying"; } + } + + public virtual string LastName + { + get { return "NPC"; } + } + + public virtual void OutPacket(Packet newPack) { } + public virtual void SendWearables(AvatarWearable[] wearables) { } + public virtual void SendStartPingCheck(byte seq) { } + public virtual void SendKillObject(ulong regionHandle, uint avatarLocalID) { } + public virtual void SendAnimation(LLUUID animID, int seq, LLUUID sourceAgentId) { } + public virtual void SendChatMessage(string message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID) { } + public virtual void SendChatMessage(byte[] message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID) { } + public virtual void SendInstantMessage(string message, LLUUID target, string fromName) { } + public virtual void SendLayerData(float[] map) { } + public virtual void SendLayerData(int px, int py, float[] map) { } + public virtual void MoveAgentIntoRegion(RegionInfo regInfo, LLVector3 pos, LLVector3 look) { } + public virtual void InformClientOfNeighbour(ulong neighbourHandle, IPEndPoint neighbourExternalEndPoint) { } + public virtual AgentCircuitData RequestClientInfo() { return new AgentCircuitData(); } + public virtual void CrossRegion(ulong newRegionHandle, LLVector3 pos, LLVector3 lookAt, IPEndPoint newRegionExternalEndPoint) { } + public virtual void SendMapBlock(List mapBlocks) { } + public virtual void SendLocalTeleport(LLVector3 position, LLVector3 lookAt, uint flags) { } + public virtual void SendRegionTeleport(ulong regionHandle, byte simAccess, IPEndPoint regionExternalEndPoint, uint locationID, uint flags) { } + public virtual void SendTeleportCancel() { } + public virtual void SendTeleportLocationStart() { } + public virtual void SendMoneyBalance(LLUUID transaction, bool success, byte[] description, int balance) { } + + public virtual void SendAvatarData(ulong regionHandle, string firstName, string lastName, LLUUID avatarID, uint avatarLocalID, LLVector3 Pos, byte[] textureEntry) { } + public virtual void SendAvatarTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, LLVector3 velocity) { } + + public virtual void AttachObject(uint localID, LLQuaternion rotation, byte attachPoint) { } + public virtual void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimData primData, LLVector3 pos, LLQuaternion rotation, LLUUID textureID, uint flags) { } + public virtual void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimData primData, LLVector3 pos, LLUUID textureID, uint flags) { } + public virtual void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, LLQuaternion rotation, uint flags, LLUUID objectID, LLUUID ownerID, string text, uint parentID) { } + public virtual void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, uint flags, LLUUID objectID, LLUUID ownerID, string text, uint parentID) { } + public virtual void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, LLQuaternion rotation) { } + + public virtual void SendInventoryFolderDetails(LLUUID ownerID, LLUUID folderID, List items) { } + public virtual void SendInventoryItemDetails(LLUUID ownerID, LLUUID folderID, InventoryItemBase item) { } + public virtual void SendNameReply(LLUUID profileId, string firstname, string lastname) { } + + public virtual void SendRegionHandshake(RegionInfo regionInfo) + { + this.OnRegionHandShakeReply(this); + this.OnCompleteMovementToRegion(); + this.StartMovement(); + } + + public void StartMovement() + { + Timer timer = new Timer(); + timer.Enabled = true; + timer.Interval = 10000; + timer.Elapsed += new ElapsedEventHandler(this.Heartbeat); + } + + public void Heartbeat(object sender, EventArgs e) + { + + Encoding enc = Encoding.ASCII; + + this.OnAgentUpdate(this, movementDirection, bodyDirection); + + if (this.fly) + { + movementDirection = (uint)MainAvatar.ControlFlags.AGENT_CONTROL_FLY | (uint)MainAvatar.ControlFlags.AGENT_CONTROL_UP_NEG; + fly = false; + } + else + { + movementDirection = (uint)MainAvatar.ControlFlags.AGENT_CONTROL_FLY | (uint)MainAvatar.ControlFlags.AGENT_CONTROL_UP_POS; + fly = true; + } + + this.OnChatFromViewer(enc.GetBytes("Kind of quiet around here isn't it! \0"), 2, new LLVector3(128, 128, 26), this.FirstName + " " + this.LastName, this.AgentId); + + + } + } +} -- cgit v1.1