mirror of
https://github.com/opensim/opensim.git
synced 2026-08-08 10:15:33 +08:00
Changed so that a bin\ScriptEngines\ directory will be searched for scripting Engines.
Added the work in progress JVM scripting engine.
This commit is contained in:
@@ -199,6 +199,9 @@
|
||||
<Compile Include="world\WorldPacketHandlers.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="world\WorldScripting.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="world\scripting\IScript.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
|
||||
@@ -1,82 +1,83 @@
|
||||
<?xml version="1.0" ?>
|
||||
<project name="OpenSim.RegionServer" default="build">
|
||||
<target name="build">
|
||||
<echo message="Build Directory is ${project::get-base-directory()}/${build.dir}" />
|
||||
<mkdir dir="${project::get-base-directory()}/${build.dir}" />
|
||||
<copy todir="${project::get-base-directory()}/${build.dir}">
|
||||
<fileset basedir="${project::get-base-directory()}">
|
||||
</fileset>
|
||||
</copy>
|
||||
<csc target="library" debug="${build.debug}" unsafe="False" define="TRACE" output="${project::get-base-directory()}/${build.dir}/${project::get-name()}.dll">
|
||||
<resources prefix="OpenSim.RegionServer" dynamicprefix="true" >
|
||||
</resources>
|
||||
<sources failonempty="true">
|
||||
<include name="AgentAssetUpload.cs" />
|
||||
<include name="ConsoleCmds.cs" />
|
||||
<include name="Grid.cs" />
|
||||
<include name="OpenSimMain.cs" />
|
||||
<include name="OpenSimNetworkHandler.cs" />
|
||||
<include name="PacketServer.cs" />
|
||||
<include name="QueItem.cs" />
|
||||
<include name="RegionInfo.cs" />
|
||||
<include name="SimClient.cs" />
|
||||
<include name="SimConsole.cs" />
|
||||
<include name="VersionInfo.cs" />
|
||||
<include name="Assets/AssetCache.cs" />
|
||||
<include name="Assets/InventoryCache.cs" />
|
||||
<include name="CAPS/AdminWebFront.cs" />
|
||||
<include name="types/Mesh.cs" />
|
||||
<include name="types/Triangle.cs" />
|
||||
<include name="world/Avatar.cs" />
|
||||
<include name="world/AvatarAnimations.cs" />
|
||||
<include name="world/AvatarClient.cs" />
|
||||
<include name="world/AvatarUpdate.cs" />
|
||||
<include name="world/Entity.cs" />
|
||||
<include name="world/Primitive.cs" />
|
||||
<include name="world/Primitive2.cs" />
|
||||
<include name="world/ScriptEngine.cs" />
|
||||
<include name="world/SurfacePatch.cs" />
|
||||
<include name="world/World.cs" />
|
||||
<include name="world/WorldPacketHandlers.cs" />
|
||||
<include name="world/scripting/IScript.cs" />
|
||||
<include name="world/scripting/IScriptContext.cs" />
|
||||
<include name="world/scripting/IScriptEntity.cs" />
|
||||
<include name="world/scripting/IScriptHandler.cs" />
|
||||
<include name="world/scripting/Script.cs" />
|
||||
<include name="world/scripting/ScriptFactory.cs" />
|
||||
<include name="world/scripting/Scripts/FollowRandomAvatar.cs" />
|
||||
</sources>
|
||||
<references basedir="${project::get-base-directory()}">
|
||||
<lib>
|
||||
<include name="${project::get-base-directory()}" />
|
||||
<include name="${project::get-base-directory()}/${build.dir}" />
|
||||
</lib>
|
||||
<include name="System.dll" />
|
||||
<include name="System.Xml.dll" />
|
||||
<include name="../bin/libsecondlife.dll" />
|
||||
<include name="../bin/Axiom.MathLib.dll" />
|
||||
<include name="../bin/Db4objects.Db4o.dll" />
|
||||
<include name="../bin/OpenSim.Terrain.BasicTerrain.dll" />
|
||||
<include name="../bin/OpenSim.Framework.dll" />
|
||||
<include name="../bin/OpenSim.Framework.Console.dll" />
|
||||
<include name="../bin/OpenSim.GenericConfig.Xml.dll" />
|
||||
<include name="../bin/OpenSim.Physics.Manager.dll" />
|
||||
<include name="../bin/OpenSim.Servers.dll" />
|
||||
</references>
|
||||
</csc>
|
||||
<echo message="Copying from [${project::get-base-directory()}/${build.dir}/] to [${project::get-base-directory()}/../bin/" />
|
||||
<mkdir dir="${project::get-base-directory()}/../bin/"/>
|
||||
<copy todir="${project::get-base-directory()}/../bin/">
|
||||
<fileset basedir="${project::get-base-directory()}/${build.dir}/" >
|
||||
<include name="*.dll"/>
|
||||
<include name="*.exe"/>
|
||||
</fileset>
|
||||
</copy>
|
||||
</target>
|
||||
<target name="clean">
|
||||
<delete dir="${bin.dir}" failonerror="false" />
|
||||
<delete dir="${obj.dir}" failonerror="false" />
|
||||
</target>
|
||||
<target name="doc" description="Creates documentation.">
|
||||
</target>
|
||||
</project>
|
||||
<?xml version="1.0" ?>
|
||||
<project name="OpenSim.RegionServer" default="build">
|
||||
<target name="build">
|
||||
<echo message="Build Directory is ${project::get-base-directory()}/${build.dir}" />
|
||||
<mkdir dir="${project::get-base-directory()}/${build.dir}" />
|
||||
<copy todir="${project::get-base-directory()}/${build.dir}">
|
||||
<fileset basedir="${project::get-base-directory()}">
|
||||
</fileset>
|
||||
</copy>
|
||||
<csc target="library" debug="${build.debug}" unsafe="False" define="TRACE;DEBUG" output="${project::get-base-directory()}/${build.dir}/${project::get-name()}.dll">
|
||||
<resources prefix="OpenSim.RegionServer" dynamicprefix="true" >
|
||||
</resources>
|
||||
<sources failonempty="true">
|
||||
<include name="AgentAssetUpload.cs" />
|
||||
<include name="ConsoleCmds.cs" />
|
||||
<include name="Grid.cs" />
|
||||
<include name="OpenSimMain.cs" />
|
||||
<include name="OpenSimNetworkHandler.cs" />
|
||||
<include name="PacketServer.cs" />
|
||||
<include name="QueItem.cs" />
|
||||
<include name="RegionInfo.cs" />
|
||||
<include name="SimClient.cs" />
|
||||
<include name="SimConsole.cs" />
|
||||
<include name="VersionInfo.cs" />
|
||||
<include name="Assets/AssetCache.cs" />
|
||||
<include name="Assets/InventoryCache.cs" />
|
||||
<include name="CAPS/AdminWebFront.cs" />
|
||||
<include name="types/Mesh.cs" />
|
||||
<include name="types/Triangle.cs" />
|
||||
<include name="world/Avatar.cs" />
|
||||
<include name="world/AvatarAnimations.cs" />
|
||||
<include name="world/AvatarClient.cs" />
|
||||
<include name="world/AvatarUpdate.cs" />
|
||||
<include name="world/Entity.cs" />
|
||||
<include name="world/Primitive.cs" />
|
||||
<include name="world/Primitive2.cs" />
|
||||
<include name="world/ScriptEngine.cs" />
|
||||
<include name="world/SurfacePatch.cs" />
|
||||
<include name="world/World.cs" />
|
||||
<include name="world/WorldPacketHandlers.cs" />
|
||||
<include name="world/WorldScripting.cs" />
|
||||
<include name="world/scripting/IScript.cs" />
|
||||
<include name="world/scripting/IScriptContext.cs" />
|
||||
<include name="world/scripting/IScriptEntity.cs" />
|
||||
<include name="world/scripting/IScriptHandler.cs" />
|
||||
<include name="world/scripting/Script.cs" />
|
||||
<include name="world/scripting/ScriptFactory.cs" />
|
||||
<include name="world/scripting/Scripts/FollowRandomAvatar.cs" />
|
||||
</sources>
|
||||
<references basedir="${project::get-base-directory()}">
|
||||
<lib>
|
||||
<include name="${project::get-base-directory()}" />
|
||||
<include name="${project::get-base-directory()}/${build.dir}" />
|
||||
</lib>
|
||||
<include name="System.dll" />
|
||||
<include name="System.Xml.dll" />
|
||||
<include name="../bin/libsecondlife.dll" />
|
||||
<include name="../bin/Axiom.MathLib.dll" />
|
||||
<include name="../bin/Db4objects.Db4o.dll" />
|
||||
<include name="../bin/OpenSim.Terrain.BasicTerrain.dll" />
|
||||
<include name="../bin/OpenSim.Framework.dll" />
|
||||
<include name="../bin/OpenSim.Framework.Console.dll" />
|
||||
<include name="../bin/OpenSim.GenericConfig.Xml.dll" />
|
||||
<include name="../bin/OpenSim.Physics.Manager.dll" />
|
||||
<include name="../bin/OpenSim.Servers.dll" />
|
||||
</references>
|
||||
</csc>
|
||||
<echo message="Copying from [${project::get-base-directory()}/${build.dir}/] to [${project::get-base-directory()}/../bin/" />
|
||||
<mkdir dir="${project::get-base-directory()}/../bin/"/>
|
||||
<copy todir="${project::get-base-directory()}/../bin/">
|
||||
<fileset basedir="${project::get-base-directory()}/${build.dir}/" >
|
||||
<include name="*.dll"/>
|
||||
<include name="*.exe"/>
|
||||
</fileset>
|
||||
</copy>
|
||||
</target>
|
||||
<target name="clean">
|
||||
<delete dir="${bin.dir}" failonerror="false" />
|
||||
<delete dir="${obj.dir}" failonerror="false" />
|
||||
</target>
|
||||
<target name="doc" description="Creates documentation.">
|
||||
</target>
|
||||
</project>
|
||||
|
||||
@@ -39,7 +39,7 @@ using System.Collections.Generic;
|
||||
using libsecondlife;
|
||||
using libsecondlife.Packets;
|
||||
using OpenSim.world;
|
||||
using OpenSim.Terrain;
|
||||
using OpenSim.Terrain;
|
||||
using OpenSim.Framework.Interfaces;
|
||||
using OpenSim.UserServer;
|
||||
using OpenSim.Assets;
|
||||
|
||||
@@ -18,7 +18,7 @@ using OpenSim.Terrain;
|
||||
|
||||
namespace OpenSim.world
|
||||
{
|
||||
public partial class World : ILocalStorageReceiver
|
||||
public partial class World : ILocalStorageReceiver, IScriptAPI
|
||||
{
|
||||
public object LockPhysicsEngine = new object();
|
||||
public Dictionary<libsecondlife.LLUUID, Entity> Entities;
|
||||
@@ -66,6 +66,7 @@ namespace OpenSim.world
|
||||
// Scripts = new ScriptEngine(this);
|
||||
Avatar.LoadAnims();
|
||||
this.SetDefaultScripts();
|
||||
this.LoadScriptEngines();
|
||||
}
|
||||
|
||||
public void AddScript(Entity entity, Script script)
|
||||
@@ -86,8 +87,28 @@ namespace OpenSim.world
|
||||
//Console.WriteLine("searching for script to add: " + substring);
|
||||
|
||||
ScriptFactory scriptFactory;
|
||||
|
||||
if (this.m_scripts.TryGetValue(substring, out scriptFactory))
|
||||
Console.WriteLine("script string is " + substring);
|
||||
if(substring.StartsWith("<ScriptEngine:"))
|
||||
{
|
||||
string substring1 = "";
|
||||
string script = "";
|
||||
Console.WriteLine("searching for script engine");
|
||||
substring1 = substring.Remove(0, 14);
|
||||
int dev = substring1.IndexOf(',');
|
||||
string sEngine = substring1.Substring(0, dev);
|
||||
substring1 = substring1.Remove(0, dev+1);
|
||||
int end = substring1.IndexOf('>');
|
||||
string sName = substring1.Substring(0, end);
|
||||
Console.WriteLine(" script info : " + sEngine + " , " + sName);
|
||||
int startscript = substring.IndexOf('>');
|
||||
script = substring.Remove(0, startscript + 1);
|
||||
Console.WriteLine("script data is " + script);
|
||||
if (this.scriptEngines.ContainsKey(sEngine))
|
||||
{
|
||||
this.scriptEngines[sEngine].LoadScript(script, sName, entity.localid);
|
||||
}
|
||||
}
|
||||
else if (this.m_scripts.TryGetValue(substring, out scriptFactory))
|
||||
{
|
||||
//Console.WriteLine("added script");
|
||||
this.AddScript(entity, scriptFactory());
|
||||
@@ -149,7 +170,10 @@ namespace OpenSim.world
|
||||
{
|
||||
scriptHandler.OnFrame();
|
||||
}
|
||||
|
||||
foreach (IScriptEngine scripteng in this.scriptEngines.Values)
|
||||
{
|
||||
//scripteng.OnFrame();
|
||||
}
|
||||
//backup world data
|
||||
this.storageCount++;
|
||||
if (storageCount > 1200) //set to how often you want to backup
|
||||
@@ -255,7 +279,9 @@ namespace OpenSim.world
|
||||
float[] map = this.localStorage.LoadWorld();
|
||||
if (map == null)
|
||||
{
|
||||
Console.WriteLine("creating new terrain");
|
||||
this.Terrain.hills();
|
||||
|
||||
//this.localStorage.SaveMap(this.Terrain.map);
|
||||
}
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user