From fb0dffbf13a79aabe9537f16b7bb151af62c75bf Mon Sep 17 00:00:00 2001 From: Adam Frisby Date: Fri, 6 Apr 2007 18:48:23 +0000 Subject: [PATCH] **BREAKING CHANGE** Changing the way terrain is stored and used internally. --- .../Debug/OpenSim.Config.SimConfigDb4o.dll | Bin 0 -> 20480 bytes .../Debug/OpenSim.Config.SimConfigDb4o.pdb | Bin 0 -> 13824 bytes ...m.Config.SimConfigDb4o.csproj.FileList.txt | 5 + OpenSim.Framework/ILocalStorage.cs | 4 +- OpenSim.Physics/Manager/PhysicsScene.cs | 4 +- OpenSim.Physics/OdePlugin/OdePlugin.cs | 2 +- OpenSim.Physics/PhysXPlugin/PhysXPlugin.cs | 2 +- .../OpenSim.RegionServer.csproj | 49 ++++++---- OpenSim.RegionServer/OpenSimMain.cs | 2 +- OpenSim.RegionServer/world/Avatar.cs | 4 +- OpenSim.RegionServer/world/World.cs | 30 +++--- .../world/WorldPacketHandlers.cs | 26 +---- OpenSim.Terrain.BasicTerrain/Hills.cs | 72 ++++++++++++++ .../OpenSim.Terrain.BasicTerrain.csproj | 4 +- OpenSim.Terrain.BasicTerrain/RaiseLower.cs | 91 ++++++++++++++++++ OpenSim.Terrain.BasicTerrain/TerrainEngine.cs | 64 ++++++++++++ .../TerrainManager.cs | 11 --- .../Debug/OpenSim.Terrain.BasicTerrain.dll | Bin 0 -> 16384 bytes .../Debug/OpenSim.Terrain.BasicTerrain.pdb | Bin 0 -> 19968 bytes .../Debug/OpenSim.Terrain.BasicTerrain.dll | Bin 0 -> 16384 bytes .../Debug/OpenSim.Terrain.BasicTerrain.pdb | Bin 0 -> 19968 bytes ...m.Terrain.BasicTerrain.csproj.FileList.txt | 5 + bin/OpenSim.Terrain.BasicTerrain.dll | Bin 0 -> 16384 bytes 23 files changed, 299 insertions(+), 76 deletions(-) create mode 100644 OpenSim.Config/SimConfigDb4o/obj/Debug/OpenSim.Config.SimConfigDb4o.dll create mode 100644 OpenSim.Config/SimConfigDb4o/obj/Debug/OpenSim.Config.SimConfigDb4o.pdb create mode 100644 OpenSim.Config/SimConfigDb4o/obj/OpenSim.Config.SimConfigDb4o.csproj.FileList.txt create mode 100644 OpenSim.Terrain.BasicTerrain/Hills.cs create mode 100644 OpenSim.Terrain.BasicTerrain/RaiseLower.cs create mode 100644 OpenSim.Terrain.BasicTerrain/TerrainEngine.cs delete mode 100644 OpenSim.Terrain.BasicTerrain/TerrainManager.cs create mode 100644 OpenSim.Terrain.BasicTerrain/bin/Debug/OpenSim.Terrain.BasicTerrain.dll create mode 100644 OpenSim.Terrain.BasicTerrain/bin/Debug/OpenSim.Terrain.BasicTerrain.pdb create mode 100644 OpenSim.Terrain.BasicTerrain/obj/Debug/OpenSim.Terrain.BasicTerrain.dll create mode 100644 OpenSim.Terrain.BasicTerrain/obj/Debug/OpenSim.Terrain.BasicTerrain.pdb create mode 100644 OpenSim.Terrain.BasicTerrain/obj/OpenSim.Terrain.BasicTerrain.csproj.FileList.txt create mode 100644 bin/OpenSim.Terrain.BasicTerrain.dll diff --git a/OpenSim.Config/SimConfigDb4o/obj/Debug/OpenSim.Config.SimConfigDb4o.dll b/OpenSim.Config/SimConfigDb4o/obj/Debug/OpenSim.Config.SimConfigDb4o.dll new file mode 100644 index 0000000000000000000000000000000000000000..ab27ace81cea150507e0ec3c439528447e8954e1 GIT binary patch literal 20480 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 E0V{ONWdHyG literal 0 HcmV?d00001 diff --git a/OpenSim.Config/SimConfigDb4o/obj/OpenSim.Config.SimConfigDb4o.csproj.FileList.txt b/OpenSim.Config/SimConfigDb4o/obj/OpenSim.Config.SimConfigDb4o.csproj.FileList.txt new file mode 100644 index 0000000000..2212b41217 --- /dev/null +++ b/OpenSim.Config/SimConfigDb4o/obj/OpenSim.Config.SimConfigDb4o.csproj.FileList.txt @@ -0,0 +1,5 @@ +..\..\bin\OpenSim.Config.SimConfigDb4o.dll +..\..\bin\OpenSim.Config.SimConfigDb4o.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\OpenSim.Config.SimConfigDb4o.dll +obj\Debug\OpenSim.Config.SimConfigDb4o.pdb diff --git a/OpenSim.Framework/ILocalStorage.cs b/OpenSim.Framework/ILocalStorage.cs index 2c45baaaf9..bc11d8ffad 100644 --- a/OpenSim.Framework/ILocalStorage.cs +++ b/OpenSim.Framework/ILocalStorage.cs @@ -39,8 +39,8 @@ namespace OpenSim.Framework.Interfaces void StorePrim(PrimData prim); void RemovePrim(LLUUID primID); void LoadPrimitives(ILocalStorageReceiver receiver); - float[] LoadWorld(); - void SaveMap(float[] heightmap); + float[,] LoadWorld(); + void SaveMap(float[,] heightmap); void ShutDown(); } diff --git a/OpenSim.Physics/Manager/PhysicsScene.cs b/OpenSim.Physics/Manager/PhysicsScene.cs index 0b3dfd2d7d..25e2104361 100644 --- a/OpenSim.Physics/Manager/PhysicsScene.cs +++ b/OpenSim.Physics/Manager/PhysicsScene.cs @@ -49,7 +49,7 @@ namespace OpenSim.Physics.Manager public abstract void GetResults(); - public abstract void SetTerrain(float[] heightMap); + public abstract void SetTerrain(float[,] heightMap); public abstract void DeleteTerrain(); @@ -87,7 +87,7 @@ namespace OpenSim.Physics.Manager OpenSim.Framework.Console.MainConsole.Instance.WriteLine("NullPhysicsScene : GetResults()"); } - public override void SetTerrain(float[] heightMap) + public override void SetTerrain(float[,] heightMap) { OpenSim.Framework.Console.MainConsole.Instance.WriteLine("NullPhysicsScene : SetTerrain({0} items)", heightMap.Length); } diff --git a/OpenSim.Physics/OdePlugin/OdePlugin.cs b/OpenSim.Physics/OdePlugin/OdePlugin.cs index 325e2fde85..7c9c684dc5 100644 --- a/OpenSim.Physics/OdePlugin/OdePlugin.cs +++ b/OpenSim.Physics/OdePlugin/OdePlugin.cs @@ -173,7 +173,7 @@ namespace OpenSim.Physics.OdePlugin } } - public override void SetTerrain(float[] heightMap) + public override void SetTerrain(float[,] heightMap) { for (int i = 0; i < 65536; i++) { diff --git a/OpenSim.Physics/PhysXPlugin/PhysXPlugin.cs b/OpenSim.Physics/PhysXPlugin/PhysXPlugin.cs index 10e92fe6ed..74e7cb881f 100644 --- a/OpenSim.Physics/PhysXPlugin/PhysXPlugin.cs +++ b/OpenSim.Physics/PhysXPlugin/PhysXPlugin.cs @@ -173,7 +173,7 @@ namespace OpenSim.Physics.PhysXPlugin } } - public override void SetTerrain(float[] heightMap) + public override void SetTerrain(float[,] heightMap) { if (this._heightMap != null) { diff --git a/OpenSim.RegionServer/OpenSim.RegionServer.csproj b/OpenSim.RegionServer/OpenSim.RegionServer.csproj index 73f523a3ed..44d2635a9a 100644 --- a/OpenSim.RegionServer/OpenSim.RegionServer.csproj +++ b/OpenSim.RegionServer/OpenSim.RegionServer.csproj @@ -1,4 +1,4 @@ - + Local 8.0.50727 @@ -6,7 +6,8 @@ {632E1BFD-0000-0000-0000-000000000000} Debug AnyCPU - + + OpenSim.RegionServer @@ -15,9 +16,11 @@ IE50 false Library - + + OpenSim.RegionServer - + + @@ -28,7 +31,8 @@ TRACE;DEBUG - + + True 4096 False @@ -37,7 +41,8 @@ False False 4 - + + False @@ -46,7 +51,8 @@ TRACE - + + False 4096 True @@ -55,26 +61,27 @@ False False 4 - + + - + System.dll False - + System.Xml.dll False - + ..\bin\libsecondlife.dll False - + ..\bin\Axiom.MathLib.dll False - + ..\bin\Db4objects.Db4o.dll False @@ -84,31 +91,35 @@ OpenSim.Framework {8ACA2445-0000-0000-0000-000000000000} {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - False + False OpenSim.Framework.Console {A7CD0630-0000-0000-0000-000000000000} {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - False + False OpenSim.GenericConfig.Xml {E88EF749-0000-0000-0000-000000000000} {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - False + False OpenSim.Physics.Manager {8BE16150-0000-0000-0000-000000000000} {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - False + False + + + {FFD5951C-4002-4ACA-9ADF-68852357B94A} + OpenSim.Terrain.BasicTerrain OpenSim.Servers {8BB20F0A-0000-0000-0000-000000000000} {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - False + False @@ -222,4 +233,4 @@ - + \ No newline at end of file diff --git a/OpenSim.RegionServer/OpenSimMain.cs b/OpenSim.RegionServer/OpenSimMain.cs index 7b0bd4babe..b159af0ac5 100644 --- a/OpenSim.RegionServer/OpenSimMain.cs +++ b/OpenSim.RegionServer/OpenSimMain.cs @@ -156,7 +156,7 @@ namespace OpenSim m_console.WriteLine("Main.cs:Startup() - Starting up messaging system"); LocalWorld.PhysScene = this.physManager.GetPhysicsScene(this.m_physicsEngine); //should be reading from the config file what physics engine to use - LocalWorld.PhysScene.SetTerrain(LocalWorld.LandMap); + LocalWorld.PhysScene.SetTerrain(LocalWorld.Terrain.map); //should be passing a IGenericConfig object to these so they can read the config data they want from it GridServers.AssetServer.SetServerInfo(regionData.AssetURL, regionData.AssetSendKey); diff --git a/OpenSim.RegionServer/world/Avatar.cs b/OpenSim.RegionServer/world/Avatar.cs index 186fb5c6c3..f507797002 100644 --- a/OpenSim.RegionServer/world/Avatar.cs +++ b/OpenSim.RegionServer/world/Avatar.cs @@ -44,7 +44,7 @@ namespace OpenSim.world OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Avatar.cs - Loading details from grid (DUMMY)"); ControllingClient = TheClient; localid = 8880000 + (this.m_world._localNumber++); - Pos = new LLVector3(100.0f, 100.0f, m_world.LandMap[(int)Pos.Y * 256 + (int)Pos.X] + 1); + Pos = new LLVector3(100.0f, 100.0f, m_world.Terrain.map[(int)Pos.X, (int)Pos.Y] + 1.0f); visualParams = new byte[218]; for (int i = 0; i < 218; i++) { @@ -332,7 +332,7 @@ namespace OpenSim.world public override void LandRenegerated() { - Pos = new LLVector3(100.0f, 100.0f, this.m_world.LandMap[(int)Pos.Y * 256 + (int)Pos.X] + 50); + Pos = new LLVector3(100.0f, 100.0f, m_world.Terrain.map[(int)Pos.X, (int)Pos.Y] + 50.0f); } } diff --git a/OpenSim.RegionServer/world/World.cs b/OpenSim.RegionServer/world/World.cs index 5b7b3a1f2d..c23ac2d968 100644 --- a/OpenSim.RegionServer/world/World.cs +++ b/OpenSim.RegionServer/world/World.cs @@ -14,6 +14,7 @@ using OpenSim.Assets; using OpenSim.world.scripting; using OpenSim.RegionServer.world.scripting; using OpenSim.RegionServer.world.scripting.Scripts; +using OpenSim.Terrain; namespace OpenSim.world { @@ -23,8 +24,9 @@ namespace OpenSim.world public Dictionary Entities; public Dictionary Avatars; public Dictionary Prims; - public float[] LandMap; +// public float[] LandMap; public ScriptEngine Scripts; + public TerrainEngine Terrain; //TODO: Replace TerrainManager with this. public uint _localNumber = 0; private PhysicsScene phyScene; private float timeStep = 0.1f; @@ -189,13 +191,13 @@ namespace OpenSim.world public void RegenerateTerrain() { - HeightmapGenHills hills = new HeightmapGenHills(); - this.LandMap = hills.GenerateHeightmap(200, 4.0f, 80.0f, false); + Terrain.hills(); + lock (this.LockPhysicsEngine) { - this.phyScene.SetTerrain(this.LandMap); + this.phyScene.SetTerrain(Terrain.map); } - this.localStorage.SaveMap(this.LandMap); + this.localStorage.SaveMap(this.Terrain.map); foreach (SimClient client in m_clientThreads.Values) { @@ -208,14 +210,14 @@ namespace OpenSim.world } } - public void RegenerateTerrain(float[] newMap) + public void RegenerateTerrain(float[,] newMap) { - this.LandMap = newMap; + this.Terrain.map = newMap; lock (this.LockPhysicsEngine) { - this.phyScene.SetTerrain(this.LandMap); + this.phyScene.SetTerrain(this.Terrain.map); } - this.localStorage.SaveMap(this.LandMap); + this.localStorage.SaveMap(this.Terrain.map); foreach (SimClient client in m_clientThreads.Values) { @@ -234,9 +236,9 @@ namespace OpenSim.world { lock (this.LockPhysicsEngine) { - this.phyScene.SetTerrain(this.LandMap); + this.phyScene.SetTerrain(this.Terrain.map); } - this.localStorage.SaveMap(this.LandMap); + this.localStorage.SaveMap(this.Terrain.map); foreach (SimClient client in m_clientThreads.Values) { @@ -249,7 +251,7 @@ namespace OpenSim.world public void LoadWorldMap() { - LandMap = this.localStorage.LoadWorld(); + Terrain.map = this.localStorage.LoadWorld(); } public void LoadPrimsFromStorage() @@ -288,7 +290,7 @@ namespace OpenSim.world patches[2] = x + 2 + y * 16; patches[3] = x + 3 + y * 16; - Packet layerpack = TerrainManager.CreateLandPacket(LandMap, patches); + Packet layerpack = TerrainManager.CreateLandPacket(Terrain.map, patches); RemoteClient.OutPacket(layerpack); } } @@ -310,7 +312,7 @@ namespace OpenSim.world //patches[2] = patchx + 2 + patchy * 16; //patches[3] = patchx + 3 + patchy * 16; - Packet layerpack = TerrainManager.CreateLandPacket(LandMap, patches); + Packet layerpack = TerrainManager.CreateLandPacket(Terrain.map, patches); RemoteClient.OutPacket(layerpack); } diff --git a/OpenSim.RegionServer/world/WorldPacketHandlers.cs b/OpenSim.RegionServer/world/WorldPacketHandlers.cs index a155ffe40d..0643a4e8f7 100644 --- a/OpenSim.RegionServer/world/WorldPacketHandlers.cs +++ b/OpenSim.RegionServer/world/WorldPacketHandlers.cs @@ -24,34 +24,16 @@ namespace OpenSim.world // raise terrain if (modify.ParcelData.Length > 0) { - int mody = (int)modify.ParcelData[0].North; - int modx = (int)modify.ParcelData[0].West; - lock (LandMap) - { - LandMap[(mody * 256) + modx - 1] += 0.05f; - LandMap[(mody * 256) + modx] += 0.1f; - LandMap[(mody * 256) + modx + 1] += 0.05f; - LandMap[((mody + 1) * 256) + modx] += 0.05f; - LandMap[((mody - 1) * 256) + modx] += 0.05f; - } - RegenerateTerrain(true, modx, mody); + Terrain.raise(modify.ParcelData[0].North, modify.ParcelData[0].West, 10.0, 0.1); + RegenerateTerrain(true, (int)modify.ParcelData[0].North, (int)modify.ParcelData[0].West); } break; case 2: //lower terrain if (modify.ParcelData.Length > 0) { - int mody = (int)modify.ParcelData[0].North; - int modx = (int)modify.ParcelData[0].West; - lock (LandMap) - { - LandMap[(mody * 256) + modx - 1] -= 0.05f; - LandMap[(mody * 256) + modx] -= 0.1f; - LandMap[(mody * 256) + modx + 1] -= 0.05f; - LandMap[((mody + 1) * 256) + modx] -= 0.05f; - LandMap[((mody - 1) * 256) + modx] -= 0.05f; - } - RegenerateTerrain(true, modx, mody); + Terrain.lower(modify.ParcelData[0].North, modify.ParcelData[0].West, 10.0, 0.1); + RegenerateTerrain(true, (int)modify.ParcelData[0].North, (int)modify.ParcelData[0].West); } break; } diff --git a/OpenSim.Terrain.BasicTerrain/Hills.cs b/OpenSim.Terrain.BasicTerrain/Hills.cs new file mode 100644 index 0000000000..40543a998a --- /dev/null +++ b/OpenSim.Terrain.BasicTerrain/Hills.cs @@ -0,0 +1,72 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace OpenSim.Terrain.BasicTerrain +{ + static class Hills + { + /// + /// Generates a series of spheres which are then either max()'d or added together. Inspired by suggestion from jh. + /// + /// 3-Clause BSD Licensed + /// The number of hills to generate + /// The minimum size of each hill + /// The maximum size of each hill + /// Whether to bias hills towards the center of the map + /// Whether to add hills together or to pick the largest value + /// Generates hill-shaped noise instead of consistent hills + public static void hillsSpheres(float[,] map,int seed, int number, double scale_min, double scale_range, bool island, bool additive, bool noisy) + { + Random random = new Random(seed); + int w = map.GetLength(0); + int h = map.GetLength(1); + int x, y; + int i; + + for (i = 0; i < number; i++) + { + double rx = Math.Min(255.0, random.NextDouble() * w); + double ry = Math.Min(255.0, random.NextDouble() * h); + double rand = random.NextDouble(); + + if (island) + { + // Move everything towards the center + rx -= w / 2; + rx /= 2; + rx += w / 2; + + ry -= h / 2; + ry /= 2; + ry += h / 2; + } + + for (x = 0; x < w; x++) + { + for (y = 0; y < h; y++) + { + if (noisy) + rand = random.NextDouble(); + + double z = (scale_min + (scale_range * rand)); + z *= z; + z -= ((x - rx) * (x - rx)) + ((y - ry) * (y - ry)); + + if (z < 0) + z = 0; + + if (additive) + { + map[x, y] += (float)z; + } + else + { + map[x, y] = (float)Math.Max(map[x, y], z); + } + } + } + } + } + } +} diff --git a/OpenSim.Terrain.BasicTerrain/OpenSim.Terrain.BasicTerrain.csproj b/OpenSim.Terrain.BasicTerrain/OpenSim.Terrain.BasicTerrain.csproj index 4da1ede65c..21039027dc 100644 --- a/OpenSim.Terrain.BasicTerrain/OpenSim.Terrain.BasicTerrain.csproj +++ b/OpenSim.Terrain.BasicTerrain/OpenSim.Terrain.BasicTerrain.csproj @@ -33,7 +33,9 @@ - + + + diff --git a/OpenSim.Terrain.BasicTerrain/RaiseLower.cs b/OpenSim.Terrain.BasicTerrain/RaiseLower.cs new file mode 100644 index 0000000000..384bcc0696 --- /dev/null +++ b/OpenSim.Terrain.BasicTerrain/RaiseLower.cs @@ -0,0 +1,91 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace OpenSim.Terrain.BasicTerrain +{ + static class RaiseLower + { + /// + /// Raises land around the selection + /// + /// The center the X coordinate of where you wish to raise the land + /// The center the Y coordinate of where you wish to raise the land + /// The radius of the dimple + /// How much impact to add to the terrain (0..2 usually) + public static void raise(float[,] map, double rx, double ry, double size, double amount) + { + raiseSphere(map, rx, ry, size, amount); + } + + /// + /// Raises land in a sphere around the selection + /// + /// The center the X coordinate of where you wish to raise the land + /// The center the Y coordinate of where you wish to raise the land + /// The radius of the sphere dimple + /// How much impact to add to the terrain (0..2 usually) + public static void raiseSphere(float[,] map, double rx, double ry, double size, double amount) + { + int x, y; + int w = map.GetLength(0); + int h = map.GetLength(1); + + for (x = 0; x < w; x++) + { + for (y = 0; y < h; y++) + { + double z = size; + z *= z; + z -= ((x - rx) * (x - rx)) + ((y - ry) * (y - ry)); + + if (z < 0) + z = 0; + + map[x, y] += (float)(z * amount); + } + } + } + + /// + /// Lowers land in a sphere around the selection + /// + /// The center the X coordinate of where you wish to lower the land + /// The center the Y coordinate of where you wish to lower the land + /// The radius of the sphere dimple + /// How much impact to remove from the terrain (0..2 usually) + public static void lower(float[,] map, double rx, double ry, double size, double amount) + { + lowerSphere(map, rx, ry, size, amount); + } + + /// + /// Lowers land in a sphere around the selection + /// + /// The center the X coordinate of where you wish to lower the land + /// The center the Y coordinate of where you wish to lower the land + /// The radius of the sphere dimple + /// How much impact to remove from the terrain (0..2 usually) + public static void lowerSphere(float[,] map, double rx, double ry, double size, double amount) + { + int x, y; + int w = map.GetLength(0); + int h = map.GetLength(1); + + for (x = 0; x < w; x++) + { + for (y = 0; y < h; y++) + { + double z = size; + z *= z; + z -= ((x - rx) * (x - rx)) + ((y - ry) * (y - ry)); + + if (z < 0) + z = 0; + + map[x, y] -= (float)(z * amount); + } + } + } + } +} diff --git a/OpenSim.Terrain.BasicTerrain/TerrainEngine.cs b/OpenSim.Terrain.BasicTerrain/TerrainEngine.cs new file mode 100644 index 0000000000..f805d18d7e --- /dev/null +++ b/OpenSim.Terrain.BasicTerrain/TerrainEngine.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections.Generic; +using System.Text; +using OpenSim.Terrain.BasicTerrain; + +namespace OpenSim.Terrain +{ + public class TerrainEngine + { + public float[,] map; + public float[,] water; + int w, h; + + public TerrainEngine() + { + w = 256; + h = 256; + map = new float[w, h]; + water = new float[w, h]; + + } + + /// + /// Swaps the references between the height and water buffers to allow you to edit the water heightmap. Remember to swap back when you are done. + /// + public void swapWaterBuffer() + { + float[,] temp = map; + map = water; + water = temp; + } + + /// + /// Raises land in a sphere around the specified coordinates + /// + /// Center of the sphere on the X axis + /// Center of the sphere on the Y axis + /// The radius of the sphere + /// Scale the height of the sphere by this amount (recommended 0..2) + public void raise(double rx, double ry, double size, double amount) + { + lock (map) + { + RaiseLower.raiseSphere(this.map, rx, ry, size, amount); + } + } + public void lower(double rx, double ry, double size, double amount) + { + lock (map) + { + RaiseLower.lowerSphere(this.map, rx, ry, size, amount); + } + } + + public void hills() + { + lock (map) + { + Hills.hillsSpheres(this.map, 1337, 200, 20, 40, true, true, false); + } + } + + } +} diff --git a/OpenSim.Terrain.BasicTerrain/TerrainManager.cs b/OpenSim.Terrain.BasicTerrain/TerrainManager.cs deleted file mode 100644 index 65880eb6d5..0000000000 --- a/OpenSim.Terrain.BasicTerrain/TerrainManager.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace OpenSim.Terrain -{ - public class TerrainManager - { - - } -} diff --git a/OpenSim.Terrain.BasicTerrain/bin/Debug/OpenSim.Terrain.BasicTerrain.dll b/OpenSim.Terrain.BasicTerrain/bin/Debug/OpenSim.Terrain.BasicTerrain.dll new file mode 100644 index 0000000000000000000000000000000000000000..0cfa5952c618df307eef04aa5d85b188fe2784ed GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/OpenSim.Terrain.BasicTerrain/obj/Debug/OpenSim.Terrain.BasicTerrain.dll b/OpenSim.Terrain.BasicTerrain/obj/Debug/OpenSim.Terrain.BasicTerrain.dll new file mode 100644 index 0000000000000000000000000000000000000000..0cfa5952c618df307eef04aa5d85b188fe2784ed GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/OpenSim.Terrain.BasicTerrain/obj/OpenSim.Terrain.BasicTerrain.csproj.FileList.txt b/OpenSim.Terrain.BasicTerrain/obj/OpenSim.Terrain.BasicTerrain.csproj.FileList.txt new file mode 100644 index 0000000000..4728b51253 --- /dev/null +++ b/OpenSim.Terrain.BasicTerrain/obj/OpenSim.Terrain.BasicTerrain.csproj.FileList.txt @@ -0,0 +1,5 @@ +bin\Debug\OpenSim.Terrain.BasicTerrain.dll +bin\Debug\OpenSim.Terrain.BasicTerrain.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\OpenSim.Terrain.BasicTerrain.dll +obj\Debug\OpenSim.Terrain.BasicTerrain.pdb diff --git a/bin/OpenSim.Terrain.BasicTerrain.dll b/bin/OpenSim.Terrain.BasicTerrain.dll new file mode 100644 index 0000000000000000000000000000000000000000..10061e0c1bc2e6e74b6511f60a74e35d8ceb9164 GIT binary patch literal 16384 zcmeHNTWlOx8UAOyyI$W`aZH^QLK(-2lsNTj?Knx3aPd7!abn|j65CixW_OR*Q_s$9 zW@c+UA;{rUS_xgoAY1J`Tz5sWCk*eY*~?Kf)@8718xuQge$1AG|c)hSyGN zOkIRYXiMqxod;yh-7WTRL@#VEH;vuqde^1USUd5Pp^n!=B6_6C>tOoHK`mTe{I25Z z-ef9yB6X_w6b~XwHgG@k?EE6pS8)C-B6Ow$&vNoUdo0Jw?^QZ4r)d>+e$CN&?(&6U zobN(@99eb_+HQuOQP5nw`iLHHVBtOOIJNVFz}Rr0d->jo-_v|N)V1J@HqwXv_+V1Y z=NR3gn^+;gr=J7YC7#muYcU#;IHR%NllTpZFGze<;;$vXE3sW?&wjmIKTA^x7^5%i zSv^MIm-q{vqx=cTr5u}CTh;c^F**sJSkf^1G?`M0!v7_D6nGz~(GTb#@Bwhb;6A=X z&&p9;52bHHiczeiY`X`kiS~!m_aN<|SETgJ{)cp!9-#vV+4C8CMM}e=^ei2PZ90_h zQ4eBszApiFdKKfUqt}2DdL0<0H-P_6D@W92#5x%<@^>S)(nIP;){Gqzj{-+964soS zI3V$Y#Lr2bk!VV^B;Ei%iPiCtCg?ffVfq&RO23TvaevS=)F3s@K#!7O`b)r%(euDg z`VsKB#Iy8M)Q9Moz|TreTH@y=W~F|S-i6gCT}#p}YSJuPrdf)tR#pj!m*pf7WK@er zH>!2|{@OJg3u+4~*w;Zw6 zl?r~=^=vCc=@mZ^1scyhC9(k_q%X>tE-na9kS!xg3^fI_NK0mb_)D}v$!y?yWra`YN>*;8mm#-s#qzC;EjDzOutOy~D0w>=raUtz3Z}QXLmRia;#v8H zV7qC;!*peLFd&Db>8xyTG2}Y)R=(t!%*J-}u<)~125h=S*baWU0+Jo_}-J5*UY#?M|fjNViVx6%%c4(#^FjhiUK z$}UhTf2eqj?^ z*KYjfcW=Bm_@M9gcc#Dk{2FfhG;(Hc$@LcJT;DcJ!NQzx73Knb4_chtExkE6^VFPN zQoFh(i@6M9yv+}6VM$cJ6IB$o=kQs#Rz-Ae$n}P8`y#G?>A!+WF(@`NNah2#`l`q!h1apy_$HM9wiHVMu9#ZnkQGf z9g@4cDOgQteb`M3;O9arm-~_X=u|^acnXEZq5KX#eO>yb@EN`Q>!XbPq@KfWQLFk7 zBf3vn*-vp(oN+3`<{*ki1w6G+LGol)95IQH@g`bYXuH|MIi_$^-iUEUwq)PR7<$k? zRXvDu*u7|yg+Tf`=-UR*CL;6m&j-yViJoozxSXfGh%tu#^0N0KWK*OSIr2Q7&iVft zw(AUfkqrELC5ybxw`H#5VLRr6bFIuIOaHo@=j2>XAeM`fl)!aR!^#Keh56`{bF{hd ztuwWCo}Q3x1~BhFcr0K=*1A1BwB~fMP%~pcqgLC