diff options
-rw-r--r-- | OpenSim/Region/Environment/Modules/World/TreePopulator/TreePopulatorModule.cs | 66 | ||||
-rw-r--r-- | bin/OpenSim.ini.example | 8 |
2 files changed, 65 insertions, 9 deletions
diff --git a/OpenSim/Region/Environment/Modules/World/TreePopulator/TreePopulatorModule.cs b/OpenSim/Region/Environment/Modules/World/TreePopulator/TreePopulatorModule.cs index 8061648..a1261cb 100644 --- a/OpenSim/Region/Environment/Modules/World/TreePopulator/TreePopulatorModule.cs +++ b/OpenSim/Region/Environment/Modules/World/TreePopulator/TreePopulatorModule.cs | |||
@@ -48,7 +48,9 @@ namespace OpenSim.Region.Environment.Modules.World.TreePopulator | |||
48 | 48 | ||
49 | public double m_tree_density = 50.0; // Aim for this many per region | 49 | public double m_tree_density = 50.0; // Aim for this many per region |
50 | public double m_tree_updates = 1000.0; // MS between updates | 50 | public double m_tree_updates = 1000.0; // MS between updates |
51 | private bool m_active_trees = false; | ||
51 | private List<UUID> m_trees; | 52 | private List<UUID> m_trees; |
53 | Timer CalculateTrees; | ||
52 | 54 | ||
53 | #region IRegionModule Members | 55 | #region IRegionModule Members |
54 | 56 | ||
@@ -57,6 +59,7 @@ namespace OpenSim.Region.Environment.Modules.World.TreePopulator | |||
57 | try | 59 | try |
58 | { | 60 | { |
59 | m_tree_density = config.Configs["Trees"].GetDouble("tree_density", m_tree_density); | 61 | m_tree_density = config.Configs["Trees"].GetDouble("tree_density", m_tree_density); |
62 | m_active_trees = config.Configs["Trees"].GetBoolean("active_trees", m_active_trees); | ||
60 | } | 63 | } |
61 | catch (Exception) | 64 | catch (Exception) |
62 | { | 65 | { |
@@ -67,9 +70,9 @@ namespace OpenSim.Region.Environment.Modules.World.TreePopulator | |||
67 | 70 | ||
68 | m_scene.EventManager.OnPluginConsole += EventManager_OnPluginConsole; | 71 | m_scene.EventManager.OnPluginConsole += EventManager_OnPluginConsole; |
69 | 72 | ||
70 | Timer CalculateTrees = new Timer(m_tree_updates); | 73 | if (m_active_trees) |
71 | CalculateTrees.Elapsed += CalculateTrees_Elapsed; | 74 | activeizeTreeze(true); |
72 | CalculateTrees.Start(); | 75 | |
73 | m_log.Debug("[TREES]: Initialised tree module"); | 76 | m_log.Debug("[TREES]: Initialised tree module"); |
74 | } | 77 | } |
75 | 78 | ||
@@ -95,16 +98,61 @@ namespace OpenSim.Region.Environment.Modules.World.TreePopulator | |||
95 | 98 | ||
96 | private void EventManager_OnPluginConsole(string[] args) | 99 | private void EventManager_OnPluginConsole(string[] args) |
97 | { | 100 | { |
98 | if (args[0] == "tree") | 101 | if (args.Length == 1) |
99 | { | 102 | { |
100 | UUID uuid = m_scene.RegionInfo.EstateSettings.EstateOwner; | 103 | if (args[0] == "tree") |
101 | if (uuid == UUID.Zero) | 104 | { |
102 | uuid = m_scene.RegionInfo.MasterAvatarAssignedUUID; | 105 | UUID uuid = m_scene.RegionInfo.EstateSettings.EstateOwner; |
103 | m_log.Debug("[TREES]: New tree planting"); | 106 | if (uuid == UUID.Zero) |
104 | CreateTree(uuid, new Vector3(128.0f, 128.0f, 0.0f)); | 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 | } | ||
105 | } | 112 | } |
113 | |||
114 | if (args.Length == 2 || args.Length == 3) | ||
115 | { | ||
116 | if (args[1] == "active") | ||
117 | { | ||
118 | if (args.Length >= 3) | ||
119 | { | ||
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 | ||
134 | { | ||
135 | m_log.Info("[TREES]: When setting the tree module active via the console, you must specify true or false"); | ||
136 | } | ||
137 | } | ||
138 | } | ||
139 | |||
106 | } | 140 | } |
107 | 141 | ||
142 | private void activeizeTreeze(bool activeYN) | ||
143 | { | ||
144 | if (activeYN) | ||
145 | { | ||
146 | CalculateTrees = new Timer(m_tree_updates); | ||
147 | CalculateTrees.Elapsed += CalculateTrees_Elapsed; | ||
148 | CalculateTrees.Start(); | ||
149 | } | ||
150 | else | ||
151 | { | ||
152 | CalculateTrees.Stop(); | ||
153 | } | ||
154 | } | ||
155 | |||
108 | private void growTrees() | 156 | private void growTrees() |
109 | { | 157 | { |
110 | foreach (UUID tree in m_trees) | 158 | foreach (UUID tree in m_trees) |
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example index f1f8f8b..f4734cb 100644 --- a/bin/OpenSim.ini.example +++ b/bin/OpenSim.ini.example | |||
@@ -981,3 +981,11 @@ InterregionComms = "RESTComms" | |||
981 | ; {0} is replaced with the region's name | 981 | ; {0} is replaced with the region's name |
982 | ; {1} is replaced with the region's UUID | 982 | ; {1} is replaced with the region's UUID |
983 | broker = "http://broker.place.com/{1}" | 983 | broker = "http://broker.place.com/{1}" |
984 | |||
985 | [Trees] | ||
986 | |||
987 | ; Enable this to allow the tree module to manage your sim trees, including growing, reproducing and dying | ||
988 | active_trees = false | ||
989 | |||
990 | ; Density of tree population | ||
991 | tree_density = 1000.0 \ No newline at end of file | ||