OpenSimMirror/OpenSim/Framework/LandData.cs

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;
}
}
}