Files
node-metaverse/lib/classes/public/Parcel.ts
Casper Warden da4cd459f1 - Add "GET" method to Caps
- New events: ObjectPhysicsDataEvent, ParcelPropertiesEvent, NewObjectEvent, ObjectUpdateEvent, ObjectKilledEvent
- Added getXML function to Color4, Vector2, Vector3, Vector4, GameObject, Region, Quaternion, UUID for opensim-compatible XML export
- Added TextureAnim and ParticleSystem decoding to the "full" ObjectStore
- Object store will automatically request missing "parent" prims
- "setPersist" - When persist is TRUE, the ObjectStore will not forget about "killed" prims - useful for region scanning
- Support for Flexible params, Light params, LightImage params, Mesh data, Sculpt maps
- Fixed object scale being incorrectly calculated
- Add terrain decoding (this was a ballache)
- Add parcel map decoding
- Add support for region windlight settings (region.environment)
- Add support for materials (normal / specular maps)
- Add getBuffer, getLong and bitwiseOr to UUID
- Added a circular-reference-safe JSONStringify to Utils
- Add XferFile capability to Circuit

PUBLIC API:

AssetCommands:
- Rework "downloadAsset" to detect failures
- NEW: downloadInventoryAsset() - uses TransferRequest for prim inventory items
- NEW: getMaterials() - resolves material UUIDs

RegionCommands:
- NEW: getTerrainTextures()
- NEW: exportSettings() - OpenSim XML export of region settings
- NEW: async getTerrain() - Get binary terrain heightmap, 256x256 float32
- resolveObjects() - now fetches task inventory contents too.
- resolveObjects() - fix calculation of land impact
- NEW: getObjectByLocalID(localID: number, timeout: number)
- NEW: getObjectByUUID(uuid: UUID, timeout: number)
- NEW: getParcels();
- NEW: pruneObjects - removes missing GameObjects from a list
- NEW: setPersist - prevent objectstore from forgetting about killed gameobjects
2018-10-31 11:28:24 +00:00

112 lines
3.5 KiB
TypeScript

import {Vector3} from '../Vector3';
import {UUID} from '../UUID';
import * as builder from 'xmlbuilder';
import * as LLSD from '@caspertech/llsd';
import {ParcelFlags} from '../../enums/ParcelFlags';
export class Parcel
{
LocalID: number;
ParcelID: UUID;
RegionDenyAgeUnverified: boolean;
MediaDesc: string;
MediaWidth: number;
MediaHeight: number;
MediaLoop: number;
MediaType: string;
ObscureMedia: number;
ObscureMusic: number;
AABBMax: Vector3;
AABBMin: Vector3;
AnyAVSounds: boolean;
Area: number;
AuctionID: number;
AuthBuyerID: UUID;
Bitmap: Buffer;
Category: number;
ClaimDate: number;
ClaimPrice: number;
Desc: string;
GroupAVSounds: boolean;
GroupID: UUID;
GroupPrims: number;
IsGroupOwned: boolean;
LandingType: number;
MaxPrims: number;
MediaAutoScale: number;
MediaID: UUID;
MediaURL: string;
MusicURL: string;
Name: string;
OtherCleanTime: number;
OtherCount: number;
OtherPrims: number;
OwnerID: UUID;
OwnerPrims: number;
ParcelFlags: ParcelFlags;
ParcelPrimBonus: number;
PassHours: number;
PassPrice: number;
PublicCount: number;
RegionDenyAnonymous: boolean;
RegionDenyIdentified: boolean;
RegionDenyTransacted: boolean;
RegionPushOverride: boolean;
RentPrice: number;
RequestResult: number;
SalePrice: number;
SeeAvs: boolean;
SelectedPrims: number;
SelfCount: number;
SequenceID: number;
SimWideMaxPrims: number;
SimWideTotalPrims: number;
SnapSelection: boolean;
SnapshotID: UUID;
Status: number;
TotalPrims: number;
UserLocation: Vector3;
UserLookAt: Vector3;
RegionAllowAccessOverride: boolean;
exportXML(): string
{
const document = builder.create('LandData');
document.ele('Area', this.Area);
document.ele('AuctionID', this.AuctionID);
document.ele('AuthBuyerID', this.AuthBuyerID.toString());
document.ele('Category', this.Category);
document.ele('ClaimDate', this.ClaimDate);
document.ele('ClaimPrice', this.ClaimPrice);
document.ele('GlobalID', this.ParcelID.toString());
document.ele('GroupID', this.GroupID.toString());
document.ele('IsGroupOwned', this.IsGroupOwned);
document.ele('Bitmap', this.Bitmap.toString('base64'));
document.ele('Description', this.Desc);
document.ele('Flags', this.ParcelFlags);
document.ele('LandingType', this.LandingType);
document.ele('Name', this.Name);
document.ele('Status', this.Status);
document.ele('LocalID', this.LocalID);
document.ele('MediaAutoScale', this.MediaAutoScale);
document.ele('MediaID', this.MediaID.toString());
document.ele('MediaURL', this.MediaURL);
document.ele('MusicURL', this.MusicURL);
document.ele('OwnerID', this.OwnerID.toString());
document.ele('ParcelAccessList');
document.ele('PassHours', this.PassHours);
document.ele('PassPrice', this.PassPrice);
document.ele('SalePrice', this.SalePrice);
document.ele('SnapshotID', this.SnapshotID.toString());
document.ele('UserLocation', this.UserLocation.toString());
document.ele('UserLookAt', this.UserLookAt.toString());
document.ele('Dwell', 0);
document.ele('OtherCleanTime', this.OtherCleanTime);
return document.end({pretty: true, allowEmpty: true});
}
}