From 94c39c793aba7d0ef1159c91a3ee598b18514240 Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Fri, 14 Mar 2008 00:41:09 +0000 Subject: Update svn properties. --- .../Region/Examples/SimpleModule/ComplexObject.cs | 272 ++--- .../Examples/SimpleModule/CpuCounterObject.cs | 136 +-- .../Examples/SimpleModule/FileSystemObject.cs | 104 +- .../Region/Examples/SimpleModule/MyNpcCharacter.cs | 1108 ++++++++++---------- .../SimpleModule/Properties/AssemblyInfo.cs | 72 +- OpenSim/Region/Examples/SimpleModule/README.txt | 18 +- .../Region/Examples/SimpleModule/RegionModule.cs | 228 ++-- 7 files changed, 969 insertions(+), 969 deletions(-) (limited to 'OpenSim') diff --git a/OpenSim/Region/Examples/SimpleModule/ComplexObject.cs b/OpenSim/Region/Examples/SimpleModule/ComplexObject.cs index 42f517c..9941304 100644 --- a/OpenSim/Region/Examples/SimpleModule/ComplexObject.cs +++ b/OpenSim/Region/Examples/SimpleModule/ComplexObject.cs @@ -1,137 +1,137 @@ -/* -* Copyright (c) Contributors, http://opensimulator.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ - -using libsecondlife; -using OpenSim.Framework; -using OpenSim.Region.Environment.Scenes; - -namespace OpenSim.Region.Examples.SimpleModule -{ - public class ComplexObject : SceneObjectGroup - { - private readonly LLQuaternion m_rotationDirection; - - protected override bool InSceneBackup - { - get - { - return false; - } - } - - private class RotatingWheel : SceneObjectPart - { - private readonly LLQuaternion m_rotationDirection; - - public RotatingWheel() - { - - } - - public RotatingWheel(ulong regionHandle, SceneObjectGroup parent, LLUUID ownerID, uint localID, - LLVector3 groupPosition, LLVector3 offsetPosition, LLQuaternion rotationDirection) - : base( - regionHandle, parent, ownerID, localID, PrimitiveBaseShape.Default, groupPosition, offsetPosition - ) - { - m_rotationDirection = rotationDirection; - - Flags |= LLObject.ObjectFlags.Touch; - } - - public override void UpdateMovement() - { - UpdateRotation(RotationOffset*m_rotationDirection); - } - } - - public override void UpdateMovement() - { - UpdateGroupRotation(GroupRotation*m_rotationDirection); - - base.UpdateMovement(); - } - - public ComplexObject() - { - - } - - public ComplexObject(Scene scene, ulong regionHandle, LLUUID ownerID, uint localID, LLVector3 pos) - : base(scene, regionHandle, ownerID, localID, pos, PrimitiveBaseShape.Default) - { - m_rotationDirection = new LLQuaternion(0.05f, 0.1f, 0.15f); - - AddPart( - new RotatingWheel(regionHandle, this, ownerID, scene.PrimIDAllocate(), pos, new LLVector3(0, 0, 0.75f), - new LLQuaternion(0.05f, 0, 0))); - AddPart( - new RotatingWheel(regionHandle, this, ownerID, scene.PrimIDAllocate(), pos, new LLVector3(0, 0, -0.75f), - new LLQuaternion(-0.05f, 0, 0))); - - AddPart( - new RotatingWheel(regionHandle, this, ownerID, scene.PrimIDAllocate(), pos, new LLVector3(0, 0.75f, 0), - new LLQuaternion(0.5f, 0, 0.05f))); - AddPart( - new RotatingWheel(regionHandle, this, ownerID, scene.PrimIDAllocate(), pos, new LLVector3(0, -0.75f, 0), - new LLQuaternion(-0.5f, 0, -0.05f))); - - AddPart( - new RotatingWheel(regionHandle, this, ownerID, scene.PrimIDAllocate(), pos, new LLVector3(0.75f, 0, 0), - new LLQuaternion(0, 0.5f, 0.05f))); - AddPart( - new RotatingWheel(regionHandle, this, ownerID, scene.PrimIDAllocate(), pos, new LLVector3(-0.75f, 0, 0), - new LLQuaternion(0, -0.5f, -0.05f))); - - RootPart.Flags |= LLObject.ObjectFlags.Touch; - - UpdateParentIDs(); - } - - public override void OnGrabPart(SceneObjectPart part, LLVector3 offsetPos, IClientAPI remoteClient) - { - m_parts.Remove(part.UUID); - - remoteClient.SendKillObject(m_regionHandle, part.LocalId); - remoteClient.AddMoney(1); - remoteClient.SendChatMessage("Poof!", 1, AbsolutePosition, "Party Party", LLUUID.Zero); - } - - public override void OnGrabGroup(LLVector3 offsetPos, IClientAPI remoteClient) - { - if (m_parts.Count == 1) - { - m_parts.Remove(m_rootPart.UUID); - m_scene.RemoveEntity(this); - remoteClient.SendKillObject(m_regionHandle, m_rootPart.LocalId); - remoteClient.AddMoney(50); - remoteClient.SendChatMessage("KABLAM!!!", 1, AbsolutePosition, "Groupie Groupie", LLUUID.Zero); - } - } - } +/* +* Copyright (c) Contributors, http://opensimulator.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + +using libsecondlife; +using OpenSim.Framework; +using OpenSim.Region.Environment.Scenes; + +namespace OpenSim.Region.Examples.SimpleModule +{ + public class ComplexObject : SceneObjectGroup + { + private readonly LLQuaternion m_rotationDirection; + + protected override bool InSceneBackup + { + get + { + return false; + } + } + + private class RotatingWheel : SceneObjectPart + { + private readonly LLQuaternion m_rotationDirection; + + public RotatingWheel() + { + + } + + public RotatingWheel(ulong regionHandle, SceneObjectGroup parent, LLUUID ownerID, uint localID, + LLVector3 groupPosition, LLVector3 offsetPosition, LLQuaternion rotationDirection) + : base( + regionHandle, parent, ownerID, localID, PrimitiveBaseShape.Default, groupPosition, offsetPosition + ) + { + m_rotationDirection = rotationDirection; + + Flags |= LLObject.ObjectFlags.Touch; + } + + public override void UpdateMovement() + { + UpdateRotation(RotationOffset*m_rotationDirection); + } + } + + public override void UpdateMovement() + { + UpdateGroupRotation(GroupRotation*m_rotationDirection); + + base.UpdateMovement(); + } + + public ComplexObject() + { + + } + + public ComplexObject(Scene scene, ulong regionHandle, LLUUID ownerID, uint localID, LLVector3 pos) + : base(scene, regionHandle, ownerID, localID, pos, PrimitiveBaseShape.Default) + { + m_rotationDirection = new LLQuaternion(0.05f, 0.1f, 0.15f); + + AddPart( + new RotatingWheel(regionHandle, this, ownerID, scene.PrimIDAllocate(), pos, new LLVector3(0, 0, 0.75f), + new LLQuaternion(0.05f, 0, 0))); + AddPart( + new RotatingWheel(regionHandle, this, ownerID, scene.PrimIDAllocate(), pos, new LLVector3(0, 0, -0.75f), + new LLQuaternion(-0.05f, 0, 0))); + + AddPart( + new RotatingWheel(regionHandle, this, ownerID, scene.PrimIDAllocate(), pos, new LLVector3(0, 0.75f, 0), + new LLQuaternion(0.5f, 0, 0.05f))); + AddPart( + new RotatingWheel(regionHandle, this, ownerID, scene.PrimIDAllocate(), pos, new LLVector3(0, -0.75f, 0), + new LLQuaternion(-0.5f, 0, -0.05f))); + + AddPart( + new RotatingWheel(regionHandle, this, ownerID, scene.PrimIDAllocate(), pos, new LLVector3(0.75f, 0, 0), + new LLQuaternion(0, 0.5f, 0.05f))); + AddPart( + new RotatingWheel(regionHandle, this, ownerID, scene.PrimIDAllocate(), pos, new LLVector3(-0.75f, 0, 0), + new LLQuaternion(0, -0.5f, -0.05f))); + + RootPart.Flags |= LLObject.ObjectFlags.Touch; + + UpdateParentIDs(); + } + + public override void OnGrabPart(SceneObjectPart part, LLVector3 offsetPos, IClientAPI remoteClient) + { + m_parts.Remove(part.UUID); + + remoteClient.SendKillObject(m_regionHandle, part.LocalId); + remoteClient.AddMoney(1); + remoteClient.SendChatMessage("Poof!", 1, AbsolutePosition, "Party Party", LLUUID.Zero); + } + + public override void OnGrabGroup(LLVector3 offsetPos, IClientAPI remoteClient) + { + if (m_parts.Count == 1) + { + m_parts.Remove(m_rootPart.UUID); + m_scene.RemoveEntity(this); + remoteClient.SendKillObject(m_regionHandle, m_rootPart.LocalId); + remoteClient.AddMoney(50); + remoteClient.SendChatMessage("KABLAM!!!", 1, AbsolutePosition, "Groupie Groupie", LLUUID.Zero); + } + } + } } \ No newline at end of file diff --git a/OpenSim/Region/Examples/SimpleModule/CpuCounterObject.cs b/OpenSim/Region/Examples/SimpleModule/CpuCounterObject.cs index 75f289b..184c1b7 100644 --- a/OpenSim/Region/Examples/SimpleModule/CpuCounterObject.cs +++ b/OpenSim/Region/Examples/SimpleModule/CpuCounterObject.cs @@ -1,69 +1,69 @@ -/* -* Copyright (c) Contributors, http://opensimulator.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ - -using System; -using System.Diagnostics; -using libsecondlife; -using OpenSim.Framework; -using OpenSim.Region.Environment.Scenes; - -namespace OpenSim.Region.Examples.SimpleModule -{ - public class CpuCounterObject : SceneObjectGroup - { - protected override bool InSceneBackup - { - get - { - return false; - } - } - - private PerformanceCounter m_counter; - - public CpuCounterObject(Scene world, ulong regionHandle, LLUUID ownerID, uint localID, LLVector3 pos) - : base(world, regionHandle, ownerID, localID, pos, PrimitiveBaseShape.Default) - { - String objectName = "Processor"; - String counterName = "% Processor Time"; - String instanceName = "_Total"; - - m_counter = new PerformanceCounter(objectName, counterName, instanceName); - } - - public override void UpdateMovement() - { - float cpu = m_counter.NextValue()/40f; - LLVector3 size = new LLVector3(cpu, cpu, cpu); - - RootPart.Resize( size ); - - base.UpdateMovement(); - } - } +/* +* Copyright (c) Contributors, http://opensimulator.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + +using System; +using System.Diagnostics; +using libsecondlife; +using OpenSim.Framework; +using OpenSim.Region.Environment.Scenes; + +namespace OpenSim.Region.Examples.SimpleModule +{ + public class CpuCounterObject : SceneObjectGroup + { + protected override bool InSceneBackup + { + get + { + return false; + } + } + + private PerformanceCounter m_counter; + + public CpuCounterObject(Scene world, ulong regionHandle, LLUUID ownerID, uint localID, LLVector3 pos) + : base(world, regionHandle, ownerID, localID, pos, PrimitiveBaseShape.Default) + { + String objectName = "Processor"; + String counterName = "% Processor Time"; + String instanceName = "_Total"; + + m_counter = new PerformanceCounter(objectName, counterName, instanceName); + } + + public override void UpdateMovement() + { + float cpu = m_counter.NextValue()/40f; + LLVector3 size = new LLVector3(cpu, cpu, cpu); + + RootPart.Resize( size ); + + base.UpdateMovement(); + } + } } \ No newline at end of file diff --git a/OpenSim/Region/Examples/SimpleModule/FileSystemObject.cs b/OpenSim/Region/Examples/SimpleModule/FileSystemObject.cs index 6e06c63..84e8fa5 100644 --- a/OpenSim/Region/Examples/SimpleModule/FileSystemObject.cs +++ b/OpenSim/Region/Examples/SimpleModule/FileSystemObject.cs @@ -1,53 +1,53 @@ -/* -* Copyright (c) Contributors, http://opensimulator.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ - -using System.IO; -using libsecondlife; -using OpenSim.Framework; -using OpenSim.Region.Environment.Scenes; - -namespace OpenSim.Region.Examples.SimpleModule -{ - public class FileSystemObject : SceneObjectGroup - { - public FileSystemObject(Scene world, FileInfo fileInfo, LLVector3 pos) - : base(world, world.RegionInfo.RegionHandle, LLUUID.Zero, world.NextLocalId, pos, PrimitiveBaseShape.Default) - { - Text = fileInfo.Name; - ScheduleGroupForFullUpdate(); - } - - protected override bool InSceneBackup - { - get - { - return false; - } - } - } +/* +* Copyright (c) Contributors, http://opensimulator.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + +using System.IO; +using libsecondlife; +using OpenSim.Framework; +using OpenSim.Region.Environment.Scenes; + +namespace OpenSim.Region.Examples.SimpleModule +{ + public class FileSystemObject : SceneObjectGroup + { + public FileSystemObject(Scene world, FileInfo fileInfo, LLVector3 pos) + : base(world, world.RegionInfo.RegionHandle, LLUUID.Zero, world.NextLocalId, pos, PrimitiveBaseShape.Default) + { + Text = fileInfo.Name; + ScheduleGroupForFullUpdate(); + } + + protected override bool InSceneBackup + { + get + { + return false; + } + } + } } \ No newline at end of file diff --git a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs index 38d999b..d0241f8 100644 --- a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs +++ b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs @@ -1,555 +1,555 @@ -/* -* Copyright (c) Contributors, http://opensimulator.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ - -using System; -using System.Collections.Generic; -using System.Net; -using libsecondlife; -using libsecondlife.Packets; -using OpenSim.Framework; -using OpenSim.Region.Environment.Scenes; - -namespace OpenSim.Region.Examples.SimpleModule -{ - public class MyNpcCharacter : IClientAPI - { - private uint movementFlag = 0; - private short flyState = 0; - private LLQuaternion bodyDirection = LLQuaternion.Identity; - private short count = 0; - -#pragma warning disable 67 - - public event Action OnLogout; - public event ObjectPermissions OnObjectPermissions; - - public event MoneyTransferRequest OnMoneyTransferRequest; - public event Action OnConnectionClosed; - - public event ImprovedInstantMessage OnInstantMessage; - public event ChatFromViewer OnChatFromViewer; - public event TextureRequest OnRequestTexture; - public event RezObject OnRezObject; - public event ModifyTerrain OnModifyTerrain; - public event SetAppearance OnSetAppearance; - public event AvatarNowWearing OnAvatarNowWearing; - public event RezSingleAttachmentFromInv OnRezSingleAttachmentFromInv; - public event ObjectAttach OnObjectAttach; - public event StartAnim OnStartAnim; - public event StopAnim OnStopAnim; - public event LinkObjects OnLinkObjects; - public event DelinkObjects OnDelinkObjects; - public event RequestMapBlocks OnRequestMapBlocks; - public event RequestMapName OnMapNameRequest; - public event TeleportLocationRequest OnTeleportLocationRequest; - public event DisconnectUser OnDisconnectUser; - public event RequestAvatarProperties OnRequestAvatarProperties; - public event SetAlwaysRun OnSetAlwaysRun; - - public event GenericCall4 OnDeRezObject; - public event Action OnRegionHandShakeReply; - public event GenericCall2 OnRequestWearables; - public event GenericCall2 OnCompleteMovementToRegion; - public event UpdateAgent OnAgentUpdate; - public event AgentRequestSit OnAgentRequestSit; - public event AgentSit OnAgentSit; - public event AvatarPickerRequest OnAvatarPickerRequest; - public event Action OnRequestAvatarsData; - public event AddNewPrim OnAddPrim; - public event RequestGodlikePowers OnRequestGodlikePowers; - public event GodKickUser OnGodKickUser; - public event ObjectDuplicate OnObjectDuplicate; - public event UpdateVector OnGrabObject; - public event ObjectSelect OnDeGrabObject; - public event MoveObject OnGrabUpdate; - public event ViewerEffectEventHandler OnViewerEffect; - - public event FetchInventory OnAgentDataUpdateRequest; - public event FetchInventory OnUserInfoRequest; - public event TeleportLocationRequest OnSetStartLocationRequest; - - public event UpdateShape OnUpdatePrimShape; - public event ObjectExtraParams OnUpdateExtraParams; - public event RequestObjectPropertiesFamily OnRequestObjectPropertiesFamily; - 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 Action OnRemoveAvatar; - - public event CreateNewInventoryItem OnCreateNewInventoryItem; - public event CreateInventoryFolder OnCreateNewInventoryFolder; - public event UpdateInventoryFolder OnUpdateInventoryFolder; - public event MoveInventoryFolder OnMoveInventoryFolder; - public event RemoveInventoryFolder OnRemoveInventoryFolder; - public event RemoveInventoryItem OnRemoveInventoryItem; - public event FetchInventoryDescendents OnFetchInventoryDescendents; - public event PurgeInventoryDescendents OnPurgeInventoryDescendents; - public event FetchInventory OnFetchInventory; - public event RequestTaskInventory OnRequestTaskInventory; - public event UpdateInventoryItem OnUpdateInventoryItem; - public event CopyInventoryItem OnCopyInventoryItem; - public event MoveInventoryItem OnMoveInventoryItem; - public event UDPAssetUploadRequest OnAssetUploadRequest; - public event XferReceive OnXferReceive; - public event RequestXfer OnRequestXfer; - public event ConfirmXfer OnConfirmXfer; - public event RezScript OnRezScript; - public event UpdateTaskInventory OnUpdateTaskInventory; - public event RemoveTaskInventory OnRemoveTaskItem; - public event RequestAsset OnRequestAsset; - - public event UUIDNameRequest OnNameFromUUIDRequest; - - public event ParcelPropertiesRequest OnParcelPropertiesRequest; - public event ParcelDivideRequest OnParcelDivideRequest; - public event ParcelJoinRequest OnParcelJoinRequest; - public event ParcelPropertiesUpdateRequest OnParcelPropertiesUpdateRequest; - - public event ParcelAccessListRequest OnParcelAccessListRequest; - public event ParcelAccessListUpdateRequest OnParcelAccessListUpdateRequest; - public event ParcelSelectObjects OnParcelSelectObjects; - public event ParcelObjectOwnerRequest OnParcelObjectOwnerRequest; - public event ObjectDeselect OnObjectDeselect; - public event EstateOwnerMessageRequest OnEstateOwnerMessage; - public event RegionInfoRequest OnRegionInfoRequest; - public event EstateCovenantRequest OnEstateCovenantRequest; - - public event FriendActionDelegate OnApproveFriendRequest; - public event FriendActionDelegate OnDenyFriendRequest; - public event FriendshipTermination OnTerminateFriendship; - public event PacketStats OnPacketStats; - public event MoneyBalanceRequest OnMoneyBalanceRequest; - public event UpdateAvatarProperties OnUpdateAvatarProperties; - - -#pragma warning restore 67 - - private LLUUID myID = LLUUID.Random(); - - public MyNpcCharacter(EventManager eventManager) - { - // startPos = new LLVector3(128, (float)(Util.RandomClass.NextDouble()*100), 2); - eventManager.OnFrame += Update; - } - - private LLVector3 startPos = new LLVector3(128, 128, 2); - - public virtual LLVector3 StartPos - { - get { return startPos; } - set { } - } - - public virtual LLUUID AgentId - { - get { return myID; } - } - - public LLUUID SessionId - { - get { return LLUUID.Zero; } - } - - public LLUUID SecureSessionId - { - get { return LLUUID.Zero; } - } - - public virtual string FirstName - { - get { return "Annoying"; } - } - - private string lastName = "NPC" + Util.RandomClass.Next(1, 1000); - - public virtual string LastName - { - get { return lastName; } - } - - public virtual String Name - { - get { return FirstName + LastName; } - } - - - public virtual void OutPacket(Packet newPack, ThrottleOutPacketType packType) - { - } - - public virtual void SendWearables(AvatarWearable[] wearables, int serial) - { - } - - public virtual void SendAppearance(LLUUID agentID, byte[] visualParams, byte[] textureEntry) - { - } - - public virtual void Kick(string message) - { - } - - public virtual void SendStartPingCheck(byte seq) - { - } - - public virtual void SendAvatarPickerReply(AvatarPickerReplyPacket response) - { - } - - public virtual void SendAgentDataUpdate(LLUUID agentid, LLUUID activegroupid, string firstname, string lastname, ulong grouppowers, string groupname, string grouptitle) - { - - } - - public virtual void SendKillObject(ulong regionHandle, uint localID) - { - } - - public virtual void SetChildAgentThrottle(byte[] throttle) - { - } - public byte[] GetThrottlesPacked(float multiplier) - { - return new byte[0]; - } - - - public virtual void SendAnimations(LLUUID[] animations, int[] seqs, 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(LLUUID fromAgent, LLUUID fromAgentSession, string message, LLUUID toAgent, - LLUUID imSessionID, string fromName, byte dialog, uint timeStamp) - { - } - - 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, string capsURL) - { - } - - 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, string capsURL) - { - } - - public virtual void SendTeleportFailed(string reason) - { - } - - 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, uint parentID) - { - } - - public virtual void SendAvatarTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, - LLVector3 position, LLVector3 velocity, LLQuaternion rotation) - { - } - - public virtual void SendCoarseLocationUpdate(List CoarseLocations) - { - } - - public virtual void AttachObject(uint localID, LLQuaternion rotation, byte attachPoint) - { - } - - public virtual void SendDialog(string objectname, LLUUID objectID, LLUUID ownerID, string msg, LLUUID textureID, int ch, string[] buttonlabels) - { - } - - public virtual void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, - PrimitiveBaseShape primShape, LLVector3 pos, uint flags, - LLUUID objectID, LLUUID ownerID, string text, byte[] color, - uint parentID, - byte[] particleSystem, LLQuaternion rotation, byte clickAction) - { - } - public virtual void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, - PrimitiveBaseShape primShape, LLVector3 pos, uint flags, - LLUUID objectID, LLUUID ownerID, string text, byte[] color, - uint parentID, - byte[] particleSystem, LLQuaternion rotation, byte clickAction, byte[] textureanimation) - { - } - public virtual void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, - LLVector3 position, LLQuaternion rotation, byte state) - { - } - - public virtual void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, - LLVector3 position, LLQuaternion rotation, LLVector3 velocity, - LLVector3 rotationalvelocity) - { - } - - public virtual void SendInventoryFolderDetails(LLUUID ownerID, LLUUID folderID, - List items, - List folders, - bool fetchFolders, - bool fetchItems) - { - } - - public virtual void SendInventoryItemDetails(LLUUID ownerID, InventoryItemBase item) - { - } - - public virtual void SendInventoryItemCreateUpdate(InventoryItemBase Item) - { - } - - public virtual void SendRemoveInventoryItem(LLUUID itemID) - { - } - - public virtual void SendTaskInventory(LLUUID taskID, short serial, byte[] fileName) - { - } - - public virtual void SendXferPacket(ulong xferID, uint packet, byte[] data) - { - } - - public virtual void SendNameReply(LLUUID profileId, string firstname, string lastname) - { - } - - public virtual void SendPreLoadSound(LLUUID objectID, LLUUID ownerID, LLUUID soundID) - { - } - - public virtual void SendPlayAttachedSound(LLUUID soundID, LLUUID objectID, LLUUID ownerID, float gain, - byte flags) - { - } - - public void SendTriggeredSound(LLUUID soundID, LLUUID ownerID, LLUUID objectID, LLUUID parentID, ulong handle, LLVector3 position, float gain) - { - } - - public void SendAlertMessage(string message) - { - } - - public void SendAgentAlertMessage(string message, bool modal) - { - } - - public void SendSystemAlertMessage(string message) - { - } - - public void SendLoadURL(string objectname, LLUUID objectID, LLUUID ownerID, bool groupOwned, string message, - string url) - { - } - - public virtual void SendRegionHandshake(RegionInfo regionInfo) - { - if (OnRegionHandShakeReply != null) - { - OnRegionHandShakeReply(this); - } - - if (OnCompleteMovementToRegion != null) - { - OnCompleteMovementToRegion(); - } - } - - private void Update() - { - if (OnAgentUpdate != null) - { - AgentUpdatePacket pack = new AgentUpdatePacket(); - pack.AgentData.ControlFlags = movementFlag; - pack.AgentData.BodyRotation = bodyDirection; - OnAgentUpdate(this, pack); - } - if (flyState == 0) - { - movementFlag = (uint) AgentManager.ControlFlags.AGENT_CONTROL_FLY | - (uint) AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG; - flyState = 1; - } - else if (flyState == 1) - { - movementFlag = (uint) AgentManager.ControlFlags.AGENT_CONTROL_FLY | - (uint) AgentManager.ControlFlags.AGENT_CONTROL_UP_POS; - flyState = 2; - } - else - { - movementFlag = (uint) AgentManager.ControlFlags.AGENT_CONTROL_FLY; - flyState = 0; - } - - if (count >= 200) - { - if (OnChatFromViewer != null) - { - ChatFromViewerArgs args = new ChatFromViewerArgs(); - args.Message = "Kinda quiet around here, isn't it?"; - args.Channel = 0; - args.From = FirstName + " " + LastName; - args.Position = new LLVector3(128, 128, 26); - args.Sender = this; - args.Type = ChatTypeEnum.Shout; - - OnChatFromViewer(this, args); - } - count = -1; - } - - count++; - } - - public bool AddMoney(int debit) - { - return false; - } - - public void SendSunPos(LLVector3 sunPos, LLVector3 sunVel) - { - } - - public void SendViewerTime(int phase) - { - } - - public void SendAvatarProperties(LLUUID avatarID, string aboutText, string bornOn, string charterMember, - string flAbout, uint flags, LLUUID flImageID, LLUUID imageID, string profileURL, - LLUUID partnerID) - { - } - - public void SetDebug(int newDebug) - { - } - - public void InPacket(Packet NewPack) - { - } - - public void Close(bool ShutdownCircuit) - { - } - - public void Stop() - { - } - - private uint m_circuitCode; - - public uint CircuitCode - { - get { return m_circuitCode; } - set { m_circuitCode = value; } - } - public void SendBlueBoxMessage(LLUUID FromAvatarID, LLUUID fromSessionID, String FromAvatarName, String Message) - { - - } - public void SendLogoutPacket() - { - } - - public void Terminate() - { - } - - public ClientInfo GetClientInfo() - { - return null; - } - - public void SetClientInfo(ClientInfo info) - { - } - } +/* +* Copyright (c) Contributors, http://opensimulator.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + +using System; +using System.Collections.Generic; +using System.Net; +using libsecondlife; +using libsecondlife.Packets; +using OpenSim.Framework; +using OpenSim.Region.Environment.Scenes; + +namespace OpenSim.Region.Examples.SimpleModule +{ + public class MyNpcCharacter : IClientAPI + { + private uint movementFlag = 0; + private short flyState = 0; + private LLQuaternion bodyDirection = LLQuaternion.Identity; + private short count = 0; + +#pragma warning disable 67 + + public event Action OnLogout; + public event ObjectPermissions OnObjectPermissions; + + public event MoneyTransferRequest OnMoneyTransferRequest; + public event Action OnConnectionClosed; + + public event ImprovedInstantMessage OnInstantMessage; + public event ChatFromViewer OnChatFromViewer; + public event TextureRequest OnRequestTexture; + public event RezObject OnRezObject; + public event ModifyTerrain OnModifyTerrain; + public event SetAppearance OnSetAppearance; + public event AvatarNowWearing OnAvatarNowWearing; + public event RezSingleAttachmentFromInv OnRezSingleAttachmentFromInv; + public event ObjectAttach OnObjectAttach; + public event StartAnim OnStartAnim; + public event StopAnim OnStopAnim; + public event LinkObjects OnLinkObjects; + public event DelinkObjects OnDelinkObjects; + public event RequestMapBlocks OnRequestMapBlocks; + public event RequestMapName OnMapNameRequest; + public event TeleportLocationRequest OnTeleportLocationRequest; + public event DisconnectUser OnDisconnectUser; + public event RequestAvatarProperties OnRequestAvatarProperties; + public event SetAlwaysRun OnSetAlwaysRun; + + public event GenericCall4 OnDeRezObject; + public event Action OnRegionHandShakeReply; + public event GenericCall2 OnRequestWearables; + public event GenericCall2 OnCompleteMovementToRegion; + public event UpdateAgent OnAgentUpdate; + public event AgentRequestSit OnAgentRequestSit; + public event AgentSit OnAgentSit; + public event AvatarPickerRequest OnAvatarPickerRequest; + public event Action OnRequestAvatarsData; + public event AddNewPrim OnAddPrim; + public event RequestGodlikePowers OnRequestGodlikePowers; + public event GodKickUser OnGodKickUser; + public event ObjectDuplicate OnObjectDuplicate; + public event UpdateVector OnGrabObject; + public event ObjectSelect OnDeGrabObject; + public event MoveObject OnGrabUpdate; + public event ViewerEffectEventHandler OnViewerEffect; + + public event FetchInventory OnAgentDataUpdateRequest; + public event FetchInventory OnUserInfoRequest; + public event TeleportLocationRequest OnSetStartLocationRequest; + + public event UpdateShape OnUpdatePrimShape; + public event ObjectExtraParams OnUpdateExtraParams; + public event RequestObjectPropertiesFamily OnRequestObjectPropertiesFamily; + 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 Action OnRemoveAvatar; + + public event CreateNewInventoryItem OnCreateNewInventoryItem; + public event CreateInventoryFolder OnCreateNewInventoryFolder; + public event UpdateInventoryFolder OnUpdateInventoryFolder; + public event MoveInventoryFolder OnMoveInventoryFolder; + public event RemoveInventoryFolder OnRemoveInventoryFolder; + public event RemoveInventoryItem OnRemoveInventoryItem; + public event FetchInventoryDescendents OnFetchInventoryDescendents; + public event PurgeInventoryDescendents OnPurgeInventoryDescendents; + public event FetchInventory OnFetchInventory; + public event RequestTaskInventory OnRequestTaskInventory; + public event UpdateInventoryItem OnUpdateInventoryItem; + public event CopyInventoryItem OnCopyInventoryItem; + public event MoveInventoryItem OnMoveInventoryItem; + public event UDPAssetUploadRequest OnAssetUploadRequest; + public event XferReceive OnXferReceive; + public event RequestXfer OnRequestXfer; + public event ConfirmXfer OnConfirmXfer; + public event RezScript OnRezScript; + public event UpdateTaskInventory OnUpdateTaskInventory; + public event RemoveTaskInventory OnRemoveTaskItem; + public event RequestAsset OnRequestAsset; + + public event UUIDNameRequest OnNameFromUUIDRequest; + + public event ParcelPropertiesRequest OnParcelPropertiesRequest; + public event ParcelDivideRequest OnParcelDivideRequest; + public event ParcelJoinRequest OnParcelJoinRequest; + public event ParcelPropertiesUpdateRequest OnParcelPropertiesUpdateRequest; + + public event ParcelAccessListRequest OnParcelAccessListRequest; + public event ParcelAccessListUpdateRequest OnParcelAccessListUpdateRequest; + public event ParcelSelectObjects OnParcelSelectObjects; + public event ParcelObjectOwnerRequest OnParcelObjectOwnerRequest; + public event ObjectDeselect OnObjectDeselect; + public event EstateOwnerMessageRequest OnEstateOwnerMessage; + public event RegionInfoRequest OnRegionInfoRequest; + public event EstateCovenantRequest OnEstateCovenantRequest; + + public event FriendActionDelegate OnApproveFriendRequest; + public event FriendActionDelegate OnDenyFriendRequest; + public event FriendshipTermination OnTerminateFriendship; + public event PacketStats OnPacketStats; + public event MoneyBalanceRequest OnMoneyBalanceRequest; + public event UpdateAvatarProperties OnUpdateAvatarProperties; + + +#pragma warning restore 67 + + private LLUUID myID = LLUUID.Random(); + + public MyNpcCharacter(EventManager eventManager) + { + // startPos = new LLVector3(128, (float)(Util.RandomClass.NextDouble()*100), 2); + eventManager.OnFrame += Update; + } + + private LLVector3 startPos = new LLVector3(128, 128, 2); + + public virtual LLVector3 StartPos + { + get { return startPos; } + set { } + } + + public virtual LLUUID AgentId + { + get { return myID; } + } + + public LLUUID SessionId + { + get { return LLUUID.Zero; } + } + + public LLUUID SecureSessionId + { + get { return LLUUID.Zero; } + } + + public virtual string FirstName + { + get { return "Annoying"; } + } + + private string lastName = "NPC" + Util.RandomClass.Next(1, 1000); + + public virtual string LastName + { + get { return lastName; } + } + + public virtual String Name + { + get { return FirstName + LastName; } + } + + + public virtual void OutPacket(Packet newPack, ThrottleOutPacketType packType) + { + } + + public virtual void SendWearables(AvatarWearable[] wearables, int serial) + { + } + + public virtual void SendAppearance(LLUUID agentID, byte[] visualParams, byte[] textureEntry) + { + } + + public virtual void Kick(string message) + { + } + + public virtual void SendStartPingCheck(byte seq) + { + } + + public virtual void SendAvatarPickerReply(AvatarPickerReplyPacket response) + { + } + + public virtual void SendAgentDataUpdate(LLUUID agentid, LLUUID activegroupid, string firstname, string lastname, ulong grouppowers, string groupname, string grouptitle) + { + + } + + public virtual void SendKillObject(ulong regionHandle, uint localID) + { + } + + public virtual void SetChildAgentThrottle(byte[] throttle) + { + } + public byte[] GetThrottlesPacked(float multiplier) + { + return new byte[0]; + } + + + public virtual void SendAnimations(LLUUID[] animations, int[] seqs, 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(LLUUID fromAgent, LLUUID fromAgentSession, string message, LLUUID toAgent, + LLUUID imSessionID, string fromName, byte dialog, uint timeStamp) + { + } + + 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, string capsURL) + { + } + + 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, string capsURL) + { + } + + public virtual void SendTeleportFailed(string reason) + { + } + + 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, uint parentID) + { + } + + public virtual void SendAvatarTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, + LLVector3 position, LLVector3 velocity, LLQuaternion rotation) + { + } + + public virtual void SendCoarseLocationUpdate(List CoarseLocations) + { + } + + public virtual void AttachObject(uint localID, LLQuaternion rotation, byte attachPoint) + { + } + + public virtual void SendDialog(string objectname, LLUUID objectID, LLUUID ownerID, string msg, LLUUID textureID, int ch, string[] buttonlabels) + { + } + + public virtual void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, + PrimitiveBaseShape primShape, LLVector3 pos, uint flags, + LLUUID objectID, LLUUID ownerID, string text, byte[] color, + uint parentID, + byte[] particleSystem, LLQuaternion rotation, byte clickAction) + { + } + public virtual void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, + PrimitiveBaseShape primShape, LLVector3 pos, uint flags, + LLUUID objectID, LLUUID ownerID, string text, byte[] color, + uint parentID, + byte[] particleSystem, LLQuaternion rotation, byte clickAction, byte[] textureanimation) + { + } + public virtual void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, + LLVector3 position, LLQuaternion rotation, byte state) + { + } + + public virtual void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, + LLVector3 position, LLQuaternion rotation, LLVector3 velocity, + LLVector3 rotationalvelocity) + { + } + + public virtual void SendInventoryFolderDetails(LLUUID ownerID, LLUUID folderID, + List items, + List folders, + bool fetchFolders, + bool fetchItems) + { + } + + public virtual void SendInventoryItemDetails(LLUUID ownerID, InventoryItemBase item) + { + } + + public virtual void SendInventoryItemCreateUpdate(InventoryItemBase Item) + { + } + + public virtual void SendRemoveInventoryItem(LLUUID itemID) + { + } + + public virtual void SendTaskInventory(LLUUID taskID, short serial, byte[] fileName) + { + } + + public virtual void SendXferPacket(ulong xferID, uint packet, byte[] data) + { + } + + public virtual void SendNameReply(LLUUID profileId, string firstname, string lastname) + { + } + + public virtual void SendPreLoadSound(LLUUID objectID, LLUUID ownerID, LLUUID soundID) + { + } + + public virtual void SendPlayAttachedSound(LLUUID soundID, LLUUID objectID, LLUUID ownerID, float gain, + byte flags) + { + } + + public void SendTriggeredSound(LLUUID soundID, LLUUID ownerID, LLUUID objectID, LLUUID parentID, ulong handle, LLVector3 position, float gain) + { + } + + public void SendAlertMessage(string message) + { + } + + public void SendAgentAlertMessage(string message, bool modal) + { + } + + public void SendSystemAlertMessage(string message) + { + } + + public void SendLoadURL(string objectname, LLUUID objectID, LLUUID ownerID, bool groupOwned, string message, + string url) + { + } + + public virtual void SendRegionHandshake(RegionInfo regionInfo) + { + if (OnRegionHandShakeReply != null) + { + OnRegionHandShakeReply(this); + } + + if (OnCompleteMovementToRegion != null) + { + OnCompleteMovementToRegion(); + } + } + + private void Update() + { + if (OnAgentUpdate != null) + { + AgentUpdatePacket pack = new AgentUpdatePacket(); + pack.AgentData.ControlFlags = movementFlag; + pack.AgentData.BodyRotation = bodyDirection; + OnAgentUpdate(this, pack); + } + if (flyState == 0) + { + movementFlag = (uint) AgentManager.ControlFlags.AGENT_CONTROL_FLY | + (uint) AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG; + flyState = 1; + } + else if (flyState == 1) + { + movementFlag = (uint) AgentManager.ControlFlags.AGENT_CONTROL_FLY | + (uint) AgentManager.ControlFlags.AGENT_CONTROL_UP_POS; + flyState = 2; + } + else + { + movementFlag = (uint) AgentManager.ControlFlags.AGENT_CONTROL_FLY; + flyState = 0; + } + + if (count >= 200) + { + if (OnChatFromViewer != null) + { + ChatFromViewerArgs args = new ChatFromViewerArgs(); + args.Message = "Kinda quiet around here, isn't it?"; + args.Channel = 0; + args.From = FirstName + " " + LastName; + args.Position = new LLVector3(128, 128, 26); + args.Sender = this; + args.Type = ChatTypeEnum.Shout; + + OnChatFromViewer(this, args); + } + count = -1; + } + + count++; + } + + public bool AddMoney(int debit) + { + return false; + } + + public void SendSunPos(LLVector3 sunPos, LLVector3 sunVel) + { + } + + public void SendViewerTime(int phase) + { + } + + public void SendAvatarProperties(LLUUID avatarID, string aboutText, string bornOn, string charterMember, + string flAbout, uint flags, LLUUID flImageID, LLUUID imageID, string profileURL, + LLUUID partnerID) + { + } + + public void SetDebug(int newDebug) + { + } + + public void InPacket(Packet NewPack) + { + } + + public void Close(bool ShutdownCircuit) + { + } + + public void Stop() + { + } + + private uint m_circuitCode; + + public uint CircuitCode + { + get { return m_circuitCode; } + set { m_circuitCode = value; } + } + public void SendBlueBoxMessage(LLUUID FromAvatarID, LLUUID fromSessionID, String FromAvatarName, String Message) + { + + } + public void SendLogoutPacket() + { + } + + public void Terminate() + { + } + + public ClientInfo GetClientInfo() + { + return null; + } + + public void SetClientInfo(ClientInfo info) + { + } + } } \ No newline at end of file diff --git a/OpenSim/Region/Examples/SimpleModule/Properties/AssemblyInfo.cs b/OpenSim/Region/Examples/SimpleModule/Properties/AssemblyInfo.cs index 67301c1..4a53612 100644 --- a/OpenSim/Region/Examples/SimpleModule/Properties/AssemblyInfo.cs +++ b/OpenSim/Region/Examples/SimpleModule/Properties/AssemblyInfo.cs @@ -1,36 +1,36 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("OpenSim.Region.Examples.SimpleModule")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("OpenSim.Region.Examples.SimpleModule")] -[assembly: AssemblyCopyright("Copyright © 2008")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("f0caca77-7818-4a43-9200-0a8548009a05")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("OpenSim.Region.Examples.SimpleModule")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("OpenSim.Region.Examples.SimpleModule")] +[assembly: AssemblyCopyright("Copyright © 2008")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("f0caca77-7818-4a43-9200-0a8548009a05")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenSim/Region/Examples/SimpleModule/README.txt b/OpenSim/Region/Examples/SimpleModule/README.txt index 8314a21..025e33d 100644 --- a/OpenSim/Region/Examples/SimpleModule/README.txt +++ b/OpenSim/Region/Examples/SimpleModule/README.txt @@ -1,9 +1,9 @@ -!!!IMPORTANT NOTE!!! - -This code snippet provided as an example of coding functional content with region modules. - -As of 13/3 2008 this module actually renders all regions within the instance unusable if enabled by dragging the dll from ./bin to global /bin. - -So, use at own peril and in dedicated instance. - -Peace. +!!!IMPORTANT NOTE!!! + +This code snippet provided as an example of coding functional content with region modules. + +As of 13/3 2008 this module actually renders all regions within the instance unusable if enabled by dragging the dll from ./bin to global /bin. + +So, use at own peril and in dedicated instance. + +Peace. diff --git a/OpenSim/Region/Examples/SimpleModule/RegionModule.cs b/OpenSim/Region/Examples/SimpleModule/RegionModule.cs index 37cbef5..1159d25 100644 --- a/OpenSim/Region/Examples/SimpleModule/RegionModule.cs +++ b/OpenSim/Region/Examples/SimpleModule/RegionModule.cs @@ -1,114 +1,114 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Text; -using libsecondlife; -using Nini.Config; -using OpenSim.Framework; -using OpenSim.Region.Environment.Interfaces; -using OpenSim.Region.Environment.Scenes; - -namespace OpenSim.Region.Examples.SimpleModule -{ - public class RegionModule : IRegionModule - { - #region IRegionModule Members - - private Scene m_scene; - - - public void Initialise(Scene scene, IConfigSource source) - { - m_scene = scene; - } - - public void PostInitialise() - { - RegionInfo regionInfo = m_scene.RegionInfo; - - LLVector3 pos = new LLVector3(110, 129, 27); - - AddCpuCounter(regionInfo, pos); - AddComplexObjects(regionInfo, pos); - AddAvatars(); - AddFileSystemObjects(); - } - - private void AddFileSystemObjects() - { - DirectoryInfo dirInfo = new DirectoryInfo("."); - - float x = 0; - float z = 0; - - foreach (FileInfo fileInfo in dirInfo.GetFiles()) - { - LLVector3 filePos = new LLVector3(100 + x, 129, 27 + z); - x = x + 2; - if (x > 50) - { - x = 0; - z = z + 2; - } - - FileSystemObject fileObject = new FileSystemObject(m_scene, fileInfo, filePos); - m_scene.AddEntity(fileObject); - } - } - - private void AddAvatars() - { - for (int i = 0; i < 2; i++) - { - MyNpcCharacter m_character = new MyNpcCharacter(m_scene.EventManager); - m_scene.AddNewClient(m_character, false); - } - - List avatars = m_scene.GetAvatars(); - foreach (ScenePresence avatar in avatars) - { - avatar.AbsolutePosition = - new LLVector3((float)Util.RandomClass.Next(100, 200), (float)Util.RandomClass.Next(30, 200), 2); - } - } - - private void AddComplexObjects(RegionInfo regionInfo, LLVector3 pos) - { - int objs = 3; - - for (int i = 0; i < (objs*objs*objs); i++) - { - LLVector3 posOffset = new LLVector3((i % objs) * 4, ((i % (objs*objs)) / ( objs )) * 4, (i / (objs*objs)) * 4); - ComplexObject complexObject = - new ComplexObject(m_scene, regionInfo.RegionHandle, LLUUID.Zero, m_scene.PrimIDAllocate(), - pos + posOffset); - m_scene.AddEntity(complexObject); - } - } - - private void AddCpuCounter(RegionInfo regionInfo, LLVector3 pos) - { - SceneObjectGroup sceneObject = - new CpuCounterObject(m_scene, regionInfo.RegionHandle, LLUUID.Zero, m_scene.PrimIDAllocate(), - pos + new LLVector3(1f, 1f, 1f)); - m_scene.AddEntity(sceneObject); - } - - public void Close() - { - m_scene = null; - } - - public string Name - { - get { return GetType().AssemblyQualifiedName; } - } - - public bool IsSharedModule - { - get { return false; } - } - - #endregion - } -} +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; +using libsecondlife; +using Nini.Config; +using OpenSim.Framework; +using OpenSim.Region.Environment.Interfaces; +using OpenSim.Region.Environment.Scenes; + +namespace OpenSim.Region.Examples.SimpleModule +{ + public class RegionModule : IRegionModule + { + #region IRegionModule Members + + private Scene m_scene; + + + public void Initialise(Scene scene, IConfigSource source) + { + m_scene = scene; + } + + public void PostInitialise() + { + RegionInfo regionInfo = m_scene.RegionInfo; + + LLVector3 pos = new LLVector3(110, 129, 27); + + AddCpuCounter(regionInfo, pos); + AddComplexObjects(regionInfo, pos); + AddAvatars(); + AddFileSystemObjects(); + } + + private void AddFileSystemObjects() + { + DirectoryInfo dirInfo = new DirectoryInfo("."); + + float x = 0; + float z = 0; + + foreach (FileInfo fileInfo in dirInfo.GetFiles()) + { + LLVector3 filePos = new LLVector3(100 + x, 129, 27 + z); + x = x + 2; + if (x > 50) + { + x = 0; + z = z + 2; + } + + FileSystemObject fileObject = new FileSystemObject(m_scene, fileInfo, filePos); + m_scene.AddEntity(fileObject); + } + } + + private void AddAvatars() + { + for (int i = 0; i < 2; i++) + { + MyNpcCharacter m_character = new MyNpcCharacter(m_scene.EventManager); + m_scene.AddNewClient(m_character, false); + } + + List avatars = m_scene.GetAvatars(); + foreach (ScenePresence avatar in avatars) + { + avatar.AbsolutePosition = + new LLVector3((float)Util.RandomClass.Next(100, 200), (float)Util.RandomClass.Next(30, 200), 2); + } + } + + private void AddComplexObjects(RegionInfo regionInfo, LLVector3 pos) + { + int objs = 3; + + for (int i = 0; i < (objs*objs*objs); i++) + { + LLVector3 posOffset = new LLVector3((i % objs) * 4, ((i % (objs*objs)) / ( objs )) * 4, (i / (objs*objs)) * 4); + ComplexObject complexObject = + new ComplexObject(m_scene, regionInfo.RegionHandle, LLUUID.Zero, m_scene.PrimIDAllocate(), + pos + posOffset); + m_scene.AddEntity(complexObject); + } + } + + private void AddCpuCounter(RegionInfo regionInfo, LLVector3 pos) + { + SceneObjectGroup sceneObject = + new CpuCounterObject(m_scene, regionInfo.RegionHandle, LLUUID.Zero, m_scene.PrimIDAllocate(), + pos + new LLVector3(1f, 1f, 1f)); + m_scene.AddEntity(sceneObject); + } + + public void Close() + { + m_scene = null; + } + + public string Name + { + get { return GetType().AssemblyQualifiedName; } + } + + public bool IsSharedModule + { + get { return false; } + } + + #endregion + } +} -- cgit v1.1