mirror of
https://github.com/opensim/opensim.git
synced 2026-08-05 17:05:55 +08:00
* Implements World.Parcels[] array for MRM scripting.
This commit is contained in:
@@ -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; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ using OpenMetaverse;
|
||||
|
||||
namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
|
||||
{
|
||||
interface ISocialEntity
|
||||
public interface ISocialEntity
|
||||
{
|
||||
UUID GlobalID { get; }
|
||||
string Name { get; }
|
||||
|
||||
@@ -31,6 +31,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
|
||||
{
|
||||
IObjectAccessor Objects { get; }
|
||||
IAvatar[] Avatars { get; }
|
||||
IParcel[] Parcels { get; }
|
||||
IHeightmap Terrain { get; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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; }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user