Files
opensim/OpenSim/Framework/LandData.cs
Melanie Thielker efe3f3eb2a Megapatch. :) Fix skull attachment editing. Streamline Object terse updates.
Add rezzing time to objects. Add Object return and traffic fields to land
database. Add plumbing for auto return. Implement auto return.
Contains a migration. May contain nuts.
2008-10-18 05:51:36 +00:00

485 lines
13 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();
private int _dwell = 0;
private int _otherCleanTime = 0;
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 int Dwell {
get {
return _dwell;
}
set {
_dwell = value;
}
}
public int OtherCleanTime {
get {
return _otherCleanTime;
}
set {
_otherCleanTime = 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._otherCleanTime = _otherCleanTime;
landData._dwell = _dwell;
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;
}
}
}