From 8820cbfb13318c1d367e0fc76864bb4c28fa0487 Mon Sep 17 00:00:00 2001
From: gareth <gareth>
Date: Fri, 2 Mar 2007 18:53:53 +0000
Subject: [PATCH] Imported the broken code

---
 opensim.build                     |  8 ++++
 src/OpenSimClient.cs              |  3 ++
 src/plugins/PhysicsEngine.cs      | 66 +++++++++++++++++++++++++++++++
 src/plugins/default.build         | 38 ++++++++++++++++++
 src/world/Entity.cs               |  4 +-
 src/world/default.build           | 38 ++++++++++++++++++
 src/{ => world}/types/BitPack.cs  |  0
 src/{ => world}/types/Mesh.cs     |  0
 src/{ => world}/types/Triangle.cs |  0
 9 files changed, 155 insertions(+), 2 deletions(-)
 create mode 100644 src/plugins/PhysicsEngine.cs
 create mode 100644 src/plugins/default.build
 create mode 100644 src/world/default.build
 rename src/{ => world}/types/BitPack.cs (100%)
 rename src/{ => world}/types/Mesh.cs (100%)
 rename src/{ => world}/types/Triangle.cs (100%)

diff --git a/opensim.build b/opensim.build
index e2bf6338ff..871c46c4dd 100644
--- a/opensim.build
+++ b/opensim.build
@@ -37,6 +37,14 @@
 			<attribute type="AssemblyCopyrightAttribute" value="Copyright © OGS development team 2007"/>
 		</attributes>
 	</asminfo>
+	
+	<nant>
+    		<buildfiles>
+        		<include name="**/default.build" />
+		        <exclude name="${project::get-buildfile-path()}" />
+    		</buildfiles>
+	</nant>
+
 	<csc target="exe" output="bin/OpenSim.exe" debug="${debug}" verbose="true" warninglevel="4">
 			<references basedir="bin/" failonempty="true">
 				<include name="System" />
diff --git a/src/OpenSimClient.cs b/src/OpenSimClient.cs
index 83d859941f..f090863d76 100644
--- a/src/OpenSimClient.cs
+++ b/src/OpenSimClient.cs
@@ -150,6 +150,9 @@ namespace OpenSim
 				Thread AssetLoaderThread = new Thread(new ThreadStart(AssetLoader));
                         	AssetLoaderThread.Start();
 			break;
+			case PacketType.AgentUpdate:
+				ClientAvatar.HandleUpdate((AgentUpdatePacket)Pack);
+			break;
 		    }
 		}
 
