* Implements "ID" semi-global within MRM scripts. This is tied to the 'state ID' for MRMs.
* Implements IPersistence interface, allows simple KeyValue access for MRM scripts to a more permanent datastore.0.6.5-rc1
parent
5f4cab6ed3
commit
7e91f41535
|
@ -25,10 +25,7 @@
|
|||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using log4net;
|
||||
|
||||
namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
|
||||
{
|
||||
interface IPersistence
|
||||
{
|
||||
Object Get(MRMBase state, Guid storageID);
|
||||
Object Get(MRMBase state);
|
||||
|
||||
/// <summary>
|
||||
/// Stores 'data' into the persistence system
|
||||
/// associated with this object, however saved
|
||||
/// under the ID 'storageID'. This data may
|
||||
/// be accessed by other scripts however.
|
||||
/// </summary>
|
||||
/// <param name="state"></param>
|
||||
/// <param name="storageID"></param>
|
||||
/// <param name="data"></param>
|
||||
void Put(MRMBase state, Guid storageID, Object data);
|
||||
|
||||
/// <summary>
|
||||
/// Stores 'data' into the persistence system
|
||||
/// using the default ID for this script.
|
||||
/// </summary>
|
||||
/// <param name="state"></param>
|
||||
/// <param name="data"></param>
|
||||
void Put(MRMBase state, Object data);
|
||||
}
|
||||
}
|
|
@ -25,17 +25,21 @@
|
|||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
using OpenMetaverse;
|
||||
|
||||
namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
|
||||
{
|
||||
public abstract class MRMBase
|
||||
{
|
||||
private IWorld m_world;
|
||||
private IHost m_host;
|
||||
private UUID m_id;
|
||||
|
||||
public void InitMiniModule(IWorld world, IHost host)
|
||||
public void InitMiniModule(IWorld world, IHost host, UUID uniqueID)
|
||||
{
|
||||
m_world = world;
|
||||
m_host = host;
|
||||
m_id = uniqueID;
|
||||
}
|
||||
|
||||
protected IWorld World
|
||||
|
@ -48,6 +52,11 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
|
|||
get { return m_host; }
|
||||
}
|
||||
|
||||
public UUID ID
|
||||
{
|
||||
get { return m_id; }
|
||||
}
|
||||
|
||||
public abstract void Start();
|
||||
public abstract void Stop();
|
||||
}
|
||||
|
|
|
@ -82,7 +82,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
|
|||
CompileFromDotNetText(script, itemID.ToString()),
|
||||
"OpenSim.MiniModule");
|
||||
m_log.Info("[MRM] Created MRM Instance");
|
||||
mmb.InitMiniModule(m_world, m_host);
|
||||
mmb.InitMiniModule(m_world, m_host, itemID);
|
||||
m_scripts[itemID] = mmb;
|
||||
|
||||
m_log.Info("[MRM] Starting MRM");
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
using System.Collections.Generic;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using OpenMetaverse;
|
||||
using OpenSim.Framework;
|
||||
using OpenSim.Region.Framework.Scenes;
|
||||
|
||||
namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
|
||||
{
|
||||
class SOPObject : IObject
|
||||
class SOPObject : MarshalByRefObject, IObject
|
||||
{
|
||||
private readonly Scene m_rootScene;
|
||||
private readonly uint m_localID;
|
||||
|
|
Loading…
Reference in New Issue