* Implements World.Parcels[] array for MRM scripting.

This commit is contained in:
Adam Frisby
2009-04-06 07:17:23 +00:00
parent 918c466881
commit 9e51c2db95
8 changed files with 81 additions and 5 deletions

View File

@@ -5,11 +5,11 @@ using OpenMetaverse;
namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
{
interface IParcel
public interface IParcel
{
string Name { get; set; }
string Description { get; set; }
ISocialEntity Owner { get; set; }
bool[,] Bitmap { get; set; }
bool[,] Bitmap { get; }
}
}

View File

@@ -5,7 +5,7 @@ using OpenMetaverse;
namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
{
interface ISocialEntity
public interface ISocialEntity
{
UUID GlobalID { get; }
string Name { get; }

View File

@@ -31,6 +31,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
{
IObjectAccessor Objects { get; }
IAvatar[] Avatars { get; }
IParcel[] Parcels { get; }
IHeightmap Terrain { get; }
}
}

View File

@@ -0,0 +1,45 @@
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
{
class LOParcel : IParcel
{
private readonly Scene m_scene;
private readonly int m_parcelID;
public LOParcel(Scene m_scene, int m_parcelID)
{
this.m_scene = m_scene;
this.m_parcelID = m_parcelID;
}
private ILandObject GetLO()
{
return m_scene.LandChannel.GetLandObject(m_parcelID);
}
public string Name
{
get { return GetLO().landData.Name; }
set { GetLO().landData.Name = value; }
}
public string Description
{
get { return GetLO().landData.Description; }
set { GetLO().landData.Description = value; }
}
public ISocialEntity Owner
{
get { throw new System.NotImplementedException(); }
set { throw new System.NotImplementedException(); }
}
public bool[,] Bitmap
{
get { return GetLO().landBitmap; }
}
}
}

View File

@@ -26,6 +26,7 @@
*/
using System.Collections.Generic;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
@@ -49,6 +50,23 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
get { return m_objs; }
}
public IParcel[] Parcels
{
get
{
List<ILandObject> m_los = m_internalScene.LandChannel.AllParcels();
List<IParcel> m_parcels = new List<IParcel>(m_los.Count);
foreach (ILandObject landObject in m_los)
{
m_parcels.Add(new LOParcel(m_internalScene, landObject.landData.LocalID));
}
return m_parcels.ToArray();
}
}
public IAvatar[] Avatars
{
get