463 lines
12 KiB
C#
463 lines
12 KiB
C#
/*
|
|
* Copyright (c) Contributors, http://opensimulator.org/
|
|
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions are met:
|
|
* * Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
* * Redistributions in binary form must reproduce the above copyright
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
* documentation and/or other materials provided with the distribution.
|
|
* * Neither the name of the OpenSim Project nor the
|
|
* names of its contributors may be used to endorse or promote products
|
|
* derived from this software without specific prior written permission.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
|
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
|
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using OpenMetaverse;
|
|
|
|
namespace OpenSim.Framework
|
|
{
|
|
public class LandData
|
|
{
|
|
private Vector3 _AABBMax = new Vector3();
|
|
private Vector3 _AABBMin = new Vector3();
|
|
private int _area = 0;
|
|
private uint _auctionID = 0; //Unemplemented. If set to 0, not being auctioned
|
|
private UUID _authBuyerID = UUID.Zero; //Unemplemented. Authorized Buyer's UUID
|
|
private Parcel.ParcelCategory _category = new Parcel.ParcelCategory(); //Unemplemented. Parcel's chosen category
|
|
private int _claimDate = 0;
|
|
private int _claimPrice = 0; //Unemplemented
|
|
private UUID _globalID = UUID.Zero;
|
|
private UUID _groupID = UUID.Zero; //Unemplemented
|
|
private int _groupPrims = 0;
|
|
private bool _isGroupOwned = false;
|
|
private byte[] _bitmap = new byte[512];
|
|
private string _description = String.Empty;
|
|
|
|
|
|
private uint _flags = (uint) Parcel.ParcelFlags.AllowFly | (uint) Parcel.ParcelFlags.AllowLandmark |
|
|
(uint) Parcel.ParcelFlags.AllowAPrimitiveEntry |
|
|
(uint) Parcel.ParcelFlags.AllowDeedToGroup | (uint) Parcel.ParcelFlags.AllowTerraform |
|
|
(uint) Parcel.ParcelFlags.CreateObjects | (uint) Parcel.ParcelFlags.AllowOtherScripts |
|
|
(uint) Parcel.ParcelFlags.SoundLocal;
|
|
|
|
private byte _landingType = 0;
|
|
private string _name = "Your Parcel";
|
|
private Parcel.ParcelStatus _status = Parcel.ParcelStatus.Leased;
|
|
private int _localID = 0;
|
|
private byte _mediaAutoScale = 0;
|
|
private UUID _mediaID = UUID.Zero;
|
|
|
|
private string _mediaURL = String.Empty;
|
|
private string _musicURL = String.Empty;
|
|
private int _otherPrims = 0;
|
|
private UUID _ownerID = UUID.Zero;
|
|
private int _ownerPrims = 0;
|
|
private List<ParcelManager.ParcelAccessEntry> _parcelAccessList = new List<ParcelManager.ParcelAccessEntry>();
|
|
private float _passHours = 0;
|
|
private int _passPrice = 0;
|
|
private int _salePrice = 0; //Unemeplemented. Parcels price.
|
|
private int _selectedPrims = 0;
|
|
private int _simwideArea = 0;
|
|
private int _simwidePrims = 0;
|
|
private UUID _snapshotID = UUID.Zero;
|
|
private Vector3 _userLocation = new Vector3();
|
|
private Vector3 _userLookAt = new Vector3();
|
|
|
|
public Vector3 AABBMax {
|
|
get {
|
|
return _AABBMax;
|
|
}
|
|
set {
|
|
_AABBMax = value;
|
|
}
|
|
}
|
|
|
|
public Vector3 AABBMin {
|
|
get {
|
|
return _AABBMin;
|
|
}
|
|
set {
|
|
_AABBMin = value;
|
|
}
|
|
}
|
|
|
|
public int Area {
|
|
get {
|
|
return _area;
|
|
}
|
|
set {
|
|
_area = value;
|
|
}
|
|
}
|
|
|
|
public uint AuctionID {
|
|
get {
|
|
return _auctionID;
|
|
}
|
|
set {
|
|
_auctionID = value;
|
|
}
|
|
}
|
|
|
|
public UUID AuthBuyerID {
|
|
get {
|
|
return _authBuyerID;
|
|
}
|
|
set {
|
|
_authBuyerID = value;
|
|
}
|
|
}
|
|
|
|
public OpenMetaverse.Parcel.ParcelCategory Category {
|
|
get {
|
|
return _category;
|
|
}
|
|
set {
|
|
_category = value;
|
|
}
|
|
}
|
|
|
|
public int ClaimDate {
|
|
get {
|
|
return _claimDate;
|
|
}
|
|
set {
|
|
_claimDate = value;
|
|
}
|
|
}
|
|
|
|
public int ClaimPrice {
|
|
get {
|
|
return _claimPrice;
|
|
}
|
|
set {
|
|
_claimPrice = value;
|
|
}
|
|
}
|
|
|
|
public UUID GlobalID {
|
|
get {
|
|
return _globalID;
|
|
}
|
|
set {
|
|
_globalID = value;
|
|
}
|
|
}
|
|
|
|
public UUID GroupID {
|
|
get {
|
|
return _groupID;
|
|
}
|
|
set {
|
|
_groupID = value;
|
|
}
|
|
}
|
|
|
|
public int GroupPrims {
|
|
get {
|
|
return _groupPrims;
|
|
}
|
|
set {
|
|
_groupPrims = value;
|
|
}
|
|
}
|
|
|
|
public bool IsGroupOwned {
|
|
get {
|
|
return _isGroupOwned;
|
|
}
|
|
set {
|
|
_isGroupOwned = value;
|
|
}
|
|
}
|
|
|
|
public byte[] Bitmap {
|
|
get {
|
|
return _bitmap;
|
|
}
|
|
set {
|
|
_bitmap = value;
|
|
}
|
|
}
|
|
|
|
public string Description {
|
|
get {
|
|
return _description;
|
|
}
|
|
set {
|
|
_description = value;
|
|
}
|
|
}
|
|
|
|
public uint Flags {
|
|
get {
|
|
return _flags;
|
|
}
|
|
set {
|
|
_flags = value;
|
|
}
|
|
}
|
|
|
|
public byte LandingType {
|
|
get {
|
|
return _landingType;
|
|
}
|
|
set {
|
|
_landingType = value;
|
|
}
|
|
}
|
|
|
|
public string Name {
|
|
get {
|
|
return _name;
|
|
}
|
|
set {
|
|
_name = value;
|
|
}
|
|
}
|
|
|
|
public OpenMetaverse.Parcel.ParcelStatus Status {
|
|
get {
|
|
return _status;
|
|
}
|
|
set {
|
|
_status = value;
|
|
}
|
|
}
|
|
|
|
public int LocalID {
|
|
get {
|
|
return _localID;
|
|
}
|
|
set {
|
|
_localID = value;
|
|
}
|
|
}
|
|
|
|
public byte MediaAutoScale {
|
|
get {
|
|
return _mediaAutoScale;
|
|
}
|
|
set {
|
|
_mediaAutoScale = value;
|
|
}
|
|
}
|
|
|
|
public UUID MediaID {
|
|
get {
|
|
return _mediaID;
|
|
}
|
|
set {
|
|
_mediaID = value;
|
|
}
|
|
}
|
|
|
|
public string MediaURL {
|
|
get {
|
|
return _mediaURL;
|
|
}
|
|
set {
|
|
_mediaURL = value;
|
|
}
|
|
}
|
|
|
|
public string MusicURL {
|
|
get {
|
|
return _musicURL;
|
|
}
|
|
set {
|
|
_musicURL = value;
|
|
}
|
|
}
|
|
|
|
public int OtherPrims {
|
|
get {
|
|
return _otherPrims;
|
|
}
|
|
set {
|
|
_otherPrims = value;
|
|
}
|
|
}
|
|
|
|
public UUID OwnerID {
|
|
get {
|
|
return _ownerID;
|
|
}
|
|
set {
|
|
_ownerID = value;
|
|
}
|
|
}
|
|
|
|
public int OwnerPrims {
|
|
get {
|
|
return _ownerPrims;
|
|
}
|
|
set {
|
|
_ownerPrims = value;
|
|
}
|
|
}
|
|
|
|
public List<OpenMetaverse.ParcelManager.ParcelAccessEntry> ParcelAccessList {
|
|
get {
|
|
return _parcelAccessList;
|
|
}
|
|
set {
|
|
_parcelAccessList = value;
|
|
}
|
|
}
|
|
|
|
public float PassHours {
|
|
get {
|
|
return _passHours;
|
|
}
|
|
set {
|
|
_passHours = value;
|
|
}
|
|
}
|
|
|
|
public int PassPrice {
|
|
get {
|
|
return _passPrice;
|
|
}
|
|
set {
|
|
_passPrice = value;
|
|
}
|
|
}
|
|
|
|
public int SalePrice {
|
|
get {
|
|
return _salePrice;
|
|
}
|
|
set {
|
|
_salePrice = value;
|
|
}
|
|
}
|
|
|
|
public int SelectedPrims {
|
|
get {
|
|
return _selectedPrims;
|
|
}
|
|
set {
|
|
_selectedPrims = value;
|
|
}
|
|
}
|
|
|
|
public int SimwideArea {
|
|
get {
|
|
return _simwideArea;
|
|
}
|
|
set {
|
|
_simwideArea = value;
|
|
}
|
|
}
|
|
|
|
public int SimwidePrims {
|
|
get {
|
|
return _simwidePrims;
|
|
}
|
|
set {
|
|
_simwidePrims = value;
|
|
}
|
|
}
|
|
|
|
public UUID SnapshotID {
|
|
get {
|
|
return _snapshotID;
|
|
}
|
|
set {
|
|
_snapshotID = value;
|
|
}
|
|
}
|
|
|
|
public Vector3 UserLocation {
|
|
get {
|
|
return _userLocation;
|
|
}
|
|
set {
|
|
_userLocation = value;
|
|
}
|
|
}
|
|
|
|
public Vector3 UserLookAt {
|
|
get {
|
|
return _userLookAt;
|
|
}
|
|
set {
|
|
_userLookAt = value;
|
|
}
|
|
}
|
|
|
|
public LandData()
|
|
{
|
|
_globalID = UUID.Random();
|
|
}
|
|
|
|
public LandData Copy()
|
|
{
|
|
LandData landData = new LandData();
|
|
|
|
landData._AABBMax = _AABBMax;
|
|
landData._AABBMin = _AABBMin;
|
|
landData._area = _area;
|
|
landData._auctionID = _auctionID;
|
|
landData._authBuyerID = _authBuyerID;
|
|
landData._category = _category;
|
|
landData._claimDate = _claimDate;
|
|
landData._claimPrice = _claimPrice;
|
|
landData._globalID = _globalID;
|
|
landData._groupID = _groupID;
|
|
landData._groupPrims = _groupPrims;
|
|
landData._otherPrims = _otherPrims;
|
|
landData._ownerPrims = _ownerPrims;
|
|
landData._selectedPrims = _selectedPrims;
|
|
landData._isGroupOwned = _isGroupOwned;
|
|
landData._localID = _localID;
|
|
landData._landingType = _landingType;
|
|
landData._mediaAutoScale = _mediaAutoScale;
|
|
landData._mediaID = _mediaID;
|
|
landData._mediaURL = _mediaURL;
|
|
landData._musicURL = _musicURL;
|
|
landData._ownerID = _ownerID;
|
|
landData._bitmap = (byte[]) _bitmap.Clone();
|
|
landData._description = _description;
|
|
landData._flags = _flags;
|
|
landData._name = _name;
|
|
landData._status = _status;
|
|
landData._passHours = _passHours;
|
|
landData._passPrice = _passPrice;
|
|
landData._salePrice = _salePrice;
|
|
landData._snapshotID = _snapshotID;
|
|
landData._userLocation = _userLocation;
|
|
landData._userLookAt = _userLookAt;
|
|
|
|
landData._parcelAccessList.Clear();
|
|
foreach (ParcelManager.ParcelAccessEntry entry in _parcelAccessList)
|
|
{
|
|
ParcelManager.ParcelAccessEntry newEntry = new ParcelManager.ParcelAccessEntry();
|
|
newEntry.AgentID = entry.AgentID;
|
|
newEntry.Flags = entry.Flags;
|
|
newEntry.Time = entry.Time;
|
|
|
|
landData._parcelAccessList.Add(newEntry);
|
|
}
|
|
|
|
return landData;
|
|
}
|
|
}
|
|
}
|