diff options
Diffstat (limited to 'OpenSim.RegionServer/world/World.cs')
-rw-r--r-- | OpenSim.RegionServer/world/World.cs | 34 |
1 files changed, 30 insertions, 4 deletions
diff --git a/OpenSim.RegionServer/world/World.cs b/OpenSim.RegionServer/world/World.cs index c7c57d1..74325b0 100644 --- a/OpenSim.RegionServer/world/World.cs +++ b/OpenSim.RegionServer/world/World.cs | |||
@@ -18,7 +18,7 @@ using OpenSim.Terrain; | |||
18 | 18 | ||
19 | namespace OpenSim.world | 19 | namespace OpenSim.world |
20 | { | 20 | { |
21 | public partial class World : ILocalStorageReceiver | 21 | public partial class World : ILocalStorageReceiver, IScriptAPI |
22 | { | 22 | { |
23 | public object LockPhysicsEngine = new object(); | 23 | public object LockPhysicsEngine = new object(); |
24 | public Dictionary<libsecondlife.LLUUID, Entity> Entities; | 24 | public Dictionary<libsecondlife.LLUUID, Entity> Entities; |
@@ -66,6 +66,7 @@ namespace OpenSim.world | |||
66 | // Scripts = new ScriptEngine(this); | 66 | // Scripts = new ScriptEngine(this); |
67 | Avatar.LoadAnims(); | 67 | Avatar.LoadAnims(); |
68 | this.SetDefaultScripts(); | 68 | this.SetDefaultScripts(); |
69 | this.LoadScriptEngines(); | ||
69 | } | 70 | } |
70 | 71 | ||
71 | public void AddScript(Entity entity, Script script) | 72 | public void AddScript(Entity entity, Script script) |
@@ -86,8 +87,28 @@ namespace OpenSim.world | |||
86 | //Console.WriteLine("searching for script to add: " + substring); | 87 | //Console.WriteLine("searching for script to add: " + substring); |
87 | 88 | ||
88 | ScriptFactory scriptFactory; | 89 | ScriptFactory scriptFactory; |
89 | 90 | Console.WriteLine("script string is " + substring); | |
90 | if (this.m_scripts.TryGetValue(substring, out scriptFactory)) | 91 | if(substring.StartsWith("<ScriptEngine:")) |
92 | { | ||
93 | string substring1 = ""; | ||
94 | string script = ""; | ||
95 | Console.WriteLine("searching for script engine"); | ||
96 | substring1 = substring.Remove(0, 14); | ||
97 | int dev = substring1.IndexOf(','); | ||
98 | string sEngine = substring1.Substring(0, dev); | ||
99 | substring1 = substring1.Remove(0, dev+1); | ||
100 | int end = substring1.IndexOf('>'); | ||
101 | string sName = substring1.Substring(0, end); | ||
102 | Console.WriteLine(" script info : " + sEngine + " , " + sName); | ||
103 | int startscript = substring.IndexOf('>'); | ||
104 | script = substring.Remove(0, startscript + 1); | ||
105 | Console.WriteLine("script data is " + script); | ||
106 | if (this.scriptEngines.ContainsKey(sEngine)) | ||
107 | { | ||
108 | this.scriptEngines[sEngine].LoadScript(script, sName, entity.localid); | ||
109 | } | ||
110 | } | ||
111 | else if (this.m_scripts.TryGetValue(substring, out scriptFactory)) | ||
91 | { | 112 | { |
92 | //Console.WriteLine("added script"); | 113 | //Console.WriteLine("added script"); |
93 | this.AddScript(entity, scriptFactory()); | 114 | this.AddScript(entity, scriptFactory()); |
@@ -149,7 +170,10 @@ namespace OpenSim.world | |||
149 | { | 170 | { |
150 | scriptHandler.OnFrame(); | 171 | scriptHandler.OnFrame(); |
151 | } | 172 | } |
152 | 173 | foreach (IScriptEngine scripteng in this.scriptEngines.Values) | |
174 | { | ||
175 | //scripteng.OnFrame(); | ||
176 | } | ||
153 | //backup world data | 177 | //backup world data |
154 | this.storageCount++; | 178 | this.storageCount++; |
155 | if (storageCount > 1200) //set to how often you want to backup | 179 | if (storageCount > 1200) //set to how often you want to backup |
@@ -255,7 +279,9 @@ namespace OpenSim.world | |||
255 | float[] map = this.localStorage.LoadWorld(); | 279 | float[] map = this.localStorage.LoadWorld(); |
256 | if (map == null) | 280 | if (map == null) |
257 | { | 281 | { |
282 | Console.WriteLine("creating new terrain"); | ||
258 | this.Terrain.hills(); | 283 | this.Terrain.hills(); |
284 | |||
259 | //this.localStorage.SaveMap(this.Terrain.map); | 285 | //this.localStorage.SaveMap(this.Terrain.map); |
260 | } | 286 | } |
261 | else | 287 | else |