| Attached Files | region-modules-object-rez.patch [^] (2,660 bytes) 2012-08-22 12:45 [Show Content] [Hide Content]From e294556d5d9ffea918a98c7bbcd5f199085acca0 Mon Sep 17 00:00:00 2001
From: SignpostMarv <github@signpostmarv.name>
Date: Wed, 22 Aug 2012 12:31:22 +0100
Subject: [PATCH] letting region modules fire object_rez events
---
OpenSim/Region/Framework/Interfaces/IScriptModuleComms.cs | 8 ++++++++
.../Scripting/ScriptModuleComms/ScriptModuleCommsModule.cs | 12 ++++++++++++
2 files changed, 20 insertions(+)
diff --git a/OpenSim/Region/Framework/Interfaces/IScriptModuleComms.cs b/OpenSim/Region/Framework/Interfaces/IScriptModuleComms.cs
index ed71a95..8a9d46c 100644
--- a/OpenSim/Region/Framework/Interfaces/IScriptModuleComms.cs
+++ b/OpenSim/Region/Framework/Interfaces/IScriptModuleComms.cs
@@ -67,6 +67,14 @@ namespace OpenSim.Region.Framework.Interfaces
/// <param name="key"></param>
void DispatchReply(UUID scriptId, int code, string text, string key);
+ /// <summary>
+ /// Fires the object_rez event
+ /// </summary>
+ /// <param name="rezzer"></param>
+ /// <param name="rezzed"></param>
+ /// <remarks>rezzed.FromPartID must already match rezzer.UUID for this to work</remarks>
+ void DispatchObjectRez(Scenes.SceneObjectPart rezzer, Scenes.SceneObjectGroup rezzed);
+
/// For constants
void RegisterConstant(string cname, object value);
object LookupModConstant(string cname);
diff --git a/OpenSim/Region/OptionalModules/Scripting/ScriptModuleComms/ScriptModuleCommsModule.cs b/OpenSim/Region/OptionalModules/Scripting/ScriptModuleComms/ScriptModuleCommsModule.cs
index 705a847..13a6d89 100644
--- a/OpenSim/Region/OptionalModules/Scripting/ScriptModuleComms/ScriptModuleCommsModule.cs
+++ b/OpenSim/Region/OptionalModules/Scripting/ScriptModuleComms/ScriptModuleCommsModule.cs
@@ -130,6 +130,18 @@ namespace OpenSim.Region.OptionalModules.Scripting.ScriptModuleComms
m_scriptModule.PostScriptEvent(script, "link_message", args);
}
+ public void DispatchObjectRez(SceneObjectPart rezzing, SceneObjectGroup rezzed)
+ {
+ if (m_scriptModule == null)
+ return; // script module isn't there for whatever reason
+ else if (rezzed.FromPartID != rezzing.UUID)
+ return; // the rezzed prim was not rezzed by the rezzing prim
+
+ Object[] args = new Object[] { rezzed.UUID.ToString() };
+
+ m_scriptModule.PostObjectEvent(rezzing.UUID, "object_rez", args);
+ }
+
public void RegisterScriptInvocation(object target, string meth)
{
MethodInfo mi = target.GetType().GetMethod(meth,
--
1.7.11.msysgit.1
|