aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/OptionalModules/World/TreePopulator/TreePopulatorModule.cs89
1 files changed, 51 insertions, 38 deletions
diff --git a/OpenSim/Region/OptionalModules/World/TreePopulator/TreePopulatorModule.cs b/OpenSim/Region/OptionalModules/World/TreePopulator/TreePopulatorModule.cs
index 94ebcac..eddc4c6 100644
--- a/OpenSim/Region/OptionalModules/World/TreePopulator/TreePopulatorModule.cs
+++ b/OpenSim/Region/OptionalModules/World/TreePopulator/TreePopulatorModule.cs
@@ -39,7 +39,7 @@ using OpenSim.Region.Framework.Scenes;
39namespace OpenSim.Region.OptionalModules.World.TreePopulator 39namespace OpenSim.Region.OptionalModules.World.TreePopulator
40{ 40{
41 /// <summary> 41 /// <summary>
42 /// Version 2.0 - Very hacky compared to the original. Will fix original and release as 0.3 later. 42 /// Version 2.01 - Very hacky compared to the original. Will fix original and release as 0.3 later.
43 /// </summary> 43 /// </summary>
44 public class TreePopulatorModule : IRegionModule 44 public class TreePopulatorModule : IRegionModule
45 { 45 {
@@ -56,6 +56,15 @@ namespace OpenSim.Region.OptionalModules.World.TreePopulator
56 56
57 public void Initialise(Scene scene, IConfigSource config) 57 public void Initialise(Scene scene, IConfigSource config)
58 { 58 {
59 m_scene = scene;
60 m_scene.RegisterModuleInterface<IRegionModule>(this);
61
62 m_scene.AddCommand(
63 this, "tree plant", "tree plant", "Start populating trees", HandleTreeConsoleCommand);
64
65 m_scene.AddCommand(
66 this, "tree active", "tree active <boolean>", "Change activity state for trees module", HandleTreeConsoleCommand);
67
59 try 68 try
60 { 69 {
61 m_tree_density = config.Configs["Trees"].GetDouble("tree_density", m_tree_density); 70 m_tree_density = config.Configs["Trees"].GetDouble("tree_density", m_tree_density);
@@ -66,9 +75,6 @@ namespace OpenSim.Region.OptionalModules.World.TreePopulator
66 } 75 }
67 76
68 m_trees = new List<UUID>(); 77 m_trees = new List<UUID>();
69 m_scene = scene;
70
71 m_scene.EventManager.OnPluginConsole += EventManager_OnPluginConsole;
72 78
73 if (m_active_trees) 79 if (m_active_trees)
74 activeizeTreeze(true); 80 activeizeTreeze(true);
@@ -96,47 +102,54 @@ namespace OpenSim.Region.OptionalModules.World.TreePopulator
96 102
97 #endregion 103 #endregion
98 104
99 private void EventManager_OnPluginConsole(string[] args) 105 /// <summary>
106 /// Handle a tree command from the console.
107 /// </summary>
108 /// <param name="module"></param>
109 /// <param name="cmdparams"></param>
110 public void HandleTreeConsoleCommand(string module, string[] cmdparams)
100 { 111 {
101 if (args.Length == 1) 112 if (m_scene.ConsoleScene() != null && m_scene.ConsoleScene() != m_scene)
102 { 113 return;
103 if (args[0] == "tree")
104 {
105 UUID uuid = m_scene.RegionInfo.EstateSettings.EstateOwner;
106 if (uuid == UUID.Zero)
107 uuid = m_scene.RegionInfo.MasterAvatarAssignedUUID;
108 m_log.Debug("[TREES]: New tree planting");
109 CreateTree(uuid, new Vector3(128.0f, 128.0f, 0.0f));
110
111 }
112 }
113 114
114 if (args.Length == 2 || args.Length == 3) 115 if (cmdparams[1] == "active")
115 { 116 {
116 if (args[1] == "active") 117 if (cmdparams.Length <= 2)
117 { 118 {
118 if (args.Length >= 3) 119 if (m_active_trees)
119 { 120 m_log.InfoFormat("[TREES]: Trees are currently active");
120 if (args[2] == "true" && !m_active_trees)
121 {
122 m_active_trees = true;
123 activeizeTreeze(m_active_trees);
124 m_log.Info("[TREES]: Activizing Trees");
125 }
126 if (args[2] == "false" && m_active_trees)
127 {
128 m_active_trees = false;
129 activeizeTreeze(m_active_trees);
130 m_log.Info("[TREES]: Trees no longer Active, for now...");
131 }
132 }
133 else 121 else
134 { 122 m_log.InfoFormat("[TREES]: Trees are currently not active");
135 m_log.Info("[TREES]: When setting the tree module active via the console, you must specify true or false"); 123 }
136 } 124 else if (cmdparams[2] == "true" && !m_active_trees)
125 {
126 m_log.InfoFormat("[TREES]: Activating Trees");
127 m_active_trees = true;
128 activeizeTreeze(m_active_trees);
129 }
130 else if (cmdparams[2] == "false" && m_active_trees)
131 {
132 m_log.InfoFormat("[TREES]: Trees no longer active, for now...");
133 m_active_trees = false;
134 activeizeTreeze(m_active_trees);
135 }
136 else
137 {
138 m_log.InfoFormat("[TREES]: When setting the tree module active via the console, you must specify true or false");
137 } 139 }
138 } 140 }
139 141 else if (cmdparams[1] == "plant")
142 {
143 m_log.InfoFormat("[TREES]: New tree planting");
144 UUID uuid = m_scene.RegionInfo.EstateSettings.EstateOwner;
145 if (uuid == UUID.Zero)
146 uuid = m_scene.RegionInfo.MasterAvatarAssignedUUID;
147 CreateTree(uuid, new Vector3(128.0f, 128.0f, 0.0f));
148 }
149 else
150 {
151 m_log.InfoFormat("[TREES]: Unknown command");
152 }
140 } 153 }
141 154
142 private void activeizeTreeze(bool activeYN) 155 private void activeizeTreeze(bool activeYN)