mirror of
https://github.com/opensim/opensim.git
synced 2026-06-09 13:35:49 +08:00
Some more work on new ScriptEngine.
This commit is contained in:
86
OpenSim/Grid/ScriptServer/ScriptServer/Region/RegionBase.cs
Normal file
86
OpenSim/Grid/ScriptServer/ScriptServer/Region/RegionBase.cs
Normal file
@@ -0,0 +1,86 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace OpenSim.Grid.ScriptServer
|
||||
{
|
||||
public abstract class RegionBase
|
||||
{
|
||||
// These are events that the region needs to have
|
||||
|
||||
// TEMP: Using System.Delegate -- needs replacing with a real delegate
|
||||
public delegate void DefaultDelegate();
|
||||
|
||||
public event DefaultDelegate onScriptRez;
|
||||
public event DefaultDelegate onstate_entry;
|
||||
public event DefaultDelegate onstate_exit;
|
||||
public event DefaultDelegate ontouch_start;
|
||||
public event DefaultDelegate ontouch;
|
||||
public event DefaultDelegate ontouch_end;
|
||||
public event DefaultDelegate oncollision_start;
|
||||
public event DefaultDelegate oncollision;
|
||||
public event DefaultDelegate oncollision_end;
|
||||
public event DefaultDelegate onland_collision_start;
|
||||
public event DefaultDelegate onland_collision;
|
||||
public event DefaultDelegate onland_collision_end;
|
||||
public event DefaultDelegate ontimer;
|
||||
public event DefaultDelegate onlisten;
|
||||
public event DefaultDelegate onon_rez;
|
||||
public event DefaultDelegate onsensor;
|
||||
public event DefaultDelegate onno_sensor;
|
||||
public event DefaultDelegate oncontrol;
|
||||
public event DefaultDelegate onmoney;
|
||||
public event DefaultDelegate onemail;
|
||||
public event DefaultDelegate onat_target;
|
||||
public event DefaultDelegate onnot_at_target;
|
||||
public event DefaultDelegate onat_rot_target;
|
||||
public event DefaultDelegate onnot_at_rot_target;
|
||||
public event DefaultDelegate onrun_time_permissions;
|
||||
public event DefaultDelegate onchanged;
|
||||
public event DefaultDelegate onattach;
|
||||
public event DefaultDelegate ondataserver;
|
||||
public event DefaultDelegate onlink_message;
|
||||
public event DefaultDelegate onmoving_start;
|
||||
public event DefaultDelegate onmoving_end;
|
||||
public event DefaultDelegate onobject_rez;
|
||||
public event DefaultDelegate onremote_data;
|
||||
public event DefaultDelegate onhttp_response;
|
||||
|
||||
|
||||
public void ScriptRez() { onScriptRez(); }
|
||||
public void state_entry() { onstate_entry(); }
|
||||
public void state_exit() { onstate_exit(); }
|
||||
public void touch_start() { ontouch_start(); }
|
||||
public void touch() { ontouch(); }
|
||||
public void touch_end() { ontouch_end(); }
|
||||
public void collision_start() { oncollision_start(); }
|
||||
public void collision() { oncollision(); }
|
||||
public void collision_end() { oncollision_end(); }
|
||||
public void land_collision_start() { onland_collision_start(); }
|
||||
public void land_collision() { onland_collision(); }
|
||||
public void land_collision_end() { onland_collision_end(); }
|
||||
public void timer() { ontimer(); }
|
||||
public void listen() { onlisten(); }
|
||||
public void on_rez() { onon_rez(); }
|
||||
public void sensor() { onsensor(); }
|
||||
public void no_sensor() { onno_sensor(); }
|
||||
public void control() { oncontrol(); }
|
||||
public void money() { onmoney(); }
|
||||
public void email() { onemail(); }
|
||||
public void at_target() { onat_target(); }
|
||||
public void not_at_target() { onnot_at_target(); }
|
||||
public void at_rot_target() { onat_rot_target(); }
|
||||
public void not_at_rot_target() { onnot_at_rot_target(); }
|
||||
public void run_time_permissions() { onrun_time_permissions(); }
|
||||
public void changed() { onchanged(); }
|
||||
public void attach() { onattach(); }
|
||||
public void dataserver() { ondataserver(); }
|
||||
public void link_message() { onlink_message(); }
|
||||
public void moving_start() { onmoving_start(); }
|
||||
public void moving_end() { onmoving_end(); }
|
||||
public void object_rez() { onobject_rez(); }
|
||||
public void remote_data() { onremote_data(); }
|
||||
public void http_response() { onhttp_response(); }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,15 +1,34 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Text;
|
||||
using OpenSim.Framework.Console;
|
||||
|
||||
namespace OpenSim.Grid.ScriptServer
|
||||
{
|
||||
// Maintains connection and communication to a region
|
||||
internal class RegionConnectionManager
|
||||
{
|
||||
|
||||
public RegionConnectionManager()
|
||||
public class RegionConnectionManager: RegionBase
|
||||
{
|
||||
private LogBase m_log;
|
||||
private ScriptServerMain m_ScriptServerMain;
|
||||
private object m_Connection;
|
||||
public RegionConnectionManager(ScriptServerMain scm, LogBase logger, object Connection)
|
||||
{
|
||||
m_ScriptServerMain = scm;
|
||||
m_log = logger;
|
||||
m_Connection = Connection;
|
||||
}
|
||||
|
||||
private void DataReceived(object objectID, object scriptID)
|
||||
{
|
||||
// TODO: HOW DO WE RECEIVE DATA? ASYNC?
|
||||
// ANYHOW WE END UP HERE?
|
||||
|
||||
// NEW SCRIPT? ASK SCRIPTENGINE TO INITIALIZE IT
|
||||
ScriptRez();
|
||||
|
||||
// EVENT? DELIVER EVENT DIRECTLY TO SCRIPTENGINE
|
||||
touch_start();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ namespace OpenSim.Grid.ScriptServer
|
||||
{
|
||||
private Thread listenThread;
|
||||
|
||||
private List<RegionConnectionManager> Regions = new List<RegionConnectionManager>();
|
||||
private List<RegionConnectionManager> Regions = new List<RegionConnectionManager>();
|
||||
|
||||
private LogBase m_log;
|
||||
private ScriptServerMain m_ScriptServerMain;
|
||||
@@ -93,6 +93,9 @@ namespace OpenSim.Grid.ScriptServer
|
||||
// ~ ask scriptengines if they will accept script?
|
||||
// - Add script to shared communication channel towards that region
|
||||
|
||||
|
||||
// TODO: FAKING A CONNECTION
|
||||
Regions.Add(new RegionConnectionManager(m_ScriptServerMain, m_log, null));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace OpenSim.Grid.ScriptServer
|
||||
{
|
||||
public interface ScriptEngineInterface
|
||||
{
|
||||
//void InitializeEngine(Scene Sceneworld, LogBase logger);
|
||||
void InitializeEngine(RegionConnectionManager Region, LogBase logger);
|
||||
void Shutdown();
|
||||
// void StartScript(string ScriptID, IScriptHost ObjectID);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user