From b898914715da7559c6b32f911c5eea3150a0dfef Mon Sep 17 00:00:00 2001 From: MW Date: Sun, 10 Jun 2007 12:31:16 +0000 Subject: part two of the folder renaming fix. --- OpenSim/OpenSim.Region/scripting/IScriptHandler.cs | 98 ++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 OpenSim/OpenSim.Region/scripting/IScriptHandler.cs (limited to 'OpenSim/OpenSim.Region/scripting/IScriptHandler.cs') diff --git a/OpenSim/OpenSim.Region/scripting/IScriptHandler.cs b/OpenSim/OpenSim.Region/scripting/IScriptHandler.cs new file mode 100644 index 0000000..6644649 --- /dev/null +++ b/OpenSim/OpenSim.Region/scripting/IScriptHandler.cs @@ -0,0 +1,98 @@ +using System; +using System.Collections.Generic; +using System.Text; +using libsecondlife; +using OpenSim.Physics.Manager; +using OpenSim.Region; +using Avatar=OpenSim.Region.Avatar; +using Primitive = OpenSim.Region.Primitive; + +namespace OpenSim.Region.Scripting +{ + public delegate void ScriptEventHandler(IScriptContext context); + + public class ScriptHandler : IScriptContext, IScriptEntity, IScriptReadonlyEntity + { + private World m_world; + private Script m_script; + private Entity m_entity; + + public LLUUID ScriptId + { + get + { + return m_script.ScriptId; + } + } + + public void OnFrame() + { + m_script.OnFrame(this); + } + + public ScriptHandler(Script script, Entity entity, World world) + { + m_script = script; + m_entity = entity; + m_world = world; + } + + #region IScriptContext Members + + IScriptEntity IScriptContext.Entity + { + get + { + return this; + } + } + + bool IScriptContext.TryGetRandomAvatar(out IScriptReadonlyEntity avatar) + { + foreach (Entity entity in m_world.Entities.Values ) + { + if( entity is Avatar ) + { + avatar = entity; + return true; + } + } + + avatar = null; + return false; + } + + #endregion + + #region IScriptEntity and IScriptReadonlyEntity Members + + public string Name + { + get + { + return m_entity.Name; + } + } + + public LLVector3 Pos + { + get + { + return m_entity.Pos; + } + + set + { + if (m_entity is Primitive) + { + Primitive prim = m_entity as Primitive; + // Of course, we really should have asked the physEngine if this is possible, and if not, returned false. + // prim.UpdatePosition( value ); + } + } + } + + #endregion + } + +} -- cgit v1.1