aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Modules/World/TreePopulator/TreePopulatorModule.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment/Modules/World/TreePopulator/TreePopulatorModule.cs')
-rw-r--r--OpenSim/Region/Environment/Modules/World/TreePopulator/TreePopulatorModule.cs83
1 files changed, 43 insertions, 40 deletions
diff --git a/OpenSim/Region/Environment/Modules/World/TreePopulator/TreePopulatorModule.cs b/OpenSim/Region/Environment/Modules/World/TreePopulator/TreePopulatorModule.cs
index ce93060..f144444 100644
--- a/OpenSim/Region/Environment/Modules/World/TreePopulator/TreePopulatorModule.cs
+++ b/OpenSim/Region/Environment/Modules/World/TreePopulator/TreePopulatorModule.cs
@@ -44,13 +44,14 @@ namespace OpenSim.Region.Environment.Modules
44 /// </summary> 44 /// </summary>
45 public class TreePopulatorModule : IRegionModule 45 public class TreePopulatorModule : IRegionModule
46 { 46 {
47 private Scene m_scene;
48 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 47 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
49 48 private Scene m_scene;
50 private List<LLUUID> m_trees;
51 49
52 public double m_tree_density = 50.0; // Aim for this many per region 50 public double m_tree_density = 50.0; // Aim for this many per region
53 public double m_tree_updates = 1000.0; // MS between updates 51 public double m_tree_updates = 1000.0; // MS between updates
52 private List<LLUUID> m_trees;
53
54 #region IRegionModule Members
54 55
55 public void Initialise(Scene scene, IConfigSource config) 56 public void Initialise(Scene scene, IConfigSource config)
56 { 57 {
@@ -59,7 +60,8 @@ namespace OpenSim.Region.Environment.Modules
59 m_tree_density = config.Configs["Trees"].GetDouble("tree_density", m_tree_density); 60 m_tree_density = config.Configs["Trees"].GetDouble("tree_density", m_tree_density);
60 } 61 }
61 catch (Exception) 62 catch (Exception)
62 { } 63 {
64 }
63 65
64 m_trees = new List<LLUUID>(); 66 m_trees = new List<LLUUID>();
65 m_scene = scene; 67 m_scene = scene;
@@ -72,7 +74,27 @@ namespace OpenSim.Region.Environment.Modules
72 m_log.Debug("[TREES]: Initialised tree module"); 74 m_log.Debug("[TREES]: Initialised tree module");
73 } 75 }
74 76
75 void EventManager_OnPluginConsole(string[] args) 77 public void PostInitialise()
78 {
79 }
80
81 public void Close()
82 {
83 }
84
85 public string Name
86 {
87 get { return "TreePopulatorModule"; }
88 }
89
90 public bool IsSharedModule
91 {
92 get { return false; }
93 }
94
95 #endregion
96
97 private void EventManager_OnPluginConsole(string[] args)
76 { 98 {
77 if (args[0] == "tree") 99 if (args[0] == "tree")
78 { 100 {
@@ -81,13 +103,13 @@ namespace OpenSim.Region.Environment.Modules
81 } 103 }
82 } 104 }
83 105
84 void growTrees() 106 private void growTrees()
85 { 107 {
86 foreach (LLUUID tree in m_trees) 108 foreach (LLUUID tree in m_trees)
87 { 109 {
88 if (m_scene.Entities.ContainsKey(tree)) 110 if (m_scene.Entities.ContainsKey(tree))
89 { 111 {
90 SceneObjectPart s_tree = ((SceneObjectGroup)m_scene.Entities[tree]).RootPart; 112 SceneObjectPart s_tree = ((SceneObjectGroup) m_scene.Entities[tree]).RootPart;
91 113
92 // 100 seconds to grow 1m 114 // 100 seconds to grow 1m
93 s_tree.Scale += new LLVector3(0.1f, 0.1f, 0.1f); 115 s_tree.Scale += new LLVector3(0.1f, 0.1f, 0.1f);
@@ -101,13 +123,13 @@ namespace OpenSim.Region.Environment.Modules
101 } 123 }
102 } 124 }
103 125
104 void seedTrees() 126 private void seedTrees()
105 { 127 {
106 foreach (LLUUID tree in m_trees) 128 foreach (LLUUID tree in m_trees)
107 { 129 {
108 if (m_scene.Entities.ContainsKey(tree)) 130 if (m_scene.Entities.ContainsKey(tree))
109 { 131 {
110 SceneObjectPart s_tree = ((SceneObjectGroup)m_scene.Entities[tree]).RootPart; 132 SceneObjectPart s_tree = ((SceneObjectGroup) m_scene.Entities[tree]).RootPart;
111 133
112 if (s_tree.Scale.X > 0.5) 134 if (s_tree.Scale.X > 0.5)
113 { 135 {
@@ -116,7 +138,6 @@ namespace OpenSim.Region.Environment.Modules
116 SpawnChild(s_tree); 138 SpawnChild(s_tree);
117 } 139 }
118 } 140 }
119
120 } 141 }
121 else 142 else
122 { 143 {
@@ -125,7 +146,7 @@ namespace OpenSim.Region.Environment.Modules
125 } 146 }
126 } 147 }
127 148
128 void killTrees() 149 private void killTrees()
129 { 150 {
130 foreach (LLUUID tree in m_trees) 151 foreach (LLUUID tree in m_trees)
131 { 152 {
@@ -133,7 +154,7 @@ namespace OpenSim.Region.Environment.Modules
133 154
134 if (m_scene.Entities.ContainsKey(tree)) 155 if (m_scene.Entities.ContainsKey(tree))
135 { 156 {
136 SceneObjectPart selectedTree = ((SceneObjectGroup)m_scene.Entities[tree]).RootPart; 157 SceneObjectPart selectedTree = ((SceneObjectGroup) m_scene.Entities[tree]).RootPart;
137 double selectedTreeScale = Math.Sqrt(Math.Pow(selectedTree.Scale.X, 2) + 158 double selectedTreeScale = Math.Sqrt(Math.Pow(selectedTree.Scale.X, 2) +
138 Math.Pow(selectedTree.Scale.Y, 2) + 159 Math.Pow(selectedTree.Scale.Y, 2) +
139 Math.Pow(selectedTree.Scale.Z, 2)); 160 Math.Pow(selectedTree.Scale.Z, 2));
@@ -142,7 +163,7 @@ namespace OpenSim.Region.Environment.Modules
142 { 163 {
143 if (picktree != tree) 164 if (picktree != tree)
144 { 165 {
145 SceneObjectPart pickedTree = ((SceneObjectGroup)m_scene.Entities[picktree]).RootPart; 166 SceneObjectPart pickedTree = ((SceneObjectGroup) m_scene.Entities[picktree]).RootPart;
146 167
147 double pickedTreeScale = Math.Sqrt(Math.Pow(pickedTree.Scale.X, 2) + 168 double pickedTreeScale = Math.Sqrt(Math.Pow(pickedTree.Scale.X, 2) +
148 Math.Pow(pickedTree.Scale.Y, 2) + 169 Math.Pow(pickedTree.Scale.Y, 2) +
@@ -162,10 +183,10 @@ namespace OpenSim.Region.Environment.Modules
162 m_trees.Remove(selectedTree.ParentGroup.UUID); 183 m_trees.Remove(selectedTree.ParentGroup.UUID);
163 184
164 m_scene.ForEachClient(delegate(IClientAPI controller) 185 m_scene.ForEachClient(delegate(IClientAPI controller)
165 { 186 {
166 controller.SendKillObject(m_scene.RegionInfo.RegionHandle, 187 controller.SendKillObject(m_scene.RegionInfo.RegionHandle,
167 selectedTree.LocalId); 188 selectedTree.LocalId);
168 }); 189 });
169 190
170 break; 191 break;
171 } 192 }
@@ -199,15 +220,15 @@ namespace OpenSim.Region.Environment.Modules
199 double randX = ((Util.RandomClass.NextDouble() * 2.0) - 1.0) * (s_tree.Scale.X * 3); 220 double randX = ((Util.RandomClass.NextDouble() * 2.0) - 1.0) * (s_tree.Scale.X * 3);
200 double randY = ((Util.RandomClass.NextDouble() * 2.0) - 1.0) * (s_tree.Scale.X * 3); 221 double randY = ((Util.RandomClass.NextDouble() * 2.0) - 1.0) * (s_tree.Scale.X * 3);
201 222
202 position.X += (float)randX; 223 position.X += (float) randX;
203 position.Y += (float)randY; 224 position.Y += (float) randY;
204 225
205 CreateTree(position); 226 CreateTree(position);
206 } 227 }
207 228
208 private void CreateTree(LLVector3 position) 229 private void CreateTree(LLVector3 position)
209 { 230 {
210 position.Z = (float)m_scene.Heightmap[(int)position.X, (int)position.Y]; 231 position.Z = (float) m_scene.Heightmap[(int) position.X, (int) position.Y];
211 232
212 SceneObjectGroup tree = 233 SceneObjectGroup tree =
213 m_scene.AddTree(new LLVector3(0.1f, 0.1f, 0.1f), 234 m_scene.AddTree(new LLVector3(0.1f, 0.1f, 0.1f),
@@ -220,29 +241,11 @@ namespace OpenSim.Region.Environment.Modules
220 tree.SendGroupFullUpdate(); 241 tree.SendGroupFullUpdate();
221 } 242 }
222 243
223 void CalculateTrees_Elapsed(object sender, ElapsedEventArgs e) 244 private void CalculateTrees_Elapsed(object sender, ElapsedEventArgs e)
224 { 245 {
225 growTrees(); 246 growTrees();
226 seedTrees(); 247 seedTrees();
227 killTrees(); 248 killTrees();
228 } 249 }
229
230 public void PostInitialise()
231 {
232 }
233
234 public void Close()
235 {
236 }
237
238 public string Name
239 {
240 get { return "TreePopulatorModule"; }
241 }
242
243 public bool IsSharedModule
244 {
245 get { return false; }
246 }
247 } 250 }
248} 251} \ No newline at end of file