2009-03-02 23:00:28 +00:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
2009-03-20 00:19:32 +00:00
|
|
|
|
using System.Text;
|
2009-03-02 23:00:28 +00:00
|
|
|
|
using ExtensionLoader;
|
|
|
|
|
|
using OpenMetaverse;
|
|
|
|
|
|
|
2009-03-12 23:02:42 +00:00
|
|
|
|
namespace Simian
|
2009-03-02 23:00:28 +00:00
|
|
|
|
{
|
|
|
|
|
|
// FIXME: Implement this class
|
2009-03-12 23:02:42 +00:00
|
|
|
|
class XScriptEngine : IExtension<ISceneProvider>, IScriptEngine
|
2009-03-02 23:00:28 +00:00
|
|
|
|
{
|
2009-03-12 23:02:42 +00:00
|
|
|
|
ISceneProvider scene;
|
2009-03-02 23:00:28 +00:00
|
|
|
|
|
|
|
|
|
|
public XScriptEngine()
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2009-03-12 23:02:42 +00:00
|
|
|
|
public bool Start(ISceneProvider scene)
|
2009-03-02 23:00:28 +00:00
|
|
|
|
{
|
2009-03-12 23:02:42 +00:00
|
|
|
|
this.scene = scene;
|
|
|
|
|
|
return true;
|
2009-03-02 23:00:28 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void Stop()
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2009-03-20 00:19:32 +00:00
|
|
|
|
public bool RezScript(UUID scriptID, UUID scriptSourceAssetID, SimulationObject hostObject, int scriptStartParam)
|
|
|
|
|
|
{
|
|
|
|
|
|
Asset sourceAsset;
|
|
|
|
|
|
Asset binaryAsset;
|
|
|
|
|
|
|
|
|
|
|
|
// Try to fetch the script source code asset
|
|
|
|
|
|
if (scene.Server.Assets.TryGetAsset(scriptSourceAssetID, out sourceAsset) && sourceAsset is AssetScriptText)
|
|
|
|
|
|
{
|
|
|
|
|
|
// The script binary assetID is the MD5 hash of the source to avoid lots of duplicate compiles
|
|
|
|
|
|
UUID scriptBinaryAssetID = new UUID(Utils.MD5(sourceAsset.AssetData), 0);
|
|
|
|
|
|
|
|
|
|
|
|
// Check if a compiled assembly already exists for this script
|
|
|
|
|
|
if (scene.Server.Assets.TryGetAsset(scriptBinaryAssetID, out binaryAsset))
|
|
|
|
|
|
{
|
|
|
|
|
|
Logger.Log("Using existing compile for scriptID " + scriptID, Helpers.LogLevel.Info);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
ScriptCompiler compiler = new ScriptCompiler();
|
|
|
|
|
|
string csText = compiler.Convert(Encoding.UTF8.GetString(sourceAsset.AssetData));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2009-03-02 23:00:28 +00:00
|
|
|
|
public bool PostScriptEvent(UUID scriptID, EventParams parms)
|
|
|
|
|
|
{
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public bool PostObjectEvent(UUID hostObjectID, EventParams parms)
|
|
|
|
|
|
{
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void SetTimerEvent(UUID scriptID, double seconds)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public DetectParams GetDetectParams(UUID scriptID, int detectIndex)
|
|
|
|
|
|
{
|
|
|
|
|
|
DetectParams parms = new DetectParams();
|
|
|
|
|
|
return parms;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2009-03-20 00:19:32 +00:00
|
|
|
|
public bool IsScriptEnabled(UUID scriptID)
|
2009-03-02 23:00:28 +00:00
|
|
|
|
{
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2009-03-20 00:19:32 +00:00
|
|
|
|
public void SetScriptEnabled(UUID scriptID, bool enabled)
|
2009-03-02 23:00:28 +00:00
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void SetStartParameter(UUID scriptID, int startParam)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public int GetStartParameter(UUID scriptID)
|
|
|
|
|
|
{
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void SetScriptMinEventDelay(UUID scriptID, double minDelay)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void TriggerState(UUID scriptID, string newState)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void ApiResetScript(UUID scriptID)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void ResetScript(UUID scriptID)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public int AddListener(UUID scriptID, UUID hostObjectID, int channel, string name, UUID keyID, string message)
|
|
|
|
|
|
{
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void RemoveListener(UUID scriptID, int handle)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void RemoveListeners(UUID scriptID)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void SetListenerState(UUID scriptID, int handle, bool enabled)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void SensorOnce(UUID scriptID, UUID hostObjectID, string name, UUID keyID, int type, double range, double arc)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void SensorRepeat(UUID scriptID, UUID hostObjectID, string name, UUID keyID, int type, double range, double arc, double rate)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void SensorRemove(UUID scriptID)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|