From a7b55fb26fad9c66df091e0787afe89e021229f1 Mon Sep 17 00:00:00 2001
From: MW
Date: Tue, 12 Jun 2007 14:50:08 +0000
Subject: Some rearranging of folders in OpenSim.Region
---
OpenSim/OpenSim.Region/OpenSim.Region.csproj | 20 +-
OpenSim/OpenSim.Region/OpenSim.Region.dll.build | 14 +-
OpenSim/OpenSim.Region/World/Avatar.Update.cs | 148 ------
OpenSim/OpenSim.Region/World/Avatar.cs | 225 ---------
OpenSim/OpenSim.Region/World/AvatarAnimations.cs | 73 ---
.../World/Entities/Avatar/Avatar.Update.cs | 148 ++++++
.../OpenSim.Region/World/Entities/Avatar/Avatar.cs | 225 +++++++++
.../World/Entities/Avatar/AvatarAnimations.cs | 73 +++
OpenSim/OpenSim.Region/World/Entities/Entity.cs | 165 +++++++
OpenSim/OpenSim.Region/World/Entities/Primitive.cs | 525 +++++++++++++++++++++
.../OpenSim.Region/World/Entities/SceneObject.cs | 130 +++++
OpenSim/OpenSim.Region/World/Entity.cs | 165 -------
OpenSim/OpenSim.Region/World/Primitive.cs | 525 ---------------------
OpenSim/OpenSim.Region/World/SceneObject.cs | 130 -----
14 files changed, 1283 insertions(+), 1283 deletions(-)
delete mode 100644 OpenSim/OpenSim.Region/World/Avatar.Update.cs
delete mode 100644 OpenSim/OpenSim.Region/World/Avatar.cs
delete mode 100644 OpenSim/OpenSim.Region/World/AvatarAnimations.cs
create mode 100644 OpenSim/OpenSim.Region/World/Entities/Avatar/Avatar.Update.cs
create mode 100644 OpenSim/OpenSim.Region/World/Entities/Avatar/Avatar.cs
create mode 100644 OpenSim/OpenSim.Region/World/Entities/Avatar/AvatarAnimations.cs
create mode 100644 OpenSim/OpenSim.Region/World/Entities/Entity.cs
create mode 100644 OpenSim/OpenSim.Region/World/Entities/Primitive.cs
create mode 100644 OpenSim/OpenSim.Region/World/Entities/SceneObject.cs
delete mode 100644 OpenSim/OpenSim.Region/World/Entity.cs
delete mode 100644 OpenSim/OpenSim.Region/World/Primitive.cs
delete mode 100644 OpenSim/OpenSim.Region/World/SceneObject.cs
(limited to 'OpenSim/OpenSim.Region')
diff --git a/OpenSim/OpenSim.Region/OpenSim.Region.csproj b/OpenSim/OpenSim.Region/OpenSim.Region.csproj
index 9a5e5da..897f70f 100644
--- a/OpenSim/OpenSim.Region/OpenSim.Region.csproj
+++ b/OpenSim/OpenSim.Region/OpenSim.Region.csproj
@@ -136,34 +136,34 @@
Code
-
+
Code
-
+
Code
-
+
Code
-
+
Code
-
+
Code
-
+
Code
-
+
Code
-
+
Code
-
+
Code
-
+
Code
diff --git a/OpenSim/OpenSim.Region/OpenSim.Region.dll.build b/OpenSim/OpenSim.Region/OpenSim.Region.dll.build
index d6ddf0a..bcfaaa7 100644
--- a/OpenSim/OpenSim.Region/OpenSim.Region.dll.build
+++ b/OpenSim/OpenSim.Region/OpenSim.Region.dll.build
@@ -13,16 +13,16 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/OpenSim/OpenSim.Region/World/Avatar.Update.cs b/OpenSim/OpenSim.Region/World/Avatar.Update.cs
deleted file mode 100644
index d373fdb..0000000
--- a/OpenSim/OpenSim.Region/World/Avatar.Update.cs
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.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.Text;
-using libsecondlife;
-using libsecondlife.Packets;
-using OpenSim.Physics.Manager;
-using OpenSim.Framework.Interfaces;
-
-namespace OpenSim.Region
-{
- partial class Avatar
- {
- ///
- ///
- ///
- public override void update()
- {
-
-
- }
-
- ///
- ///
- ///
- ///
- public void SendUpdateToOtherClient(Avatar remoteAvatar)
- {
-
- }
-
- ///
- ///
- ///
- ///
- public ObjectUpdatePacket CreateUpdatePacket()
- {
- return null;
- }
-
- ///
- ///
- ///
- public void SendInitialPosition()
- {
- this.ControllingClient.SendAvatarData(m_regionInfo, this.firstname, this.lastname, this.uuid, this.localid, new LLVector3(128, 128, 60));
- }
-
- ///
- ///
- ///
- public void SendOurAppearance()
- {
-
- }
-
- ///
- ///
- ///
- ///
- public void SendOurAppearance(IClientAPI OurClient)
- {
- this.ControllingClient.SendWearables(this.Wearables);
- }
-
- ///
- ///
- ///
- ///
- public void SendAppearanceToOtherAgent(Avatar avatarInfo)
- {
-
- }
-
- ///
- ///
- ///
- ///
- ///
- public void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam)
- {
-
- }
-
- ///
- ///
- ///
- public void StopMovement()
- {
-
- }
-
- ///
- /// Very likely to be deleted soon!
- ///
- ///
- public ImprovedTerseObjectUpdatePacket.ObjectDataBlock CreateTerseBlock()
- {
- return null;
- }
-
- ///
- ///
- ///
- ///
- ///
- public void SendAnimPack(LLUUID animID, int seq)
- {
-
-
- }
-
- ///
- ///
- ///
- public void SendAnimPack()
- {
-
- }
-
- }
-}
diff --git a/OpenSim/OpenSim.Region/World/Avatar.cs b/OpenSim/OpenSim.Region/World/Avatar.cs
deleted file mode 100644
index c88e0cc..0000000
--- a/OpenSim/OpenSim.Region/World/Avatar.cs
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.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.IO;
-using System.Text;
-using libsecondlife;
-using libsecondlife.Packets;
-using OpenSim.Physics.Manager;
-using OpenSim.Framework.Inventory;
-using OpenSim.Framework.Interfaces;
-using OpenSim.Framework.Types;
-using Axiom.MathLib;
-
-namespace OpenSim.Region
-{
- public partial class Avatar : Entity
- {
- public static bool PhysicsEngineFlying = false;
- public static AvatarAnimations Animations;
- public string firstname;
- public string lastname;
- public IClientAPI ControllingClient;
- public LLUUID current_anim;
- public int anim_seq;
- private static libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock AvatarTemplate;
- private bool updateflag = false;
- private byte movementflag = 0;
- private List forcesList = new List();
- private short _updateCount = 0;
- private Axiom.MathLib.Quaternion bodyRot;
- private LLObject.TextureEntry avatarAppearanceTexture = null;
- private byte[] visualParams;
- private AvatarWearable[] Wearables;
- private LLVector3 positionLastFrame = new LLVector3(0, 0, 0);
- private ulong m_regionHandle;
- private Dictionary m_clientThreads;
- private bool childAvatar = false;
-
- protected RegionInfo m_regionInfo;
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- public Avatar(IClientAPI theClient, World world, Dictionary clientThreads, RegionInfo reginfo)
- {
-
- m_world = world;
- m_clientThreads = clientThreads;
- this.uuid = theClient.AgentId;
-
- m_regionInfo = reginfo;
- OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "Avatar.cs - Loading details from grid (DUMMY)");
- ControllingClient = theClient;
- this.firstname = ControllingClient.FirstName;
- this.lastname = ControllingClient.LastName;
- localid = this.m_world.NextLocalId;
- Pos = ControllingClient.StartPos;
- visualParams = new byte[218];
- for (int i = 0; i < 218; i++)
- {
- visualParams[i] = 100;
- }
-
- Wearables = AvatarWearable.DefaultWearables;
-
- this.avatarAppearanceTexture = new LLObject.TextureEntry(new LLUUID("00000000-0000-0000-5005-000000000005"));
-
- //register for events
- ControllingClient.OnRequestWearables += new GenericCall(this.SendOurAppearance);
- //ControllingClient.OnSetAppearance += new SetAppearance(this.SetAppearance);
- ControllingClient.OnCompleteMovementToRegion += new GenericCall2(this.CompleteMovement);
- ControllingClient.OnCompleteMovementToRegion += new GenericCall2(this.SendInitialPosition);
- /* ControllingClient.OnAgentUpdate += new GenericCall3(this.HandleAgentUpdate);
- ControllingClient.OnStartAnim += new StartAnim(this.SendAnimPack);
- ControllingClient.OnChildAgentStatus += new StatusChange(this.ChildStatusChange);
- ControllingClient.OnStopMovement += new GenericCall2(this.StopMovement);
- */
- }
-
- ///
- ///
- ///
- public PhysicsActor PhysActor
- {
- set
- {
- this._physActor = value;
- }
- get
- {
- return _physActor;
- }
- }
-
- ///
- ///
- ///
- ///
- public void ChildStatusChange(bool status)
- {
-
- }
-
- ///
- ///
- ///
- public override void addForces()
- {
-
- }
-
- ///
- /// likely to removed very soon
- ///
- ///
- public static void SetupTemplate(string name)
- {
-
- }
-
- ///
- /// likely to removed very soon
- ///
- ///
- protected static void SetDefaultPacketValues(ObjectUpdatePacket.ObjectDataBlock objdata)
- {
-
-
-
- }
-
- ///
- ///
- ///
- public void CompleteMovement()
- {
- this.ControllingClient.MoveAgentIntoRegion(m_regionInfo);
- }
-
- ///
- ///
- ///
- ///
- public void HandleAgentUpdate(Packet pack)
- {
- this.HandleUpdate((AgentUpdatePacket)pack);
- }
-
- ///
- ///
- ///
- ///
- public void HandleUpdate(AgentUpdatePacket pack)
- {
-
- }
-
- ///
- ///
- ///
- public void SendRegionHandshake()
- {
-
- }
-
- ///
- ///
- ///
- public static void LoadAnims()
- {
-
- }
-
- ///
- ///
- ///
- public override void LandRenegerated()
- {
-
- }
-
-
- public class NewForce
- {
- public float X;
- public float Y;
- public float Z;
-
- public NewForce()
- {
-
- }
- }
- }
-
-}
diff --git a/OpenSim/OpenSim.Region/World/AvatarAnimations.cs b/OpenSim/OpenSim.Region/World/AvatarAnimations.cs
deleted file mode 100644
index 585cf3c..0000000
--- a/OpenSim/OpenSim.Region/World/AvatarAnimations.cs
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.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.Text;
-using libsecondlife;
-using System.Xml;
-
-namespace OpenSim.Region
-{
- public class AvatarAnimations
- {
-
- public Dictionary AnimsLLUUID = new Dictionary();
- public Dictionary AnimsNames = new Dictionary();
-
- public AvatarAnimations()
- {
- }
-
- public void LoadAnims()
- {
- //OpenSim.Framework.Console.MainConsole.Instance.Verbose("Avatar.cs:LoadAnims() - Loading avatar animations");
- XmlTextReader reader = new XmlTextReader("data/avataranimations.xml");
-
- XmlDocument doc = new XmlDocument();
- doc.Load(reader);
- foreach (XmlNode nod in doc.DocumentElement.ChildNodes)
- {
-
- if ( nod.Attributes["name"] != null)
- {
- AnimsLLUUID.Add(nod.Attributes["name"].Value, nod.InnerText);
- }
-
- }
-
- reader.Close();
-
- // OpenSim.Framework.Console.MainConsole.Instance.Verbose("Loaded " + AnimsLLUUID.Count.ToString() + " animation(s)");
-
- foreach (KeyValuePair kp in OpenSim.Region.Avatar.Animations.AnimsLLUUID)
- {
- AnimsNames.Add(kp.Value, kp.Key);
- }
- }
- }
-}
diff --git a/OpenSim/OpenSim.Region/World/Entities/Avatar/Avatar.Update.cs b/OpenSim/OpenSim.Region/World/Entities/Avatar/Avatar.Update.cs
new file mode 100644
index 0000000..d373fdb
--- /dev/null
+++ b/OpenSim/OpenSim.Region/World/Entities/Avatar/Avatar.Update.cs
@@ -0,0 +1,148 @@
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.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.Text;
+using libsecondlife;
+using libsecondlife.Packets;
+using OpenSim.Physics.Manager;
+using OpenSim.Framework.Interfaces;
+
+namespace OpenSim.Region
+{
+ partial class Avatar
+ {
+ ///
+ ///
+ ///
+ public override void update()
+ {
+
+
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public void SendUpdateToOtherClient(Avatar remoteAvatar)
+ {
+
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public ObjectUpdatePacket CreateUpdatePacket()
+ {
+ return null;
+ }
+
+ ///
+ ///
+ ///
+ public void SendInitialPosition()
+ {
+ this.ControllingClient.SendAvatarData(m_regionInfo, this.firstname, this.lastname, this.uuid, this.localid, new LLVector3(128, 128, 60));
+ }
+
+ ///
+ ///
+ ///
+ public void SendOurAppearance()
+ {
+
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public void SendOurAppearance(IClientAPI OurClient)
+ {
+ this.ControllingClient.SendWearables(this.Wearables);
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public void SendAppearanceToOtherAgent(Avatar avatarInfo)
+ {
+
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ public void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam)
+ {
+
+ }
+
+ ///
+ ///
+ ///
+ public void StopMovement()
+ {
+
+ }
+
+ ///
+ /// Very likely to be deleted soon!
+ ///
+ ///
+ public ImprovedTerseObjectUpdatePacket.ObjectDataBlock CreateTerseBlock()
+ {
+ return null;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ public void SendAnimPack(LLUUID animID, int seq)
+ {
+
+
+ }
+
+ ///
+ ///
+ ///
+ public void SendAnimPack()
+ {
+
+ }
+
+ }
+}
diff --git a/OpenSim/OpenSim.Region/World/Entities/Avatar/Avatar.cs b/OpenSim/OpenSim.Region/World/Entities/Avatar/Avatar.cs
new file mode 100644
index 0000000..c88e0cc
--- /dev/null
+++ b/OpenSim/OpenSim.Region/World/Entities/Avatar/Avatar.cs
@@ -0,0 +1,225 @@
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.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.IO;
+using System.Text;
+using libsecondlife;
+using libsecondlife.Packets;
+using OpenSim.Physics.Manager;
+using OpenSim.Framework.Inventory;
+using OpenSim.Framework.Interfaces;
+using OpenSim.Framework.Types;
+using Axiom.MathLib;
+
+namespace OpenSim.Region
+{
+ public partial class Avatar : Entity
+ {
+ public static bool PhysicsEngineFlying = false;
+ public static AvatarAnimations Animations;
+ public string firstname;
+ public string lastname;
+ public IClientAPI ControllingClient;
+ public LLUUID current_anim;
+ public int anim_seq;
+ private static libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock AvatarTemplate;
+ private bool updateflag = false;
+ private byte movementflag = 0;
+ private List forcesList = new List();
+ private short _updateCount = 0;
+ private Axiom.MathLib.Quaternion bodyRot;
+ private LLObject.TextureEntry avatarAppearanceTexture = null;
+ private byte[] visualParams;
+ private AvatarWearable[] Wearables;
+ private LLVector3 positionLastFrame = new LLVector3(0, 0, 0);
+ private ulong m_regionHandle;
+ private Dictionary m_clientThreads;
+ private bool childAvatar = false;
+
+ protected RegionInfo m_regionInfo;
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public Avatar(IClientAPI theClient, World world, Dictionary clientThreads, RegionInfo reginfo)
+ {
+
+ m_world = world;
+ m_clientThreads = clientThreads;
+ this.uuid = theClient.AgentId;
+
+ m_regionInfo = reginfo;
+ OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "Avatar.cs - Loading details from grid (DUMMY)");
+ ControllingClient = theClient;
+ this.firstname = ControllingClient.FirstName;
+ this.lastname = ControllingClient.LastName;
+ localid = this.m_world.NextLocalId;
+ Pos = ControllingClient.StartPos;
+ visualParams = new byte[218];
+ for (int i = 0; i < 218; i++)
+ {
+ visualParams[i] = 100;
+ }
+
+ Wearables = AvatarWearable.DefaultWearables;
+
+ this.avatarAppearanceTexture = new LLObject.TextureEntry(new LLUUID("00000000-0000-0000-5005-000000000005"));
+
+ //register for events
+ ControllingClient.OnRequestWearables += new GenericCall(this.SendOurAppearance);
+ //ControllingClient.OnSetAppearance += new SetAppearance(this.SetAppearance);
+ ControllingClient.OnCompleteMovementToRegion += new GenericCall2(this.CompleteMovement);
+ ControllingClient.OnCompleteMovementToRegion += new GenericCall2(this.SendInitialPosition);
+ /* ControllingClient.OnAgentUpdate += new GenericCall3(this.HandleAgentUpdate);
+ ControllingClient.OnStartAnim += new StartAnim(this.SendAnimPack);
+ ControllingClient.OnChildAgentStatus += new StatusChange(this.ChildStatusChange);
+ ControllingClient.OnStopMovement += new GenericCall2(this.StopMovement);
+ */
+ }
+
+ ///
+ ///
+ ///
+ public PhysicsActor PhysActor
+ {
+ set
+ {
+ this._physActor = value;
+ }
+ get
+ {
+ return _physActor;
+ }
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public void ChildStatusChange(bool status)
+ {
+
+ }
+
+ ///
+ ///
+ ///
+ public override void addForces()
+ {
+
+ }
+
+ ///
+ /// likely to removed very soon
+ ///
+ ///
+ public static void SetupTemplate(string name)
+ {
+
+ }
+
+ ///
+ /// likely to removed very soon
+ ///
+ ///
+ protected static void SetDefaultPacketValues(ObjectUpdatePacket.ObjectDataBlock objdata)
+ {
+
+
+
+ }
+
+ ///
+ ///
+ ///
+ public void CompleteMovement()
+ {
+ this.ControllingClient.MoveAgentIntoRegion(m_regionInfo);
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public void HandleAgentUpdate(Packet pack)
+ {
+ this.HandleUpdate((AgentUpdatePacket)pack);
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public void HandleUpdate(AgentUpdatePacket pack)
+ {
+
+ }
+
+ ///
+ ///
+ ///
+ public void SendRegionHandshake()
+ {
+
+ }
+
+ ///
+ ///
+ ///
+ public static void LoadAnims()
+ {
+
+ }
+
+ ///
+ ///
+ ///
+ public override void LandRenegerated()
+ {
+
+ }
+
+
+ public class NewForce
+ {
+ public float X;
+ public float Y;
+ public float Z;
+
+ public NewForce()
+ {
+
+ }
+ }
+ }
+
+}
diff --git a/OpenSim/OpenSim.Region/World/Entities/Avatar/AvatarAnimations.cs b/OpenSim/OpenSim.Region/World/Entities/Avatar/AvatarAnimations.cs
new file mode 100644
index 0000000..585cf3c
--- /dev/null
+++ b/OpenSim/OpenSim.Region/World/Entities/Avatar/AvatarAnimations.cs
@@ -0,0 +1,73 @@
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.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.Text;
+using libsecondlife;
+using System.Xml;
+
+namespace OpenSim.Region
+{
+ public class AvatarAnimations
+ {
+
+ public Dictionary AnimsLLUUID = new Dictionary();
+ public Dictionary AnimsNames = new Dictionary();
+
+ public AvatarAnimations()
+ {
+ }
+
+ public void LoadAnims()
+ {
+ //OpenSim.Framework.Console.MainConsole.Instance.Verbose("Avatar.cs:LoadAnims() - Loading avatar animations");
+ XmlTextReader reader = new XmlTextReader("data/avataranimations.xml");
+
+ XmlDocument doc = new XmlDocument();
+ doc.Load(reader);
+ foreach (XmlNode nod in doc.DocumentElement.ChildNodes)
+ {
+
+ if ( nod.Attributes["name"] != null)
+ {
+ AnimsLLUUID.Add(nod.Attributes["name"].Value, nod.InnerText);
+ }
+
+ }
+
+ reader.Close();
+
+ // OpenSim.Framework.Console.MainConsole.Instance.Verbose("Loaded " + AnimsLLUUID.Count.ToString() + " animation(s)");
+
+ foreach (KeyValuePair kp in OpenSim.Region.Avatar.Animations.AnimsLLUUID)
+ {
+ AnimsNames.Add(kp.Value, kp.Key);
+ }
+ }
+ }
+}
diff --git a/OpenSim/OpenSim.Region/World/Entities/Entity.cs b/OpenSim/OpenSim.Region/World/Entities/Entity.cs
new file mode 100644
index 0000000..1620c89
--- /dev/null
+++ b/OpenSim/OpenSim.Region/World/Entities/Entity.cs
@@ -0,0 +1,165 @@
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.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.Text;
+using Axiom.MathLib;
+using OpenSim.Physics.Manager;
+using OpenSim.Region.types;
+using libsecondlife;
+using OpenSim.Region.Scripting;
+
+namespace OpenSim.Region
+{
+ public abstract class Entity : IScriptReadonlyEntity
+ {
+ public libsecondlife.LLUUID uuid;
+ public uint localid;
+ public LLVector3 velocity;
+ public Quaternion rotation;
+ protected List children;
+ protected LLVector3 m_pos;
+ protected PhysicsActor _physActor;
+ protected World m_world;
+ protected string m_name;
+
+ ///
+ ///
+ ///
+ public virtual string Name
+ {
+ get { return m_name; }
+ }
+
+ ///
+ ///
+ ///
+ public virtual LLVector3 Pos
+ {
+ get
+ {
+ if (this._physActor != null)
+ {
+ m_pos.X = _physActor.Position.X;
+ m_pos.Y = _physActor.Position.Y;
+ m_pos.Z = _physActor.Position.Z;
+ }
+
+ return m_pos;
+ }
+ set
+ {
+ if (this._physActor != null)
+ {
+ try
+ {
+ lock (this.m_world.SyncRoot)
+ {
+
+ this._physActor.Position = new PhysicsVector(value.X, value.Y, value.Z);
+ }
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine(e.Message);
+ }
+ }
+
+ m_pos = value;
+ }
+ }
+
+ ///
+ /// Creates a new Entity (should not occur on it's own)
+ ///
+ public Entity()
+ {
+ uuid = new libsecondlife.LLUUID();
+ localid = 0;
+ m_pos = new LLVector3();
+ velocity = new LLVector3();
+ rotation = new Quaternion();
+ m_name = "(basic entity)";
+ children = new List();
+ }
+
+ ///
+ ///
+ ///
+ public virtual void addForces()
+ {
+ foreach (Entity child in children)
+ {
+ child.addForces();
+ }
+ }
+
+ ///
+ /// Performs any updates that need to be done at each frame. This function is overridable from it's children.
+ ///
+ public virtual void update() {
+ // Do any per-frame updates needed that are applicable to every type of entity
+ foreach (Entity child in children)
+ {
+ child.update();
+ }
+ }
+
+ ///
+ /// Returns a mesh for this object and any dependents
+ ///
+ /// The mesh of this entity tree
+ public virtual Mesh getMesh()
+ {
+ Mesh mesh = new Mesh();
+
+ foreach (Entity child in children)
+ {
+ mesh += child.getMesh();
+ }
+
+ return mesh;
+ }
+
+ ///
+ /// Called at a set interval to inform entities that they should back themsleves up to the DB
+ ///
+ public virtual void BackUp()
+ {
+
+ }
+
+ ///
+ /// Infoms the entity that the land (heightmap) has changed
+ ///
+ public virtual void LandRenegerated()
+ {
+
+ }
+ }
+}
diff --git a/OpenSim/OpenSim.Region/World/Entities/Primitive.cs b/OpenSim/OpenSim.Region/World/Entities/Primitive.cs
new file mode 100644
index 0000000..0680eb3
--- /dev/null
+++ b/OpenSim/OpenSim.Region/World/Entities/Primitive.cs
@@ -0,0 +1,525 @@
+
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.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.Text;
+using OpenSim.Region.types;
+using libsecondlife;
+using libsecondlife.Packets;
+using OpenSim.Framework.Interfaces;
+using OpenSim.Physics.Manager;
+using OpenSim.Framework.Types;
+using OpenSim.Framework.Inventory;
+
+namespace OpenSim.Region
+{
+ public class Primitive : Entity
+ {
+ internal PrimData primData;
+ private LLVector3 positionLastFrame = new LLVector3(0, 0, 0);
+ // private Dictionary m_clientThreads;
+ private ulong m_regionHandle;
+ private const uint FULL_MASK_PERMISSIONS = 2147483647;
+ private bool physicsEnabled = false;
+ private byte updateFlag = 0;
+
+ private Dictionary inventoryItems;
+
+ #region Properties
+
+ public LLVector3 Scale
+ {
+ set
+ {
+ this.primData.Scale = value;
+ //this.dirtyFlag = true;
+ }
+ get
+ {
+ return this.primData.Scale;
+ }
+ }
+
+ public PhysicsActor PhysActor
+ {
+ set
+ {
+ this._physActor = value;
+ }
+ }
+
+ public override LLVector3 Pos
+ {
+ get
+ {
+ return base.Pos;
+ }
+ set
+ {
+ base.Pos = value;
+ }
+ }
+ #endregion
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public Primitive(Dictionary clientThreads, ulong regionHandle, World world)
+ {
+ // m_clientThreads = clientThreads;
+ m_regionHandle = regionHandle;
+ m_world = world;
+ inventoryItems = new Dictionary();
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public Primitive(Dictionary clientThreads, ulong regionHandle, World world, LLUUID owner, LLUUID fullID, uint localID)
+ {
+ // m_clientThreads = clientThreads;
+ m_regionHandle = regionHandle;
+ m_world = world;
+ inventoryItems = new Dictionary();
+ this.primData = new PrimData();
+ this.primData.CreationDate = (Int32)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;
+ this.primData.OwnerID = owner;
+ this.primData.FullID = this.uuid = fullID;
+ this.primData.LocalID = this.localid = localID;
+ }
+
+ ///
+ /// Constructor to create a default cube
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public Primitive(Dictionary clientThreads, ulong regionHandle, World world, LLUUID owner, uint localID, LLVector3 position)
+ {
+ //m_clientThreads = clientThreads;
+ m_regionHandle = regionHandle;
+ m_world = world;
+ inventoryItems = new Dictionary();
+ this.primData = PrimData.DefaultCube();
+ this.primData.OwnerID = owner;
+ this.primData.LocalID = this.localid = localID;
+ this.Pos = this.primData.Position = position;
+
+ this.updateFlag = 1;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public byte[] GetByteArray()
+ {
+ byte[] result = null;
+ List dataArrays = new List();
+ dataArrays.Add(primData.ToBytes());
+ foreach (Entity child in children)
+ {
+ if (child is OpenSim.Region.Primitive)
+ {
+ dataArrays.Add(((OpenSim.Region.Primitive)child).GetByteArray());
+ }
+ }
+ byte[] primstart = Helpers.StringToField("");
+ byte[] primend = Helpers.StringToField("");
+ int totalLength = primstart.Length + primend.Length;
+ for (int i = 0; i < dataArrays.Count; i++)
+ {
+ totalLength += dataArrays[i].Length;
+ }
+
+ result = new byte[totalLength];
+ int arraypos = 0;
+ Array.Copy(primstart, 0, result, 0, primstart.Length);
+ arraypos += primstart.Length;
+ for (int i = 0; i < dataArrays.Count; i++)
+ {
+ Array.Copy(dataArrays[i], 0, result, arraypos, dataArrays[i].Length);
+ arraypos += dataArrays[i].Length;
+ }
+ Array.Copy(primend, 0, result, arraypos, primend.Length);
+
+ return result;
+ }
+
+ #region Overridden Methods
+
+ ///
+ ///
+ ///
+ public override void update()
+ {
+ if (this.updateFlag == 1) // is a new prim just been created/reloaded
+ {
+ this.SendFullUpdateToAllClients();
+ this.updateFlag = 0;
+ }
+ if (this.updateFlag == 2) //some change has been made so update the clients
+ {
+ this.SendTerseUpdateToALLClients();
+ this.updateFlag = 0;
+ }
+ }
+
+ ///
+ ///
+ ///
+ public override void BackUp()
+ {
+
+ }
+
+ #endregion
+
+ #region Packet handlers
+
+ ///
+ ///
+ ///
+ ///
+ public void UpdatePosition(LLVector3 pos)
+ {
+ this.Pos = new LLVector3(pos.X, pos.Y, pos.Z);
+ this.updateFlag = 2;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public void UpdateShape(ObjectShapePacket.ObjectDataBlock addPacket)
+ {
+ this.primData.PathBegin = addPacket.PathBegin;
+ this.primData.PathEnd = addPacket.PathEnd;
+ this.primData.PathScaleX = addPacket.PathScaleX;
+ this.primData.PathScaleY = addPacket.PathScaleY;
+ this.primData.PathShearX = addPacket.PathShearX;
+ this.primData.PathShearY = addPacket.PathShearY;
+ this.primData.PathSkew = addPacket.PathSkew;
+ this.primData.ProfileBegin = addPacket.ProfileBegin;
+ this.primData.ProfileEnd = addPacket.ProfileEnd;
+ this.primData.PathCurve = addPacket.PathCurve;
+ this.primData.ProfileCurve = addPacket.ProfileCurve;
+ this.primData.ProfileHollow = addPacket.ProfileHollow;
+ this.primData.PathRadiusOffset = addPacket.PathRadiusOffset;
+ this.primData.PathRevolutions = addPacket.PathRevolutions;
+ this.primData.PathTaperX = addPacket.PathTaperX;
+ this.primData.PathTaperY = addPacket.PathTaperY;
+ this.primData.PathTwist = addPacket.PathTwist;
+ this.primData.PathTwistBegin = addPacket.PathTwistBegin;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public void UpdateTexture(byte[] tex)
+ {
+ this.primData.Texture = tex;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public void UpdateObjectFlags(ObjectFlagUpdatePacket pack)
+ {
+
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public void AssignToParent(Primitive prim)
+ {
+
+ }
+
+ #endregion
+
+ # region Inventory Methods
+ ///
+ ///
+ ///
+ ///
+ ///
+ public bool AddToInventory(InventoryItem item)
+ {
+ return false;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ public InventoryItem RemoveFromInventory(LLUUID itemID)
+ {
+ return null;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ public void RequestInventoryInfo(IClientAPI simClient, RequestTaskInventoryPacket packet)
+ {
+
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ public void RequestXferInventory(IClientAPI simClient, ulong xferID)
+ {
+ //will only currently work if the total size of the inventory data array is under about 1000 bytes
+ SendXferPacketPacket send = new SendXferPacketPacket();
+
+ send.XferID.ID = xferID;
+ send.XferID.Packet = 1 + 2147483648;
+ send.DataPacket.Data = this.ConvertInventoryToBytes();
+
+ simClient.OutPacket(send);
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public byte[] ConvertInventoryToBytes()
+ {
+ System.Text.Encoding enc = System.Text.Encoding.ASCII;
+ byte[] result = new byte[0];
+ List inventoryData = new List();
+ int totallength = 0;
+ foreach (InventoryItem invItem in inventoryItems.Values)
+ {
+ byte[] data = enc.GetBytes(invItem.ExportString());
+ inventoryData.Add(data);
+ totallength += data.Length;
+ }
+ //TODO: copy arrays into the single result array
+
+ return result;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public void CreateInventoryFromBytes(byte[] data)
+ {
+
+ }
+
+ #endregion
+
+ #region Update viewers Methods
+
+ ///
+ ///
+ ///
+ ///
+ public void SendFullUpdateForAllChildren(IClientAPI remoteClient)
+ {
+ this.SendFullUpdateToClient(remoteClient);
+ for (int i = 0; i < this.children.Count; i++)
+ {
+ if (this.children[i] is Primitive)
+ {
+ ((Primitive)this.children[i]).SendFullUpdateForAllChildren(remoteClient);
+ }
+ }
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public void SendFullUpdateToClient(IClientAPI remoteClient)
+ {
+ LLVector3 lPos;
+ if (this._physActor != null && this.physicsEnabled)
+ {
+ PhysicsVector pPos = this._physActor.Position;
+ lPos = new LLVector3(pPos.X, pPos.Y, pPos.Z);
+ }
+ else
+ {
+ lPos = this.Pos;
+ }
+
+ remoteClient.SendPrimitiveToClient(this.m_regionHandle, 64096, this.localid, this.primData, lPos, new LLUUID("00000000-0000-0000-5005-000000000005"));
+ }
+
+ ///
+ ///
+ ///
+ public void SendFullUpdateToAllClients()
+ {
+ List avatars = this.m_world.RequestAvatarList();
+ for (int i = 0; i < avatars.Count; i++)
+ {
+ this.SendFullUpdateToClient(avatars[i].ControllingClient);
+ }
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public void SendTerseUpdateToClient(IClientAPI RemoteClient)
+ {
+ LLVector3 lPos;
+ Axiom.MathLib.Quaternion lRot;
+ if (this._physActor != null && this.physicsEnabled)
+ {
+ PhysicsVector pPos = this._physActor.Position;
+ lPos = new LLVector3(pPos.X, pPos.Y, pPos.Z);
+ lRot = this._physActor.Orientation;
+ }
+ else
+ {
+ lPos = this.Pos;
+ lRot = this.rotation;
+ }
+ }
+
+ ///
+ ///
+ ///
+ public void SendTerseUpdateToALLClients()
+ {
+ List avatars = this.m_world.RequestAvatarList();
+ for (int i = 0; i < avatars.Count; i++)
+ {
+ this.SendTerseUpdateToClient(avatars[i].ControllingClient);
+ }
+ }
+
+ #endregion
+
+ #region Create Methods
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public void CreateFromPacket(ObjectAddPacket addPacket, LLUUID ownerID, uint localID)
+ {
+ PrimData PData = new PrimData();
+ this.primData = PData;
+ this.primData.CreationDate = (Int32)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;
+
+ PData.OwnerID = ownerID;
+ PData.PCode = addPacket.ObjectData.PCode;
+ PData.PathBegin = addPacket.ObjectData.PathBegin;
+ PData.PathEnd = addPacket.ObjectData.PathEnd;
+ PData.PathScaleX = addPacket.ObjectData.PathScaleX;
+ PData.PathScaleY = addPacket.ObjectData.PathScaleY;
+ PData.PathShearX = addPacket.ObjectData.PathShearX;
+ PData.PathShearY = addPacket.ObjectData.PathShearY;
+ PData.PathSkew = addPacket.ObjectData.PathSkew;
+ PData.ProfileBegin = addPacket.ObjectData.ProfileBegin;
+ PData.ProfileEnd = addPacket.ObjectData.ProfileEnd;
+ PData.Scale = addPacket.ObjectData.Scale;
+ PData.PathCurve = addPacket.ObjectData.PathCurve;
+ PData.ProfileCurve = addPacket.ObjectData.ProfileCurve;
+ PData.ParentID = 0;
+ PData.ProfileHollow = addPacket.ObjectData.ProfileHollow;
+ PData.PathRadiusOffset = addPacket.ObjectData.PathRadiusOffset;
+ PData.PathRevolutions = addPacket.ObjectData.PathRevolutions;
+ PData.PathTaperX = addPacket.ObjectData.PathTaperX;
+ PData.PathTaperY = addPacket.ObjectData.PathTaperY;
+ PData.PathTwist = addPacket.ObjectData.PathTwist;
+ PData.PathTwistBegin = addPacket.ObjectData.PathTwistBegin;
+ LLVector3 pos1 = addPacket.ObjectData.RayEnd;
+ this.primData.FullID = this.uuid = LLUUID.Random();
+ this.primData.LocalID = this.localid = (uint)(localID);
+ this.primData.Position = this.Pos = pos1;
+
+ this.updateFlag = 1;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public void CreateFromBytes(byte[] data)
+ {
+
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public void CreateFromPrimData(PrimData primData)
+ {
+ this.CreateFromPrimData(primData, primData.Position, primData.LocalID, false);
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public void CreateFromPrimData(PrimData primData, LLVector3 posi, uint localID, bool newprim)
+ {
+
+ }
+
+ #endregion
+
+ }
+}
diff --git a/OpenSim/OpenSim.Region/World/Entities/SceneObject.cs b/OpenSim/OpenSim.Region/World/Entities/SceneObject.cs
new file mode 100644
index 0000000..6ded881
--- /dev/null
+++ b/OpenSim/OpenSim.Region/World/Entities/SceneObject.cs
@@ -0,0 +1,130 @@
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.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.Text;
+using OpenSim.Region.types;
+using libsecondlife;
+using libsecondlife.Packets;
+using OpenSim.Framework.Interfaces;
+using OpenSim.Physics.Manager;
+using OpenSim.Framework.Types;
+using OpenSim.Framework.Inventory;
+
+namespace OpenSim.Region
+{
+ public class SceneObject : Entity
+ {
+ private LLUUID rootUUID;
+ //private Dictionary ChildPrimitives = new Dictionary();
+ protected Primitive rootPrimitive;
+ private World m_world;
+ protected ulong regionHandle;
+
+ ///
+ ///
+ ///
+ public SceneObject()
+ {
+
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public void CreateFromPacket(ObjectAddPacket addPacket, LLUUID agentID, uint localID)
+ {
+ this.rootPrimitive = new Primitive(null, this.regionHandle, this.m_world);
+ this.rootPrimitive.CreateFromPacket(addPacket, agentID, localID);
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public void CreateFromBytes(byte[] data)
+ {
+
+ }
+
+ ///
+ ///
+ ///
+ public override void update()
+ {
+
+ }
+
+ ///
+ ///
+ ///
+ public override void BackUp()
+ {
+
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public void GetProperites(IClientAPI client)
+ {
+ //needs changing
+ ObjectPropertiesPacket proper = new ObjectPropertiesPacket();
+ proper.ObjectData = new ObjectPropertiesPacket.ObjectDataBlock[1];
+ proper.ObjectData[0] = new ObjectPropertiesPacket.ObjectDataBlock();
+ proper.ObjectData[0].ItemID = LLUUID.Zero;
+ proper.ObjectData[0].CreationDate = (ulong)this.rootPrimitive.primData.CreationDate;
+ proper.ObjectData[0].CreatorID = this.rootPrimitive.primData.OwnerID;
+ proper.ObjectData[0].FolderID = LLUUID.Zero;
+ proper.ObjectData[0].FromTaskID = LLUUID.Zero;
+ proper.ObjectData[0].GroupID = LLUUID.Zero;
+ proper.ObjectData[0].InventorySerial = 0;
+ proper.ObjectData[0].LastOwnerID = LLUUID.Zero;
+ proper.ObjectData[0].ObjectID = this.uuid;
+ proper.ObjectData[0].OwnerID = this.rootPrimitive.primData.OwnerID;
+ proper.ObjectData[0].TouchName = new byte[0];
+ proper.ObjectData[0].TextureID = new byte[0];
+ proper.ObjectData[0].SitName = new byte[0];
+ proper.ObjectData[0].Name = new byte[0];
+ proper.ObjectData[0].Description = new byte[0];
+ proper.ObjectData[0].OwnerMask = this.rootPrimitive.primData.OwnerMask;
+ proper.ObjectData[0].NextOwnerMask = this.rootPrimitive.primData.NextOwnerMask;
+ proper.ObjectData[0].GroupMask = this.rootPrimitive.primData.GroupMask;
+ proper.ObjectData[0].EveryoneMask = this.rootPrimitive.primData.EveryoneMask;
+ proper.ObjectData[0].BaseMask = this.rootPrimitive.primData.BaseMask;
+
+ client.OutPacket(proper);
+
+ }
+
+ }
+}
diff --git a/OpenSim/OpenSim.Region/World/Entity.cs b/OpenSim/OpenSim.Region/World/Entity.cs
deleted file mode 100644
index 1620c89..0000000
--- a/OpenSim/OpenSim.Region/World/Entity.cs
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.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.Text;
-using Axiom.MathLib;
-using OpenSim.Physics.Manager;
-using OpenSim.Region.types;
-using libsecondlife;
-using OpenSim.Region.Scripting;
-
-namespace OpenSim.Region
-{
- public abstract class Entity : IScriptReadonlyEntity
- {
- public libsecondlife.LLUUID uuid;
- public uint localid;
- public LLVector3 velocity;
- public Quaternion rotation;
- protected List children;
- protected LLVector3 m_pos;
- protected PhysicsActor _physActor;
- protected World m_world;
- protected string m_name;
-
- ///
- ///
- ///
- public virtual string Name
- {
- get { return m_name; }
- }
-
- ///
- ///
- ///
- public virtual LLVector3 Pos
- {
- get
- {
- if (this._physActor != null)
- {
- m_pos.X = _physActor.Position.X;
- m_pos.Y = _physActor.Position.Y;
- m_pos.Z = _physActor.Position.Z;
- }
-
- return m_pos;
- }
- set
- {
- if (this._physActor != null)
- {
- try
- {
- lock (this.m_world.SyncRoot)
- {
-
- this._physActor.Position = new PhysicsVector(value.X, value.Y, value.Z);
- }
- }
- catch (Exception e)
- {
- Console.WriteLine(e.Message);
- }
- }
-
- m_pos = value;
- }
- }
-
- ///
- /// Creates a new Entity (should not occur on it's own)
- ///
- public Entity()
- {
- uuid = new libsecondlife.LLUUID();
- localid = 0;
- m_pos = new LLVector3();
- velocity = new LLVector3();
- rotation = new Quaternion();
- m_name = "(basic entity)";
- children = new List();
- }
-
- ///
- ///
- ///
- public virtual void addForces()
- {
- foreach (Entity child in children)
- {
- child.addForces();
- }
- }
-
- ///
- /// Performs any updates that need to be done at each frame. This function is overridable from it's children.
- ///
- public virtual void update() {
- // Do any per-frame updates needed that are applicable to every type of entity
- foreach (Entity child in children)
- {
- child.update();
- }
- }
-
- ///
- /// Returns a mesh for this object and any dependents
- ///
- /// The mesh of this entity tree
- public virtual Mesh getMesh()
- {
- Mesh mesh = new Mesh();
-
- foreach (Entity child in children)
- {
- mesh += child.getMesh();
- }
-
- return mesh;
- }
-
- ///
- /// Called at a set interval to inform entities that they should back themsleves up to the DB
- ///
- public virtual void BackUp()
- {
-
- }
-
- ///
- /// Infoms the entity that the land (heightmap) has changed
- ///
- public virtual void LandRenegerated()
- {
-
- }
- }
-}
diff --git a/OpenSim/OpenSim.Region/World/Primitive.cs b/OpenSim/OpenSim.Region/World/Primitive.cs
deleted file mode 100644
index 0680eb3..0000000
--- a/OpenSim/OpenSim.Region/World/Primitive.cs
+++ /dev/null
@@ -1,525 +0,0 @@
-
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.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.Text;
-using OpenSim.Region.types;
-using libsecondlife;
-using libsecondlife.Packets;
-using OpenSim.Framework.Interfaces;
-using OpenSim.Physics.Manager;
-using OpenSim.Framework.Types;
-using OpenSim.Framework.Inventory;
-
-namespace OpenSim.Region
-{
- public class Primitive : Entity
- {
- internal PrimData primData;
- private LLVector3 positionLastFrame = new LLVector3(0, 0, 0);
- // private Dictionary m_clientThreads;
- private ulong m_regionHandle;
- private const uint FULL_MASK_PERMISSIONS = 2147483647;
- private bool physicsEnabled = false;
- private byte updateFlag = 0;
-
- private Dictionary inventoryItems;
-
- #region Properties
-
- public LLVector3 Scale
- {
- set
- {
- this.primData.Scale = value;
- //this.dirtyFlag = true;
- }
- get
- {
- return this.primData.Scale;
- }
- }
-
- public PhysicsActor PhysActor
- {
- set
- {
- this._physActor = value;
- }
- }
-
- public override LLVector3 Pos
- {
- get
- {
- return base.Pos;
- }
- set
- {
- base.Pos = value;
- }
- }
- #endregion
-
- ///
- ///
- ///
- ///
- ///
- ///
- public Primitive(Dictionary clientThreads, ulong regionHandle, World world)
- {
- // m_clientThreads = clientThreads;
- m_regionHandle = regionHandle;
- m_world = world;
- inventoryItems = new Dictionary();
- }
-
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- public Primitive(Dictionary clientThreads, ulong regionHandle, World world, LLUUID owner, LLUUID fullID, uint localID)
- {
- // m_clientThreads = clientThreads;
- m_regionHandle = regionHandle;
- m_world = world;
- inventoryItems = new Dictionary();
- this.primData = new PrimData();
- this.primData.CreationDate = (Int32)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;
- this.primData.OwnerID = owner;
- this.primData.FullID = this.uuid = fullID;
- this.primData.LocalID = this.localid = localID;
- }
-
- ///
- /// Constructor to create a default cube
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- public Primitive(Dictionary clientThreads, ulong regionHandle, World world, LLUUID owner, uint localID, LLVector3 position)
- {
- //m_clientThreads = clientThreads;
- m_regionHandle = regionHandle;
- m_world = world;
- inventoryItems = new Dictionary();
- this.primData = PrimData.DefaultCube();
- this.primData.OwnerID = owner;
- this.primData.LocalID = this.localid = localID;
- this.Pos = this.primData.Position = position;
-
- this.updateFlag = 1;
- }
-
- ///
- ///
- ///
- ///
- public byte[] GetByteArray()
- {
- byte[] result = null;
- List dataArrays = new List();
- dataArrays.Add(primData.ToBytes());
- foreach (Entity child in children)
- {
- if (child is OpenSim.Region.Primitive)
- {
- dataArrays.Add(((OpenSim.Region.Primitive)child).GetByteArray());
- }
- }
- byte[] primstart = Helpers.StringToField("");
- byte[] primend = Helpers.StringToField("");
- int totalLength = primstart.Length + primend.Length;
- for (int i = 0; i < dataArrays.Count; i++)
- {
- totalLength += dataArrays[i].Length;
- }
-
- result = new byte[totalLength];
- int arraypos = 0;
- Array.Copy(primstart, 0, result, 0, primstart.Length);
- arraypos += primstart.Length;
- for (int i = 0; i < dataArrays.Count; i++)
- {
- Array.Copy(dataArrays[i], 0, result, arraypos, dataArrays[i].Length);
- arraypos += dataArrays[i].Length;
- }
- Array.Copy(primend, 0, result, arraypos, primend.Length);
-
- return result;
- }
-
- #region Overridden Methods
-
- ///
- ///
- ///
- public override void update()
- {
- if (this.updateFlag == 1) // is a new prim just been created/reloaded
- {
- this.SendFullUpdateToAllClients();
- this.updateFlag = 0;
- }
- if (this.updateFlag == 2) //some change has been made so update the clients
- {
- this.SendTerseUpdateToALLClients();
- this.updateFlag = 0;
- }
- }
-
- ///
- ///
- ///
- public override void BackUp()
- {
-
- }
-
- #endregion
-
- #region Packet handlers
-
- ///
- ///
- ///
- ///
- public void UpdatePosition(LLVector3 pos)
- {
- this.Pos = new LLVector3(pos.X, pos.Y, pos.Z);
- this.updateFlag = 2;
- }
-
- ///
- ///
- ///
- ///
- public void UpdateShape(ObjectShapePacket.ObjectDataBlock addPacket)
- {
- this.primData.PathBegin = addPacket.PathBegin;
- this.primData.PathEnd = addPacket.PathEnd;
- this.primData.PathScaleX = addPacket.PathScaleX;
- this.primData.PathScaleY = addPacket.PathScaleY;
- this.primData.PathShearX = addPacket.PathShearX;
- this.primData.PathShearY = addPacket.PathShearY;
- this.primData.PathSkew = addPacket.PathSkew;
- this.primData.ProfileBegin = addPacket.ProfileBegin;
- this.primData.ProfileEnd = addPacket.ProfileEnd;
- this.primData.PathCurve = addPacket.PathCurve;
- this.primData.ProfileCurve = addPacket.ProfileCurve;
- this.primData.ProfileHollow = addPacket.ProfileHollow;
- this.primData.PathRadiusOffset = addPacket.PathRadiusOffset;
- this.primData.PathRevolutions = addPacket.PathRevolutions;
- this.primData.PathTaperX = addPacket.PathTaperX;
- this.primData.PathTaperY = addPacket.PathTaperY;
- this.primData.PathTwist = addPacket.PathTwist;
- this.primData.PathTwistBegin = addPacket.PathTwistBegin;
- }
-
- ///
- ///
- ///
- ///
- public void UpdateTexture(byte[] tex)
- {
- this.primData.Texture = tex;
- }
-
- ///
- ///
- ///
- ///
- public void UpdateObjectFlags(ObjectFlagUpdatePacket pack)
- {
-
- }
-
- ///
- ///
- ///
- ///
- public void AssignToParent(Primitive prim)
- {
-
- }
-
- #endregion
-
- # region Inventory Methods
- ///
- ///
- ///
- ///
- ///
- public bool AddToInventory(InventoryItem item)
- {
- return false;
- }
-
- ///
- ///
- ///
- ///
- ///
- public InventoryItem RemoveFromInventory(LLUUID itemID)
- {
- return null;
- }
-
- ///
- ///
- ///
- ///
- ///
- public void RequestInventoryInfo(IClientAPI simClient, RequestTaskInventoryPacket packet)
- {
-
- }
-
- ///
- ///
- ///
- ///
- ///
- public void RequestXferInventory(IClientAPI simClient, ulong xferID)
- {
- //will only currently work if the total size of the inventory data array is under about 1000 bytes
- SendXferPacketPacket send = new SendXferPacketPacket();
-
- send.XferID.ID = xferID;
- send.XferID.Packet = 1 + 2147483648;
- send.DataPacket.Data = this.ConvertInventoryToBytes();
-
- simClient.OutPacket(send);
- }
-
- ///
- ///
- ///
- ///
- public byte[] ConvertInventoryToBytes()
- {
- System.Text.Encoding enc = System.Text.Encoding.ASCII;
- byte[] result = new byte[0];
- List inventoryData = new List();
- int totallength = 0;
- foreach (InventoryItem invItem in inventoryItems.Values)
- {
- byte[] data = enc.GetBytes(invItem.ExportString());
- inventoryData.Add(data);
- totallength += data.Length;
- }
- //TODO: copy arrays into the single result array
-
- return result;
- }
-
- ///
- ///
- ///
- ///
- public void CreateInventoryFromBytes(byte[] data)
- {
-
- }
-
- #endregion
-
- #region Update viewers Methods
-
- ///
- ///
- ///
- ///
- public void SendFullUpdateForAllChildren(IClientAPI remoteClient)
- {
- this.SendFullUpdateToClient(remoteClient);
- for (int i = 0; i < this.children.Count; i++)
- {
- if (this.children[i] is Primitive)
- {
- ((Primitive)this.children[i]).SendFullUpdateForAllChildren(remoteClient);
- }
- }
- }
-
- ///
- ///
- ///
- ///
- public void SendFullUpdateToClient(IClientAPI remoteClient)
- {
- LLVector3 lPos;
- if (this._physActor != null && this.physicsEnabled)
- {
- PhysicsVector pPos = this._physActor.Position;
- lPos = new LLVector3(pPos.X, pPos.Y, pPos.Z);
- }
- else
- {
- lPos = this.Pos;
- }
-
- remoteClient.SendPrimitiveToClient(this.m_regionHandle, 64096, this.localid, this.primData, lPos, new LLUUID("00000000-0000-0000-5005-000000000005"));
- }
-
- ///
- ///
- ///
- public void SendFullUpdateToAllClients()
- {
- List avatars = this.m_world.RequestAvatarList();
- for (int i = 0; i < avatars.Count; i++)
- {
- this.SendFullUpdateToClient(avatars[i].ControllingClient);
- }
- }
-
- ///
- ///
- ///
- ///
- public void SendTerseUpdateToClient(IClientAPI RemoteClient)
- {
- LLVector3 lPos;
- Axiom.MathLib.Quaternion lRot;
- if (this._physActor != null && this.physicsEnabled)
- {
- PhysicsVector pPos = this._physActor.Position;
- lPos = new LLVector3(pPos.X, pPos.Y, pPos.Z);
- lRot = this._physActor.Orientation;
- }
- else
- {
- lPos = this.Pos;
- lRot = this.rotation;
- }
- }
-
- ///
- ///
- ///
- public void SendTerseUpdateToALLClients()
- {
- List avatars = this.m_world.RequestAvatarList();
- for (int i = 0; i < avatars.Count; i++)
- {
- this.SendTerseUpdateToClient(avatars[i].ControllingClient);
- }
- }
-
- #endregion
-
- #region Create Methods
-
- ///
- ///
- ///
- ///
- ///
- ///
- public void CreateFromPacket(ObjectAddPacket addPacket, LLUUID ownerID, uint localID)
- {
- PrimData PData = new PrimData();
- this.primData = PData;
- this.primData.CreationDate = (Int32)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;
-
- PData.OwnerID = ownerID;
- PData.PCode = addPacket.ObjectData.PCode;
- PData.PathBegin = addPacket.ObjectData.PathBegin;
- PData.PathEnd = addPacket.ObjectData.PathEnd;
- PData.PathScaleX = addPacket.ObjectData.PathScaleX;
- PData.PathScaleY = addPacket.ObjectData.PathScaleY;
- PData.PathShearX = addPacket.ObjectData.PathShearX;
- PData.PathShearY = addPacket.ObjectData.PathShearY;
- PData.PathSkew = addPacket.ObjectData.PathSkew;
- PData.ProfileBegin = addPacket.ObjectData.ProfileBegin;
- PData.ProfileEnd = addPacket.ObjectData.ProfileEnd;
- PData.Scale = addPacket.ObjectData.Scale;
- PData.PathCurve = addPacket.ObjectData.PathCurve;
- PData.ProfileCurve = addPacket.ObjectData.ProfileCurve;
- PData.ParentID = 0;
- PData.ProfileHollow = addPacket.ObjectData.ProfileHollow;
- PData.PathRadiusOffset = addPacket.ObjectData.PathRadiusOffset;
- PData.PathRevolutions = addPacket.ObjectData.PathRevolutions;
- PData.PathTaperX = addPacket.ObjectData.PathTaperX;
- PData.PathTaperY = addPacket.ObjectData.PathTaperY;
- PData.PathTwist = addPacket.ObjectData.PathTwist;
- PData.PathTwistBegin = addPacket.ObjectData.PathTwistBegin;
- LLVector3 pos1 = addPacket.ObjectData.RayEnd;
- this.primData.FullID = this.uuid = LLUUID.Random();
- this.primData.LocalID = this.localid = (uint)(localID);
- this.primData.Position = this.Pos = pos1;
-
- this.updateFlag = 1;
- }
-
- ///
- ///
- ///
- ///
- public void CreateFromBytes(byte[] data)
- {
-
- }
-
- ///
- ///
- ///
- ///
- public void CreateFromPrimData(PrimData primData)
- {
- this.CreateFromPrimData(primData, primData.Position, primData.LocalID, false);
- }
-
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- public void CreateFromPrimData(PrimData primData, LLVector3 posi, uint localID, bool newprim)
- {
-
- }
-
- #endregion
-
- }
-}
diff --git a/OpenSim/OpenSim.Region/World/SceneObject.cs b/OpenSim/OpenSim.Region/World/SceneObject.cs
deleted file mode 100644
index 6ded881..0000000
--- a/OpenSim/OpenSim.Region/World/SceneObject.cs
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.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.Text;
-using OpenSim.Region.types;
-using libsecondlife;
-using libsecondlife.Packets;
-using OpenSim.Framework.Interfaces;
-using OpenSim.Physics.Manager;
-using OpenSim.Framework.Types;
-using OpenSim.Framework.Inventory;
-
-namespace OpenSim.Region
-{
- public class SceneObject : Entity
- {
- private LLUUID rootUUID;
- //private Dictionary ChildPrimitives = new Dictionary();
- protected Primitive rootPrimitive;
- private World m_world;
- protected ulong regionHandle;
-
- ///
- ///
- ///
- public SceneObject()
- {
-
- }
-
- ///
- ///
- ///
- ///
- ///
- ///
- public void CreateFromPacket(ObjectAddPacket addPacket, LLUUID agentID, uint localID)
- {
- this.rootPrimitive = new Primitive(null, this.regionHandle, this.m_world);
- this.rootPrimitive.CreateFromPacket(addPacket, agentID, localID);
- }
-
- ///
- ///
- ///
- ///
- public void CreateFromBytes(byte[] data)
- {
-
- }
-
- ///
- ///
- ///
- public override void update()
- {
-
- }
-
- ///
- ///
- ///
- public override void BackUp()
- {
-
- }
-
- ///
- ///
- ///
- ///
- public void GetProperites(IClientAPI client)
- {
- //needs changing
- ObjectPropertiesPacket proper = new ObjectPropertiesPacket();
- proper.ObjectData = new ObjectPropertiesPacket.ObjectDataBlock[1];
- proper.ObjectData[0] = new ObjectPropertiesPacket.ObjectDataBlock();
- proper.ObjectData[0].ItemID = LLUUID.Zero;
- proper.ObjectData[0].CreationDate = (ulong)this.rootPrimitive.primData.CreationDate;
- proper.ObjectData[0].CreatorID = this.rootPrimitive.primData.OwnerID;
- proper.ObjectData[0].FolderID = LLUUID.Zero;
- proper.ObjectData[0].FromTaskID = LLUUID.Zero;
- proper.ObjectData[0].GroupID = LLUUID.Zero;
- proper.ObjectData[0].InventorySerial = 0;
- proper.ObjectData[0].LastOwnerID = LLUUID.Zero;
- proper.ObjectData[0].ObjectID = this.uuid;
- proper.ObjectData[0].OwnerID = this.rootPrimitive.primData.OwnerID;
- proper.ObjectData[0].TouchName = new byte[0];
- proper.ObjectData[0].TextureID = new byte[0];
- proper.ObjectData[0].SitName = new byte[0];
- proper.ObjectData[0].Name = new byte[0];
- proper.ObjectData[0].Description = new byte[0];
- proper.ObjectData[0].OwnerMask = this.rootPrimitive.primData.OwnerMask;
- proper.ObjectData[0].NextOwnerMask = this.rootPrimitive.primData.NextOwnerMask;
- proper.ObjectData[0].GroupMask = this.rootPrimitive.primData.GroupMask;
- proper.ObjectData[0].EveryoneMask = this.rootPrimitive.primData.EveryoneMask;
- proper.ObjectData[0].BaseMask = this.rootPrimitive.primData.BaseMask;
-
- client.OutPacket(proper);
-
- }
-
- }
-}
--
cgit v1.1