* Implements World.Parcels[] array for MRM scripting.
parent
918c466881
commit
9e51c2db95
|
@ -86,6 +86,15 @@ namespace OpenSim.Region.CoreModules.World.Land
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ILandObject GetLandObject(int localID)
|
||||||
|
{
|
||||||
|
if (m_landManagementModule != null)
|
||||||
|
{
|
||||||
|
return m_landManagementModule.GetLandObject(localID);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
public ILandObject GetLandObject(int x, int y)
|
public ILandObject GetLandObject(int x, int y)
|
||||||
{
|
{
|
||||||
if (m_landManagementModule != null)
|
if (m_landManagementModule != null)
|
||||||
|
|
|
@ -44,6 +44,8 @@ namespace OpenSim.Region.Framework.Interfaces
|
||||||
/// <returns>Land object at the point supplied</returns>
|
/// <returns>Land object at the point supplied</returns>
|
||||||
ILandObject GetLandObject(int x, int y);
|
ILandObject GetLandObject(int x, int y);
|
||||||
|
|
||||||
|
ILandObject GetLandObject(int localID);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Get the land object at the specified point
|
/// Get the land object at the specified point
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -5,11 +5,11 @@ using OpenMetaverse;
|
||||||
|
|
||||||
namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
|
namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
|
||||||
{
|
{
|
||||||
interface IParcel
|
public interface IParcel
|
||||||
{
|
{
|
||||||
string Name { get; set; }
|
string Name { get; set; }
|
||||||
string Description { get; set; }
|
string Description { get; set; }
|
||||||
ISocialEntity Owner { 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
|
namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
|
||||||
{
|
{
|
||||||
interface ISocialEntity
|
public interface ISocialEntity
|
||||||
{
|
{
|
||||||
UUID GlobalID { get; }
|
UUID GlobalID { get; }
|
||||||
string Name { get; }
|
string Name { get; }
|
||||||
|
|
|
@ -31,6 +31,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
|
||||||
{
|
{
|
||||||
IObjectAccessor Objects { get; }
|
IObjectAccessor Objects { get; }
|
||||||
IAvatar[] Avatars { get; }
|
IAvatar[] Avatars { get; }
|
||||||
|
IParcel[] Parcels { get; }
|
||||||
IHeightmap Terrain { 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 System.Collections.Generic;
|
||||||
|
using OpenSim.Region.Framework.Interfaces;
|
||||||
using OpenSim.Region.Framework.Scenes;
|
using OpenSim.Region.Framework.Scenes;
|
||||||
|
|
||||||
namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
|
namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
|
||||||
|
@ -49,6 +50,23 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
|
||||||
get { return m_objs; }
|
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
|
public IAvatar[] Avatars
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
|
|
@ -40,6 +40,7 @@ namespace OpenSim.Tests.Common.Mock
|
||||||
public List<ILandObject> ParcelsNearPoint(Vector3 position) { return null; }
|
public List<ILandObject> ParcelsNearPoint(Vector3 position) { return null; }
|
||||||
public List<ILandObject> AllParcels() { return null; }
|
public List<ILandObject> AllParcels() { return null; }
|
||||||
public ILandObject GetLandObject(int x, int y) { return null; }
|
public ILandObject GetLandObject(int x, int y) { return null; }
|
||||||
|
public ILandObject GetLandObject(int localID) { return null; }
|
||||||
public ILandObject GetLandObject(float x, float y) { return null; }
|
public ILandObject GetLandObject(float x, float y) { return null; }
|
||||||
public bool IsLandPrimCountTainted() { return false; }
|
public bool IsLandPrimCountTainted() { return false; }
|
||||||
public bool IsForcefulBansAllowed() { return false; }
|
public bool IsForcefulBansAllowed() { return false; }
|
||||||
|
|
Loading…
Reference in New Issue