- 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
112 lines
3.5 KiB
TypeScript
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});
|
|
}
|
|
}
|