aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorAdam Frisby2007-06-20 21:57:22 +0000
committerAdam Frisby2007-06-20 21:57:22 +0000
commit8194d822301481c56c2e48857e6609409613dd6d (patch)
treeb2036fe5cc82334623810c67bee7b0da180ba231
parent* Bonus commit: "terrain save" now supports a 'PNG' method. (diff)
downloadopensim-SC_OLD-8194d822301481c56c2e48857e6609409613dd6d.zip
opensim-SC_OLD-8194d822301481c56c2e48857e6609409613dd6d.tar.gz
opensim-SC_OLD-8194d822301481c56c2e48857e6609409613dd6d.tar.bz2
opensim-SC_OLD-8194d822301481c56c2e48857e6609409613dd6d.tar.xz
* Terrain modification more robust, uses area sizes matching those employed by the client display.
* Terrain tools now account for the duration the cursor was held for. * Terrain tools now support new brushes (completing the common set) ** Smooth brush ** Flatten brush ** Revert brush ** Noise brush
-rw-r--r--Common/OpenSim.Framework/Interfaces/IClientAPI.cs2
-rw-r--r--OpenSim.sln296
-rw-r--r--OpenSim/Examples/SimpleApp/Program.cs14
-rw-r--r--OpenSim/OpenSim.Region/Scenes/Scene.PacketHandlers.cs51
-rw-r--r--OpenSim/OpenSim.RegionServer/ClientView.ProcessPackets.cs3
-rw-r--r--OpenSim/OpenSim.Terrain.BasicTerrain/TerrainEngine.cs83
6 files changed, 246 insertions, 203 deletions
diff --git a/Common/OpenSim.Framework/Interfaces/IClientAPI.cs b/Common/OpenSim.Framework/Interfaces/IClientAPI.cs
index 3b965bf..ea38f06 100644
--- a/Common/OpenSim.Framework/Interfaces/IClientAPI.cs
+++ b/Common/OpenSim.Framework/Interfaces/IClientAPI.cs
@@ -37,7 +37,7 @@ namespace OpenSim.Framework.Interfaces
37{ 37{
38 public delegate void ChatFromViewer(byte[] message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID); 38 public delegate void ChatFromViewer(byte[] message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID);
39 public delegate void RezObject(AssetBase primAsset, LLVector3 pos); 39 public delegate void RezObject(AssetBase primAsset, LLVector3 pos);
40 public delegate void ModifyTerrain(byte action, float north, float west); 40 public delegate void ModifyTerrain(float height, float seconds, byte size, byte action, float north, float west);
41 public delegate void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam); 41 public delegate void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam);
42 public delegate void StartAnim(LLUUID animID, int seq); 42 public delegate void StartAnim(LLUUID animID, int seq);
43 public delegate void LinkObjects(uint parent, List<uint> children); 43 public delegate void LinkObjects(uint parent, List<uint> children);
diff --git a/OpenSim.sln b/OpenSim.sln
index 36421d7..d1e89a6 100644
--- a/OpenSim.sln
+++ b/OpenSim.sln
@@ -51,191 +51,113 @@ EndProject
51Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XMLRPC", "Common\XmlRpcCS\XMLRPC.csproj", "{8E81D43C-0000-0000-0000-000000000000}" 51Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XMLRPC", "Common\XmlRpcCS\XMLRPC.csproj", "{8E81D43C-0000-0000-0000-000000000000}"
52EndProject 52EndProject
53Global 53Global
54 GlobalSection(SolutionConfigurationPlatforms) = preSolution 54 GlobalSection(SolutionConfigurationPlatforms) = preSolution
55 Debug|Any CPU = Debug|Any CPU 55 Debug|Any CPU = Debug|Any CPU
56 Release|Any CPU = Release|Any CPU 56 Release|Any CPU = Release|Any CPU
57 EndGlobalSection 57 EndGlobalSection
58 GlobalSection(ProjectDependencies) = postSolution 58 GlobalSection(ProjectConfigurationPlatforms) = postSolution
59 ({683344D5-0000-0000-0000-000000000000}).1 = ({62CDF671-0000-0000-0000-000000000000}) 59 {683344D5-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
60 ({683344D5-0000-0000-0000-000000000000}).2 = ({8ACA2445-0000-0000-0000-000000000000}) 60 {683344D5-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
61 ({39BD9497-0000-0000-0000-000000000000}).2 = ({62CDF671-0000-0000-0000-000000000000}) 61 {683344D5-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
62 ({DA9A7391-0000-0000-0000-000000000000}).2 = ({62CDF671-0000-0000-0000-000000000000}) 62 {683344D5-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
63 ({DA9A7391-0000-0000-0000-000000000000}).3 = ({8ACA2445-0000-0000-0000-000000000000}) 63 {62CDF671-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
64 ({DA9A7391-0000-0000-0000-000000000000}).4 = ({A7CD0630-0000-0000-0000-000000000000}) 64 {62CDF671-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
65 ({DA9A7391-0000-0000-0000-000000000000}).5 = ({E88EF749-0000-0000-0000-000000000000}) 65 {62CDF671-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
66 ({DA9A7391-0000-0000-0000-000000000000}).6 = ({8BB20F0A-0000-0000-0000-000000000000}) 66 {62CDF671-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
67 ({DA9A7391-0000-0000-0000-000000000000}).10 = ({8E81D43C-0000-0000-0000-000000000000}) 67 {39BD9497-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
68 ({438A9556-0000-0000-0000-000000000000}).3 = ({683344D5-0000-0000-0000-000000000000}) 68 {39BD9497-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
69 ({438A9556-0000-0000-0000-000000000000}).4 = ({1938EB12-0000-0000-0000-000000000000}) 69 {39BD9497-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
70 ({438A9556-0000-0000-0000-000000000000}).5 = ({8ACA2445-0000-0000-0000-000000000000}) 70 {39BD9497-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
71 ({438A9556-0000-0000-0000-000000000000}).6 = ({A7CD0630-0000-0000-0000-000000000000}) 71 {DA9A7391-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
72 ({438A9556-0000-0000-0000-000000000000}).7 = ({E88EF749-0000-0000-0000-000000000000}) 72 {DA9A7391-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
73 ({438A9556-0000-0000-0000-000000000000}).8 = ({79CED992-0000-0000-0000-000000000000}) 73 {DA9A7391-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
74 ({438A9556-0000-0000-0000-000000000000}).9 = ({8BE16150-0000-0000-0000-000000000000}) 74 {DA9A7391-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
75 ({438A9556-0000-0000-0000-000000000000}).10 = ({196916AF-0000-0000-0000-000000000000}) 75 {438A9556-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
76 ({438A9556-0000-0000-0000-000000000000}).11 = ({632E1BFD-0000-0000-0000-000000000000}) 76 {438A9556-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
77 ({438A9556-0000-0000-0000-000000000000}).12 = ({8BB20F0A-0000-0000-0000-000000000000}) 77 {438A9556-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
78 ({438A9556-0000-0000-0000-000000000000}).13 = ({2270B8FE-0000-0000-0000-000000000000}) 78 {438A9556-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
79 ({438A9556-0000-0000-0000-000000000000}).16 = ({8E81D43C-0000-0000-0000-000000000000}) 79 {1938EB12-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
80 ({1938EB12-0000-0000-0000-000000000000}).1 = ({8ACA2445-0000-0000-0000-000000000000}) 80 {1938EB12-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
81 ({8ACA2445-0000-0000-0000-000000000000}).2 = ({A7CD0630-0000-0000-0000-000000000000}) 81 {1938EB12-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
82 ({8ACA2445-0000-0000-0000-000000000000}).5 = ({8E81D43C-0000-0000-0000-000000000000}) 82 {1938EB12-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
83 ({E88EF749-0000-0000-0000-000000000000}).0 = ({8ACA2445-0000-0000-0000-000000000000}) 83 {8ACA2445-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
84 ({546099CD-0000-0000-0000-000000000000}).2 = ({8ACA2445-0000-0000-0000-000000000000}) 84 {8ACA2445-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
85 ({546099CD-0000-0000-0000-000000000000}).3 = ({A7CD0630-0000-0000-0000-000000000000}) 85 {8ACA2445-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
86 ({B55C0B5D-0000-0000-0000-000000000000}).1 = ({8ACA2445-0000-0000-0000-000000000000}) 86 {8ACA2445-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
87 ({B55C0B5D-0000-0000-0000-000000000000}).2 = ({A7CD0630-0000-0000-0000-000000000000}) 87 {A7CD0630-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
88 ({B55C0B5D-0000-0000-0000-000000000000}).5 = ({8E81D43C-0000-0000-0000-000000000000}) 88 {A7CD0630-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
89 ({79CED992-0000-0000-0000-000000000000}).1 = ({683344D5-0000-0000-0000-000000000000}) 89 {A7CD0630-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
90 ({79CED992-0000-0000-0000-000000000000}).2 = ({62CDF671-0000-0000-0000-000000000000}) 90 {A7CD0630-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
91 ({79CED992-0000-0000-0000-000000000000}).3 = ({DA9A7391-0000-0000-0000-000000000000}) 91 {E88EF749-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
92 ({79CED992-0000-0000-0000-000000000000}).4 = ({8ACA2445-0000-0000-0000-000000000000}) 92 {E88EF749-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
93 ({4F874463-0000-0000-0000-000000000000}).1 = ({8BE16150-0000-0000-0000-000000000000}) 93 {E88EF749-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
94 ({8BE16150-0000-0000-0000-000000000000}).1 = ({8ACA2445-0000-0000-0000-000000000000}) 94 {E88EF749-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
95 ({8BE16150-0000-0000-0000-000000000000}).2 = ({A7CD0630-0000-0000-0000-000000000000}) 95 {546099CD-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
96 ({63A05FE9-0000-0000-0000-000000000000}).2 = ({8BE16150-0000-0000-0000-000000000000}) 96 {546099CD-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
97 ({988F0AC4-0000-0000-0000-000000000000}).1 = ({8BE16150-0000-0000-0000-000000000000}) 97 {546099CD-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
98 ({196916AF-0000-0000-0000-000000000000}).3 = ({683344D5-0000-0000-0000-000000000000}) 98 {546099CD-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
99 ({196916AF-0000-0000-0000-000000000000}).4 = ({1938EB12-0000-0000-0000-000000000000}) 99 {B55C0B5D-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
100 ({196916AF-0000-0000-0000-000000000000}).5 = ({8ACA2445-0000-0000-0000-000000000000}) 100 {B55C0B5D-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
101 ({196916AF-0000-0000-0000-000000000000}).6 = ({A7CD0630-0000-0000-0000-000000000000}) 101 {B55C0B5D-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
102 ({196916AF-0000-0000-0000-000000000000}).7 = ({E88EF749-0000-0000-0000-000000000000}) 102 {B55C0B5D-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
103 ({196916AF-0000-0000-0000-000000000000}).8 = ({8BE16150-0000-0000-0000-000000000000}) 103 {79CED992-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
104 ({196916AF-0000-0000-0000-000000000000}).9 = ({8BB20F0A-0000-0000-0000-000000000000}) 104 {79CED992-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
105 ({196916AF-0000-0000-0000-000000000000}).10 = ({2270B8FE-0000-0000-0000-000000000000}) 105 {79CED992-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
106 ({196916AF-0000-0000-0000-000000000000}).13 = ({8E81D43C-0000-0000-0000-000000000000}) 106 {79CED992-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
107 ({632E1BFD-0000-0000-0000-000000000000}).3 = ({1938EB12-0000-0000-0000-000000000000}) 107 {4F874463-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
108 ({632E1BFD-0000-0000-0000-000000000000}).4 = ({8ACA2445-0000-0000-0000-000000000000}) 108 {4F874463-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
109 ({632E1BFD-0000-0000-0000-000000000000}).5 = ({A7CD0630-0000-0000-0000-000000000000}) 109 {4F874463-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
110 ({632E1BFD-0000-0000-0000-000000000000}).6 = ({E88EF749-0000-0000-0000-000000000000}) 110 {4F874463-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
111 ({632E1BFD-0000-0000-0000-000000000000}).7 = ({8BE16150-0000-0000-0000-000000000000}) 111 {8BE16150-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
112 ({632E1BFD-0000-0000-0000-000000000000}).8 = ({196916AF-0000-0000-0000-000000000000}) 112 {8BE16150-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
113 ({632E1BFD-0000-0000-0000-000000000000}).9 = ({8BB20F0A-0000-0000-0000-000000000000}) 113 {8BE16150-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
114 ({632E1BFD-0000-0000-0000-000000000000}).10 = ({2270B8FE-0000-0000-0000-000000000000}) 114 {8BE16150-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
115 ({632E1BFD-0000-0000-0000-000000000000}).13 = ({8E81D43C-0000-0000-0000-000000000000}) 115 {63A05FE9-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
116 ({8BB20F0A-0000-0000-0000-000000000000}).1 = ({8ACA2445-0000-0000-0000-000000000000}) 116 {63A05FE9-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
117 ({8BB20F0A-0000-0000-0000-000000000000}).2 = ({A7CD0630-0000-0000-0000-000000000000}) 117 {63A05FE9-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
118 ({8BB20F0A-0000-0000-0000-000000000000}).5 = ({8E81D43C-0000-0000-0000-000000000000}) 118 {63A05FE9-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
119 ({EE9E5D96-0000-0000-0000-000000000000}).3 = ({8ACA2445-0000-0000-0000-000000000000}) 119 {988F0AC4-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
120 ({EE9E5D96-0000-0000-0000-000000000000}).4 = ({A7CD0630-0000-0000-0000-000000000000}) 120 {988F0AC4-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
121 ({E1B79ECF-0000-0000-0000-000000000000}).2 = ({8ACA2445-0000-0000-0000-000000000000}) 121 {988F0AC4-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
122 ({E1B79ECF-0000-0000-0000-000000000000}).3 = ({A7CD0630-0000-0000-0000-000000000000}) 122 {988F0AC4-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
123 ({6B20B603-0000-0000-0000-000000000000}).1 = ({8ACA2445-0000-0000-0000-000000000000}) 123 {196916AF-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
124 ({6B20B603-0000-0000-0000-000000000000}).2 = ({A7CD0630-0000-0000-0000-000000000000}) 124 {196916AF-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
125 ({24B12448-0000-0000-0000-000000000000}).1 = ({683344D5-0000-0000-0000-000000000000}) 125 {196916AF-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
126 ({24B12448-0000-0000-0000-000000000000}).2 = ({1938EB12-0000-0000-0000-000000000000}) 126 {196916AF-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
127 ({24B12448-0000-0000-0000-000000000000}).3 = ({8ACA2445-0000-0000-0000-000000000000}) 127 {632E1BFD-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
128 ({24B12448-0000-0000-0000-000000000000}).4 = ({A7CD0630-0000-0000-0000-000000000000}) 128 {632E1BFD-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
129 ({24B12448-0000-0000-0000-000000000000}).5 = ({546099CD-0000-0000-0000-000000000000}) 129 {632E1BFD-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
130 ({24B12448-0000-0000-0000-000000000000}).6 = ({79CED992-0000-0000-0000-000000000000}) 130 {632E1BFD-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
131 ({24B12448-0000-0000-0000-000000000000}).7 = ({196916AF-0000-0000-0000-000000000000}) 131 {8BB20F0A-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
132 ({24B12448-0000-0000-0000-000000000000}).8 = ({632E1BFD-0000-0000-0000-000000000000}) 132 {8BB20F0A-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
133 ({24B12448-0000-0000-0000-000000000000}).9 = ({8BB20F0A-0000-0000-0000-000000000000}) 133 {8BB20F0A-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
134 ({24B12448-0000-0000-0000-000000000000}).13 = ({8E81D43C-0000-0000-0000-000000000000}) 134 {8BB20F0A-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
135 EndGlobalSection 135 {EE9E5D96-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
136 GlobalSection(ProjectConfigurationPlatforms) = postSolution 136 {EE9E5D96-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
137 {683344D5-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 137 {EE9E5D96-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
138 {683344D5-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 138 {EE9E5D96-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
139 {683344D5-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 139 {E1B79ECF-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
140 {683344D5-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 140 {E1B79ECF-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
141 {62CDF671-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 141 {E1B79ECF-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
142 {62CDF671-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 142 {E1B79ECF-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
143 {62CDF671-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 143 {6B20B603-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
144 {62CDF671-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 144 {6B20B603-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
145 {39BD9497-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 145 {6B20B603-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
146 {39BD9497-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 146 {6B20B603-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
147 {39BD9497-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 147 {2270B8FE-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
148 {39BD9497-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 148 {2270B8FE-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
149 {DA9A7391-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 149 {2270B8FE-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
150 {DA9A7391-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 150 {2270B8FE-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
151 {DA9A7391-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 151 {24B12448-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
152 {DA9A7391-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 152 {24B12448-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
153 {438A9556-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 153 {24B12448-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
154 {438A9556-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 154 {24B12448-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
155 {438A9556-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 155 {8E81D43C-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
156 {438A9556-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 156 {8E81D43C-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
157 {1938EB12-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 157 {8E81D43C-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
158 {1938EB12-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 158 {8E81D43C-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
159 {1938EB12-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 159 EndGlobalSection
160 {1938EB12-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 160 GlobalSection(SolutionProperties) = preSolution
161 {8ACA2445-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 161 HideSolutionNode = FALSE
162 {8ACA2445-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 162 EndGlobalSection
163 {8ACA2445-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
164 {8ACA2445-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
165 {A7CD0630-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
166 {A7CD0630-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
167 {A7CD0630-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
168 {A7CD0630-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
169 {E88EF749-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
170 {E88EF749-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
171 {E88EF749-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
172 {E88EF749-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
173 {546099CD-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
174 {546099CD-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
175 {546099CD-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
176 {546099CD-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
177 {B55C0B5D-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
178 {B55C0B5D-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
179 {B55C0B5D-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
180 {B55C0B5D-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
181 {79CED992-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
182 {79CED992-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
183 {79CED992-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
184 {79CED992-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
185 {4F874463-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
186 {4F874463-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
187 {4F874463-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
188 {4F874463-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
189 {8BE16150-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
190 {8BE16150-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
191 {8BE16150-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
192 {8BE16150-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
193 {63A05FE9-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
194 {63A05FE9-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
195 {63A05FE9-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
196 {63A05FE9-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
197 {988F0AC4-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
198 {988F0AC4-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
199 {988F0AC4-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
200 {988F0AC4-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
201 {196916AF-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
202 {196916AF-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
203 {196916AF-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
204 {196916AF-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
205 {632E1BFD-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
206 {632E1BFD-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
207 {632E1BFD-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
208 {632E1BFD-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
209 {8BB20F0A-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
210 {8BB20F0A-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
211 {8BB20F0A-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
212 {8BB20F0A-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
213 {EE9E5D96-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
214 {EE9E5D96-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
215 {EE9E5D96-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
216 {EE9E5D96-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
217 {E1B79ECF-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
218 {E1B79ECF-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
219 {E1B79ECF-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
220 {E1B79ECF-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
221 {6B20B603-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
222 {6B20B603-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
223 {6B20B603-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
224 {6B20B603-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
225 {2270B8FE-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
226 {2270B8FE-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
227 {2270B8FE-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
228 {2270B8FE-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
229 {24B12448-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
230 {24B12448-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
231 {24B12448-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
232 {24B12448-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
233 {8E81D43C-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
234 {8E81D43C-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
235 {8E81D43C-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
236 {8E81D43C-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
237 EndGlobalSection
238 GlobalSection(SolutionProperties) = preSolution
239 HideSolutionNode = FALSE
240 EndGlobalSection
241EndGlobal 163EndGlobal
diff --git a/OpenSim/Examples/SimpleApp/Program.cs b/OpenSim/Examples/SimpleApp/Program.cs
index 6d89cbe..de6e6d3 100644
--- a/OpenSim/Examples/SimpleApp/Program.cs
+++ b/OpenSim/Examples/SimpleApp/Program.cs
@@ -19,13 +19,13 @@ namespace SimpleApp
19{ 19{
20 class Program : IAssetReceiver, conscmd_callback 20 class Program : IAssetReceiver, conscmd_callback
21 { 21 {
22 private LogBase m_console; 22 private LogBase m_log;
23 AuthenticateSessionsBase m_circuitManager; 23 AuthenticateSessionsBase m_circuitManager;
24 24
25 private void Run() 25 private void Run()
26 { 26 {
27 m_console = new LogBase(null, "SimpleApp", this, false); 27 m_log = new LogBase(null, "SimpleApp", this, false);
28 MainLog.Instance = m_console; 28 MainLog.Instance = m_log;
29 29
30 CheckSumServer checksumServer = new CheckSumServer(12036); 30 CheckSumServer checksumServer = new CheckSumServer(12036);
31 checksumServer.ServerListener(); 31 checksumServer.ServerListener();
@@ -47,7 +47,7 @@ namespace SimpleApp
47 47
48 AssetCache assetCache = new AssetCache(assetServer); 48 AssetCache assetCache = new AssetCache(assetServer);
49 49
50 UDPServer udpServer = new UDPServer(simPort, assetCache, inventoryCache, m_console, m_circuitManager ); 50 UDPServer udpServer = new UDPServer(simPort, assetCache, inventoryCache, m_log, m_circuitManager );
51 PacketServer packetServer = new PacketServer( udpServer, (uint) simPort ); 51 PacketServer packetServer = new PacketServer( udpServer, (uint) simPort );
52 udpServer.ServerListener(); 52 udpServer.ServerListener();
53 53
@@ -68,13 +68,13 @@ namespace SimpleApp
68 httpServer.AddXmlRPCHandler( "login_to_simulator", loginServer.XmlRpcLoginMethod ); 68 httpServer.AddXmlRPCHandler( "login_to_simulator", loginServer.XmlRpcLoginMethod );
69 httpServer.Start(); 69 httpServer.Start();
70 70
71 m_console.WriteLine( LogPriority.NORMAL, "Press enter to quit."); 71 m_log.WriteLine( LogPriority.NORMAL, "Press enter to quit.");
72 m_console.ReadLine(); 72 m_log.ReadLine();
73 } 73 }
74 74
75 private bool AddNewSessionHandler(ulong regionHandle, Login loginData) 75 private bool AddNewSessionHandler(ulong regionHandle, Login loginData)
76 { 76 {
77 m_console.WriteLine(LogPriority.NORMAL, "Region [{0}] recieved Login from [{1}] [{2}]", regionHandle, loginData.First, loginData.Last); 77 m_log.WriteLine(LogPriority.NORMAL, "Region [{0}] recieved Login from [{1}] [{2}]", regionHandle, loginData.First, loginData.Last);
78 78
79 AgentCircuitData agent = new AgentCircuitData(); 79 AgentCircuitData agent = new AgentCircuitData();
80 agent.AgentID = loginData.Agent; 80 agent.AgentID = loginData.Agent;
diff --git a/OpenSim/OpenSim.Region/Scenes/Scene.PacketHandlers.cs b/OpenSim/OpenSim.Region/Scenes/Scene.PacketHandlers.cs
index 75fe779..01e38d5 100644
--- a/OpenSim/OpenSim.Region/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/OpenSim.Region/Scenes/Scene.PacketHandlers.cs
@@ -41,25 +41,62 @@ namespace OpenSim.Region.Scenes
41 public partial class Scene 41 public partial class Scene
42 { 42 {
43 /// <summary> 43 /// <summary>
44 /// 44 /// Modifies terrain using the specified information
45 /// </summary> 45 /// </summary>
46 /// <param name="action"></param> 46 /// <param name="height">The height at which the user started modifying the terrain</param>
47 /// <param name="north"></param> 47 /// <param name="seconds">The number of seconds the modify button was pressed</param>
48 /// <param name="west"></param> 48 /// <param name="brushsize">The size of the brush used</param>
49 public void ModifyTerrain(byte action, float north, float west) 49 /// <param name="action">The action to be performed</param>
50 /// <param name="north">Distance from the north border where the cursor is located</param>
51 /// <param name="west">Distance from the west border where the cursor is located</param>
52 public void ModifyTerrain(float height, float seconds, byte brushsize, byte action, float north, float west)
50 { 53 {
54 // Shiny.
55 double size = (double)(1 << brushsize);
56
51 switch (action) 57 switch (action)
52 { 58 {
59 case 0:
60 // flatten terrain
61 Terrain.flatten(north, west, size, (double)seconds / 100.0);
62 RegenerateTerrain(true, (int)north, (int)west);
63 break;
53 case 1: 64 case 1:
54 // raise terrain 65 // raise terrain
55 Terrain.raise(north, west, 10.0, 0.001); 66 Terrain.raise(north, west, size, (double)seconds / 100.0);
56 RegenerateTerrain(true, (int)north, (int)west); 67 RegenerateTerrain(true, (int)north, (int)west);
57 break; 68 break;
58 case 2: 69 case 2:
59 //lower terrain 70 //lower terrain
60 Terrain.lower(north, west, 10.0, 0.001); 71 Terrain.lower(north, west, size, (double)seconds / 100.0);
72 RegenerateTerrain(true, (int)north, (int)west);
73 break;
74 case 3:
75 // smooth terrain
76 Terrain.smooth(north, west, size, (double)seconds / 100.0);
77 RegenerateTerrain(true, (int)north, (int)west);
78 break;
79 case 4:
80 // noise
81 Terrain.noise(north, west, size, (double)seconds / 100.0);
82 RegenerateTerrain(true, (int)north, (int)west);
83 break;
84 case 5:
85 // revert
86 Terrain.revert(north, west, size, (double)seconds / 100.0);
61 RegenerateTerrain(true, (int)north, (int)west); 87 RegenerateTerrain(true, (int)north, (int)west);
62 break; 88 break;
89
90 // CLIENT EXTENSIONS GO HERE
91 case 128:
92 // erode-thermal
93 break;
94 case 129:
95 // erode-aerobic
96 break;
97 case 130:
98 // erode-hydraulic
99 break;
63 } 100 }
64 return; 101 return;
65 } 102 }
diff --git a/OpenSim/OpenSim.RegionServer/ClientView.ProcessPackets.cs b/OpenSim/OpenSim.RegionServer/ClientView.ProcessPackets.cs
index d53832f..65066b8 100644
--- a/OpenSim/OpenSim.RegionServer/ClientView.ProcessPackets.cs
+++ b/OpenSim/OpenSim.RegionServer/ClientView.ProcessPackets.cs
@@ -130,7 +130,8 @@ namespace OpenSim
130 { 130 {
131 if (OnModifyTerrain != null) 131 if (OnModifyTerrain != null)
132 { 132 {
133 OnModifyTerrain(modify.ModifyBlock.Action, modify.ParcelData[0].North, modify.ParcelData[0].West); 133 OnModifyTerrain(modify.ModifyBlock.Height, modify.ModifyBlock.Seconds, modify.ModifyBlock.BrushSize,
134 modify.ModifyBlock.Action, modify.ParcelData[0].North, modify.ParcelData[0].West);
134 } 135 }
135 } 136 }
136 break; 137 break;
diff --git a/OpenSim/OpenSim.Terrain.BasicTerrain/TerrainEngine.cs b/OpenSim/OpenSim.Terrain.BasicTerrain/TerrainEngine.cs
index 2d0fb30..d1d54ad 100644
--- a/OpenSim/OpenSim.Terrain.BasicTerrain/TerrainEngine.cs
+++ b/OpenSim/OpenSim.Terrain.BasicTerrain/TerrainEngine.cs
@@ -542,6 +542,89 @@ namespace OpenSim.Terrain
542 } 542 }
543 543
544 /// <summary> 544 /// <summary>
545 /// Flattens the land under the brush of specified coordinates (spherical mask)
546 /// </summary>
547 /// <param name="rx">Center of sphere</param>
548 /// <param name="ry">Center of sphere</param>
549 /// <param name="size">Radius of the sphere</param>
550 /// <param name="amount">Thickness of the mask (0..2 recommended)</param>
551 public void flatten(double rx, double ry, double size, double amount)
552 {
553 lock (heightmap)
554 {
555 heightmap.flatten(rx, ry, size, amount);
556 }
557
558 tainted++;
559 }
560
561 /// <summary>
562 /// Creates noise within the specified bounds
563 /// </summary>
564 /// <param name="rx">Center of the bounding sphere</param>
565 /// <param name="ry">Center of the bounding sphere</param>
566 /// <param name="size">The radius of the sphere</param>
567 /// <param name="amount">Strength of the mask (0..2) recommended</param>
568 public void noise(double rx, double ry, double size, double amount)
569 {
570 lock (heightmap)
571 {
572 Channel smoothed = new Channel();
573 smoothed.noise();
574
575 Channel mask = new Channel();
576 mask.raise(rx, ry, size, amount);
577
578 heightmap.blend(smoothed, mask);
579 }
580
581 tainted++;
582 }
583
584 /// <summary>
585 /// Reverts land within the specified bounds
586 /// </summary>
587 /// <param name="rx">Center of the bounding sphere</param>
588 /// <param name="ry">Center of the bounding sphere</param>
589 /// <param name="size">The radius of the sphere</param>
590 /// <param name="amount">Strength of the mask (0..2) recommended</param>
591 public void revert(double rx, double ry, double size, double amount)
592 {
593 lock (heightmap)
594 {
595 Channel mask = new Channel();
596 mask.raise(rx, ry, size, amount);
597
598 heightmap.blend(revertmap, mask);
599 }
600
601 tainted++;
602 }
603
604 /// <summary>
605 /// Smooths land under the brush of specified coordinates (spherical mask)
606 /// </summary>
607 /// <param name="rx">Center of the sphere</param>
608 /// <param name="ry">Center of the sphere</param>
609 /// <param name="size">Radius of the sphere</param>
610 /// <param name="amount">Thickness of the mask (0..2 recommended)</param>
611 public void smooth(double rx, double ry, double size, double amount)
612 {
613 lock (heightmap)
614 {
615 Channel smoothed = heightmap.copy();
616 smoothed.smooth(amount);
617
618 Channel mask = new Channel();
619 mask.raise(rx,ry,size,amount);
620
621 heightmap.blend(smoothed, mask);
622 }
623
624 tainted++;
625 }
626
627 /// <summary>
545 /// Generates a simple set of hills in the shape of an island 628 /// Generates a simple set of hills in the shape of an island
546 /// </summary> 629 /// </summary>
547 public void hills() 630 public void hills()