From dc151903650525c20fe26b2b17924a990e2d1a0a Mon Sep 17 00:00:00 2001 From: Adam Frisby Date: Sun, 31 May 2009 12:53:05 +0000 Subject: [PATCH] * Adds MRM scripting commands, World.Objects.Create(Vector3 position) and World.Objects.Create(Vector3 position, Quaternion rotation). These rez a 'default box' object at the specified coordinates, and return the associated IObject. --- .../Minimodule/Interfaces/IObjectAccessor.cs | 2 ++ .../Scripting/Minimodule/ObjectAccessor.cs | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/Interfaces/IObjectAccessor.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/Interfaces/IObjectAccessor.cs index 7aed41b5a5..a6c8c3661f 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/Interfaces/IObjectAccessor.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/Interfaces/IObjectAccessor.cs @@ -35,5 +35,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule IObject this[int index] { get; } IObject this[uint index] { get; } IObject this[UUID index] { get; } + IObject Create(Vector3 position); + IObject Create(Vector3 position, Quaternion rotation); } } \ No newline at end of file diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/ObjectAccessor.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/ObjectAccessor.cs index a64a1c2d4d..4638ad04e1 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/ObjectAccessor.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/ObjectAccessor.cs @@ -29,6 +29,7 @@ using System; using System.Collections; using System.Collections.Generic; using OpenMetaverse; +using OpenSim.Framework; using OpenSim.Region.Framework.Scenes; using IEnumerable=System.Collections.IEnumerable; @@ -108,6 +109,25 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule } } + public IObject Create(Vector3 position) + { + return Create(position, Quaternion.Identity); + } + + public IObject Create(Vector3 position, Quaternion rotation) + { + + SceneObjectGroup sog = m_scene.AddNewPrim(m_scene.RegionInfo.MasterAvatarAssignedUUID, + UUID.Zero, + position, + rotation, + PrimitiveBaseShape.CreateBox()); + + IObject ret = new SOPObject(m_scene, sog.LocalId); + + return ret; + } + public IEnumerator GetEnumerator() { return new IObjEnum(m_scene);