diff options
author | Melanie Thielker | 2008-09-26 02:51:00 +0000 |
---|---|---|
committer | Melanie Thielker | 2008-09-26 02:51:00 +0000 |
commit | c21a8b99694e459408a9ccc43e525928038b2b22 (patch) | |
tree | 21190b513065cc7b1f3442d2cf2ed9ce1d2077f4 /OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/ScriptEngine.cs | |
parent | Mantis#2265. Thank you kindly, Idb for a patch that: (diff) | |
download | opensim-SC-c21a8b99694e459408a9ccc43e525928038b2b22.zip opensim-SC-c21a8b99694e459408a9ccc43e525928038b2b22.tar.gz opensim-SC-c21a8b99694e459408a9ccc43e525928038b2b22.tar.bz2 opensim-SC-c21a8b99694e459408a9ccc43e525928038b2b22.tar.xz |
Full API convergence. Api is back in LSL_Api.cs and OSSL_Api.cs.
The binaries are still different, but that is only a small step away now.
The OSSLPrim has been removed. This commit will breal all scripts
using Prim.Scale(), etc, syntax. It was not secure and will have to
be brought back in another form.
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/ScriptEngine.cs')
-rw-r--r-- | OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/ScriptEngine.cs | 73 |
1 files changed, 72 insertions, 1 deletions
diff --git a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/ScriptEngine.cs b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/ScriptEngine.cs index 18925e0..88f7b41 100644 --- a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/ScriptEngine.cs +++ b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/ScriptEngine.cs | |||
@@ -66,6 +66,11 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
66 | private bool m_enabled = false; | 66 | private bool m_enabled = false; |
67 | private bool m_hookUpToServer = false; | 67 | private bool m_hookUpToServer = false; |
68 | 68 | ||
69 | public IConfig Config | ||
70 | { | ||
71 | get { return ScriptConfigSource; } | ||
72 | } | ||
73 | |||
69 | /// <summary> | 74 | /// <summary> |
70 | /// How many seconds between re-reading config-file. 0 = never. ScriptEngine will try to adjust to new config changes. | 75 | /// How many seconds between re-reading config-file. 0 = never. ScriptEngine will try to adjust to new config changes. |
71 | /// </summary> | 76 | /// </summary> |
@@ -120,6 +125,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
120 | m_EventManager = new EventManager(this, HookUpToServer); | 125 | m_EventManager = new EventManager(this, HookUpToServer); |
121 | // We need to start it | 126 | // We need to start it |
122 | m_ScriptManager = newScriptManager; | 127 | m_ScriptManager = newScriptManager; |
128 | m_ScriptManager.Setup(); | ||
123 | m_AppDomainManager = new AppDomainManager(this); | 129 | m_AppDomainManager = new AppDomainManager(this); |
124 | if (m_MaintenanceThread == null) | 130 | if (m_MaintenanceThread == null) |
125 | m_MaintenanceThread = new MaintenanceThread(); | 131 | m_MaintenanceThread = new MaintenanceThread(); |
@@ -229,23 +235,88 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
229 | 235 | ||
230 | public void SetState(UUID itemID, string state) | 236 | public void SetState(UUID itemID, string state) |
231 | { | 237 | { |
238 | uint localID = m_ScriptManager.GetLocalID(itemID); | ||
239 | if (localID == 0) | ||
240 | return; | ||
241 | |||
242 | IScript Script = m_ScriptManager.GetScript(localID, itemID); | ||
243 | |||
244 | if (Script == null) | ||
245 | return; | ||
246 | |||
247 | string currentState = Script.State; | ||
248 | |||
249 | if (currentState != state) | ||
250 | { | ||
251 | try | ||
252 | { | ||
253 | m_EventManager.state_exit(localID); | ||
254 | |||
255 | } | ||
256 | catch (AppDomainUnloadedException) | ||
257 | { | ||
258 | Console.WriteLine("[SCRIPT]: state change called when script was unloaded. Nothing to worry about, but noting the occurance"); | ||
259 | } | ||
260 | |||
261 | Script.State = state; | ||
262 | |||
263 | try | ||
264 | { | ||
265 | int eventFlags = m_ScriptManager.GetStateEventFlags(localID, itemID); | ||
266 | SceneObjectPart part = m_Scene.GetSceneObjectPart(itemID); | ||
267 | if (part != null) | ||
268 | part.SetScriptEvents(itemID, eventFlags); | ||
269 | m_EventManager.state_entry(localID); | ||
270 | } | ||
271 | catch (AppDomainUnloadedException) | ||
272 | { | ||
273 | Console.WriteLine("[SCRIPT]: state change called when script was unloaded. Nothing to worry about, but noting the occurance"); | ||
274 | } | ||
275 | } | ||
232 | } | 276 | } |
233 | 277 | ||
234 | public bool GetScriptState(UUID itemID) | 278 | public bool GetScriptState(UUID itemID) |
235 | { | 279 | { |
236 | return true; | 280 | uint localID = m_ScriptManager.GetLocalID(itemID); |
281 | if (localID == 0) | ||
282 | return false; | ||
283 | |||
284 | IScript script = m_ScriptManager.GetScript(localID, itemID); | ||
285 | if (script == null) | ||
286 | return false; | ||
287 | |||
288 | return script.Exec.Running?true:false; | ||
237 | } | 289 | } |
238 | 290 | ||
239 | public void SetScriptState(UUID itemID, bool state) | 291 | public void SetScriptState(UUID itemID, bool state) |
240 | { | 292 | { |
293 | uint localID = m_ScriptManager.GetLocalID(itemID); | ||
294 | if (localID == 0) | ||
295 | return; | ||
296 | |||
297 | IScript script = m_ScriptManager.GetScript(localID, itemID); | ||
298 | if (script == null) | ||
299 | return; | ||
300 | |||
301 | script.Exec.Running = state; | ||
241 | } | 302 | } |
242 | 303 | ||
243 | public void ApiResetScript(UUID itemID) | 304 | public void ApiResetScript(UUID itemID) |
244 | { | 305 | { |
306 | uint localID = m_ScriptManager.GetLocalID(itemID); | ||
307 | if (localID == 0) | ||
308 | return; | ||
309 | |||
310 | m_ScriptManager.ResetScript(localID, itemID); | ||
245 | } | 311 | } |
246 | 312 | ||
247 | public void ResetScript(UUID itemID) | 313 | public void ResetScript(UUID itemID) |
248 | { | 314 | { |
315 | uint localID = m_ScriptManager.GetLocalID(itemID); | ||
316 | if (localID == 0) | ||
317 | return; | ||
318 | |||
319 | m_ScriptManager.ResetScript(localID, itemID); | ||
249 | } | 320 | } |
250 | } | 321 | } |
251 | } | 322 | } |