diff --git a/src/plugins/PhysicsEngine.cs b/src/plugins/PhysicsEngine.cs
new file mode 100644
index 0000000000..a8f71933a6
--- /dev/null
+++ b/src/plugins/PhysicsEngine.cs
@@ -0,0 +1,66 @@
+/*
+Copyright (c) OpenSim project, http://osgrid.org/
+
+
+* All rights reserved.
+*
+* 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 <organization> 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 <copyright holder> ``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 <copyright holder> 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.Text;
+using System.Threading;
+using System.Collections;
+using System.Collections.Generic;
+using libsecondlife;
+using libsecondlife.Packets;
+using OpenSim.world;
+
+namespace OpenSim
+{
+    public class Physics_Simulation {
+	private OpenWim.world.World simworld;	// The world we are simulating
+	private Thread PhysicsEngine;
+
+	public Physics_Simulation(OpenSim.world.World physical_world) {
+		this.simworld = physical_world;
+                
+		// PUT CODE TO INIT PHYSICS ENGINE HERE
+		
+		PhysicsEngine = new Thread(new ThreadStart(PhysicsThread));
+                PhysicsEngine.Start();
+	}
+    
+	public void Iterate() {
+		// PUT CODE TO RUN A STEP OF THE SIMULATION HERE
+	}
+
+	public void PhysicsThread() {
+		Console.WriteLine("Physics_Simulation:PhysicsThread() - Starting thread");
+		while(true) {
+			this.Iterate();	
+			simworld.Update();
+		}	
+	}
+    }
+}
diff --git a/src/plugins/default.build b/src/plugins/default.build
new file mode 100644
index 0000000000..fc8caebb41
--- /dev/null
+++ b/src/plugins/default.build
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+    <project name="OpenSim-Plugins" default="build" basedir=".">
+        <description>Builds opensim plugins</description>
+        <property name="debug" value="true" overwrite="false" />
+        
+	<target name="clean" description="remove all generated files">
+            <delete file="../../bin/plugins/*.dll" failonerror="false" />
+        </target>
+
+	<target name="svnupdate" description="updates to latest SVN">
+		<exec program="svn">
+			<arg value="update" />
+		</exec>
+	</target>
+
+	<target name="upgrade" description="updates from SVN and then builds" depends="clean,svnupdate,build">
+		
+	</target>
+	
+	<target name="build" description="compiles the source code">
+
+		<csc target="library" output="../../bin/plugins/physics.dll" debug="${debug}" verbose="true" warninglevel="4">
+			<references basedir="../../bin/" failonempty="true">
+				<include name="System" />
+				<include name="System.Data" />
+				<include name="System.Xml" />
+				<include name="Axiom.MathLib.dll" />
+				<include name="libsecondlife.dll" />
+				<include name="log4net.dll" />
+				<include name="Db4objects.Db4o.dll" />
+				<include name="world.dll" />
+			</references>
+			<sources basedir=".">
+        	        	<include name="PhysicsEngine.cs" />
+			</sources>
+		</csc>
+	</target>
+</project>
diff --git a/src/world/Entity.cs b/src/world/Entity.cs
index ab07fd60cb..9f32892550 100644
--- a/src/world/Entity.cs
+++ b/src/world/Entity.cs
@@ -9,7 +9,7 @@ namespace OpenSim.world
     public class Entity
     {
         protected libsecondlife.LLUUID uuid;
-        protected Vector3 position;
+        protected libsecondlife.LLVector3 position;
         protected Vector3 velocity;
         protected Quaternion rotation;
         protected string name;
@@ -18,7 +18,7 @@ namespace OpenSim.world
         public Entity()
         {
             uuid = new libsecondlife.LLUUID();
-            position = new Vector3();
+            position = new libsecondlife.LLVector3();
             velocity = new Vector3();
             rotation = new Quaternion();
             name = "(basic entity)";
diff --git a/src/world/default.build b/src/world/default.build
new file mode 100644
index 0000000000..4d4d3069aa
--- /dev/null
+++ b/src/world/default.build
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+    <project name="OpenSim-world" default="build" basedir=".">
+        <description>Builds opensim world library</description>
+        <property name="debug" value="true" overwrite="false" />
+        
+	<target name="clean" description="remove all generated files">
+            <delete file="../../bin/world.dll" failonerror="false" />
+        </target>
+
+	<target name="svnupdate" description="updates to latest SVN">
+		<exec program="svn">
+			<arg value="update" />
+		</exec>
+	</target>
+
+	<target name="upgrade" description="updates from SVN and then builds" depends="clean,svnupdate,build">
+		
+	</target>
+	
+	<target name="build" description="compiles the source code">
+
+		<csc target="library" output="../../bin/world.dll" debug="${debug}" verbose="true" warninglevel="4">
+			<references basedir="../../bin/" failonempty="true">
+				<include name="System" />
+				<include name="System.Data" />
+				<include name="System.Xml" />
+				<include name="Axiom.MathLib.dll" />
+				<include name="libsecondlife.dll" />
+				<include name="log4net.dll" />
+				<include name="Db4objects.Db4o.dll" />
+			</references>
+			<sources basedir=".">
+        	        	<include name="*.cs" />
+				<include name="types/*.cs" />
+			</sources>
+		</csc>
+	</target>
+</project>
diff --git a/src/types/BitPack.cs b/src/world/types/BitPack.cs
similarity index 100%
rename from src/types/BitPack.cs
rename to src/world/types/BitPack.cs
diff --git a/src/types/Mesh.cs b/src/world/types/Mesh.cs
similarity index 100%
rename from src/types/Mesh.cs
rename to src/world/types/Mesh.cs
diff --git a/src/types/Triangle.cs b/src/world/types/Triangle.cs
similarity index 100%
rename from src/types/Triangle.cs
rename to src/world/types/Triangle.cs