Remove dist directory from version control - it's causing too much clutter.
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -4,4 +4,4 @@
|
||||
/example/npm-debug.log
|
||||
/caspertech-node-metaverse-*.tgz
|
||||
/npm-debug.log
|
||||
/dist/classes/cache
|
||||
/dist
|
||||
36
dist/Bot.d.ts
vendored
36
dist/Bot.d.ts
vendored
@@ -1,36 +0,0 @@
|
||||
import { LoginResponse } from './classes/LoginResponse';
|
||||
import { LoginParameters } from './classes/LoginParameters';
|
||||
import { Region } from './classes/Region';
|
||||
import { ClientEvents } from './classes/ClientEvents';
|
||||
import { ClientCommands } from './classes/ClientCommands';
|
||||
import { BotOptionFlags } from './enums/BotOptionFlags';
|
||||
import { UUID } from './classes/UUID';
|
||||
import { Vector3 } from './classes/Vector3';
|
||||
export declare class Bot {
|
||||
private loginParams;
|
||||
private currentRegion;
|
||||
private agent;
|
||||
private ping;
|
||||
private pingNumber;
|
||||
private lastSuccessfulPing;
|
||||
private circuitSubscription;
|
||||
private options;
|
||||
private eventQueueRunning;
|
||||
clientEvents: ClientEvents;
|
||||
clientCommands: ClientCommands;
|
||||
private eventQueueWaits;
|
||||
private stay;
|
||||
private stayRegion;
|
||||
private stayPosition;
|
||||
constructor(login: LoginParameters, options: BotOptionFlags);
|
||||
stayPut(stay: boolean, regionName?: string, position?: Vector3): void;
|
||||
login(): Promise<LoginResponse>;
|
||||
changeRegion(region: Region, requested: boolean): Promise<void>;
|
||||
waitForEventQueue(timeout?: number): Promise<void>;
|
||||
private closeCircuit;
|
||||
private kicked;
|
||||
private disconnected;
|
||||
close(): Promise<void>;
|
||||
agentID(): UUID;
|
||||
connectToSim(requested: boolean): Promise<void>;
|
||||
}
|
||||
326
dist/Bot.js
vendored
326
dist/Bot.js
vendored
@@ -1,326 +0,0 @@
|
||||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const LoginHandler_1 = require("./LoginHandler");
|
||||
const PacketFlags_1 = require("./enums/PacketFlags");
|
||||
const UseCircuitCode_1 = require("./classes/messages/UseCircuitCode");
|
||||
const CompleteAgentMovement_1 = require("./classes/messages/CompleteAgentMovement");
|
||||
const Message_1 = require("./enums/Message");
|
||||
const LogoutRequest_1 = require("./classes/messages/LogoutRequest");
|
||||
const Utils_1 = require("./classes/Utils");
|
||||
const RegionHandshakeReply_1 = require("./classes/messages/RegionHandshakeReply");
|
||||
const RegionProtocolFlags_1 = require("./enums/RegionProtocolFlags");
|
||||
const AgentDataUpdateRequest_1 = require("./classes/messages/AgentDataUpdateRequest");
|
||||
const TeleportEvent_1 = require("./events/TeleportEvent");
|
||||
const ClientEvents_1 = require("./classes/ClientEvents");
|
||||
const TeleportEventType_1 = require("./enums/TeleportEventType");
|
||||
const ClientCommands_1 = require("./classes/ClientCommands");
|
||||
const DisconnectEvent_1 = require("./events/DisconnectEvent");
|
||||
const StartPingCheck_1 = require("./classes/messages/StartPingCheck");
|
||||
const FilterResponse_1 = require("./enums/FilterResponse");
|
||||
const UUID_1 = require("./classes/UUID");
|
||||
const Vector3_1 = require("./classes/Vector3");
|
||||
class Bot {
|
||||
constructor(login, options) {
|
||||
this.ping = null;
|
||||
this.pingNumber = 0;
|
||||
this.lastSuccessfulPing = 0;
|
||||
this.circuitSubscription = null;
|
||||
this.eventQueueRunning = false;
|
||||
this.eventQueueWaits = {};
|
||||
this.stay = false;
|
||||
this.stayRegion = '';
|
||||
this.stayPosition = new Vector3_1.Vector3();
|
||||
this.clientEvents = new ClientEvents_1.ClientEvents();
|
||||
this.loginParams = login;
|
||||
this.options = options;
|
||||
this.clientEvents.onEventQueueStateChange.subscribe((evt) => {
|
||||
this.eventQueueRunning = evt.active;
|
||||
for (const waitID of Object.keys(this.eventQueueWaits)) {
|
||||
try {
|
||||
clearTimeout(this.eventQueueWaits[waitID].timer);
|
||||
this.eventQueueWaits[waitID].resolve();
|
||||
delete this.eventQueueWaits[waitID];
|
||||
}
|
||||
catch (ignore) { }
|
||||
}
|
||||
});
|
||||
}
|
||||
stayPut(stay, regionName, position) {
|
||||
this.stay = stay;
|
||||
if (regionName !== undefined && position !== undefined) {
|
||||
this.stayRegion = regionName;
|
||||
this.stayPosition = position;
|
||||
}
|
||||
}
|
||||
login() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const loginHandler = new LoginHandler_1.LoginHandler(this.clientEvents, this.options);
|
||||
const response = yield loginHandler.Login(this.loginParams);
|
||||
this.currentRegion = response.region;
|
||||
this.agent = response.agent;
|
||||
this.clientCommands = new ClientCommands_1.ClientCommands(response.region, response.agent, this);
|
||||
return response;
|
||||
});
|
||||
}
|
||||
changeRegion(region, requested) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
this.closeCircuit();
|
||||
this.currentRegion = region;
|
||||
this.clientCommands = new ClientCommands_1.ClientCommands(this.currentRegion, this.agent, this);
|
||||
if (this.ping !== null) {
|
||||
clearInterval(this.ping);
|
||||
this.ping = null;
|
||||
}
|
||||
yield this.connectToSim(requested);
|
||||
});
|
||||
}
|
||||
waitForEventQueue(timeout = 1000) {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (this.eventQueueRunning) {
|
||||
resolve();
|
||||
}
|
||||
else {
|
||||
const waitID = UUID_1.UUID.random().toString();
|
||||
const newWait = {
|
||||
'resolve': resolve
|
||||
};
|
||||
newWait.timer = setTimeout(() => {
|
||||
delete this.eventQueueWaits[waitID];
|
||||
reject(new Error('Timeout'));
|
||||
}, timeout);
|
||||
this.eventQueueWaits[waitID] = newWait;
|
||||
}
|
||||
});
|
||||
}
|
||||
closeCircuit() {
|
||||
this.currentRegion.shutdown();
|
||||
if (this.circuitSubscription !== null) {
|
||||
this.circuitSubscription.unsubscribe();
|
||||
this.circuitSubscription = null;
|
||||
}
|
||||
delete this.currentRegion;
|
||||
this.clientCommands.shutdown();
|
||||
delete this.clientCommands;
|
||||
if (this.ping !== null) {
|
||||
clearInterval(this.ping);
|
||||
this.ping = null;
|
||||
}
|
||||
}
|
||||
kicked(message) {
|
||||
this.closeCircuit();
|
||||
this.agent.shutdown();
|
||||
delete this.agent;
|
||||
this.disconnected(false, message);
|
||||
}
|
||||
disconnected(requested, message) {
|
||||
const disconnectEvent = new DisconnectEvent_1.DisconnectEvent();
|
||||
disconnectEvent.requested = requested;
|
||||
disconnectEvent.message = message;
|
||||
if (this.clientEvents) {
|
||||
this.clientEvents.onDisconnected.next(disconnectEvent);
|
||||
}
|
||||
}
|
||||
close() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const circuit = this.currentRegion.circuit;
|
||||
const msg = new LogoutRequest_1.LogoutRequestMessage();
|
||||
msg.AgentData = {
|
||||
AgentID: this.agent.agentID,
|
||||
SessionID: circuit.sessionID
|
||||
};
|
||||
circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable);
|
||||
yield circuit.waitForMessage(Message_1.Message.LogoutReply, 5000);
|
||||
this.stayRegion = '';
|
||||
this.stayPosition = new Vector3_1.Vector3();
|
||||
this.closeCircuit();
|
||||
this.agent.shutdown();
|
||||
delete this.agent;
|
||||
this.disconnected(true, 'Logout completed');
|
||||
});
|
||||
}
|
||||
agentID() {
|
||||
return this.agent.agentID;
|
||||
}
|
||||
connectToSim(requested) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
this.agent.setCurrentRegion(this.currentRegion);
|
||||
const circuit = this.currentRegion.circuit;
|
||||
circuit.init();
|
||||
const msg = new UseCircuitCode_1.UseCircuitCodeMessage();
|
||||
msg.CircuitCode = {
|
||||
SessionID: circuit.sessionID,
|
||||
ID: this.agent.agentID,
|
||||
Code: circuit.circuitCode
|
||||
};
|
||||
yield circuit.waitForAck(circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable), 1000);
|
||||
const agentMovement = new CompleteAgentMovement_1.CompleteAgentMovementMessage();
|
||||
agentMovement.AgentData = {
|
||||
AgentID: this.agent.agentID,
|
||||
SessionID: circuit.sessionID,
|
||||
CircuitCode: circuit.circuitCode
|
||||
};
|
||||
circuit.sendMessage(agentMovement, PacketFlags_1.PacketFlags.Reliable);
|
||||
let agentPosition = null;
|
||||
let regionName = null;
|
||||
circuit.waitForMessage(Message_1.Message.AgentMovementComplete, 10000).then((agentMovementMsg) => {
|
||||
agentPosition = agentMovementMsg.Data.Position;
|
||||
if (regionName !== null) {
|
||||
if (this.stayRegion === '' || requested) {
|
||||
this.stayPut(this.stay, regionName, agentPosition);
|
||||
}
|
||||
}
|
||||
}).catch(() => {
|
||||
console.error('Timed out waiting for AgentMovementComplete');
|
||||
});
|
||||
const handshakeMessage = yield circuit.waitForMessage(Message_1.Message.RegionHandshake, 10000);
|
||||
const handshakeReply = new RegionHandshakeReply_1.RegionHandshakeReplyMessage();
|
||||
handshakeReply.AgentData = {
|
||||
AgentID: this.agent.agentID,
|
||||
SessionID: circuit.sessionID
|
||||
};
|
||||
handshakeReply.RegionInfo = {
|
||||
Flags: RegionProtocolFlags_1.RegionProtocolFlags.SelfAppearanceSupport | RegionProtocolFlags_1.RegionProtocolFlags.AgentAppearanceService
|
||||
};
|
||||
yield circuit.waitForAck(circuit.sendMessage(handshakeReply, PacketFlags_1.PacketFlags.Reliable), 10000);
|
||||
this.currentRegion.handshake(handshakeMessage).then(() => {
|
||||
regionName = this.currentRegion.regionName;
|
||||
console.log('Arrived in region: ' + regionName);
|
||||
if (agentPosition !== null) {
|
||||
if (this.stayRegion === '' || requested) {
|
||||
this.stayPut(this.stay, regionName, agentPosition);
|
||||
}
|
||||
}
|
||||
}).catch((error) => {
|
||||
console.error('Timed out getting handshake');
|
||||
console.error(error);
|
||||
});
|
||||
if (this.clientCommands !== null) {
|
||||
this.clientCommands.network.setBandwidth(1536000);
|
||||
}
|
||||
const agentRequest = new AgentDataUpdateRequest_1.AgentDataUpdateRequestMessage();
|
||||
agentRequest.AgentData = {
|
||||
AgentID: this.agent.agentID,
|
||||
SessionID: circuit.sessionID
|
||||
};
|
||||
circuit.sendMessage(agentRequest, PacketFlags_1.PacketFlags.Reliable);
|
||||
this.agent.setInitialAppearance();
|
||||
this.agent.circuitActive();
|
||||
this.lastSuccessfulPing = new Date().getTime();
|
||||
this.ping = setInterval(() => __awaiter(this, void 0, void 0, function* () {
|
||||
this.pingNumber++;
|
||||
if (this.pingNumber % 12 === 0 && this.stay) {
|
||||
if (this.currentRegion.regionName !== this.stayRegion) {
|
||||
console.log('Stay Put: Attempting to teleport to ' + this.stayRegion);
|
||||
this.clientCommands.teleport.teleportTo(this.stayRegion, this.stayPosition, this.stayPosition).then(() => {
|
||||
console.log('I found my way home.');
|
||||
}).catch(() => {
|
||||
console.log('Cannot teleport home right now.');
|
||||
});
|
||||
}
|
||||
}
|
||||
if (this.pingNumber > 255) {
|
||||
this.pingNumber = 0;
|
||||
}
|
||||
const ping = new StartPingCheck_1.StartPingCheckMessage();
|
||||
ping.PingID = {
|
||||
PingID: this.pingNumber,
|
||||
OldestUnacked: this.currentRegion.circuit.getOldestUnacked()
|
||||
};
|
||||
circuit.sendMessage(ping, PacketFlags_1.PacketFlags.Reliable);
|
||||
circuit.waitForMessage(Message_1.Message.CompletePingCheck, 10000, ((pingData, cpc) => {
|
||||
if (cpc.PingID.PingID === pingData.pingID) {
|
||||
this.lastSuccessfulPing = new Date().getTime();
|
||||
const pingTime = this.lastSuccessfulPing - pingData.timeSent;
|
||||
if (this.clientEvents !== null) {
|
||||
this.clientEvents.onCircuitLatency.next(pingTime);
|
||||
}
|
||||
return FilterResponse_1.FilterResponse.Finish;
|
||||
}
|
||||
return FilterResponse_1.FilterResponse.NoMatch;
|
||||
}).bind(this, {
|
||||
pingID: this.pingNumber,
|
||||
timeSent: new Date().getTime()
|
||||
})).then(() => {
|
||||
}).catch(() => {
|
||||
console.error('Timeout waiting for ping from the simulator - possible disconnection');
|
||||
});
|
||||
if ((new Date().getTime() - this.lastSuccessfulPing) > 60000) {
|
||||
this.kicked('Circuit Timeout');
|
||||
}
|
||||
}), 5000);
|
||||
this.circuitSubscription = circuit.subscribeToMessages([
|
||||
Message_1.Message.TeleportFailed,
|
||||
Message_1.Message.TeleportFinish,
|
||||
Message_1.Message.TeleportLocal,
|
||||
Message_1.Message.TeleportStart,
|
||||
Message_1.Message.TeleportProgress,
|
||||
Message_1.Message.TeleportCancel,
|
||||
Message_1.Message.KickUser
|
||||
], (packet) => {
|
||||
switch (packet.message.id) {
|
||||
case Message_1.Message.TeleportLocal:
|
||||
{
|
||||
const tpEvent = new TeleportEvent_1.TeleportEvent();
|
||||
tpEvent.message = '';
|
||||
tpEvent.eventType = TeleportEventType_1.TeleportEventType.TeleportCompleted;
|
||||
tpEvent.simIP = 'local';
|
||||
tpEvent.simPort = 0;
|
||||
tpEvent.seedCapability = '';
|
||||
if (this.clientEvents === null) {
|
||||
this.kicked('ClientEvents is null');
|
||||
}
|
||||
this.clientEvents.onTeleportEvent.next(tpEvent);
|
||||
break;
|
||||
}
|
||||
case Message_1.Message.TeleportStart:
|
||||
{
|
||||
const teleportStart = packet.message;
|
||||
const tpEvent = new TeleportEvent_1.TeleportEvent();
|
||||
tpEvent.message = '';
|
||||
tpEvent.eventType = TeleportEventType_1.TeleportEventType.TeleportStarted;
|
||||
tpEvent.simIP = '';
|
||||
tpEvent.simPort = 0;
|
||||
tpEvent.seedCapability = '';
|
||||
if (this.clientEvents === null) {
|
||||
this.kicked('ClientEvents is null');
|
||||
}
|
||||
this.clientEvents.onTeleportEvent.next(tpEvent);
|
||||
break;
|
||||
}
|
||||
case Message_1.Message.TeleportProgress:
|
||||
{
|
||||
const teleportProgress = packet.message;
|
||||
const message = Utils_1.Utils.BufferToStringSimple(teleportProgress.Info.Message);
|
||||
const tpEvent = new TeleportEvent_1.TeleportEvent();
|
||||
tpEvent.message = message;
|
||||
tpEvent.eventType = TeleportEventType_1.TeleportEventType.TeleportProgress;
|
||||
tpEvent.simIP = '';
|
||||
tpEvent.simPort = 0;
|
||||
tpEvent.seedCapability = '';
|
||||
if (this.clientEvents === null) {
|
||||
this.kicked('ClientEvents is null');
|
||||
}
|
||||
this.clientEvents.onTeleportEvent.next(tpEvent);
|
||||
break;
|
||||
}
|
||||
case Message_1.Message.KickUser:
|
||||
{
|
||||
const kickUser = packet.message;
|
||||
this.kicked(Utils_1.Utils.BufferToStringSimple(kickUser.UserInfo.Reason));
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.Bot = Bot;
|
||||
//# sourceMappingURL=Bot.js.map
|
||||
1
dist/Bot.js.map
vendored
1
dist/Bot.js.map
vendored
File diff suppressed because one or more lines are too long
11
dist/LoginHandler.d.ts
vendored
11
dist/LoginHandler.d.ts
vendored
@@ -1,11 +0,0 @@
|
||||
import { LoginParameters } from './classes/LoginParameters';
|
||||
import { LoginResponse } from './classes/LoginResponse';
|
||||
import { ClientEvents } from './classes/ClientEvents';
|
||||
import { BotOptionFlags } from './enums/BotOptionFlags';
|
||||
export declare class LoginHandler {
|
||||
private clientEvents;
|
||||
private options;
|
||||
static GenerateMAC(): string;
|
||||
constructor(ce: ClientEvents, options: BotOptionFlags);
|
||||
Login(params: LoginParameters): Promise<LoginResponse>;
|
||||
}
|
||||
82
dist/LoginHandler.js
vendored
82
dist/LoginHandler.js
vendored
@@ -1,82 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const xmlrpc = require("xmlrpc");
|
||||
const crypto = require("crypto");
|
||||
const LoginResponse_1 = require("./classes/LoginResponse");
|
||||
const uuid = require('uuid');
|
||||
class LoginHandler {
|
||||
static GenerateMAC() {
|
||||
const hexDigits = '0123456789ABCDEF';
|
||||
let macAddress = '';
|
||||
for (let i = 0; i < 6; i++) {
|
||||
macAddress += hexDigits.charAt(Math.round(Math.random() * 15));
|
||||
macAddress += hexDigits.charAt(Math.round(Math.random() * 15));
|
||||
if (i !== 5) {
|
||||
macAddress += ':';
|
||||
}
|
||||
}
|
||||
return macAddress;
|
||||
}
|
||||
constructor(ce, options) {
|
||||
this.clientEvents = ce;
|
||||
this.options = options;
|
||||
}
|
||||
Login(params) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const secureClientOptions = {
|
||||
host: 'login.agni.lindenlab.com',
|
||||
port: 443,
|
||||
path: '/cgi-bin/login.cgi',
|
||||
rejectUnauthorized: false
|
||||
};
|
||||
const client = xmlrpc.createSecureClient(secureClientOptions);
|
||||
client.methodCall('login_to_simulator', [
|
||||
{
|
||||
'first': params.firstName,
|
||||
'last': params.lastName,
|
||||
'passwd': '$1$' + crypto.createHash('md5').update(params.password.substr(0, 16)).digest('hex'),
|
||||
'start': params.start,
|
||||
'major': '0',
|
||||
'minor': '0',
|
||||
'patch': '1',
|
||||
'build': '0',
|
||||
'platform': 'win',
|
||||
'mac': LoginHandler.GenerateMAC(),
|
||||
'viewer_digest': uuid.v4(),
|
||||
'user_agent': 'nmv',
|
||||
'author': 'tom@caspertech.co.uk',
|
||||
'options': [
|
||||
'inventory-root',
|
||||
'inventory-skeleton',
|
||||
'inventory-lib-root',
|
||||
'inventory-lib-owner',
|
||||
'inventory-skel-lib',
|
||||
'gestures',
|
||||
'event_categories',
|
||||
'event_notifications',
|
||||
'classified_categories',
|
||||
'buddy-list',
|
||||
'ui-config',
|
||||
'login-flags',
|
||||
'global-textures'
|
||||
]
|
||||
}
|
||||
], (error, value) => {
|
||||
if (error) {
|
||||
reject(error);
|
||||
}
|
||||
else {
|
||||
if (!value['login'] || value['login'] === 'false') {
|
||||
reject(new Error(value['message']));
|
||||
}
|
||||
else {
|
||||
const response = new LoginResponse_1.LoginResponse(value, this.clientEvents, this.options);
|
||||
resolve(response);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.LoginHandler = LoginHandler;
|
||||
//# sourceMappingURL=LoginHandler.js.map
|
||||
1
dist/LoginHandler.js.map
vendored
1
dist/LoginHandler.js.map
vendored
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"LoginHandler.js","sourceRoot":"","sources":["../lib/LoginHandler.ts"],"names":[],"mappings":";;AAAA,iCAAiC;AACjC,iCAAiC;AAEjC,2DAAsD;AAGtD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAE7B,MAAa,YAAY;IAKrB,MAAM,CAAC,WAAW;QAEd,MAAM,SAAS,GAAG,kBAAkB,CAAC;QACrC,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAC1B;YACI,UAAU,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YAC/D,UAAU,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YAC/D,IAAI,CAAC,KAAK,CAAC,EACX;gBACI,UAAU,IAAI,GAAG,CAAC;aACrB;SACJ;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,YAAY,EAAgB,EAAE,OAAuB;QAEjD,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,MAAuB;QAEzB,OAAO,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAElD,MAAM,mBAAmB,GAAG;gBACxB,IAAI,EAAE,0BAA0B;gBAChC,IAAI,EAAE,GAAG;gBACT,IAAI,EAAE,oBAAoB;gBAC1B,kBAAkB,EAAE,KAAK;aAC5B,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;YAC9D,MAAM,CAAC,UAAU,CAAC,oBAAoB,EAClC;gBACI;oBACI,OAAO,EAAE,MAAM,CAAC,SAAS;oBACzB,MAAM,EAAE,MAAM,CAAC,QAAQ;oBACvB,QAAQ,EAAE,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;oBAC9F,OAAO,EAAE,MAAM,CAAC,KAAK;oBACrB,OAAO,EAAE,GAAG;oBACZ,OAAO,EAAE,GAAG;oBACZ,OAAO,EAAE,GAAG;oBACZ,OAAO,EAAE,GAAG;oBACZ,UAAU,EAAE,KAAK;oBACjB,KAAK,EAAE,YAAY,CAAC,WAAW,EAAE;oBACjC,eAAe,EAAE,IAAI,CAAC,EAAE,EAAE;oBAC1B,YAAY,EAAE,KAAK;oBACnB,QAAQ,EAAE,sBAAsB;oBAChC,SAAS,EAAE;wBACP,gBAAgB;wBAChB,oBAAoB;wBACpB,oBAAoB;wBACpB,qBAAqB;wBACrB,oBAAoB;wBACpB,UAAU;wBACV,kBAAkB;wBAClB,qBAAqB;wBACrB,uBAAuB;wBACvB,YAAY;wBACZ,WAAW;wBACX,aAAa;wBACb,iBAAiB;qBACpB;iBACJ;aACJ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAEhB,IAAI,KAAK,EACT;oBACI,MAAM,CAAC,KAAK,CAAC,CAAC;iBACjB;qBAED;oBACI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,OAAO,EACjD;wBACI,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;qBACvC;yBAED;wBACI,MAAM,QAAQ,GAAG,IAAI,6BAAa,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC3E,OAAO,CAAC,QAAQ,CAAC,CAAC;qBACrB;iBACJ;YACL,CAAC,CACJ,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;CAEJ;AA9FD,oCA8FC"}
|
||||
82
dist/classes/Agent.d.ts
vendored
82
dist/classes/Agent.d.ts
vendored
@@ -1,82 +0,0 @@
|
||||
/// <reference types="node" />
|
||||
import { UUID } from './UUID';
|
||||
import { Vector3 } from './Vector3';
|
||||
import { Inventory } from './Inventory';
|
||||
import Long = require('long');
|
||||
import { Wearable } from './Wearable';
|
||||
import { Region } from './Region';
|
||||
import { Packet } from './Packet';
|
||||
import { ClientEvents } from './ClientEvents';
|
||||
import Timer = NodeJS.Timer;
|
||||
import { ControlFlags } from '..';
|
||||
export declare class Agent {
|
||||
firstName: string;
|
||||
lastName: string;
|
||||
localID: number;
|
||||
agentID: UUID;
|
||||
accessMax: string;
|
||||
regionAccess: string;
|
||||
agentAccess: string;
|
||||
currentRegion: Region;
|
||||
chatSessions: {
|
||||
[key: string]: {
|
||||
[key: string]: {
|
||||
hasVoice: boolean;
|
||||
isModerator: boolean;
|
||||
};
|
||||
};
|
||||
};
|
||||
controlFlags: ControlFlags;
|
||||
openID: {
|
||||
'token'?: string;
|
||||
'url'?: string;
|
||||
};
|
||||
AOTransition: boolean;
|
||||
buddyList: {
|
||||
'buddyRightsGiven': boolean;
|
||||
'buddyID': UUID;
|
||||
'buddyRightsHas': boolean;
|
||||
}[];
|
||||
uiFlags: {
|
||||
'allowFirstLife'?: boolean;
|
||||
};
|
||||
cameraLookAt: Vector3;
|
||||
cameraCenter: Vector3;
|
||||
cameraLeftAxis: Vector3;
|
||||
cameraUpAxis: Vector3;
|
||||
cameraFar: number;
|
||||
maxGroups: number;
|
||||
agentFlags: number;
|
||||
startLocation: string;
|
||||
cofVersion: number;
|
||||
home: {
|
||||
'regionHandle'?: Long;
|
||||
'position'?: Vector3;
|
||||
'lookAt'?: Vector3;
|
||||
};
|
||||
snapshotConfigURL: string;
|
||||
inventory: Inventory;
|
||||
gestures: {
|
||||
assetID: UUID;
|
||||
itemID: UUID;
|
||||
}[];
|
||||
agentAppearanceService: string;
|
||||
wearables?: {
|
||||
attachments: Wearable[];
|
||||
serialNumber: number;
|
||||
};
|
||||
agentUpdateTimer: Timer | null;
|
||||
estateManager: boolean;
|
||||
private clientEvents;
|
||||
constructor(clientEvents: ClientEvents);
|
||||
setIsEstateManager(is: boolean): void;
|
||||
getSessionAgentCount(uuid: UUID): number;
|
||||
addChatSession(uuid: UUID): void;
|
||||
hasChatSession(uuid: UUID): boolean;
|
||||
setCurrentRegion(region: Region): void;
|
||||
circuitActive(): void;
|
||||
sendAgentUpdate(): void;
|
||||
shutdown(): void;
|
||||
onAnimState(packet: Packet): void;
|
||||
setInitialAppearance(): void;
|
||||
}
|
||||
214
dist/classes/Agent.js
vendored
214
dist/classes/Agent.js
vendored
@@ -1,214 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const UUID_1 = require("./UUID");
|
||||
const Vector3_1 = require("./Vector3");
|
||||
const Inventory_1 = require("./Inventory");
|
||||
const Message_1 = require("../enums/Message");
|
||||
const AgentUpdate_1 = require("./messages/AgentUpdate");
|
||||
const Quaternion_1 = require("./Quaternion");
|
||||
const AgentState_1 = require("../enums/AgentState");
|
||||
const BuiltInAnimations_1 = require("../enums/BuiltInAnimations");
|
||||
const LLSD = require("@caspertech/llsd");
|
||||
const AgentWearablesRequest_1 = require("./messages/AgentWearablesRequest");
|
||||
const InventorySortOrder_1 = require("../enums/InventorySortOrder");
|
||||
const RezSingleAttachmentFromInv_1 = require("./messages/RezSingleAttachmentFromInv");
|
||||
const AttachmentPoint_1 = require("../enums/AttachmentPoint");
|
||||
const Utils_1 = require("./Utils");
|
||||
const __1 = require("..");
|
||||
class Agent {
|
||||
constructor(clientEvents) {
|
||||
this.localID = 0;
|
||||
this.chatSessions = {};
|
||||
this.controlFlags = 0;
|
||||
this.openID = {};
|
||||
this.buddyList = [];
|
||||
this.uiFlags = {};
|
||||
this.cameraLookAt = new Vector3_1.Vector3([0.979546, 0.105575, -0.171303]);
|
||||
this.cameraCenter = new Vector3_1.Vector3([199.58, 203.95, 24.304]);
|
||||
this.cameraLeftAxis = new Vector3_1.Vector3([-1.0, 0.0, 0]);
|
||||
this.cameraUpAxis = new Vector3_1.Vector3([0.0, 0.0, 1.0]);
|
||||
this.cameraFar = 1;
|
||||
this.home = {};
|
||||
this.gestures = [];
|
||||
this.agentUpdateTimer = null;
|
||||
this.estateManager = false;
|
||||
this.inventory = new Inventory_1.Inventory(clientEvents, this);
|
||||
this.clientEvents = clientEvents;
|
||||
this.clientEvents.onGroupChatAgentListUpdate.subscribe((event) => {
|
||||
const str = event.groupID.toString();
|
||||
if (this.chatSessions[str] === undefined) {
|
||||
this.chatSessions[str] = {};
|
||||
}
|
||||
const agent = event.agentID.toString();
|
||||
if (event.entered) {
|
||||
this.chatSessions[str][agent] = {
|
||||
hasVoice: event.canVoiceChat,
|
||||
isModerator: event.isModerator
|
||||
};
|
||||
}
|
||||
else {
|
||||
delete this.chatSessions[str][agent];
|
||||
}
|
||||
});
|
||||
}
|
||||
setIsEstateManager(is) {
|
||||
this.estateManager = is;
|
||||
}
|
||||
getSessionAgentCount(uuid) {
|
||||
const str = uuid.toString();
|
||||
if (this.chatSessions[str] === undefined) {
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
return Object.keys(this.chatSessions[str]).length;
|
||||
}
|
||||
}
|
||||
addChatSession(uuid) {
|
||||
const str = uuid.toString();
|
||||
if (this.chatSessions[str] === undefined) {
|
||||
this.chatSessions[str] = {};
|
||||
}
|
||||
}
|
||||
hasChatSession(uuid) {
|
||||
const str = uuid.toString();
|
||||
return !(this.chatSessions[str] === undefined);
|
||||
}
|
||||
setCurrentRegion(region) {
|
||||
this.currentRegion = region;
|
||||
this.currentRegion.circuit.subscribeToMessages([
|
||||
Message_1.Message.AvatarAnimation
|
||||
], this.onAnimState.bind(this));
|
||||
}
|
||||
circuitActive() {
|
||||
this.agentUpdateTimer = setInterval(this.sendAgentUpdate.bind(this), 1000);
|
||||
}
|
||||
sendAgentUpdate() {
|
||||
if (!this.currentRegion) {
|
||||
return;
|
||||
}
|
||||
const circuit = this.currentRegion.circuit;
|
||||
const agentUpdate = new AgentUpdate_1.AgentUpdateMessage();
|
||||
agentUpdate.AgentData = {
|
||||
AgentID: this.agentID,
|
||||
SessionID: circuit.sessionID,
|
||||
HeadRotation: Quaternion_1.Quaternion.getIdentity(),
|
||||
BodyRotation: Quaternion_1.Quaternion.getIdentity(),
|
||||
State: AgentState_1.AgentState.None,
|
||||
CameraCenter: this.cameraCenter,
|
||||
CameraAtAxis: this.cameraLookAt,
|
||||
CameraLeftAxis: this.cameraLeftAxis,
|
||||
CameraUpAxis: this.cameraUpAxis,
|
||||
Far: this.cameraFar,
|
||||
ControlFlags: this.controlFlags,
|
||||
Flags: __1.AgentFlags.None
|
||||
};
|
||||
circuit.sendMessage(agentUpdate, 0);
|
||||
}
|
||||
shutdown() {
|
||||
if (this.agentUpdateTimer !== null) {
|
||||
clearInterval(this.agentUpdateTimer);
|
||||
this.agentUpdateTimer = null;
|
||||
}
|
||||
}
|
||||
onAnimState(packet) {
|
||||
if (packet.message.id === Message_1.Message.AvatarAnimation) {
|
||||
const animMsg = packet.message;
|
||||
if (animMsg.Sender.ID.toString() === this.agentID.toString()) {
|
||||
animMsg.AnimationList.forEach((anim) => {
|
||||
const a = anim.AnimID.toString();
|
||||
if (a === BuiltInAnimations_1.BuiltInAnimations.STANDUP ||
|
||||
a === BuiltInAnimations_1.BuiltInAnimations.PRE_JUMP ||
|
||||
a === BuiltInAnimations_1.BuiltInAnimations.LAND ||
|
||||
a === BuiltInAnimations_1.BuiltInAnimations.MEDIUM_LAND ||
|
||||
a === BuiltInAnimations_1.BuiltInAnimations.WALK ||
|
||||
a === BuiltInAnimations_1.BuiltInAnimations.RUN) {
|
||||
this.controlFlags = __1.ControlFlags.AGENT_CONTROL_FINISH_ANIM;
|
||||
this.sendAgentUpdate();
|
||||
this.controlFlags = 0;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
setInitialAppearance() {
|
||||
const circuit = this.currentRegion.circuit;
|
||||
const wearablesRequest = new AgentWearablesRequest_1.AgentWearablesRequestMessage();
|
||||
wearablesRequest.AgentData = {
|
||||
AgentID: this.agentID,
|
||||
SessionID: circuit.sessionID
|
||||
};
|
||||
circuit.sendMessage(wearablesRequest, __1.PacketFlags.Reliable);
|
||||
circuit.waitForMessage(Message_1.Message.AgentWearablesUpdate, 10000).then((wearables) => {
|
||||
if (!this.wearables || wearables.AgentData.SerialNum > this.wearables.serialNumber) {
|
||||
this.wearables = {
|
||||
serialNumber: wearables.AgentData.SerialNum,
|
||||
attachments: []
|
||||
};
|
||||
wearables.WearableData.forEach((wearable) => {
|
||||
if (this.wearables && this.wearables.attachments) {
|
||||
this.wearables.attachments.push({
|
||||
itemID: wearable.ItemID,
|
||||
assetID: wearable.AssetID,
|
||||
wearableType: wearable.WearableType
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
Object.keys(this.inventory.main.skeleton).forEach((uuid) => {
|
||||
const folder = this.inventory.main.skeleton[uuid];
|
||||
if (folder.typeDefault === __1.AssetType.CurrentOutfitFolder) {
|
||||
const folderID = folder.folderID;
|
||||
const requestFolder = {
|
||||
folder_id: new LLSD.UUID(folderID),
|
||||
owner_id: new LLSD.UUID(this.agentID),
|
||||
fetch_folders: true,
|
||||
fetch_items: true,
|
||||
sort_order: InventorySortOrder_1.InventorySortOrder.ByName
|
||||
};
|
||||
const requestedFolders = {
|
||||
'folders': [
|
||||
requestFolder
|
||||
]
|
||||
};
|
||||
this.currentRegion.caps.capsRequestXML('FetchInventoryDescendents2', requestedFolders).then((folderContents) => {
|
||||
const currentOutfitFolderContents = folderContents['folders'][0]['items'];
|
||||
const wornObjects = this.currentRegion.objects.getObjectsByParent(this.localID);
|
||||
currentOutfitFolderContents.forEach((item) => {
|
||||
if (item.type === 6) {
|
||||
let found = false;
|
||||
wornObjects.forEach((obj) => {
|
||||
if (obj.hasNameValueEntry('AttachItemID')) {
|
||||
if (item['item_id'].toString() === obj.getNameValueEntry('AttachItemID')) {
|
||||
found = true;
|
||||
}
|
||||
}
|
||||
});
|
||||
if (!found) {
|
||||
const rsafi = new RezSingleAttachmentFromInv_1.RezSingleAttachmentFromInvMessage();
|
||||
rsafi.AgentData = {
|
||||
AgentID: this.agentID,
|
||||
SessionID: circuit.sessionID
|
||||
};
|
||||
rsafi.ObjectData = {
|
||||
ItemID: new UUID_1.UUID(item['item_id'].toString()),
|
||||
OwnerID: this.agentID,
|
||||
AttachmentPt: 0x80 | AttachmentPoint_1.AttachmentPoint.Default,
|
||||
ItemFlags: item['flags'],
|
||||
GroupMask: item['permissions']['group_mask'],
|
||||
EveryoneMask: item['permissions']['everyone_mask'],
|
||||
NextOwnerMask: item['permissions']['next_owner_mask'],
|
||||
Name: Utils_1.Utils.StringToBuffer(item['name']),
|
||||
Description: Utils_1.Utils.StringToBuffer(item['desc'])
|
||||
};
|
||||
circuit.sendMessage(rsafi, __1.PacketFlags.Reliable);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.Agent = Agent;
|
||||
//# sourceMappingURL=Agent.js.map
|
||||
1
dist/classes/Agent.js.map
vendored
1
dist/classes/Agent.js.map
vendored
File diff suppressed because one or more lines are too long
16
dist/classes/BVH.d.ts
vendored
16
dist/classes/BVH.d.ts
vendored
@@ -1,16 +0,0 @@
|
||||
/// <reference types="node" />
|
||||
import { BVHJoint } from './BVHJoint';
|
||||
export declare class BVH {
|
||||
priority: number;
|
||||
length: number;
|
||||
expressionName: string;
|
||||
inPoint: number;
|
||||
outPoint: number;
|
||||
loop: number;
|
||||
easeInTime: number;
|
||||
easeOutTime: number;
|
||||
handPose: number;
|
||||
jointCount: number;
|
||||
joints: BVHJoint[];
|
||||
readFromBuffer(buf: Buffer, pos: number): number;
|
||||
}
|
||||
48
dist/classes/BVH.js
vendored
48
dist/classes/BVH.js
vendored
@@ -1,48 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const Utils_1 = require("./Utils");
|
||||
const BVHJoint_1 = require("./BVHJoint");
|
||||
class BVH {
|
||||
constructor() {
|
||||
this.joints = [];
|
||||
}
|
||||
readFromBuffer(buf, pos) {
|
||||
const header1 = buf.readUInt16LE(pos);
|
||||
pos = pos + 2;
|
||||
const header2 = buf.readUInt16LE(pos);
|
||||
pos = pos + 2;
|
||||
if (header1 !== 1 || header2 !== 0) {
|
||||
console.error('BVH Decoder: invalid data');
|
||||
return 0;
|
||||
}
|
||||
this.priority = buf.readInt32LE(pos);
|
||||
pos = pos + 4;
|
||||
this.length = buf.readFloatLE(pos);
|
||||
pos = pos + 4;
|
||||
let result = Utils_1.Utils.BufferToString(buf, pos);
|
||||
pos += result.readLength;
|
||||
this.expressionName = result.result;
|
||||
this.inPoint = buf.readFloatLE(pos);
|
||||
pos += 4;
|
||||
this.outPoint = buf.readFloatLE(pos);
|
||||
pos += 4;
|
||||
this.loop = buf.readInt32LE(pos);
|
||||
pos += 4;
|
||||
this.easeInTime = buf.readFloatLE(pos);
|
||||
pos += 4;
|
||||
this.easeOutTime = buf.readFloatLE(pos);
|
||||
pos += 4;
|
||||
this.handPose = buf.readUInt32LE(pos);
|
||||
pos += 4;
|
||||
this.jointCount = buf.readUInt32LE(pos);
|
||||
pos += 4;
|
||||
for (let x = 0; x < this.jointCount; x++) {
|
||||
const joint = new BVHJoint_1.BVHJoint();
|
||||
pos = joint.readFromBuffer(buf, pos, this.inPoint, this.outPoint);
|
||||
this.joints.push(joint);
|
||||
}
|
||||
return pos;
|
||||
}
|
||||
}
|
||||
exports.BVH = BVH;
|
||||
//# sourceMappingURL=BVH.js.map
|
||||
1
dist/classes/BVH.js.map
vendored
1
dist/classes/BVH.js.map
vendored
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"BVH.js","sourceRoot":"","sources":["../../lib/classes/BVH.ts"],"names":[],"mappings":";;AAAA,mCAA8B;AAC9B,yCAAoC;AAGpC,MAAa,GAAG;IAAhB;QAYI,WAAM,GAAe,EAAE,CAAC;IA4C5B,CAAC;IAzCG,cAAc,CAAC,GAAW,EAAE,GAAW;QAEnC,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACtC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QACd,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACtC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,EAClC;YACI,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC3C,OAAO,CAAC,CAAC;SACZ;QACD,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACrC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACnC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QACd,IAAI,MAAM,GAAG,aAAK,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5C,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACpC,GAAG,IAAI,CAAC,CAAC;QACT,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACrC,GAAG,IAAI,CAAC,CAAC;QACT,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACjC,GAAG,IAAI,CAAC,CAAC;QACT,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACvC,GAAG,IAAI,CAAC,CAAC;QACT,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACxC,GAAG,IAAI,CAAC,CAAC;QACT,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACtC,GAAG,IAAI,CAAC,CAAC;QACT,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACxC,GAAG,IAAI,CAAC,CAAC;QAET,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,EACxC;YACI,MAAM,KAAK,GAAG,IAAI,mBAAQ,EAAE,CAAC;YAC7B,GAAG,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC3B;QACD,OAAO,GAAG,CAAC;IACf,CAAC;CACJ;AAxDD,kBAwDC"}
|
||||
11
dist/classes/BVHJoint.d.ts
vendored
11
dist/classes/BVHJoint.d.ts
vendored
@@ -1,11 +0,0 @@
|
||||
/// <reference types="node" />
|
||||
import { BVHJointKeyframe } from './BVHJointKeyframe';
|
||||
export declare class BVHJoint {
|
||||
name: string;
|
||||
priority: number;
|
||||
rotationKeyframeCount: number;
|
||||
rotationKeyframes: BVHJointKeyframe[];
|
||||
positionKeyframeCount: number;
|
||||
positionKeyframes: BVHJointKeyframe[];
|
||||
readFromBuffer(buf: Buffer, pos: number, inPoint: number, outPoint: number): number;
|
||||
}
|
||||
51
dist/classes/BVHJoint.js
vendored
51
dist/classes/BVHJoint.js
vendored
@@ -1,51 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const Utils_1 = require("./Utils");
|
||||
const Vector3_1 = require("./Vector3");
|
||||
const BVHJointKeyframe_1 = require("./BVHJointKeyframe");
|
||||
class BVHJoint {
|
||||
constructor() {
|
||||
this.rotationKeyframes = [];
|
||||
this.positionKeyframes = [];
|
||||
}
|
||||
readFromBuffer(buf, pos, inPoint, outPoint) {
|
||||
const result = Utils_1.Utils.BufferToString(buf, pos);
|
||||
pos += result.readLength;
|
||||
this.name = result.result;
|
||||
this.priority = buf.readInt32LE(pos);
|
||||
pos = pos + 4;
|
||||
this.rotationKeyframeCount = buf.readInt32LE(pos);
|
||||
pos = pos + 4;
|
||||
for (let x = 0; x < this.rotationKeyframeCount; x++) {
|
||||
const jointKF = new BVHJointKeyframe_1.BVHJointKeyframe();
|
||||
jointKF.time = Utils_1.Utils.UInt16ToFloat(buf.readUInt16LE(pos), inPoint, outPoint);
|
||||
pos = pos + 2;
|
||||
const x = Utils_1.Utils.UInt16ToFloat(buf.readUInt16LE(pos), -1.0, 1.0);
|
||||
pos = pos + 2;
|
||||
const y = Utils_1.Utils.UInt16ToFloat(buf.readUInt16LE(pos), -1.0, 1.0);
|
||||
pos = pos + 2;
|
||||
const z = Utils_1.Utils.UInt16ToFloat(buf.readUInt16LE(pos), -1.0, 1.0);
|
||||
pos = pos + 2;
|
||||
jointKF.transform = new Vector3_1.Vector3([x, y, z]);
|
||||
this.rotationKeyframes.push(jointKF);
|
||||
}
|
||||
this.positionKeyframeCount = buf.readInt32LE(pos);
|
||||
pos = pos + 4;
|
||||
for (let x = 0; x < this.positionKeyframeCount; x++) {
|
||||
const jointKF = new BVHJointKeyframe_1.BVHJointKeyframe();
|
||||
jointKF.time = Utils_1.Utils.UInt16ToFloat(buf.readUInt16LE(pos), inPoint, outPoint);
|
||||
pos = pos + 2;
|
||||
const x = Utils_1.Utils.UInt16ToFloat(buf.readUInt16LE(pos), -1.0, 1.0);
|
||||
pos = pos + 2;
|
||||
const y = Utils_1.Utils.UInt16ToFloat(buf.readUInt16LE(pos), -1.0, 1.0);
|
||||
pos = pos + 2;
|
||||
const z = Utils_1.Utils.UInt16ToFloat(buf.readUInt16LE(pos), -1.0, 1.0);
|
||||
pos = pos + 2;
|
||||
jointKF.transform = new Vector3_1.Vector3([x, y, z]);
|
||||
this.positionKeyframes.push(jointKF);
|
||||
}
|
||||
return pos;
|
||||
}
|
||||
}
|
||||
exports.BVHJoint = BVHJoint;
|
||||
//# sourceMappingURL=BVHJoint.js.map
|
||||
1
dist/classes/BVHJoint.js.map
vendored
1
dist/classes/BVHJoint.js.map
vendored
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"BVHJoint.js","sourceRoot":"","sources":["../../lib/classes/BVHJoint.ts"],"names":[],"mappings":";;AAAA,mCAA8B;AAC9B,uCAAkC;AAClC,yDAAoD;AAEpD,MAAa,QAAQ;IAArB;QAMI,sBAAiB,GAAuB,EAAE,CAAC;QAG3C,sBAAiB,GAAuB,EAAE,CAAC;IAgD/C,CAAC;IA7CG,cAAc,CAAC,GAAW,EAAE,GAAW,EAAE,OAAe,EAAE,QAAgB;QAEtE,MAAM,MAAM,GAAG,aAAK,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9C,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QAE1B,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACrC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,qBAAqB,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClD,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QAEd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC,EAAE,EACnD;YACI,MAAM,OAAO,GAAG,IAAI,mCAAgB,EAAE,CAAC;YACvC,OAAO,CAAC,IAAI,GAAG,aAAK,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC7E,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;YACd,MAAM,CAAC,GAAG,aAAK,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAChE,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;YACd,MAAM,CAAC,GAAG,aAAK,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAChE,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;YACd,MAAM,CAAC,GAAG,aAAK,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAChE,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;YACd,OAAO,CAAC,SAAS,GAAG,IAAI,iBAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC3C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACxC;QAED,IAAI,CAAC,qBAAqB,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClD,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QAEd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC,EAAE,EACnD;YACI,MAAM,OAAO,GAAG,IAAI,mCAAgB,EAAE,CAAC;YACvC,OAAO,CAAC,IAAI,GAAG,aAAK,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC7E,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;YACd,MAAM,CAAC,GAAG,aAAK,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAChE,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;YACd,MAAM,CAAC,GAAG,aAAK,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAChE,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;YACd,MAAM,CAAC,GAAG,aAAK,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAChE,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;YACd,OAAO,CAAC,SAAS,GAAG,IAAI,iBAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC3C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACxC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;CACJ;AAzDD,4BAyDC"}
|
||||
5
dist/classes/BVHJointKeyframe.d.ts
vendored
5
dist/classes/BVHJointKeyframe.d.ts
vendored
@@ -1,5 +0,0 @@
|
||||
import { Vector3 } from './Vector3';
|
||||
export declare class BVHJointKeyframe {
|
||||
time: number;
|
||||
transform: Vector3;
|
||||
}
|
||||
6
dist/classes/BVHJointKeyframe.js
vendored
6
dist/classes/BVHJointKeyframe.js
vendored
@@ -1,6 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
class BVHJointKeyframe {
|
||||
}
|
||||
exports.BVHJointKeyframe = BVHJointKeyframe;
|
||||
//# sourceMappingURL=BVHJointKeyframe.js.map
|
||||
1
dist/classes/BVHJointKeyframe.js.map
vendored
1
dist/classes/BVHJointKeyframe.js.map
vendored
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"BVHJointKeyframe.js","sourceRoot":"","sources":["../../lib/classes/BVHJointKeyframe.ts"],"names":[],"mappings":";;AAEA,MAAa,gBAAgB;CAI5B;AAJD,4CAIC"}
|
||||
25
dist/classes/Caps.d.ts
vendored
25
dist/classes/Caps.d.ts
vendored
@@ -1,25 +0,0 @@
|
||||
/// <reference types="node" />
|
||||
import { Region } from './Region';
|
||||
import { EventQueueClient } from './EventQueueClient';
|
||||
import { UUID } from './UUID';
|
||||
import { ClientEvents } from './ClientEvents';
|
||||
import { Agent } from './Agent';
|
||||
import { HTTPAssets } from '..';
|
||||
export declare class Caps {
|
||||
private region;
|
||||
private onGotSeedCap;
|
||||
private gotSeedCap;
|
||||
private capabilities;
|
||||
private clientEvents;
|
||||
private agent;
|
||||
private active;
|
||||
eventQueueClient: EventQueueClient | null;
|
||||
constructor(agent: Agent, region: Region, seedURL: string, clientEvents: ClientEvents);
|
||||
downloadAsset(uuid: UUID, type: HTTPAssets): Promise<Buffer>;
|
||||
request(url: string, data: string | Buffer, contentType: string): Promise<string>;
|
||||
waitForSeedCapability(): Promise<void>;
|
||||
getCapability(capability: string): Promise<string>;
|
||||
capsRequestUpload(url: string, data: Buffer): Promise<any>;
|
||||
capsRequestXML(capability: string, data: any): Promise<any>;
|
||||
shutdown(): void;
|
||||
}
|
||||
234
dist/classes/Caps.js
vendored
234
dist/classes/Caps.js
vendored
@@ -1,234 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const LLSD = require("@caspertech/llsd");
|
||||
const request = require("request");
|
||||
const EventQueueClient_1 = require("./EventQueueClient");
|
||||
const Subject_1 = require("rxjs/internal/Subject");
|
||||
class Caps {
|
||||
constructor(agent, region, seedURL, clientEvents) {
|
||||
this.onGotSeedCap = new Subject_1.Subject();
|
||||
this.gotSeedCap = false;
|
||||
this.capabilities = {};
|
||||
this.active = false;
|
||||
this.eventQueueClient = null;
|
||||
this.agent = agent;
|
||||
this.clientEvents = clientEvents;
|
||||
this.region = region;
|
||||
const req = [];
|
||||
req.push('AgentPreferences');
|
||||
req.push('AgentState');
|
||||
req.push('AttachmentResources');
|
||||
req.push('AvatarPickerSearch');
|
||||
req.push('AvatarRenderInfo');
|
||||
req.push('CharacterProperties');
|
||||
req.push('ChatSessionRequest');
|
||||
req.push('CopyInventoryFromNotecard');
|
||||
req.push('CreateInventoryCategory');
|
||||
req.push('DispatchRegionInfo');
|
||||
req.push('DirectDelivery');
|
||||
req.push('EnvironmentSettings');
|
||||
req.push('EstateChangeInfo');
|
||||
req.push('EventQueueGet');
|
||||
req.push('FacebookConnect');
|
||||
req.push('FlickrConnect');
|
||||
req.push('TwitterConnect');
|
||||
req.push('FetchLib2');
|
||||
req.push('FetchLibDescendents2');
|
||||
req.push('FetchInventory2');
|
||||
req.push('FetchInventoryDescendents2');
|
||||
req.push('IncrementCOFVersion');
|
||||
req.push('GetDisplayNames');
|
||||
req.push('GetExperiences');
|
||||
req.push('AgentExperiences');
|
||||
req.push('FindExperienceByName');
|
||||
req.push('GetExperienceInfo');
|
||||
req.push('GetAdminExperiences');
|
||||
req.push('GetCreatorExperiences');
|
||||
req.push('ExperiencePreferences');
|
||||
req.push('GroupExperiences');
|
||||
req.push('UpdateExperience');
|
||||
req.push('IsExperienceAdmin');
|
||||
req.push('IsExperienceContributor');
|
||||
req.push('RegionExperiences');
|
||||
req.push('GetMetadata');
|
||||
req.push('GetObjectCost');
|
||||
req.push('GetObjectPhysicsData');
|
||||
req.push('GroupAPIv1');
|
||||
req.push('GroupMemberData');
|
||||
req.push('GroupProposalBallot');
|
||||
req.push('HomeLocation');
|
||||
req.push('LandResources');
|
||||
req.push('LSLSyntax');
|
||||
req.push('MapLayer');
|
||||
req.push('MapLayerGod');
|
||||
req.push('MeshUploadFlag');
|
||||
req.push('NavMeshGenerationStatus');
|
||||
req.push('NewFileAgentInventory');
|
||||
req.push('ObjectMedia');
|
||||
req.push('ObjectMediaNavigate');
|
||||
req.push('ObjectNavMeshProperties');
|
||||
req.push('ParcelPropertiesUpdate');
|
||||
req.push('ParcelVoiceInfoRequest');
|
||||
req.push('ProductInfoRequest');
|
||||
req.push('ProvisionVoiceAccountRequest');
|
||||
req.push('RemoteParcelRequest');
|
||||
req.push('RenderMaterials');
|
||||
req.push('RequestTextureDownload');
|
||||
req.push('ResourceCostSelected');
|
||||
req.push('RetrieveNavMeshSrc');
|
||||
req.push('SearchStatRequest');
|
||||
req.push('SearchStatTracking');
|
||||
req.push('SendPostcard');
|
||||
req.push('SendUserReport');
|
||||
req.push('SendUserReportWithScreenshot');
|
||||
req.push('ServerReleaseNotes');
|
||||
req.push('SetDisplayName');
|
||||
req.push('SimConsoleAsync');
|
||||
req.push('SimulatorFeatures');
|
||||
req.push('StartGroupProposal');
|
||||
req.push('TerrainNavMeshProperties');
|
||||
req.push('TextureStats');
|
||||
req.push('UntrustedSimulatorMessage');
|
||||
req.push('UpdateAgentInformation');
|
||||
req.push('UpdateAgentLanguage');
|
||||
req.push('UpdateAvatarAppearance');
|
||||
req.push('UpdateGestureAgentInventory');
|
||||
req.push('UpdateGestureTaskInventory');
|
||||
req.push('UpdateNotecardAgentInventory');
|
||||
req.push('UpdateNotecardTaskInventory');
|
||||
req.push('UpdateScriptAgent');
|
||||
req.push('UpdateScriptTask');
|
||||
req.push('UploadBakedTexture');
|
||||
req.push('ViewerAsset');
|
||||
req.push('ViewerMetrics');
|
||||
req.push('ViewerStartAuction');
|
||||
req.push('ViewerStats');
|
||||
this.active = true;
|
||||
this.request(seedURL, LLSD.LLSD.formatXML(req), 'application/llsd+xml').then((body) => {
|
||||
this.capabilities = LLSD.LLSD.parseXML(body);
|
||||
this.gotSeedCap = true;
|
||||
this.onGotSeedCap.next();
|
||||
if (this.capabilities['EventQueueGet']) {
|
||||
if (this.eventQueueClient !== null) {
|
||||
this.eventQueueClient.shutdown();
|
||||
}
|
||||
this.eventQueueClient = new EventQueueClient_1.EventQueueClient(this.agent, this, this.clientEvents);
|
||||
}
|
||||
}).catch((err) => {
|
||||
console.error('Error getting seed capability');
|
||||
console.error(err);
|
||||
});
|
||||
}
|
||||
downloadAsset(uuid, type) {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.getCapability('ViewerAsset').then((url) => {
|
||||
const assetURL = url + '/?' + type + '_id=' + uuid.toString();
|
||||
request({
|
||||
'uri': assetURL,
|
||||
'rejectUnauthorized': false,
|
||||
'method': 'GET',
|
||||
'encoding': null
|
||||
}, (err, res, body) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
else {
|
||||
resolve(body);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
request(url, data, contentType) {
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
'headers': {
|
||||
'Content-Length': data.length,
|
||||
'Content-Type': contentType
|
||||
},
|
||||
'uri': url,
|
||||
'body': data,
|
||||
'rejectUnauthorized': false,
|
||||
'method': 'POST'
|
||||
}, (err, res, body) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
else {
|
||||
resolve(body);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
waitForSeedCapability() {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (this.gotSeedCap) {
|
||||
resolve();
|
||||
}
|
||||
else {
|
||||
const sub = this.onGotSeedCap.subscribe(() => {
|
||||
sub.unsubscribe();
|
||||
resolve();
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
getCapability(capability) {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (!this.active) {
|
||||
reject(new Error('Requesting getCapability to an inactive Caps instance'));
|
||||
return;
|
||||
}
|
||||
this.waitForSeedCapability().then(() => {
|
||||
if (this.capabilities[capability]) {
|
||||
resolve(this.capabilities[capability]);
|
||||
}
|
||||
else {
|
||||
reject(new Error('Capability not available'));
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
capsRequestUpload(url, data) {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.request(url, data, 'application/octet-stream').then((body) => {
|
||||
resolve(LLSD.LLSD.parseXML(body));
|
||||
}).catch((err) => {
|
||||
console.error(err);
|
||||
reject(err);
|
||||
});
|
||||
});
|
||||
}
|
||||
capsRequestXML(capability, data) {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.getCapability(capability).then((url) => {
|
||||
this.request(url, LLSD.LLSD.formatXML(data), 'application/llsd+xml').then((body) => {
|
||||
let result = null;
|
||||
try {
|
||||
result = LLSD.LLSD.parseXML(body);
|
||||
}
|
||||
catch (err) {
|
||||
console.error('Error parsing LLSD');
|
||||
console.error(body);
|
||||
reject(err);
|
||||
}
|
||||
resolve(result);
|
||||
}).catch((err) => {
|
||||
console.error(err);
|
||||
reject(err);
|
||||
});
|
||||
}).catch((err) => {
|
||||
reject(err);
|
||||
});
|
||||
});
|
||||
}
|
||||
shutdown() {
|
||||
this.onGotSeedCap.complete();
|
||||
if (this.eventQueueClient) {
|
||||
this.eventQueueClient.shutdown();
|
||||
}
|
||||
this.active = false;
|
||||
}
|
||||
}
|
||||
exports.Caps = Caps;
|
||||
//# sourceMappingURL=Caps.js.map
|
||||
1
dist/classes/Caps.js.map
vendored
1
dist/classes/Caps.js.map
vendored
File diff suppressed because one or more lines are too long
50
dist/classes/Circuit.d.ts
vendored
50
dist/classes/Circuit.d.ts
vendored
@@ -1,50 +0,0 @@
|
||||
/// <reference types="node" />
|
||||
import { UUID } from './UUID';
|
||||
import { Socket } from 'dgram';
|
||||
import { Packet } from './Packet';
|
||||
import { MessageBase } from './MessageBase';
|
||||
import { Message } from '../enums/Message';
|
||||
import { Subscription } from 'rxjs/internal/Subscription';
|
||||
import Timer = NodeJS.Timer;
|
||||
import { ClientEvents } from './ClientEvents';
|
||||
import { FilterResponse } from '../enums/FilterResponse';
|
||||
import { PacketFlags } from '..';
|
||||
export declare class Circuit {
|
||||
secureSessionID: UUID;
|
||||
sessionID: UUID;
|
||||
circuitCode: number;
|
||||
udpBlacklist: string[];
|
||||
timestamp: number;
|
||||
client: Socket | null;
|
||||
port: number;
|
||||
ipAddress: string;
|
||||
sequenceNumber: number;
|
||||
awaitingAck: {
|
||||
[key: number]: {
|
||||
packet: Packet;
|
||||
timeout: Timer;
|
||||
sent: number;
|
||||
};
|
||||
};
|
||||
receivedPackets: {
|
||||
[key: number]: Timer;
|
||||
};
|
||||
active: boolean;
|
||||
private clientEvents;
|
||||
private onPacketReceived;
|
||||
private onAckReceived;
|
||||
constructor(clientEvents: ClientEvents);
|
||||
subscribeToMessages(ids: number[], callback: (packet: Packet) => void): Subscription;
|
||||
sendMessage(message: MessageBase, flags: PacketFlags): number;
|
||||
resend(sequenceNumber: number): void;
|
||||
waitForAck(ack: number, timeout: number): Promise<void>;
|
||||
init(): void;
|
||||
shutdown(): void;
|
||||
waitForMessage<T extends MessageBase>(id: Message, timeout: number, messageFilter?: (message: T) => FilterResponse): Promise<T>;
|
||||
sendPacket(packet: Packet): void;
|
||||
ackReceived(sequenceNumber: number): void;
|
||||
sendAck(sequenceNumber: number): void;
|
||||
getOldestUnacked(): number;
|
||||
expireReceivedPacket(sequenceNumber: number): void;
|
||||
receivedPacket(bytes: Buffer): void;
|
||||
}
|
||||
252
dist/classes/Circuit.js
vendored
252
dist/classes/Circuit.js
vendored
@@ -1,252 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const dgram = require("dgram");
|
||||
const Packet_1 = require("./Packet");
|
||||
const PacketAck_1 = require("./messages/PacketAck");
|
||||
const Message_1 = require("../enums/Message");
|
||||
const CompletePingCheck_1 = require("./messages/CompletePingCheck");
|
||||
const operators_1 = require("rxjs/operators");
|
||||
const FilterResponse_1 = require("../enums/FilterResponse");
|
||||
const Subject_1 = require("rxjs/internal/Subject");
|
||||
const __1 = require("..");
|
||||
const TimeoutError_1 = require("./TimeoutError");
|
||||
class Circuit {
|
||||
constructor(clientEvents) {
|
||||
this.client = null;
|
||||
this.sequenceNumber = 0;
|
||||
this.awaitingAck = {};
|
||||
this.receivedPackets = {};
|
||||
this.active = false;
|
||||
this.clientEvents = clientEvents;
|
||||
this.onPacketReceived = new Subject_1.Subject();
|
||||
this.onAckReceived = new Subject_1.Subject();
|
||||
}
|
||||
subscribeToMessages(ids, callback) {
|
||||
const lookupObject = {};
|
||||
ids.forEach((id) => {
|
||||
lookupObject[id] = true;
|
||||
});
|
||||
return this.onPacketReceived.pipe(operators_1.filter((packet) => {
|
||||
return lookupObject[packet.message.id] === true;
|
||||
})).subscribe(callback);
|
||||
}
|
||||
sendMessage(message, flags) {
|
||||
if (!this.active) {
|
||||
throw new Error('Attempting to send a message on a closed circuit');
|
||||
}
|
||||
const packet = new Packet_1.Packet();
|
||||
packet.message = message;
|
||||
packet.sequenceNumber = this.sequenceNumber++;
|
||||
packet.packetFlags = flags;
|
||||
this.sendPacket(packet);
|
||||
return packet.sequenceNumber;
|
||||
}
|
||||
resend(sequenceNumber) {
|
||||
if (!this.active) {
|
||||
console.log('Resend triggered, but circuit is not active!');
|
||||
return;
|
||||
}
|
||||
if (this.awaitingAck[sequenceNumber]) {
|
||||
const toResend = this.awaitingAck[sequenceNumber].packet;
|
||||
toResend.packetFlags = toResend.packetFlags | __1.PacketFlags.Resent;
|
||||
this.sendPacket(toResend);
|
||||
}
|
||||
}
|
||||
waitForAck(ack, timeout) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const handleObj = {
|
||||
timeout: null,
|
||||
subscription: null
|
||||
};
|
||||
handleObj.timeout = setTimeout(() => {
|
||||
if (handleObj.subscription !== null) {
|
||||
handleObj.subscription.unsubscribe();
|
||||
reject(new Error('Timeout'));
|
||||
}
|
||||
}, timeout);
|
||||
handleObj.subscription = this.onAckReceived.subscribe((sequenceNumber) => {
|
||||
if (sequenceNumber === ack) {
|
||||
if (handleObj.timeout !== null) {
|
||||
clearTimeout(handleObj.timeout);
|
||||
handleObj.timeout = null;
|
||||
}
|
||||
if (handleObj.subscription !== null) {
|
||||
handleObj.subscription.unsubscribe();
|
||||
handleObj.subscription = null;
|
||||
}
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
init() {
|
||||
if (this.client !== null) {
|
||||
this.client.close();
|
||||
}
|
||||
this.client = dgram.createSocket('udp4');
|
||||
this.client.on('listening', () => {
|
||||
});
|
||||
this.client.on('message', (message, remote) => {
|
||||
if (remote.address === this.ipAddress) {
|
||||
this.receivedPacket(message);
|
||||
}
|
||||
});
|
||||
this.client.on('error', (error) => {
|
||||
});
|
||||
this.active = true;
|
||||
}
|
||||
shutdown() {
|
||||
Object.keys(this.awaitingAck).forEach((sequenceNumber) => {
|
||||
clearTimeout(this.awaitingAck[parseInt(sequenceNumber, 10)].timeout);
|
||||
delete this.awaitingAck[parseInt(sequenceNumber, 10)];
|
||||
});
|
||||
Object.keys(this.receivedPackets).forEach((sequenceNumber) => {
|
||||
const seq = parseInt(sequenceNumber, 10);
|
||||
clearTimeout(this.receivedPackets[seq]);
|
||||
delete this.receivedPackets[seq];
|
||||
});
|
||||
if (this.client !== null) {
|
||||
this.client.close();
|
||||
this.client = null;
|
||||
this.onPacketReceived.complete();
|
||||
this.onAckReceived.complete();
|
||||
}
|
||||
this.active = false;
|
||||
}
|
||||
waitForMessage(id, timeout, messageFilter) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const handleObj = {
|
||||
timeout: null,
|
||||
subscription: null
|
||||
};
|
||||
const timeoutFunc = () => {
|
||||
if (handleObj.subscription !== null) {
|
||||
handleObj.subscription.unsubscribe();
|
||||
const err = new TimeoutError_1.TimeoutError('Timeout waiting for message of type ' + Message_1.Message[id]);
|
||||
err.timeout = true;
|
||||
err.waitingForMessage = id;
|
||||
reject(err);
|
||||
}
|
||||
};
|
||||
handleObj.timeout = setTimeout(timeoutFunc, timeout);
|
||||
handleObj.subscription = this.subscribeToMessages([id], (packet) => {
|
||||
let finish = false;
|
||||
if (packet.message.id === id) {
|
||||
if (messageFilter === undefined) {
|
||||
finish = true;
|
||||
}
|
||||
else {
|
||||
const filterResult = messageFilter(packet.message);
|
||||
if (filterResult === FilterResponse_1.FilterResponse.Finish) {
|
||||
finish = true;
|
||||
}
|
||||
else if (filterResult === FilterResponse_1.FilterResponse.Match) {
|
||||
if (handleObj.timeout !== null) {
|
||||
clearTimeout(handleObj.timeout);
|
||||
}
|
||||
handleObj.timeout = setTimeout(timeoutFunc, timeout);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (finish) {
|
||||
if (handleObj.timeout !== null) {
|
||||
clearTimeout(handleObj.timeout);
|
||||
handleObj.timeout = null;
|
||||
}
|
||||
if (handleObj.subscription !== null) {
|
||||
handleObj.subscription.unsubscribe();
|
||||
handleObj.subscription = null;
|
||||
}
|
||||
resolve(packet.message);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
sendPacket(packet) {
|
||||
if (packet.packetFlags & __1.PacketFlags.Reliable) {
|
||||
this.awaitingAck[packet.sequenceNumber] =
|
||||
{
|
||||
packet: packet,
|
||||
timeout: setTimeout(this.resend.bind(this, packet.sequenceNumber), 1000),
|
||||
sent: new Date().getTime()
|
||||
};
|
||||
}
|
||||
let dataToSend = Buffer.allocUnsafe(packet.getSize());
|
||||
dataToSend = packet.writeToBuffer(dataToSend, 0);
|
||||
if (this.client !== null) {
|
||||
this.client.send(dataToSend, 0, dataToSend.length, this.port, this.ipAddress, (err, bytes) => {
|
||||
});
|
||||
}
|
||||
else {
|
||||
console.error('Attempted to send packet but UDP client is null');
|
||||
}
|
||||
}
|
||||
ackReceived(sequenceNumber) {
|
||||
if (this.awaitingAck[sequenceNumber]) {
|
||||
clearTimeout(this.awaitingAck[sequenceNumber].timeout);
|
||||
delete this.awaitingAck[sequenceNumber];
|
||||
}
|
||||
this.onAckReceived.next(sequenceNumber);
|
||||
}
|
||||
sendAck(sequenceNumber) {
|
||||
const msg = new PacketAck_1.PacketAckMessage();
|
||||
msg.Packets = [
|
||||
{
|
||||
ID: sequenceNumber
|
||||
}
|
||||
];
|
||||
this.sendMessage(msg, 0);
|
||||
}
|
||||
getOldestUnacked() {
|
||||
let result = 0;
|
||||
let oldest = -1;
|
||||
const keys = Object.keys(this.awaitingAck);
|
||||
keys.forEach((seqID) => {
|
||||
const nSeq = parseInt(seqID, 10);
|
||||
if (oldest === -1 || this.awaitingAck[nSeq].sent < oldest) {
|
||||
result = nSeq;
|
||||
oldest = this.awaitingAck[nSeq].sent;
|
||||
}
|
||||
});
|
||||
return result;
|
||||
}
|
||||
expireReceivedPacket(sequenceNumber) {
|
||||
if (this.receivedPackets[sequenceNumber]) {
|
||||
delete this.receivedPackets[sequenceNumber];
|
||||
}
|
||||
}
|
||||
receivedPacket(bytes) {
|
||||
const packet = new Packet_1.Packet();
|
||||
try {
|
||||
packet.readFromBuffer(bytes, 0, this.ackReceived.bind(this), this.sendAck.bind(this));
|
||||
}
|
||||
catch (erro) {
|
||||
console.error(erro);
|
||||
return;
|
||||
}
|
||||
if (this.receivedPackets[packet.sequenceNumber]) {
|
||||
clearTimeout(this.receivedPackets[packet.sequenceNumber]);
|
||||
this.receivedPackets[packet.sequenceNumber] = setTimeout(this.expireReceivedPacket.bind(this, packet.sequenceNumber), 10000);
|
||||
console.log('Ignoring duplicate packet: ' + packet.message.name + ' sequenceID: ' + packet.sequenceNumber);
|
||||
return;
|
||||
}
|
||||
this.receivedPackets[packet.sequenceNumber] = setTimeout(this.expireReceivedPacket.bind(this, packet.sequenceNumber), 10000);
|
||||
if (packet.message.id === Message_1.Message.PacketAck) {
|
||||
const msg = packet.message;
|
||||
msg.Packets.forEach((obj) => {
|
||||
this.ackReceived(obj.ID);
|
||||
});
|
||||
}
|
||||
else if (packet.message.id === Message_1.Message.StartPingCheck) {
|
||||
const msg = packet.message;
|
||||
const reply = new CompletePingCheck_1.CompletePingCheckMessage();
|
||||
reply.PingID = {
|
||||
PingID: msg.PingID.PingID
|
||||
};
|
||||
this.sendMessage(reply, 0);
|
||||
}
|
||||
this.onPacketReceived.next(packet);
|
||||
}
|
||||
}
|
||||
exports.Circuit = Circuit;
|
||||
//# sourceMappingURL=Circuit.js.map
|
||||
1
dist/classes/Circuit.js.map
vendored
1
dist/classes/Circuit.js.map
vendored
File diff suppressed because one or more lines are too long
29
dist/classes/ClientCommands.d.ts
vendored
29
dist/classes/ClientCommands.d.ts
vendored
@@ -1,29 +0,0 @@
|
||||
import { Region } from './Region';
|
||||
import { Agent } from './Agent';
|
||||
import { Bot } from '../Bot';
|
||||
import { NetworkCommands } from './commands/NetworkCommands';
|
||||
import { AssetCommands } from './commands/AssetCommands';
|
||||
import { TeleportCommands } from './commands/TeleportCommands';
|
||||
import { RegionCommands } from './commands/RegionCommands';
|
||||
import { GridCommands } from './commands/GridCommands';
|
||||
import { CommunicationsCommands } from './commands/CommunicationsCommands';
|
||||
import { AgentCommands } from './commands/AgentCommands';
|
||||
import { GroupCommands } from './commands/GroupCommands';
|
||||
import { InventoryCommands } from './commands/InventoryCommands';
|
||||
import { ParcelCommands } from './commands/ParcelCommands';
|
||||
import { FriendCommands } from './commands/FriendCommands';
|
||||
export declare class ClientCommands {
|
||||
network: NetworkCommands;
|
||||
asset: AssetCommands;
|
||||
teleport: TeleportCommands;
|
||||
region: RegionCommands;
|
||||
parcel: ParcelCommands;
|
||||
friends: FriendCommands;
|
||||
grid: GridCommands;
|
||||
comms: CommunicationsCommands;
|
||||
agent: AgentCommands;
|
||||
group: GroupCommands;
|
||||
inventory: InventoryCommands;
|
||||
constructor(region: Region, agent: Agent, bot: Bot);
|
||||
shutdown(): void;
|
||||
}
|
||||
43
dist/classes/ClientCommands.js
vendored
43
dist/classes/ClientCommands.js
vendored
@@ -1,43 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const NetworkCommands_1 = require("./commands/NetworkCommands");
|
||||
const AssetCommands_1 = require("./commands/AssetCommands");
|
||||
const TeleportCommands_1 = require("./commands/TeleportCommands");
|
||||
const RegionCommands_1 = require("./commands/RegionCommands");
|
||||
const GridCommands_1 = require("./commands/GridCommands");
|
||||
const CommunicationsCommands_1 = require("./commands/CommunicationsCommands");
|
||||
const AgentCommands_1 = require("./commands/AgentCommands");
|
||||
const GroupCommands_1 = require("./commands/GroupCommands");
|
||||
const InventoryCommands_1 = require("./commands/InventoryCommands");
|
||||
const ParcelCommands_1 = require("./commands/ParcelCommands");
|
||||
const FriendCommands_1 = require("./commands/FriendCommands");
|
||||
class ClientCommands {
|
||||
constructor(region, agent, bot) {
|
||||
this.network = new NetworkCommands_1.NetworkCommands(region, agent, bot);
|
||||
this.asset = new AssetCommands_1.AssetCommands(region, agent, bot);
|
||||
this.teleport = new TeleportCommands_1.TeleportCommands(region, agent, bot);
|
||||
this.region = new RegionCommands_1.RegionCommands(region, agent, bot);
|
||||
this.parcel = new ParcelCommands_1.ParcelCommands(region, agent, bot);
|
||||
this.grid = new GridCommands_1.GridCommands(region, agent, bot);
|
||||
this.friends = new FriendCommands_1.FriendCommands(region, agent, bot);
|
||||
this.comms = new CommunicationsCommands_1.CommunicationsCommands(region, agent, bot);
|
||||
this.agent = new AgentCommands_1.AgentCommands(region, agent, bot);
|
||||
this.group = new GroupCommands_1.GroupCommands(region, agent, bot);
|
||||
this.inventory = new InventoryCommands_1.InventoryCommands(region, agent, bot);
|
||||
}
|
||||
shutdown() {
|
||||
this.network.shutdown();
|
||||
this.asset.shutdown();
|
||||
this.teleport.shutdown();
|
||||
this.region.shutdown();
|
||||
this.parcel.shutdown();
|
||||
this.grid.shutdown();
|
||||
this.comms.shutdown();
|
||||
this.agent.shutdown();
|
||||
this.group.shutdown();
|
||||
this.inventory.shutdown();
|
||||
this.friends.shutdown();
|
||||
}
|
||||
}
|
||||
exports.ClientCommands = ClientCommands;
|
||||
//# sourceMappingURL=ClientCommands.js.map
|
||||
1
dist/classes/ClientCommands.js.map
vendored
1
dist/classes/ClientCommands.js.map
vendored
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"ClientCommands.js","sourceRoot":"","sources":["../../lib/classes/ClientCommands.ts"],"names":[],"mappings":";;AAGA,gEAA2D;AAC3D,4DAAuD;AACvD,kEAA6D;AAC7D,8DAAyD;AACzD,0DAAqD;AACrD,8EAAyE;AACzE,4DAAuD;AACvD,4DAAuD;AACvD,oEAA+D;AAC/D,8DAAyD;AACzD,8DAAyD;AAEzD,MAAa,cAAc;IAcvB,YAAY,MAAc,EAAE,KAAY,EAAE,GAAQ;QAE9C,IAAI,CAAC,OAAO,GAAG,IAAI,iCAAe,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,GAAG,IAAI,6BAAa,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,GAAG,IAAI,mCAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,GAAG,IAAI,+BAAc,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,GAAG,IAAI,+BAAc,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,GAAG,IAAI,2BAAY,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,GAAG,IAAI,+BAAc,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK,GAAG,IAAI,+CAAsB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK,GAAG,IAAI,6BAAa,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK,GAAG,IAAI,6BAAa,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS,GAAG,IAAI,qCAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAC/D,CAAC;IACD,QAAQ;QAEJ,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC;CACJ;AA1CD,wCA0CC"}
|
||||
22
dist/classes/ClientEvents.d.ts
vendored
22
dist/classes/ClientEvents.d.ts
vendored
@@ -1,22 +0,0 @@
|
||||
import { ChatEvent, DisconnectEvent, FriendRequestEvent, FriendResponseEvent, GroupChatEvent, GroupChatSessionAgentListEvent, GroupChatSessionJoinEvent, GroupInviteEvent, InstantMessageEvent, InventoryOfferedEvent, LureEvent, TeleportEvent, ScriptDialogEvent, EventQueueStateChangeEvent, FriendOnlineEvent, FriendRightsEvent, FriendRemovedEvent } from '..';
|
||||
import { Subject } from 'rxjs/internal/Subject';
|
||||
export declare class ClientEvents {
|
||||
onNearbyChat: Subject<ChatEvent>;
|
||||
onInstantMessage: Subject<InstantMessageEvent>;
|
||||
onGroupInvite: Subject<GroupInviteEvent>;
|
||||
onFriendRequest: Subject<FriendRequestEvent>;
|
||||
onInventoryOffered: Subject<InventoryOfferedEvent>;
|
||||
onLure: Subject<LureEvent>;
|
||||
onTeleportEvent: Subject<TeleportEvent>;
|
||||
onDisconnected: Subject<DisconnectEvent>;
|
||||
onCircuitLatency: Subject<number>;
|
||||
onGroupChat: Subject<GroupChatEvent>;
|
||||
onGroupChatSessionJoin: Subject<GroupChatSessionJoinEvent>;
|
||||
onGroupChatAgentListUpdate: Subject<GroupChatSessionAgentListEvent>;
|
||||
onFriendResponse: Subject<FriendResponseEvent>;
|
||||
onScriptDialog: Subject<ScriptDialogEvent>;
|
||||
onEventQueueStateChange: Subject<EventQueueStateChangeEvent>;
|
||||
onFriendOnline: Subject<FriendOnlineEvent>;
|
||||
onFriendRights: Subject<FriendRightsEvent>;
|
||||
onFriendRemoved: Subject<FriendRemovedEvent>;
|
||||
}
|
||||
27
dist/classes/ClientEvents.js
vendored
27
dist/classes/ClientEvents.js
vendored
@@ -1,27 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const Subject_1 = require("rxjs/internal/Subject");
|
||||
class ClientEvents {
|
||||
constructor() {
|
||||
this.onNearbyChat = new Subject_1.Subject();
|
||||
this.onInstantMessage = new Subject_1.Subject();
|
||||
this.onGroupInvite = new Subject_1.Subject();
|
||||
this.onFriendRequest = new Subject_1.Subject();
|
||||
this.onInventoryOffered = new Subject_1.Subject();
|
||||
this.onLure = new Subject_1.Subject();
|
||||
this.onTeleportEvent = new Subject_1.Subject();
|
||||
this.onDisconnected = new Subject_1.Subject();
|
||||
this.onCircuitLatency = new Subject_1.Subject();
|
||||
this.onGroupChat = new Subject_1.Subject();
|
||||
this.onGroupChatSessionJoin = new Subject_1.Subject();
|
||||
this.onGroupChatAgentListUpdate = new Subject_1.Subject();
|
||||
this.onFriendResponse = new Subject_1.Subject();
|
||||
this.onScriptDialog = new Subject_1.Subject();
|
||||
this.onEventQueueStateChange = new Subject_1.Subject();
|
||||
this.onFriendOnline = new Subject_1.Subject();
|
||||
this.onFriendRights = new Subject_1.Subject();
|
||||
this.onFriendRemoved = new Subject_1.Subject();
|
||||
}
|
||||
}
|
||||
exports.ClientEvents = ClientEvents;
|
||||
//# sourceMappingURL=ClientEvents.js.map
|
||||
1
dist/classes/ClientEvents.js.map
vendored
1
dist/classes/ClientEvents.js.map
vendored
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"ClientEvents.js","sourceRoot":"","sources":["../../lib/classes/ClientEvents.ts"],"names":[],"mappings":";;AAkBA,mDAA8C;AAG9C,MAAa,YAAY;IAAzB;QAEI,iBAAY,GAAuB,IAAI,iBAAO,EAAa,CAAC;QAC5D,qBAAgB,GAAiC,IAAI,iBAAO,EAAuB,CAAC;QACpF,kBAAa,GAA8B,IAAI,iBAAO,EAAoB,CAAC;QAC3E,oBAAe,GAAgC,IAAI,iBAAO,EAAsB,CAAC;QACjF,uBAAkB,GAAmC,IAAI,iBAAO,EAAyB,CAAC;QAC1F,WAAM,GAAuB,IAAI,iBAAO,EAAa,CAAC;QACtD,oBAAe,GAA2B,IAAI,iBAAO,EAAiB,CAAC;QACvE,mBAAc,GAA8B,IAAI,iBAAO,EAAmB,CAAC;QAC3E,qBAAgB,GAAoB,IAAI,iBAAO,EAAU,CAAC;QAC1D,gBAAW,GAA4B,IAAI,iBAAO,EAAkB,CAAC;QACrE,2BAAsB,GAAuC,IAAI,iBAAO,EAA6B,CAAC;QACtG,+BAA0B,GAA4C,IAAI,iBAAO,EAAkC,CAAC;QACpH,qBAAgB,GAAiC,IAAI,iBAAO,EAAuB,CAAC;QACpF,mBAAc,GAA+B,IAAI,iBAAO,EAAqB,CAAC;QAC9E,4BAAuB,GAAwC,IAAI,iBAAO,EAA8B,CAAC;QACzG,mBAAc,GAA+B,IAAI,iBAAO,EAAqB,CAAC;QAC9E,mBAAc,GAA+B,IAAI,iBAAO,EAAqB,CAAC;QAC9E,oBAAe,GAAgC,IAAI,iBAAO,EAAsB,CAAC;IACrF,CAAC;CAAA;AApBD,oCAoBC"}
|
||||
10
dist/classes/Color4.d.ts
vendored
10
dist/classes/Color4.d.ts
vendored
@@ -1,10 +0,0 @@
|
||||
/// <reference types="node" />
|
||||
export declare class Color4 {
|
||||
red: number | Buffer;
|
||||
green: number;
|
||||
blue: number | boolean;
|
||||
alpha: number | boolean;
|
||||
static black: Color4;
|
||||
static white: Color4;
|
||||
constructor(red: number | Buffer, green: number, blue: number | boolean, alpha?: number | boolean);
|
||||
}
|
||||
43
dist/classes/Color4.js
vendored
43
dist/classes/Color4.js
vendored
@@ -1,43 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
class Color4 {
|
||||
constructor(red, green, blue, alpha = 0) {
|
||||
this.red = red;
|
||||
this.green = green;
|
||||
this.blue = blue;
|
||||
this.alpha = alpha;
|
||||
if (red instanceof Buffer && typeof blue === 'boolean') {
|
||||
const buf = red;
|
||||
const pos = green;
|
||||
const inverted = blue;
|
||||
let alphaInverted = false;
|
||||
if (typeof alpha === 'boolean' && alpha === true) {
|
||||
alphaInverted = true;
|
||||
}
|
||||
this.red = 0.0;
|
||||
this.green = 0.0;
|
||||
this.blue = 0.0;
|
||||
this.alpha = 0.0;
|
||||
const quanta = 1.0 / 255.0;
|
||||
if (inverted) {
|
||||
this.red = (255 - buf[pos]) * quanta;
|
||||
this.green = (255 - buf[pos + 1]) * quanta;
|
||||
this.blue = (255 - buf[pos + 2]) * quanta;
|
||||
this.alpha = (255 - buf[pos + 3]) * quanta;
|
||||
}
|
||||
else {
|
||||
this.red = buf[pos] * quanta;
|
||||
this.green = buf[pos + 1] * quanta;
|
||||
this.blue = buf[pos + 2] * quanta;
|
||||
this.alpha = buf[pos + 3] * quanta;
|
||||
}
|
||||
if (alphaInverted) {
|
||||
this.alpha = 1.0 - this.alpha;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Color4.black = new Color4(0.0, 0.0, 0.0, 1.0);
|
||||
Color4.white = new Color4(1.0, 1.0, 1.0, 1.0);
|
||||
exports.Color4 = Color4;
|
||||
//# sourceMappingURL=Color4.js.map
|
||||
1
dist/classes/Color4.js.map
vendored
1
dist/classes/Color4.js.map
vendored
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"Color4.js","sourceRoot":"","sources":["../../lib/classes/Color4.ts"],"names":[],"mappings":";;AAAA,MAAa,MAAM;IAKf,YAAmB,GAAoB,EAAS,KAAa,EAAS,IAAsB,EAAS,QAA0B,CAAC;QAA7G,QAAG,GAAH,GAAG,CAAiB;QAAS,UAAK,GAAL,KAAK,CAAQ;QAAS,SAAI,GAAJ,IAAI,CAAkB;QAAS,UAAK,GAAL,KAAK,CAAsB;QAE5H,IAAI,GAAG,YAAY,MAAM,IAAI,OAAO,IAAI,KAAK,SAAS,EACtD;YACI,MAAM,GAAG,GAAG,GAAG,CAAC;YAChB,MAAM,GAAG,GAAG,KAAK,CAAC;YAClB,MAAM,QAAQ,GAAG,IAAI,CAAC;YACtB,IAAI,aAAa,GAAG,KAAK,CAAC;YAC1B,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAChD;gBACI,aAAa,GAAG,IAAI,CAAC;aACxB;YAED,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;YACf,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;YACjB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;YAChB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;YAEjB,MAAM,MAAM,GAAW,GAAG,GAAG,KAAK,CAAC;YACnC,IAAI,QAAQ,EACZ;gBACI,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;gBACrC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;gBAC3C,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;gBAC1C,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;aAC9C;iBAED;gBACI,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;gBAC7B,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;gBACnC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;gBAClC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;aACtC;YACD,IAAI,aAAa,EACjB;gBACI,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;aACjC;SACJ;IACL,CAAC;;AAzCM,YAAK,GAAW,IAAI,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAC/C,YAAK,GAAW,IAAI,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAH1D,wBA4CC"}
|
||||
10
dist/classes/Comms.d.ts
vendored
10
dist/classes/Comms.d.ts
vendored
@@ -1,10 +0,0 @@
|
||||
import { Circuit } from './Circuit';
|
||||
import { Agent } from './Agent';
|
||||
import { ClientEvents } from './ClientEvents';
|
||||
export declare class Comms {
|
||||
private circuit;
|
||||
private agent;
|
||||
private clientEvents;
|
||||
constructor(circuit: Circuit, agent: Agent, clientEvents: ClientEvents);
|
||||
shutdown(): void;
|
||||
}
|
||||
269
dist/classes/Comms.js
vendored
269
dist/classes/Comms.js
vendored
@@ -1,269 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const Message_1 = require("../enums/Message");
|
||||
const Utils_1 = require("./Utils");
|
||||
const InstantMessageDialog_1 = require("../enums/InstantMessageDialog");
|
||||
const __1 = require("..");
|
||||
class Comms {
|
||||
constructor(circuit, agent, clientEvents) {
|
||||
this.clientEvents = clientEvents;
|
||||
this.circuit = circuit;
|
||||
this.agent = agent;
|
||||
this.circuit.subscribeToMessages([
|
||||
Message_1.Message.ImprovedInstantMessage,
|
||||
Message_1.Message.ChatFromSimulator,
|
||||
Message_1.Message.AlertMessage,
|
||||
Message_1.Message.ScriptDialog
|
||||
], (packet) => {
|
||||
switch (packet.message.id) {
|
||||
case Message_1.Message.ImprovedInstantMessage:
|
||||
const im = packet.message;
|
||||
switch (im.MessageBlock.Dialog) {
|
||||
case InstantMessageDialog_1.InstantMessageDialog.MessageFromAgent:
|
||||
{
|
||||
const imEvent = new __1.InstantMessageEvent();
|
||||
imEvent.source = __1.ChatSourceType.Agent;
|
||||
imEvent.from = im.AgentData.AgentID;
|
||||
imEvent.owner = im.AgentData.AgentID;
|
||||
imEvent.fromName = Utils_1.Utils.BufferToStringSimple(im.MessageBlock.FromAgentName);
|
||||
imEvent.message = Utils_1.Utils.BufferToStringSimple(im.MessageBlock.Message);
|
||||
imEvent.flags = __1.InstantMessageEventFlags.normal;
|
||||
this.clientEvents.onInstantMessage.next(imEvent);
|
||||
break;
|
||||
}
|
||||
case InstantMessageDialog_1.InstantMessageDialog.MessageBox:
|
||||
break;
|
||||
case InstantMessageDialog_1.InstantMessageDialog.GroupInvitation:
|
||||
const giEvent = new __1.GroupInviteEvent();
|
||||
giEvent.from = im.AgentData.AgentID;
|
||||
giEvent.fromName = Utils_1.Utils.BufferToStringSimple(im.MessageBlock.FromAgentName);
|
||||
giEvent.message = Utils_1.Utils.BufferToStringSimple(im.MessageBlock.Message);
|
||||
giEvent.inviteID = im.MessageBlock.ID;
|
||||
this.clientEvents.onGroupInvite.next(giEvent);
|
||||
break;
|
||||
case InstantMessageDialog_1.InstantMessageDialog.InventoryOffered:
|
||||
{
|
||||
const fromName = Utils_1.Utils.BufferToStringSimple(im.MessageBlock.FromAgentName);
|
||||
const message = Utils_1.Utils.BufferToStringSimple(im.MessageBlock.Message);
|
||||
const ioEvent = new __1.InventoryOfferedEvent();
|
||||
ioEvent.from = im.AgentData.AgentID;
|
||||
ioEvent.fromName = fromName;
|
||||
ioEvent.message = message;
|
||||
ioEvent.requestID = im.MessageBlock.ID;
|
||||
ioEvent.source = __1.ChatSourceType.Agent;
|
||||
this.clientEvents.onInventoryOffered.next(ioEvent);
|
||||
break;
|
||||
}
|
||||
case InstantMessageDialog_1.InstantMessageDialog.InventoryAccepted:
|
||||
break;
|
||||
case InstantMessageDialog_1.InstantMessageDialog.InventoryDeclined:
|
||||
break;
|
||||
case InstantMessageDialog_1.InstantMessageDialog.TaskInventoryOffered:
|
||||
{
|
||||
const fromName = Utils_1.Utils.BufferToStringSimple(im.MessageBlock.FromAgentName);
|
||||
const message = Utils_1.Utils.BufferToStringSimple(im.MessageBlock.Message);
|
||||
const ioEvent = new __1.InventoryOfferedEvent();
|
||||
ioEvent.from = im.AgentData.AgentID;
|
||||
ioEvent.fromName = fromName;
|
||||
ioEvent.message = message;
|
||||
ioEvent.requestID = im.MessageBlock.ID;
|
||||
ioEvent.source = __1.ChatSourceType.Object;
|
||||
ioEvent.type = im.MessageBlock.BinaryBucket.readUInt8(0);
|
||||
this.clientEvents.onInventoryOffered.next(ioEvent);
|
||||
break;
|
||||
}
|
||||
case InstantMessageDialog_1.InstantMessageDialog.TaskInventoryAccepted:
|
||||
break;
|
||||
case InstantMessageDialog_1.InstantMessageDialog.TaskInventoryDeclined:
|
||||
break;
|
||||
case InstantMessageDialog_1.InstantMessageDialog.MessageFromObject:
|
||||
{
|
||||
const imEvent = new __1.InstantMessageEvent();
|
||||
imEvent.source = __1.ChatSourceType.Object;
|
||||
imEvent.owner = im.AgentData.AgentID;
|
||||
imEvent.from = im.MessageBlock.ID;
|
||||
imEvent.fromName = Utils_1.Utils.BufferToStringSimple(im.MessageBlock.FromAgentName);
|
||||
imEvent.message = Utils_1.Utils.BufferToStringSimple(im.MessageBlock.Message);
|
||||
imEvent.flags = __1.InstantMessageEventFlags.normal;
|
||||
this.clientEvents.onInstantMessage.next(imEvent);
|
||||
break;
|
||||
}
|
||||
case InstantMessageDialog_1.InstantMessageDialog.BusyAutoResponse:
|
||||
{
|
||||
const imEvent = new __1.InstantMessageEvent();
|
||||
imEvent.source = __1.ChatSourceType.Agent;
|
||||
imEvent.from = im.AgentData.AgentID;
|
||||
imEvent.owner = im.AgentData.AgentID;
|
||||
imEvent.fromName = Utils_1.Utils.BufferToStringSimple(im.MessageBlock.FromAgentName);
|
||||
imEvent.message = Utils_1.Utils.BufferToStringSimple(im.MessageBlock.Message);
|
||||
imEvent.flags = __1.InstantMessageEventFlags.busyResponse;
|
||||
this.clientEvents.onInstantMessage.next(imEvent);
|
||||
break;
|
||||
}
|
||||
case InstantMessageDialog_1.InstantMessageDialog.ConsoleAndChatHistory:
|
||||
break;
|
||||
case InstantMessageDialog_1.InstantMessageDialog.RequestTeleport:
|
||||
const lureEvent = new __1.LureEvent();
|
||||
const extraData = Utils_1.Utils.BufferToStringSimple(im.MessageBlock.BinaryBucket).split('|');
|
||||
lureEvent.from = im.AgentData.AgentID;
|
||||
lureEvent.fromName = Utils_1.Utils.BufferToStringSimple(im.MessageBlock.FromAgentName);
|
||||
lureEvent.lureMessage = Utils_1.Utils.BufferToStringSimple(im.MessageBlock.Message);
|
||||
lureEvent.regionID = im.MessageBlock.RegionID;
|
||||
lureEvent.position = im.MessageBlock.Position;
|
||||
lureEvent.lureID = im.MessageBlock.ID;
|
||||
lureEvent.gridX = parseInt(extraData[0], 10);
|
||||
lureEvent.gridY = parseInt(extraData[1], 10);
|
||||
this.clientEvents.onLure.next(lureEvent);
|
||||
break;
|
||||
case InstantMessageDialog_1.InstantMessageDialog.AcceptTeleport:
|
||||
break;
|
||||
case InstantMessageDialog_1.InstantMessageDialog.DenyTeleport:
|
||||
break;
|
||||
case InstantMessageDialog_1.InstantMessageDialog.RequestLure:
|
||||
break;
|
||||
case InstantMessageDialog_1.InstantMessageDialog.GotoUrl:
|
||||
break;
|
||||
case InstantMessageDialog_1.InstantMessageDialog.FromTaskAsAlert:
|
||||
break;
|
||||
case InstantMessageDialog_1.InstantMessageDialog.GroupNotice:
|
||||
break;
|
||||
case InstantMessageDialog_1.InstantMessageDialog.GroupNoticeInventoryAccepted:
|
||||
break;
|
||||
case InstantMessageDialog_1.InstantMessageDialog.GroupNoticeInventoryDeclined:
|
||||
break;
|
||||
case InstantMessageDialog_1.InstantMessageDialog.GroupInvitationAccept:
|
||||
break;
|
||||
case InstantMessageDialog_1.InstantMessageDialog.GroupInvitationDecline:
|
||||
break;
|
||||
case InstantMessageDialog_1.InstantMessageDialog.GroupNoticeRequested:
|
||||
break;
|
||||
case InstantMessageDialog_1.InstantMessageDialog.FriendshipOffered:
|
||||
{
|
||||
const fromName = Utils_1.Utils.BufferToStringSimple(im.MessageBlock.FromAgentName);
|
||||
const message = Utils_1.Utils.BufferToStringSimple(im.MessageBlock.Message);
|
||||
const frEvent = new __1.FriendRequestEvent();
|
||||
frEvent.from = im.AgentData.AgentID;
|
||||
frEvent.fromName = fromName;
|
||||
frEvent.message = message;
|
||||
frEvent.requestID = im.MessageBlock.ID;
|
||||
this.clientEvents.onFriendRequest.next(frEvent);
|
||||
break;
|
||||
}
|
||||
case InstantMessageDialog_1.InstantMessageDialog.FriendshipAccepted:
|
||||
{
|
||||
const fromName = Utils_1.Utils.BufferToStringSimple(im.MessageBlock.FromAgentName);
|
||||
const message = Utils_1.Utils.BufferToStringSimple(im.MessageBlock.Message);
|
||||
const frEvent = new __1.FriendResponseEvent();
|
||||
frEvent.from = im.AgentData.AgentID;
|
||||
frEvent.fromName = fromName;
|
||||
frEvent.message = message;
|
||||
frEvent.requestID = im.MessageBlock.ID;
|
||||
frEvent.accepted = true;
|
||||
this.clientEvents.onFriendResponse.next(frEvent);
|
||||
break;
|
||||
}
|
||||
case InstantMessageDialog_1.InstantMessageDialog.FriendshipDeclined:
|
||||
{
|
||||
const fromName = Utils_1.Utils.BufferToStringSimple(im.MessageBlock.FromAgentName);
|
||||
const message = Utils_1.Utils.BufferToStringSimple(im.MessageBlock.Message);
|
||||
const frEvent = new __1.FriendResponseEvent();
|
||||
frEvent.from = im.AgentData.AgentID;
|
||||
frEvent.fromName = fromName;
|
||||
frEvent.message = message;
|
||||
frEvent.requestID = im.MessageBlock.ID;
|
||||
frEvent.accepted = false;
|
||||
this.clientEvents.onFriendResponse.next(frEvent);
|
||||
break;
|
||||
}
|
||||
case InstantMessageDialog_1.InstantMessageDialog.StartTyping:
|
||||
{
|
||||
const imEvent = new __1.InstantMessageEvent();
|
||||
imEvent.source = __1.ChatSourceType.Agent;
|
||||
imEvent.from = im.AgentData.AgentID;
|
||||
imEvent.owner = im.AgentData.AgentID;
|
||||
imEvent.fromName = Utils_1.Utils.BufferToStringSimple(im.MessageBlock.FromAgentName);
|
||||
imEvent.message = '';
|
||||
imEvent.flags = __1.InstantMessageEventFlags.startTyping;
|
||||
this.clientEvents.onInstantMessage.next(imEvent);
|
||||
break;
|
||||
}
|
||||
case InstantMessageDialog_1.InstantMessageDialog.StopTyping:
|
||||
{
|
||||
const imEvent = new __1.InstantMessageEvent();
|
||||
imEvent.source = __1.ChatSourceType.Agent;
|
||||
imEvent.from = im.AgentData.AgentID;
|
||||
imEvent.owner = im.AgentData.AgentID;
|
||||
imEvent.fromName = Utils_1.Utils.BufferToStringSimple(im.MessageBlock.FromAgentName);
|
||||
imEvent.message = '';
|
||||
imEvent.flags = __1.InstantMessageEventFlags.finishTyping;
|
||||
this.clientEvents.onInstantMessage.next(imEvent);
|
||||
break;
|
||||
}
|
||||
case InstantMessageDialog_1.InstantMessageDialog.SessionSend:
|
||||
{
|
||||
const groupChatEvent = new __1.GroupChatEvent();
|
||||
groupChatEvent.from = im.AgentData.AgentID;
|
||||
groupChatEvent.fromName = Utils_1.Utils.BufferToStringSimple(im.MessageBlock.FromAgentName);
|
||||
groupChatEvent.groupID = im.MessageBlock.ID;
|
||||
groupChatEvent.message = Utils_1.Utils.BufferToStringSimple(im.MessageBlock.Message);
|
||||
this.clientEvents.onGroupChat.next(groupChatEvent);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case Message_1.Message.ChatFromSimulator:
|
||||
{
|
||||
const chat = packet.message;
|
||||
const event = new __1.ChatEvent();
|
||||
event.fromName = Utils_1.Utils.BufferToStringSimple(chat.ChatData.FromName);
|
||||
event.message = Utils_1.Utils.BufferToStringSimple(chat.ChatData.Message);
|
||||
event.from = chat.ChatData.SourceID;
|
||||
event.ownerID = chat.ChatData.OwnerID;
|
||||
event.chatType = chat.ChatData.ChatType;
|
||||
event.sourceType = chat.ChatData.SourceType;
|
||||
event.audible = chat.ChatData.Audible;
|
||||
event.position = chat.ChatData.Position;
|
||||
this.clientEvents.onNearbyChat.next(event);
|
||||
break;
|
||||
}
|
||||
case Message_1.Message.AlertMessage:
|
||||
{
|
||||
const alertm = packet.message;
|
||||
const alertMessage = Utils_1.Utils.BufferToStringSimple(alertm.AlertData.Message);
|
||||
console.log('Alert message: ' + alertMessage);
|
||||
alertm.AlertInfo.forEach((info) => {
|
||||
const alertInfoMessage = Utils_1.Utils.BufferToStringSimple(info.Message);
|
||||
console.log('Alert info message: ' + alertInfoMessage);
|
||||
});
|
||||
break;
|
||||
}
|
||||
case Message_1.Message.ScriptDialog:
|
||||
{
|
||||
const scriptd = packet.message;
|
||||
const event = new __1.ScriptDialogEvent();
|
||||
event.ObjectID = scriptd.Data.ObjectID;
|
||||
event.FirstName = Utils_1.Utils.BufferToStringSimple(scriptd.Data.FirstName);
|
||||
event.LastName = Utils_1.Utils.BufferToStringSimple(scriptd.Data.LastName);
|
||||
event.ObjectName = Utils_1.Utils.BufferToStringSimple(scriptd.Data.ObjectName);
|
||||
event.Message = Utils_1.Utils.BufferToStringSimple(scriptd.Data.Message);
|
||||
event.ChatChannel = scriptd.Data.ChatChannel;
|
||||
event.ImageID = scriptd.Data.ImageID;
|
||||
event.Buttons = [];
|
||||
event.Owners = [];
|
||||
for (const button of scriptd.Buttons) {
|
||||
event.Buttons.push(Utils_1.Utils.BufferToStringSimple(button.ButtonLabel));
|
||||
}
|
||||
for (const owner of scriptd.OwnerData) {
|
||||
event.Owners.push(owner.OwnerID);
|
||||
}
|
||||
this.clientEvents.onScriptDialog.next(event);
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
shutdown() {
|
||||
}
|
||||
}
|
||||
exports.Comms = Comms;
|
||||
//# sourceMappingURL=Comms.js.map
|
||||
1
dist/classes/Comms.js.map
vendored
1
dist/classes/Comms.js.map
vendored
File diff suppressed because one or more lines are too long
17
dist/classes/EventQueueClient.d.ts
vendored
17
dist/classes/EventQueueClient.d.ts
vendored
@@ -1,17 +0,0 @@
|
||||
import { Caps } from './Caps';
|
||||
import * as request from 'request';
|
||||
import { ClientEvents } from './ClientEvents';
|
||||
import { Agent } from './Agent';
|
||||
export declare class EventQueueClient {
|
||||
caps: Caps;
|
||||
ack?: number;
|
||||
done: boolean;
|
||||
currentRequest: request.Request | null;
|
||||
private clientEvents;
|
||||
private agent;
|
||||
constructor(agent: Agent, caps: Caps, clientEvents: ClientEvents);
|
||||
shutdown(): void;
|
||||
Get(): void;
|
||||
request(url: string, data: string, contentType: string): Promise<string>;
|
||||
capsRequestXML(capability: string, data: any, attempt?: number): Promise<any>;
|
||||
}
|
||||
255
dist/classes/EventQueueClient.js
vendored
255
dist/classes/EventQueueClient.js
vendored
@@ -1,255 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const LLSD = require("@caspertech/llsd");
|
||||
const request = require("request");
|
||||
const Long = require("long");
|
||||
const IPAddress_1 = require("./IPAddress");
|
||||
const TeleportEventType_1 = require("../enums/TeleportEventType");
|
||||
const UUID_1 = require("./UUID");
|
||||
const __1 = require("..");
|
||||
class EventQueueClient {
|
||||
constructor(agent, caps, clientEvents) {
|
||||
this.done = false;
|
||||
this.currentRequest = null;
|
||||
this.agent = agent;
|
||||
this.clientEvents = clientEvents;
|
||||
this.caps = caps;
|
||||
this.Get();
|
||||
const state = new __1.EventQueueStateChangeEvent();
|
||||
state.active = true;
|
||||
this.clientEvents.onEventQueueStateChange.next(state);
|
||||
}
|
||||
shutdown() {
|
||||
this.done = true;
|
||||
if (this.currentRequest !== null) {
|
||||
this.currentRequest.abort();
|
||||
}
|
||||
const req = {
|
||||
'ack': this.ack,
|
||||
'done': true
|
||||
};
|
||||
this.capsRequestXML('EventQueueGet', req).then((data) => {
|
||||
const state = new __1.EventQueueStateChangeEvent();
|
||||
state.active = false;
|
||||
this.clientEvents.onEventQueueStateChange.next(state);
|
||||
});
|
||||
}
|
||||
Get() {
|
||||
const req = {
|
||||
'ack': this.ack,
|
||||
'done': this.done
|
||||
};
|
||||
const startTime = new Date().getTime();
|
||||
this.capsRequestXML('EventQueueGet', req).then((data) => {
|
||||
if (data['id']) {
|
||||
this.ack = data['id'];
|
||||
}
|
||||
else {
|
||||
this.ack = undefined;
|
||||
}
|
||||
try {
|
||||
if (data['events']) {
|
||||
data['events'].forEach((event) => {
|
||||
try {
|
||||
if (event['message']) {
|
||||
switch (event['message']) {
|
||||
case 'EnableSimulator':
|
||||
break;
|
||||
case 'ParcelProperties':
|
||||
break;
|
||||
case 'AgentGroupDataUpdate':
|
||||
break;
|
||||
case 'AgentStateUpdate':
|
||||
break;
|
||||
case 'TeleportFailed':
|
||||
{
|
||||
const tpEvent = new __1.TeleportEvent();
|
||||
tpEvent.message = event['body']['Info'][0]['Reason'];
|
||||
tpEvent.eventType = TeleportEventType_1.TeleportEventType.TeleportFailed;
|
||||
tpEvent.simIP = '';
|
||||
tpEvent.simPort = 0;
|
||||
tpEvent.seedCapability = '';
|
||||
this.clientEvents.onTeleportEvent.next(tpEvent);
|
||||
break;
|
||||
}
|
||||
case "ChatterBoxSessionStartReply":
|
||||
{
|
||||
if (event['body']) {
|
||||
const gcsje = new __1.GroupChatSessionJoinEvent();
|
||||
gcsje.sessionID = new UUID_1.UUID(event['body']['session_id'].toString());
|
||||
gcsje.success = event['body']['success'];
|
||||
if (gcsje.success) {
|
||||
this.agent.addChatSession(gcsje.sessionID);
|
||||
}
|
||||
this.clientEvents.onGroupChatSessionJoin.next(gcsje);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 'ChatterBoxInvitation':
|
||||
{
|
||||
if (event['body'] && event['body']['instantmessage'] && event['body']['instantmessage']['message_params'] && event['body']['instantmessage']['message_params']['id']) {
|
||||
const messageParams = event['body']['instantmessage']['message_params'];
|
||||
const imSessionID = messageParams['id'];
|
||||
const groupChatEvent = new __1.GroupChatEvent();
|
||||
groupChatEvent.from = new UUID_1.UUID(messageParams['from_id'].toString());
|
||||
groupChatEvent.fromName = messageParams['from_name'];
|
||||
groupChatEvent.groupID = new UUID_1.UUID(messageParams['id'].toString());
|
||||
groupChatEvent.message = messageParams['message'];
|
||||
const requestedFolders = {
|
||||
'method': 'accept invitation',
|
||||
'session-id': imSessionID
|
||||
};
|
||||
this.caps.capsRequestXML('ChatSessionRequest', requestedFolders).then((ignore) => {
|
||||
this.agent.addChatSession(groupChatEvent.groupID);
|
||||
const gcsje = new __1.GroupChatSessionJoinEvent();
|
||||
gcsje.sessionID = groupChatEvent.groupID;
|
||||
gcsje.success = true;
|
||||
this.clientEvents.onGroupChatSessionJoin.next(gcsje);
|
||||
this.clientEvents.onGroupChat.next(groupChatEvent);
|
||||
}).catch((err) => {
|
||||
console.error(err);
|
||||
});
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 'ChatterBoxSessionAgentListUpdates':
|
||||
{
|
||||
if (event['body']) {
|
||||
if (event['body']['agent_updates']) {
|
||||
Object.keys(event['body']['agent_updates']).forEach((agentUpdate) => {
|
||||
const updObj = event['body']['agent_updates'][agentUpdate];
|
||||
const gcsale = new __1.GroupChatSessionAgentListEvent();
|
||||
gcsale.agentID = new UUID_1.UUID(agentUpdate);
|
||||
gcsale.groupID = new UUID_1.UUID(event['body']['session_id'].toString());
|
||||
gcsale.canVoiceChat = false;
|
||||
gcsale.isModerator = false;
|
||||
gcsale.entered = (updObj['transition'] === 'ENTER');
|
||||
if (updObj['can_voice_chat'] === true) {
|
||||
gcsale.canVoiceChat = true;
|
||||
}
|
||||
if (updObj['is_moderator'] === true) {
|
||||
gcsale.isModerator = true;
|
||||
}
|
||||
this.clientEvents.onGroupChatAgentListUpdate.next(gcsale);
|
||||
});
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 'ObjectPhysicsProperties':
|
||||
{
|
||||
break;
|
||||
}
|
||||
case 'TeleportFinish':
|
||||
{
|
||||
const info = event['body']['Info'][0];
|
||||
if (info['LocationID']) {
|
||||
info['LocationID'] = Buffer.from(info['LocationID'].toArray()).readUInt32LE(0);
|
||||
const regionHandleBuf = Buffer.from(info['RegionHandle'].toArray());
|
||||
info['RegionHandle'] = new Long(regionHandleBuf.readUInt32LE(0), regionHandleBuf.readUInt32LE(4), true);
|
||||
info['SimIP'] = new IPAddress_1.IPAddress(Buffer.from(info['SimIP'].toArray()), 0).toString();
|
||||
info['TeleportFlags'] = Buffer.from(info['TeleportFlags'].toArray()).readUInt32LE(0);
|
||||
const tpEvent = new __1.TeleportEvent();
|
||||
tpEvent.message = '';
|
||||
tpEvent.eventType = TeleportEventType_1.TeleportEventType.TeleportCompleted;
|
||||
tpEvent.simIP = info['SimIP'];
|
||||
tpEvent.simPort = info['SimPort'];
|
||||
tpEvent.seedCapability = info['SeedCapability'];
|
||||
this.clientEvents.onTeleportEvent.next(tpEvent);
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
console.log('Unhandled event:');
|
||||
console.log(JSON.stringify(event, null, 4));
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (erro) {
|
||||
console.error('Error handling cap');
|
||||
console.error(erro);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
if (!this.done) {
|
||||
this.Get();
|
||||
}
|
||||
}).catch((err) => {
|
||||
const time = (new Date().getTime()) - startTime;
|
||||
if (time > 30000) {
|
||||
if (!this.done) {
|
||||
this.Get();
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (!this.done) {
|
||||
console.error('Event queue aborted after ' + time + 'ms. Reconnecting in 5 seconds');
|
||||
setTimeout(() => {
|
||||
if (!this.done) {
|
||||
this.Get();
|
||||
}
|
||||
}, 5000);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
request(url, data, contentType) {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.currentRequest = request({
|
||||
'headers': {
|
||||
'Content-Length': data.length,
|
||||
'Content-Type': contentType
|
||||
},
|
||||
'uri': url,
|
||||
'body': data,
|
||||
'rejectUnauthorized': false,
|
||||
'method': 'POST',
|
||||
'timeout': 1800000
|
||||
}, (err, res, body) => {
|
||||
this.currentRequest = null;
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
else {
|
||||
resolve(body);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
capsRequestXML(capability, data, attempt = 0) {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.caps.getCapability(capability).then((url) => {
|
||||
const serializedData = LLSD.LLSD.formatXML(data);
|
||||
this.request(url, serializedData, 'application/llsd+xml').then((body) => {
|
||||
try {
|
||||
if (body.indexOf('<llsd>') !== -1) {
|
||||
const parsed = LLSD.LLSD.parseXML(body);
|
||||
resolve(parsed);
|
||||
}
|
||||
else {
|
||||
if (attempt < 3 && capability !== 'EventQueueGet') {
|
||||
return this.capsRequestXML(capability, data, ++attempt);
|
||||
}
|
||||
else {
|
||||
reject(new Error('Not an LLSD response, capability: ' + capability));
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (error) {
|
||||
reject(error);
|
||||
}
|
||||
}).catch((err) => {
|
||||
reject(err);
|
||||
});
|
||||
}).catch((err) => {
|
||||
reject(err);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.EventQueueClient = EventQueueClient;
|
||||
//# sourceMappingURL=EventQueueClient.js.map
|
||||
1
dist/classes/EventQueueClient.js.map
vendored
1
dist/classes/EventQueueClient.js.map
vendored
File diff suppressed because one or more lines are too long
104
dist/classes/GameObject.d.ts
vendored
104
dist/classes/GameObject.d.ts
vendored
@@ -1,104 +0,0 @@
|
||||
/// <reference types="node" />
|
||||
import { Vector3 } from './Vector3';
|
||||
import { UUID } from './UUID';
|
||||
import { Quaternion } from './Quaternion';
|
||||
import { Tree } from '../enums/Tree';
|
||||
import { SoundFlags } from '..';
|
||||
import { Vector4 } from './Vector4';
|
||||
import { TextureEntry } from './TextureEntry';
|
||||
import { Color4 } from './Color4';
|
||||
import { ParticleSystem } from './ParticleSystem';
|
||||
import { ITreeBoundingBox } from './interfaces/ITreeBoundingBox';
|
||||
import { NameValue } from './NameValue';
|
||||
import { PCode } from '../enums/PCode';
|
||||
import * as Long from 'long';
|
||||
export declare class GameObject {
|
||||
creatorID?: UUID;
|
||||
creationDate?: Long;
|
||||
baseMask?: number;
|
||||
ownerMask?: number;
|
||||
groupMask?: number;
|
||||
everyoneMask?: number;
|
||||
nextOwnerMask?: number;
|
||||
ownershipCost?: number;
|
||||
saleType?: number;
|
||||
salePrice?: number;
|
||||
aggregatePerms?: number;
|
||||
aggregatePermTextures?: number;
|
||||
aggregatePermTexturesOwner?: number;
|
||||
category: number;
|
||||
inventorySerial: number;
|
||||
itemID: UUID;
|
||||
folderID: UUID;
|
||||
fromTaskID: UUID;
|
||||
lastOwnerID: UUID;
|
||||
name?: string;
|
||||
description?: string;
|
||||
touchName?: string;
|
||||
sitName?: string;
|
||||
textureID?: string;
|
||||
resolvedAt?: number;
|
||||
totalChildren?: number;
|
||||
children?: GameObject[];
|
||||
rtreeEntry?: ITreeBoundingBox;
|
||||
ID: number;
|
||||
FullID: UUID;
|
||||
ParentID: number;
|
||||
OwnerID: UUID;
|
||||
IsAttachment: boolean;
|
||||
NameValue: {
|
||||
[key: string]: NameValue;
|
||||
};
|
||||
PCode: PCode;
|
||||
State?: number;
|
||||
CRC?: number;
|
||||
Material?: number;
|
||||
ClickAction?: number;
|
||||
Scale?: Vector3;
|
||||
ObjectData?: Buffer;
|
||||
UpdateFlags?: number;
|
||||
Flags?: number;
|
||||
PathCurve?: number;
|
||||
ProfileCurve?: number;
|
||||
PathBegin?: number;
|
||||
PathEnd?: number;
|
||||
PathScaleX?: number;
|
||||
PathScaleY?: number;
|
||||
PathShearX?: number;
|
||||
PathShearY?: number;
|
||||
PathTwist?: number;
|
||||
PathTwistBegin?: number;
|
||||
PathRadiusOffset?: number;
|
||||
PathTaperX?: number;
|
||||
PathTaperY?: number;
|
||||
PathRevolutions?: number;
|
||||
PathSkew?: number;
|
||||
ProfileBegin?: number;
|
||||
ProfileEnd?: number;
|
||||
ProfileHollow?: number;
|
||||
TextureEntry?: TextureEntry;
|
||||
TextureAnim?: Buffer;
|
||||
Data?: Buffer;
|
||||
Text?: string;
|
||||
TextColor?: Color4;
|
||||
MediaURL?: string;
|
||||
PSBlock?: Buffer;
|
||||
JointType?: number;
|
||||
JointPivot?: Vector3;
|
||||
JointAxisOrAnchor?: Vector3;
|
||||
Position?: Vector3;
|
||||
Rotation?: Quaternion;
|
||||
CollisionPlane?: Vector4;
|
||||
Velocity?: Vector3;
|
||||
Acceleration?: Vector3;
|
||||
AngularVelocity?: Vector3;
|
||||
TreeSpecies?: Tree;
|
||||
Sound?: UUID;
|
||||
SoundGain?: number;
|
||||
SoundFlags?: SoundFlags;
|
||||
SoundRadius?: number;
|
||||
Particles?: ParticleSystem;
|
||||
constructor();
|
||||
hasNameValueEntry(key: string): boolean;
|
||||
getNameValueEntry(key: string): string;
|
||||
}
|
||||
36
dist/classes/GameObject.js
vendored
36
dist/classes/GameObject.js
vendored
@@ -1,36 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const Vector3_1 = require("./Vector3");
|
||||
const UUID_1 = require("./UUID");
|
||||
const Quaternion_1 = require("./Quaternion");
|
||||
const PCode_1 = require("../enums/PCode");
|
||||
class GameObject {
|
||||
constructor() {
|
||||
this.ID = 0;
|
||||
this.FullID = UUID_1.UUID.random();
|
||||
this.ParentID = 0;
|
||||
this.OwnerID = UUID_1.UUID.zero();
|
||||
this.IsAttachment = false;
|
||||
this.NameValue = {};
|
||||
this.PCode = PCode_1.PCode.None;
|
||||
this.Position = Vector3_1.Vector3.getZero();
|
||||
this.Rotation = Quaternion_1.Quaternion.getIdentity();
|
||||
this.AngularVelocity = Vector3_1.Vector3.getZero();
|
||||
this.TreeSpecies = 0;
|
||||
this.SoundFlags = 0;
|
||||
this.SoundRadius = 1.0;
|
||||
this.SoundGain = 1.0;
|
||||
this.ParentID = 0;
|
||||
}
|
||||
hasNameValueEntry(key) {
|
||||
return this.NameValue[key] !== undefined;
|
||||
}
|
||||
getNameValueEntry(key) {
|
||||
if (this.NameValue[key]) {
|
||||
return this.NameValue[key].value;
|
||||
}
|
||||
return '';
|
||||
}
|
||||
}
|
||||
exports.GameObject = GameObject;
|
||||
//# sourceMappingURL=GameObject.js.map
|
||||
1
dist/classes/GameObject.js.map
vendored
1
dist/classes/GameObject.js.map
vendored
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"GameObject.js","sourceRoot":"","sources":["../../lib/classes/GameObject.ts"],"names":[],"mappings":";;AAAA,uCAAkC;AAClC,iCAA4B;AAC5B,6CAAwC;AASxC,0CAAqC;AAIrC,MAAa,UAAU;IAyFnB;QAzDA,OAAE,GAAG,CAAC,CAAC;QACP,WAAM,GAAG,WAAI,CAAC,MAAM,EAAE,CAAC;QACvB,aAAQ,GAAG,CAAC,CAAC;QACb,YAAO,GAAG,WAAI,CAAC,IAAI,EAAE,CAAC;QACtB,iBAAY,GAAG,KAAK,CAAC;QACrB,cAAS,GAA+B,EAAE,CAAC;QAC3C,UAAK,GAAU,aAAK,CAAC,IAAI,CAAC;QAqDtB,IAAI,CAAC,QAAQ,GAAG,iBAAO,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,uBAAU,CAAC,WAAW,EAAE,CAAC;QACzC,IAAI,CAAC,eAAe,GAAG,iBAAO,CAAC,OAAO,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACtB,CAAC;IAED,iBAAiB,CAAC,GAAW;QAEzB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;IAC7C,CAAC;IAED,iBAAiB,CAAC,GAAW;QAEzB,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EACvB;YACI,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;SACpC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AAlHD,gCAkHC"}
|
||||
20
dist/classes/GameObjectBase.d.ts
vendored
20
dist/classes/GameObjectBase.d.ts
vendored
@@ -1,20 +0,0 @@
|
||||
import { UUID } from './UUID';
|
||||
import { NameValue } from './NameValue';
|
||||
import { PCode } from '../enums/PCode';
|
||||
import { ITreeBoundingBox } from './interfaces/ITreeBoundingBox';
|
||||
export declare class GameObjectBase {
|
||||
name?: string;
|
||||
description?: string;
|
||||
rtreeEntry?: ITreeBoundingBox;
|
||||
ID: number;
|
||||
FullID: UUID;
|
||||
ParentID: number;
|
||||
OwnerID: UUID;
|
||||
IsAttachment: boolean;
|
||||
NameValue: {
|
||||
[key: string]: NameValue;
|
||||
};
|
||||
PCode: PCode;
|
||||
hasNameValueEntry(key: string): boolean;
|
||||
getNameValueEntry(key: string): string;
|
||||
}
|
||||
26
dist/classes/GameObjectBase.js
vendored
26
dist/classes/GameObjectBase.js
vendored
@@ -1,26 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const UUID_1 = require("./UUID");
|
||||
const PCode_1 = require("../enums/PCode");
|
||||
class GameObjectBase {
|
||||
constructor() {
|
||||
this.ID = 0;
|
||||
this.FullID = UUID_1.UUID.random();
|
||||
this.ParentID = 0;
|
||||
this.OwnerID = UUID_1.UUID.zero();
|
||||
this.IsAttachment = false;
|
||||
this.NameValue = {};
|
||||
this.PCode = PCode_1.PCode.None;
|
||||
}
|
||||
hasNameValueEntry(key) {
|
||||
return this.NameValue[key] !== undefined;
|
||||
}
|
||||
getNameValueEntry(key) {
|
||||
if (this.NameValue[key]) {
|
||||
return this.NameValue[key].value;
|
||||
}
|
||||
return '';
|
||||
}
|
||||
}
|
||||
exports.GameObjectBase = GameObjectBase;
|
||||
//# sourceMappingURL=GameObjectBase.js.map
|
||||
1
dist/classes/GameObjectBase.js.map
vendored
1
dist/classes/GameObjectBase.js.map
vendored
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"GameObjectBase.js","sourceRoot":"","sources":["../../lib/classes/GameObjectBase.ts"],"names":[],"mappings":";;AAAA,iCAA4B;AAE5B,0CAAqC;AAGrC,MAAa,cAAc;IAA3B;QAKI,OAAE,GAAG,CAAC,CAAC;QACP,WAAM,GAAG,WAAI,CAAC,MAAM,EAAE,CAAC;QACvB,aAAQ,GAAG,CAAC,CAAC;QACb,YAAO,GAAG,WAAI,CAAC,IAAI,EAAE,CAAC;QACtB,iBAAY,GAAG,KAAK,CAAC;QACrB,cAAS,GAA+B,EAAE,CAAC;QAC3C,UAAK,GAAU,aAAK,CAAC,IAAI,CAAC;IAe9B,CAAC;IAbG,iBAAiB,CAAC,GAAW;QAEzB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;IAC7C,CAAC;IAED,iBAAiB,CAAC,GAAW;QAEzB,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EACvB;YACI,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;SACpC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AA1BD,wCA0BC"}
|
||||
77
dist/classes/GameObjectFull.d.ts
vendored
77
dist/classes/GameObjectFull.d.ts
vendored
@@ -1,77 +0,0 @@
|
||||
/// <reference types="node" />
|
||||
import { Vector3 } from './Vector3';
|
||||
import { UUID } from './UUID';
|
||||
import { PCode } from '../enums/PCode';
|
||||
import { Quaternion } from './Quaternion';
|
||||
import { Tree } from '../enums/Tree';
|
||||
import { NameValue } from './NameValue';
|
||||
import { IGameObject } from './interfaces/IGameObject';
|
||||
import { SoundFlags } from '..';
|
||||
import { ITreeBoundingBox } from './interfaces/ITreeBoundingBox';
|
||||
import { Vector4 } from './Vector4';
|
||||
import { TextureEntry } from './TextureEntry';
|
||||
import { Color4 } from './Color4';
|
||||
import { ParticleSystem } from './ParticleSystem';
|
||||
export declare class GameObjectFull implements IGameObject {
|
||||
rtreeEntry?: ITreeBoundingBox;
|
||||
ID: number;
|
||||
State: number;
|
||||
FullID: UUID;
|
||||
CRC: number;
|
||||
PCode: PCode;
|
||||
Material: number;
|
||||
ClickAction: number;
|
||||
Scale: Vector3;
|
||||
ObjectData: Buffer;
|
||||
ParentID: number;
|
||||
UpdateFlags: number;
|
||||
Flags: number;
|
||||
PathCurve: number;
|
||||
ProfileCurve: number;
|
||||
PathBegin: number;
|
||||
PathEnd: number;
|
||||
PathScaleX: number;
|
||||
PathScaleY: number;
|
||||
PathShearX: number;
|
||||
PathShearY: number;
|
||||
PathTwist: number;
|
||||
PathTwistBegin: number;
|
||||
PathRadiusOffset: number;
|
||||
PathTaperX: number;
|
||||
PathTaperY: number;
|
||||
PathRevolutions: number;
|
||||
PathSkew: number;
|
||||
ProfileBegin: number;
|
||||
ProfileEnd: number;
|
||||
ProfileHollow: number;
|
||||
TextureEntry: TextureEntry;
|
||||
TextureAnim: Buffer;
|
||||
Data: Buffer;
|
||||
Text: string;
|
||||
TextColor: Color4;
|
||||
MediaURL: string;
|
||||
PSBlock: Buffer;
|
||||
OwnerID: UUID;
|
||||
JointType: number;
|
||||
JointPivot: Vector3;
|
||||
JointAxisOrAnchor: Vector3;
|
||||
Position: Vector3;
|
||||
Rotation: Quaternion;
|
||||
CollisionPlane: Vector4;
|
||||
Velocity: Vector3;
|
||||
Acceleration: Vector3;
|
||||
AngularVelocity: Vector3;
|
||||
TreeSpecies: Tree;
|
||||
Sound: UUID;
|
||||
SoundGain: number;
|
||||
SoundFlags: SoundFlags;
|
||||
SoundRadius: number;
|
||||
IsAttachment: boolean;
|
||||
NameValue: {
|
||||
[key: string]: NameValue;
|
||||
};
|
||||
Particles: ParticleSystem;
|
||||
constructor();
|
||||
hasNameValueEntry(key: string): boolean;
|
||||
getNameValueEntry(key: string): string;
|
||||
}
|
||||
32
dist/classes/GameObjectFull.js
vendored
32
dist/classes/GameObjectFull.js
vendored
@@ -1,32 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const Vector3_1 = require("./Vector3");
|
||||
const Quaternion_1 = require("./Quaternion");
|
||||
class GameObjectFull {
|
||||
constructor() {
|
||||
this.Position = Vector3_1.Vector3.getZero();
|
||||
this.Rotation = Quaternion_1.Quaternion.getIdentity();
|
||||
this.IsAttachment = false;
|
||||
this.NameValue = {};
|
||||
this.AngularVelocity = Vector3_1.Vector3.getZero();
|
||||
this.TreeSpecies = 0;
|
||||
this.SoundFlags = 0;
|
||||
this.SoundRadius = 1.0;
|
||||
this.SoundGain = 1.0;
|
||||
this.ParentID = 0;
|
||||
}
|
||||
hasNameValueEntry(key) {
|
||||
if (this.NameValue['AttachItemID']) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
getNameValueEntry(key) {
|
||||
if (this.NameValue['AttachItemID']) {
|
||||
return this.NameValue['AttachItemID'].value;
|
||||
}
|
||||
return '';
|
||||
}
|
||||
}
|
||||
exports.GameObjectFull = GameObjectFull;
|
||||
//# sourceMappingURL=GameObjectFull.js.map
|
||||
1
dist/classes/GameObjectFull.js.map
vendored
1
dist/classes/GameObjectFull.js.map
vendored
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"GameObjectFull.js","sourceRoot":"","sources":["../../lib/classes/GameObjectFull.ts"],"names":[],"mappings":";;AAAA,uCAAkC;AAGlC,6CAAwC;AAWxC,MAAa,cAAc;IA0DvB;QAEI,IAAI,CAAC,QAAQ,GAAG,iBAAO,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,uBAAU,CAAC,WAAW,EAAE,CAAC;QACzC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,eAAe,GAAG,iBAAO,CAAC,OAAO,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACtB,CAAC;IAED,iBAAiB,CAAC,GAAW;QAEzB,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,EAClC;YACI,OAAO,IAAI,CAAC;SACf;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,iBAAiB,CAAC,GAAW;QAEzB,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,EAClC;YACI,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC;SAC/C;QACD,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AAzFD,wCAyFC"}
|
||||
20
dist/classes/GameObjectLite.d.ts
vendored
20
dist/classes/GameObjectLite.d.ts
vendored
@@ -1,20 +0,0 @@
|
||||
import { UUID } from './UUID';
|
||||
import { IGameObject } from './interfaces/IGameObject';
|
||||
import { NameValue } from './NameValue';
|
||||
import { PCode } from '../enums/PCode';
|
||||
import { ITreeBoundingBox } from './interfaces/ITreeBoundingBox';
|
||||
export declare class GameObjectLite implements IGameObject {
|
||||
rtreeEntry?: ITreeBoundingBox;
|
||||
ID: number;
|
||||
FullID: UUID;
|
||||
ParentID: number;
|
||||
OwnerID: UUID;
|
||||
IsAttachment: boolean;
|
||||
NameValue: {
|
||||
[key: string]: NameValue;
|
||||
};
|
||||
PCode: PCode;
|
||||
constructor();
|
||||
hasNameValueEntry(key: string): boolean;
|
||||
getNameValueEntry(key: string): string;
|
||||
}
|
||||
18
dist/classes/GameObjectLite.js
vendored
18
dist/classes/GameObjectLite.js
vendored
@@ -1,18 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
class GameObjectLite {
|
||||
constructor() {
|
||||
this.IsAttachment = false;
|
||||
}
|
||||
hasNameValueEntry(key) {
|
||||
return this.NameValue['AttachItemID'] !== undefined;
|
||||
}
|
||||
getNameValueEntry(key) {
|
||||
if (this.NameValue['AttachItemID']) {
|
||||
return this.NameValue['AttachItemID'].value;
|
||||
}
|
||||
return '';
|
||||
}
|
||||
}
|
||||
exports.GameObjectLite = GameObjectLite;
|
||||
//# sourceMappingURL=GameObjectLite.js.map
|
||||
1
dist/classes/GameObjectLite.js.map
vendored
1
dist/classes/GameObjectLite.js.map
vendored
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"GameObjectLite.js","sourceRoot":"","sources":["../../lib/classes/GameObjectLite.ts"],"names":[],"mappings":";;AAMA,MAAa,cAAc;IAUvB;QAEI,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,iBAAiB,CAAC,GAAW;QAEzB,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,SAAS,CAAC;IACxD,CAAC;IAED,iBAAiB,CAAC,GAAW;QAEzB,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,EAClC;YACI,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC;SAC/C;QACD,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AA5BD,wCA4BC"}
|
||||
9
dist/classes/GroupMember.d.ts
vendored
9
dist/classes/GroupMember.d.ts
vendored
@@ -1,9 +0,0 @@
|
||||
import { UUID } from './UUID';
|
||||
import * as Long from 'long';
|
||||
export declare class GroupMember {
|
||||
AgentID: UUID;
|
||||
OnlineStatus: string;
|
||||
AgentPowers: Long;
|
||||
Title: string;
|
||||
IsOwner: boolean;
|
||||
}
|
||||
6
dist/classes/GroupMember.js
vendored
6
dist/classes/GroupMember.js
vendored
@@ -1,6 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
class GroupMember {
|
||||
}
|
||||
exports.GroupMember = GroupMember;
|
||||
//# sourceMappingURL=GroupMember.js.map
|
||||
1
dist/classes/GroupMember.js.map
vendored
1
dist/classes/GroupMember.js.map
vendored
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"GroupMember.js","sourceRoot":"","sources":["../../lib/classes/GroupMember.ts"],"names":[],"mappings":";;AAGA,MAAa,WAAW;CAOvB;AAPD,kCAOC"}
|
||||
10
dist/classes/GroupRole.d.ts
vendored
10
dist/classes/GroupRole.d.ts
vendored
@@ -1,10 +0,0 @@
|
||||
import { UUID } from './UUID';
|
||||
import * as Long from 'long';
|
||||
export declare class GroupRole {
|
||||
RoleID: UUID;
|
||||
Name: string;
|
||||
Title: string;
|
||||
Description: string;
|
||||
Powers: Long;
|
||||
Members: number;
|
||||
}
|
||||
6
dist/classes/GroupRole.js
vendored
6
dist/classes/GroupRole.js
vendored
@@ -1,6 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
class GroupRole {
|
||||
}
|
||||
exports.GroupRole = GroupRole;
|
||||
//# sourceMappingURL=GroupRole.js.map
|
||||
1
dist/classes/GroupRole.js.map
vendored
1
dist/classes/GroupRole.js.map
vendored
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"GroupRole.js","sourceRoot":"","sources":["../../lib/classes/GroupRole.ts"],"names":[],"mappings":";;AAGA,MAAa,SAAS;CAQrB;AARD,8BAQC"}
|
||||
8
dist/classes/IPAddress.d.ts
vendored
8
dist/classes/IPAddress.d.ts
vendored
@@ -1,8 +0,0 @@
|
||||
/// <reference types="node" />
|
||||
export declare class IPAddress {
|
||||
ip: any;
|
||||
static zero(): IPAddress;
|
||||
toString: () => string;
|
||||
constructor(buf?: Buffer | string, pos?: number);
|
||||
writeToBuffer(buf: Buffer, pos: number): void;
|
||||
}
|
||||
55
dist/classes/IPAddress.js
vendored
55
dist/classes/IPAddress.js
vendored
@@ -1,55 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const ipaddr = require('ipaddr.js');
|
||||
class IPAddress {
|
||||
constructor(buf, pos) {
|
||||
this.ip = null;
|
||||
this.toString = () => {
|
||||
try {
|
||||
return this.ip.toString();
|
||||
}
|
||||
catch (ignore) {
|
||||
return '';
|
||||
}
|
||||
};
|
||||
try {
|
||||
if (buf !== undefined && buf instanceof Buffer) {
|
||||
if (pos !== undefined) {
|
||||
const bytes = buf.slice(pos, 4);
|
||||
this.ip = ipaddr.fromByteArray(bytes);
|
||||
}
|
||||
else {
|
||||
if (ipaddr.isValid(buf)) {
|
||||
this.ip = ipaddr.parse(buf);
|
||||
}
|
||||
else {
|
||||
throw new Error('Invalid IP address');
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (ipaddr.isValid(buf)) {
|
||||
this.ip = ipaddr.parse(buf);
|
||||
}
|
||||
else {
|
||||
throw new Error('Invalid IP address');
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (ignore) {
|
||||
this.ip = ipaddr.parse('0.0.0.0');
|
||||
}
|
||||
}
|
||||
static zero() {
|
||||
return new IPAddress('0.0.0.0');
|
||||
}
|
||||
writeToBuffer(buf, pos) {
|
||||
const bytes = this.ip.toByteArray();
|
||||
buf.writeUInt8(bytes[0], pos++);
|
||||
buf.writeUInt8(bytes[1], pos++);
|
||||
buf.writeUInt8(bytes[2], pos++);
|
||||
buf.writeUInt8(bytes[3], pos);
|
||||
}
|
||||
}
|
||||
exports.IPAddress = IPAddress;
|
||||
//# sourceMappingURL=IPAddress.js.map
|
||||
1
dist/classes/IPAddress.js.map
vendored
1
dist/classes/IPAddress.js.map
vendored
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"IPAddress.js","sourceRoot":"","sources":["../../lib/classes/IPAddress.ts"],"names":[],"mappings":";;AAAA,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAEpC,MAAa,SAAS;IAmBlB,YAAY,GAAqB,EAAE,GAAY;QAjB/C,OAAE,GAAQ,IAAI,CAAC;QAMR,aAAQ,GAAG,GAAW,EAAE;YAE3B,IACA;gBACI,OAAO,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;aAC7B;YACD,OAAO,MAAM,EACb;gBACI,OAAO,EAAE,CAAC;aACb;QACL,CAAC,CAAC;QAGE,IACA;YACI,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,YAAY,MAAM,EAC9C;gBACI,IAAI,GAAG,KAAK,SAAS,EACrB;oBACI,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;oBAChC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;iBACzC;qBAED;oBACI,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EACvB;wBACI,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;qBAC/B;yBAED;wBACI,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;qBACzC;iBACJ;aACJ;iBAED;gBACI,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EACvB;oBACI,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBAC/B;qBAED;oBACI,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;iBACzC;aACJ;SACJ;QACD,OAAO,MAAM,EACb;YACI,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SACrC;IACL,CAAC;IAtDD,MAAM,CAAC,IAAI;QAEP,OAAO,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAoDD,aAAa,CAAC,GAAW,EAAE,GAAW;QAElC,MAAM,KAAK,GAAe,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;QAChD,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QAChC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QAChC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QAChC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;CACJ;AAnED,8BAmEC"}
|
||||
26
dist/classes/Inventory.d.ts
vendored
26
dist/classes/Inventory.d.ts
vendored
@@ -1,26 +0,0 @@
|
||||
import { UUID } from './UUID';
|
||||
import { ClientEvents } from './ClientEvents';
|
||||
import { InventoryFolder } from './InventoryFolder';
|
||||
import { Agent } from './Agent';
|
||||
import { AssetType } from '..';
|
||||
export declare class Inventory {
|
||||
main: {
|
||||
skeleton: {
|
||||
[key: string]: InventoryFolder;
|
||||
};
|
||||
root?: UUID;
|
||||
};
|
||||
library: {
|
||||
owner?: UUID;
|
||||
skeleton: {
|
||||
[key: string]: InventoryFolder;
|
||||
};
|
||||
root?: UUID;
|
||||
};
|
||||
private clientEvents;
|
||||
private agent;
|
||||
constructor(clientEvents: ClientEvents, agent: Agent);
|
||||
getRootFolderLibrary(): InventoryFolder;
|
||||
getRootFolderMain(): InventoryFolder;
|
||||
findFolderForType(type: AssetType): UUID;
|
||||
}
|
||||
59
dist/classes/Inventory.js
vendored
59
dist/classes/Inventory.js
vendored
@@ -1,59 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const UUID_1 = require("./UUID");
|
||||
const InventoryFolder_1 = require("./InventoryFolder");
|
||||
const __1 = require("..");
|
||||
class Inventory {
|
||||
constructor(clientEvents, agent) {
|
||||
this.main = {
|
||||
skeleton: {}
|
||||
};
|
||||
this.library = {
|
||||
skeleton: {}
|
||||
};
|
||||
this.agent = agent;
|
||||
this.clientEvents = clientEvents;
|
||||
}
|
||||
getRootFolderLibrary() {
|
||||
if (this.library.root === undefined) {
|
||||
return new InventoryFolder_1.InventoryFolder(this.library, this.agent);
|
||||
}
|
||||
const uuidStr = this.library.root.toString();
|
||||
if (this.library.skeleton[uuidStr]) {
|
||||
return this.library.skeleton[uuidStr];
|
||||
}
|
||||
else {
|
||||
return new InventoryFolder_1.InventoryFolder(this.library, this.agent);
|
||||
}
|
||||
}
|
||||
getRootFolderMain() {
|
||||
if (this.main.root === undefined) {
|
||||
return new InventoryFolder_1.InventoryFolder(this.main, this.agent);
|
||||
}
|
||||
const uuidStr = this.main.root.toString();
|
||||
if (this.main.skeleton[uuidStr]) {
|
||||
return this.main.skeleton[uuidStr];
|
||||
}
|
||||
else {
|
||||
return new InventoryFolder_1.InventoryFolder(this.main, this.agent);
|
||||
}
|
||||
}
|
||||
findFolderForType(type) {
|
||||
if (this.main.root === undefined) {
|
||||
return UUID_1.UUID.zero();
|
||||
}
|
||||
if (type === __1.AssetType.Folder) {
|
||||
return this.main.root;
|
||||
}
|
||||
let found = UUID_1.UUID.zero();
|
||||
Object.keys(this.main.skeleton).forEach((fUUID) => {
|
||||
const folder = this.main.skeleton[fUUID];
|
||||
if (folder.typeDefault === type) {
|
||||
found = folder.folderID;
|
||||
}
|
||||
});
|
||||
return found;
|
||||
}
|
||||
}
|
||||
exports.Inventory = Inventory;
|
||||
//# sourceMappingURL=Inventory.js.map
|
||||
1
dist/classes/Inventory.js.map
vendored
1
dist/classes/Inventory.js.map
vendored
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"Inventory.js","sourceRoot":"","sources":["../../lib/classes/Inventory.ts"],"names":[],"mappings":";;AAAA,iCAA4B;AAE5B,uDAAkD;AAElD,0BAA6B;AAE7B,MAAa,SAAS;IAkBlB,YAAY,YAA0B,EAAE,KAAY;QAhBpD,SAAI,GAGA;YACA,QAAQ,EAAE,EAAE;SACf,CAAC;QACF,YAAO,GAIH;YACA,QAAQ,EAAE,EAAE;SACf,CAAC;QAME,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IACD,oBAAoB;QAEhB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,EACnC;YACI,OAAO,IAAI,iCAAe,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SACxD;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7C,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAClC;YACI,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SACzC;aAED;YACI,OAAO,IAAI,iCAAe,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SACxD;IACL,CAAC;IACD,iBAAiB;QAEb,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,EAChC;YACI,OAAO,IAAI,iCAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SACrD;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAC/B;YACI,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SACtC;aAED;YACI,OAAO,IAAI,iCAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SACrD;IACL,CAAC;IACD,iBAAiB,CAAC,IAAe;QAE7B,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,EAChC;YACI,OAAO,WAAI,CAAC,IAAI,EAAE,CAAC;SACtB;QACD,IAAI,IAAI,KAAK,aAAS,CAAC,MAAM,EAC7B;YACI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;SACzB;QACD,IAAI,KAAK,GAAG,WAAI,CAAC,IAAI,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAE9C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACzC,IAAI,MAAM,CAAC,WAAW,KAAK,IAAI,EAC/B;gBACI,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC;aAC3B;QACL,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AA5ED,8BA4EC"}
|
||||
25
dist/classes/InventoryFolder.d.ts
vendored
25
dist/classes/InventoryFolder.d.ts
vendored
@@ -1,25 +0,0 @@
|
||||
import { UUID } from './UUID';
|
||||
import { InventoryItem } from './InventoryItem';
|
||||
import { Agent } from './Agent';
|
||||
import { AssetType } from '..';
|
||||
export declare class InventoryFolder {
|
||||
typeDefault: AssetType;
|
||||
version: number;
|
||||
name: string;
|
||||
folderID: UUID;
|
||||
parentID: UUID;
|
||||
items: InventoryItem[];
|
||||
cacheDir: string;
|
||||
agent: Agent;
|
||||
private inventoryBase;
|
||||
constructor(invBase: {
|
||||
skeleton: {
|
||||
[key: string]: InventoryFolder;
|
||||
};
|
||||
root?: UUID;
|
||||
}, agent: Agent);
|
||||
getChildFolders(): InventoryFolder[];
|
||||
private saveCache;
|
||||
private loadCache;
|
||||
populate(): Promise<{}>;
|
||||
}
|
||||
154
dist/classes/InventoryFolder.js
vendored
154
dist/classes/InventoryFolder.js
vendored
@@ -1,154 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const UUID_1 = require("./UUID");
|
||||
const InventoryItem_1 = require("./InventoryItem");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
const LLSD = require("@caspertech/llsd");
|
||||
const InventorySortOrder_1 = require("../enums/InventorySortOrder");
|
||||
class InventoryFolder {
|
||||
constructor(invBase, agent) {
|
||||
this.items = [];
|
||||
this.agent = agent;
|
||||
this.inventoryBase = invBase;
|
||||
const cacheLocation = path.resolve(__dirname + '/cache');
|
||||
if (!fs.existsSync(cacheLocation)) {
|
||||
fs.mkdirSync(cacheLocation, 0o777);
|
||||
}
|
||||
this.cacheDir = path.resolve(cacheLocation + '/' + this.agent.agentID.toString());
|
||||
if (!fs.existsSync(this.cacheDir)) {
|
||||
fs.mkdirSync(this.cacheDir, 0o777);
|
||||
}
|
||||
}
|
||||
getChildFolders() {
|
||||
const children = [];
|
||||
const ofi = this.folderID.toString();
|
||||
Object.keys(this.inventoryBase.skeleton).forEach((uuid) => {
|
||||
const folder = this.inventoryBase.skeleton[uuid];
|
||||
if (folder.parentID.toString() === ofi) {
|
||||
children.push(folder);
|
||||
}
|
||||
});
|
||||
return children;
|
||||
}
|
||||
saveCache() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const json = {
|
||||
version: this.version,
|
||||
items: this.items
|
||||
};
|
||||
const fileName = path.join(this.cacheDir + '/' + this.folderID.toString());
|
||||
fs.writeFile(fileName, JSON.stringify(json), (err) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
else {
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
loadCache() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const fileName = path.join(this.cacheDir + '/' + this.folderID.toString());
|
||||
if (fs.existsSync(fileName)) {
|
||||
fs.readFile(fileName, (err, data) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
else {
|
||||
try {
|
||||
const json = JSON.parse(data.toString('utf8'));
|
||||
if (json['version'] >= this.version) {
|
||||
this.items = [];
|
||||
json['items'].forEach((item) => {
|
||||
item.created = new Date(item.created.mUUID);
|
||||
item.assetID = new UUID_1.UUID(item.assetID.mUUID);
|
||||
item.parentID = new UUID_1.UUID(item.parentID.mUUID);
|
||||
item.itemID = new UUID_1.UUID(item.itemID.mUUID);
|
||||
item.permissions.lastOwner = new UUID_1.UUID(item.permissions.lastOwner.mUUID);
|
||||
item.permissions.owner = new UUID_1.UUID(item.permissions.owner.mUUID);
|
||||
item.permissions.creator = new UUID_1.UUID(item.permissions.creator.mUUID);
|
||||
item.permissions.group = new UUID_1.UUID(item.permissions.group.mUUID);
|
||||
this.items.push(item);
|
||||
});
|
||||
resolve();
|
||||
}
|
||||
else {
|
||||
reject(new Error('Old version'));
|
||||
}
|
||||
}
|
||||
catch (err) {
|
||||
reject(err);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
reject(new Error('Cache miss'));
|
||||
}
|
||||
});
|
||||
}
|
||||
populate() {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.loadCache().then(() => {
|
||||
resolve();
|
||||
}).catch((err) => {
|
||||
const requestFolder = {
|
||||
folder_id: new LLSD.UUID(this.folderID),
|
||||
owner_id: new LLSD.UUID(this.agent.agentID),
|
||||
fetch_folders: true,
|
||||
fetch_items: true,
|
||||
sort_order: InventorySortOrder_1.InventorySortOrder.ByName
|
||||
};
|
||||
const requestedFolders = {
|
||||
'folders': [
|
||||
requestFolder
|
||||
]
|
||||
};
|
||||
this.agent.currentRegion.caps.capsRequestXML('FetchInventoryDescendents2', requestedFolders).then((folderContents) => {
|
||||
if (folderContents['folders'] && folderContents['folders'][0] && folderContents['folders'][0]['items']) {
|
||||
this.version = folderContents['folders'][0]['version'];
|
||||
this.items = [];
|
||||
folderContents['folders'][0]['items'].forEach((item) => {
|
||||
const invItem = new InventoryItem_1.InventoryItem();
|
||||
invItem.assetID = new UUID_1.UUID(item['asset_id'].toString());
|
||||
invItem.inventoryType = item['inv_type'];
|
||||
invItem.name = item['name'];
|
||||
invItem.salePrice = item['sale_info']['sale_price'];
|
||||
invItem.saleType = item['sale_info']['sale_type'];
|
||||
invItem.created = new Date(item['created_at'] * 1000);
|
||||
invItem.parentID = new UUID_1.UUID(item['parent_id'].toString());
|
||||
invItem.flags = item['flags'];
|
||||
invItem.itemID = new UUID_1.UUID(item['item_id'].toString());
|
||||
invItem.description = item['desc'];
|
||||
invItem.type = item['type'];
|
||||
invItem.permissions = {
|
||||
baseMask: item['permissions']['base_mask'],
|
||||
groupMask: item['permissions']['group_mask'],
|
||||
nextOwnerMask: item['permissions']['next_owner_mask'],
|
||||
ownerMask: item['permissions']['owner_mask'],
|
||||
everyoneMask: item['permissions']['everyone_mask'],
|
||||
lastOwner: new UUID_1.UUID(item['permissions']['last_owner_id'].toString()),
|
||||
owner: new UUID_1.UUID(item['permissions']['owner_id'].toString()),
|
||||
creator: new UUID_1.UUID(item['permissions']['creator_id'].toString()),
|
||||
group: new UUID_1.UUID(item['permissions']['group_id'].toString())
|
||||
};
|
||||
this.items.push(invItem);
|
||||
});
|
||||
this.saveCache().then(() => {
|
||||
resolve();
|
||||
}).catch(() => {
|
||||
resolve();
|
||||
});
|
||||
}
|
||||
else {
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.InventoryFolder = InventoryFolder;
|
||||
//# sourceMappingURL=InventoryFolder.js.map
|
||||
1
dist/classes/InventoryFolder.js.map
vendored
1
dist/classes/InventoryFolder.js.map
vendored
File diff suppressed because one or more lines are too long
28
dist/classes/InventoryItem.d.ts
vendored
28
dist/classes/InventoryItem.d.ts
vendored
@@ -1,28 +0,0 @@
|
||||
import { UUID } from './UUID';
|
||||
import { InventoryType } from '../enums/InventoryType';
|
||||
import { PermissionMask } from '../enums/PermissionMask';
|
||||
import { AssetType, InventoryItemFlags } from '..';
|
||||
export declare class InventoryItem {
|
||||
assetID: UUID;
|
||||
inventoryType: InventoryType;
|
||||
name: string;
|
||||
salePrice: number;
|
||||
saleType: number;
|
||||
created: Date;
|
||||
parentID: UUID;
|
||||
flags: InventoryItemFlags;
|
||||
itemID: UUID;
|
||||
description: string;
|
||||
type: AssetType;
|
||||
permissions: {
|
||||
baseMask: PermissionMask;
|
||||
groupMask: PermissionMask;
|
||||
nextOwnerMask: PermissionMask;
|
||||
ownerMask: PermissionMask;
|
||||
everyoneMask: PermissionMask;
|
||||
lastOwner: UUID;
|
||||
owner: UUID;
|
||||
creator: UUID;
|
||||
group: UUID;
|
||||
};
|
||||
}
|
||||
10
dist/classes/InventoryItem.js
vendored
10
dist/classes/InventoryItem.js
vendored
@@ -1,10 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const UUID_1 = require("./UUID");
|
||||
class InventoryItem {
|
||||
constructor() {
|
||||
this.assetID = UUID_1.UUID.zero();
|
||||
}
|
||||
}
|
||||
exports.InventoryItem = InventoryItem;
|
||||
//# sourceMappingURL=InventoryItem.js.map
|
||||
1
dist/classes/InventoryItem.js.map
vendored
1
dist/classes/InventoryItem.js.map
vendored
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"InventoryItem.js","sourceRoot":"","sources":["../../lib/classes/InventoryItem.ts"],"names":[],"mappings":";;AAAA,iCAA4B;AAK5B,MAAa,aAAa;IAA1B;QAEI,YAAO,GAAS,WAAI,CAAC,IAAI,EAAE,CAAC;IAsBhC,CAAC;CAAA;AAxBD,sCAwBC"}
|
||||
6
dist/classes/LoginParameters.d.ts
vendored
6
dist/classes/LoginParameters.d.ts
vendored
@@ -1,6 +0,0 @@
|
||||
export declare class LoginParameters {
|
||||
firstName: string;
|
||||
lastName: string;
|
||||
password: string;
|
||||
start: string;
|
||||
}
|
||||
9
dist/classes/LoginParameters.js
vendored
9
dist/classes/LoginParameters.js
vendored
@@ -1,9 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
class LoginParameters {
|
||||
constructor() {
|
||||
this.start = 'last';
|
||||
}
|
||||
}
|
||||
exports.LoginParameters = LoginParameters;
|
||||
//# sourceMappingURL=LoginParameters.js.map
|
||||
1
dist/classes/LoginParameters.js.map
vendored
1
dist/classes/LoginParameters.js.map
vendored
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"LoginParameters.js","sourceRoot":"","sources":["../../lib/classes/LoginParameters.ts"],"names":[],"mappings":";;AAAA,MAAa,eAAe;IAA5B;QAKI,UAAK,GAAG,MAAM,CAAC;IACnB,CAAC;CAAA;AAND,0CAMC"}
|
||||
34
dist/classes/LoginResponse.d.ts
vendored
34
dist/classes/LoginResponse.d.ts
vendored
@@ -1,34 +0,0 @@
|
||||
import { UUID } from './UUID';
|
||||
import { Agent } from './Agent';
|
||||
import { Region } from './Region';
|
||||
import { ClientEvents } from './ClientEvents';
|
||||
import { BotOptionFlags, LoginFlags } from '..';
|
||||
export declare class LoginResponse {
|
||||
loginFlags: LoginFlags;
|
||||
loginMessage: string;
|
||||
agent: Agent;
|
||||
region: Region;
|
||||
events: {
|
||||
categories: {
|
||||
categoryID: number;
|
||||
categoryName: string;
|
||||
}[];
|
||||
};
|
||||
classifieds: {
|
||||
categories: {
|
||||
categoryID: number;
|
||||
categoryName: string;
|
||||
}[];
|
||||
};
|
||||
textures: {
|
||||
'cloudTextureID'?: UUID;
|
||||
'sunTextureID'?: UUID;
|
||||
'moonTextureID'?: UUID;
|
||||
};
|
||||
searchToken: string;
|
||||
clientEvents: ClientEvents;
|
||||
private static toRegionHandle;
|
||||
private static parseVector3;
|
||||
private static parseHome;
|
||||
constructor(json: any, clientEvents: ClientEvents, options: BotOptionFlags);
|
||||
}
|
||||
271
dist/classes/LoginResponse.js
vendored
271
dist/classes/LoginResponse.js
vendored
@@ -1,271 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const UUID_1 = require("./UUID");
|
||||
const Agent_1 = require("./Agent");
|
||||
const Region_1 = require("./Region");
|
||||
const Vector3_1 = require("./Vector3");
|
||||
const Long = require("long");
|
||||
const InventoryFolder_1 = require("./InventoryFolder");
|
||||
const __1 = require("..");
|
||||
class LoginResponse {
|
||||
constructor(json, clientEvents, options) {
|
||||
this.events = {
|
||||
categories: []
|
||||
};
|
||||
this.classifieds = {
|
||||
categories: []
|
||||
};
|
||||
this.textures = {};
|
||||
this.clientEvents = clientEvents;
|
||||
this.agent = new Agent_1.Agent(this.clientEvents);
|
||||
this.region = new Region_1.Region(this.agent, this.clientEvents, options);
|
||||
if (json['agent_id']) {
|
||||
this.agent.agentID = new UUID_1.UUID(json['agent_id']);
|
||||
}
|
||||
Object.keys(json).forEach((key) => {
|
||||
const val = json[key];
|
||||
switch (key) {
|
||||
case 'inventory-skeleton':
|
||||
val.forEach((item) => {
|
||||
const folder = new InventoryFolder_1.InventoryFolder(this.agent.inventory.main, this.agent);
|
||||
folder.typeDefault = parseInt(item['type_default'], 10);
|
||||
folder.version = parseInt(item['version'], 10);
|
||||
folder.name = String(item['name']);
|
||||
folder.folderID = new UUID_1.UUID(item['folder_id']);
|
||||
folder.parentID = new UUID_1.UUID(item['parent_id']);
|
||||
this.agent.inventory.main.skeleton[folder.folderID.toString()] = folder;
|
||||
});
|
||||
break;
|
||||
case 'inventory-skel-lib':
|
||||
val.forEach((item) => {
|
||||
const folder = new InventoryFolder_1.InventoryFolder(this.agent.inventory.library, this.agent);
|
||||
folder.typeDefault = parseInt(item['type_default'], 10);
|
||||
folder.version = parseInt(item['version'], 10);
|
||||
folder.name = String(item['name']);
|
||||
folder.folderID = new UUID_1.UUID(item['folder_id']);
|
||||
folder.parentID = new UUID_1.UUID(item['parent_id']);
|
||||
this.agent.inventory.library.skeleton[folder.folderID.toString()] = folder;
|
||||
});
|
||||
break;
|
||||
case 'inventory-root':
|
||||
{
|
||||
this.agent.inventory.main.root = new UUID_1.UUID(val[0]['folder_id']);
|
||||
const folder = new InventoryFolder_1.InventoryFolder(this.agent.inventory.main, this.agent);
|
||||
folder.typeDefault = 0;
|
||||
folder.version = 0;
|
||||
folder.name = 'root';
|
||||
folder.folderID = new UUID_1.UUID(val[0]['folder_id']);
|
||||
folder.parentID = UUID_1.UUID.zero();
|
||||
this.agent.inventory.main.skeleton[folder.folderID.toString()] = folder;
|
||||
break;
|
||||
}
|
||||
case 'inventory-lib-owner':
|
||||
this.agent.inventory.library.owner = new UUID_1.UUID(val[0]['agent_id']);
|
||||
break;
|
||||
case 'inventory-lib-root':
|
||||
{
|
||||
this.agent.inventory.library.root = new UUID_1.UUID(val[0]['folder_id']);
|
||||
const folder = new InventoryFolder_1.InventoryFolder(this.agent.inventory.library, this.agent);
|
||||
folder.typeDefault = 0;
|
||||
folder.version = 0;
|
||||
folder.name = 'root';
|
||||
folder.folderID = new UUID_1.UUID(val[0]['folder_id']);
|
||||
folder.parentID = UUID_1.UUID.zero();
|
||||
this.agent.inventory.library.skeleton[folder.folderID.toString()] = folder;
|
||||
break;
|
||||
}
|
||||
case 'agent_access_max':
|
||||
this.agent.accessMax = String(val);
|
||||
break;
|
||||
case 'event_notifications':
|
||||
break;
|
||||
case 'secure_session_id':
|
||||
this.region.circuit.secureSessionID = new UUID_1.UUID(val);
|
||||
break;
|
||||
case 'openid_token':
|
||||
this.agent.openID.token = String(val);
|
||||
break;
|
||||
case 'region_x':
|
||||
this.region.xCoordinate = parseInt(val, 10);
|
||||
break;
|
||||
case 'ao_transition':
|
||||
this.agent.AOTransition = (val !== 0);
|
||||
break;
|
||||
case 'global-textures':
|
||||
val.forEach((obj) => {
|
||||
if (obj['cloud_texture_id']) {
|
||||
this.textures.cloudTextureID = obj['cloud_texture_id'];
|
||||
}
|
||||
if (obj['sun_texture_id']) {
|
||||
this.textures.sunTextureID = obj['sun_texture_id'];
|
||||
}
|
||||
if (obj['moon_texture_id']) {
|
||||
this.textures.moonTextureID = obj['moon_texture_id'];
|
||||
}
|
||||
});
|
||||
break;
|
||||
case 'search_token':
|
||||
this.searchToken = String(val);
|
||||
break;
|
||||
case 'login-flags':
|
||||
let flags = 0;
|
||||
val.forEach((obj) => {
|
||||
if (obj['ever_logged_in'] === 'Y') {
|
||||
flags = flags | __1.LoginFlags.everLoggedIn;
|
||||
}
|
||||
if (obj['daylight_savings'] === 'Y') {
|
||||
flags = flags | __1.LoginFlags.daylightSavings;
|
||||
}
|
||||
if (obj['stipend_since_login'] === 'Y') {
|
||||
flags = flags | __1.LoginFlags.stipendSinceLogin;
|
||||
}
|
||||
if (obj['gendered'] === 'Y') {
|
||||
flags = flags | __1.LoginFlags.gendered;
|
||||
}
|
||||
});
|
||||
this.loginFlags = flags;
|
||||
break;
|
||||
case 'buddy-list':
|
||||
val.forEach((obj) => {
|
||||
this.agent.buddyList.push({
|
||||
buddyRightsGiven: obj['buddy_rights_given'] !== 0,
|
||||
buddyID: new UUID_1.UUID(obj['buddy_id']),
|
||||
buddyRightsHas: obj['buddy_rights_has'] !== 0,
|
||||
});
|
||||
});
|
||||
break;
|
||||
case 'sim_port':
|
||||
this.region.circuit.port = parseInt(val, 10);
|
||||
break;
|
||||
case 'sim_ip':
|
||||
this.region.circuit.ipAddress = String(val);
|
||||
break;
|
||||
case 'agent_appearance_service':
|
||||
this.agent.agentAppearanceService = val;
|
||||
break;
|
||||
case 'ui-config':
|
||||
val.forEach((item) => {
|
||||
if (item['allow_first_life'] === 'Y') {
|
||||
this.agent.uiFlags.allowFirstLife = true;
|
||||
}
|
||||
});
|
||||
break;
|
||||
case 'look_at':
|
||||
this.agent.cameraLookAt = LoginResponse.parseVector3(val);
|
||||
break;
|
||||
case 'openid_url':
|
||||
this.agent.openID.url = String(val);
|
||||
break;
|
||||
case 'max-agent-groups':
|
||||
this.agent.maxGroups = parseInt(val, 10);
|
||||
break;
|
||||
case 'session_id':
|
||||
this.region.circuit.sessionID = new UUID_1.UUID(val);
|
||||
break;
|
||||
case 'agent_flags':
|
||||
this.agent.agentFlags = parseInt(val, 10);
|
||||
break;
|
||||
case 'event_categories':
|
||||
val.forEach((item) => {
|
||||
this.events.categories.push({
|
||||
'categoryID': parseInt(item['category_id'], 10),
|
||||
'categoryName': String(item['category_name'])
|
||||
});
|
||||
});
|
||||
break;
|
||||
case 'start_location':
|
||||
this.agent.startLocation = String(val);
|
||||
break;
|
||||
case 'agent_region_access':
|
||||
this.agent.regionAccess = String(val);
|
||||
break;
|
||||
case 'last_name':
|
||||
this.agent.lastName = String(val);
|
||||
break;
|
||||
case 'cof_version':
|
||||
this.agent.cofVersion = parseInt(val, 10);
|
||||
break;
|
||||
case 'home':
|
||||
this.agent.home = LoginResponse.parseHome(val);
|
||||
break;
|
||||
case 'classified_categories':
|
||||
val.forEach((item) => {
|
||||
this.classifieds.categories.push({
|
||||
'categoryID': parseInt(item['category_id'], 10),
|
||||
'categoryName': String(item['category_name'])
|
||||
});
|
||||
});
|
||||
break;
|
||||
case 'snapshot_config_url':
|
||||
this.agent.snapshotConfigURL = String(val);
|
||||
break;
|
||||
case 'region_y':
|
||||
this.region.yCoordinate = parseInt(val, 10);
|
||||
break;
|
||||
case 'agent_access':
|
||||
this.agent.agentAccess = String(val);
|
||||
break;
|
||||
case 'circuit_code':
|
||||
this.region.circuit.circuitCode = parseInt(val, 10);
|
||||
break;
|
||||
case 'message':
|
||||
this.loginMessage = String(val);
|
||||
break;
|
||||
case 'gestures':
|
||||
val.forEach((item) => {
|
||||
this.agent.gestures.push({
|
||||
'assetID': new UUID_1.UUID(item['asset_id']),
|
||||
'itemID': new UUID_1.UUID(item['item_id'])
|
||||
});
|
||||
});
|
||||
break;
|
||||
case 'udp_blacklist':
|
||||
const list = String(val).split(',');
|
||||
this.region.circuit.udpBlacklist = list;
|
||||
break;
|
||||
case 'seconds_since_epoch':
|
||||
this.region.circuit.timestamp = parseInt(val, 10);
|
||||
break;
|
||||
case 'seed_capability':
|
||||
this.region.activateCaps(String(val));
|
||||
break;
|
||||
case 'first_name':
|
||||
this.agent.firstName = String(val).replace(/"/g, '');
|
||||
break;
|
||||
}
|
||||
});
|
||||
this.agent.setCurrentRegion(this.region);
|
||||
}
|
||||
static toRegionHandle(x_global, y_global) {
|
||||
let x_origin = x_global;
|
||||
x_origin -= x_origin % 256;
|
||||
let y_origin = y_global;
|
||||
y_origin -= y_origin % 256;
|
||||
return new Long(x_origin, y_origin, true);
|
||||
}
|
||||
static parseVector3(str) {
|
||||
const num = str.replace(/[\[\]]r/g, '').split(',');
|
||||
const x = parseFloat(num[0]);
|
||||
const y = parseFloat(num[1]);
|
||||
const z = parseFloat(num[2]);
|
||||
return new Vector3_1.Vector3([x, y, z]);
|
||||
}
|
||||
static parseHome(str) {
|
||||
const result = {};
|
||||
const json = str.replace(/[\[\]']/g, '\"');
|
||||
const parsed = JSON.parse(json);
|
||||
if (parsed['region_handle']) {
|
||||
const coords = parsed['region_handle'].replace(/r/g, '').split(', ');
|
||||
result['regionHandle'] = LoginResponse.toRegionHandle(parseInt(coords[0], 10), parseInt(coords[1], 10));
|
||||
}
|
||||
if (parsed['position']) {
|
||||
result['position'] = this.parseVector3('[' + parsed['position'] + ']');
|
||||
}
|
||||
if (parsed['look_at']) {
|
||||
result['lookAt'] = this.parseVector3('[' + parsed['lookAt'] + ']');
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
exports.LoginResponse = LoginResponse;
|
||||
//# sourceMappingURL=LoginResponse.js.map
|
||||
1
dist/classes/LoginResponse.js.map
vendored
1
dist/classes/LoginResponse.js.map
vendored
File diff suppressed because one or more lines are too long
6
dist/classes/MapBlock.d.ts
vendored
6
dist/classes/MapBlock.d.ts
vendored
@@ -1,6 +0,0 @@
|
||||
import { UUID } from './UUID';
|
||||
export declare class MapBlock {
|
||||
name: string;
|
||||
mapImage: UUID;
|
||||
accessFlags: number;
|
||||
}
|
||||
6
dist/classes/MapBlock.js
vendored
6
dist/classes/MapBlock.js
vendored
@@ -1,6 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
class MapBlock {
|
||||
}
|
||||
exports.MapBlock = MapBlock;
|
||||
//# sourceMappingURL=MapBlock.js.map
|
||||
1
dist/classes/MapBlock.js.map
vendored
1
dist/classes/MapBlock.js.map
vendored
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"MapBlock.js","sourceRoot":"","sources":["../../lib/classes/MapBlock.ts"],"names":[],"mappings":";;AAEA,MAAa,QAAQ;CAKpB;AALD,4BAKC"}
|
||||
11
dist/classes/MessageBase.d.ts
vendored
11
dist/classes/MessageBase.d.ts
vendored
@@ -1,11 +0,0 @@
|
||||
/// <reference types="node" />
|
||||
import { Message } from '../enums/Message';
|
||||
import { MessageFlags } from '..';
|
||||
export interface MessageBase {
|
||||
name: string;
|
||||
messageFlags: MessageFlags;
|
||||
id: Message;
|
||||
getSize(): number;
|
||||
writeToBuffer(buf: Buffer, pos: number): number;
|
||||
readFromBuffer(buf: Buffer, pos: number): number;
|
||||
}
|
||||
3
dist/classes/MessageBase.js
vendored
3
dist/classes/MessageBase.js
vendored
@@ -1,3 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
//# sourceMappingURL=MessageBase.js.map
|
||||
1
dist/classes/MessageBase.js.map
vendored
1
dist/classes/MessageBase.js.map
vendored
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"MessageBase.js","sourceRoot":"","sources":["../../lib/classes/MessageBase.ts"],"names":[],"mappings":""}
|
||||
480
dist/classes/MessageClasses.d.ts
vendored
480
dist/classes/MessageClasses.d.ts
vendored
@@ -1,480 +0,0 @@
|
||||
export * from './messages/TestMessage';
|
||||
export * from './messages/PacketAck';
|
||||
export * from './messages/OpenCircuit';
|
||||
export * from './messages/CloseCircuit';
|
||||
export * from './messages/StartPingCheck';
|
||||
export * from './messages/CompletePingCheck';
|
||||
export * from './messages/AddCircuitCode';
|
||||
export * from './messages/UseCircuitCode';
|
||||
export * from './messages/NeighborList';
|
||||
export * from './messages/AvatarTextureUpdate';
|
||||
export * from './messages/SimulatorMapUpdate';
|
||||
export * from './messages/SimulatorSetMap';
|
||||
export * from './messages/SubscribeLoad';
|
||||
export * from './messages/UnsubscribeLoad';
|
||||
export * from './messages/SimulatorReady';
|
||||
export * from './messages/TelehubInfo';
|
||||
export * from './messages/SimulatorPresentAtLocation';
|
||||
export * from './messages/SimulatorLoad';
|
||||
export * from './messages/SimulatorShutdownRequest';
|
||||
export * from './messages/RegionPresenceRequestByRegionID';
|
||||
export * from './messages/RegionPresenceRequestByHandle';
|
||||
export * from './messages/RegionPresenceResponse';
|
||||
export * from './messages/UpdateSimulator';
|
||||
export * from './messages/LogDwellTime';
|
||||
export * from './messages/FeatureDisabled';
|
||||
export * from './messages/LogFailedMoneyTransaction';
|
||||
export * from './messages/UserReportInternal';
|
||||
export * from './messages/SetSimStatusInDatabase';
|
||||
export * from './messages/SetSimPresenceInDatabase';
|
||||
export * from './messages/EconomyDataRequest';
|
||||
export * from './messages/EconomyData';
|
||||
export * from './messages/AvatarPickerRequest';
|
||||
export * from './messages/AvatarPickerRequestBackend';
|
||||
export * from './messages/AvatarPickerReply';
|
||||
export * from './messages/PlacesQuery';
|
||||
export * from './messages/PlacesReply';
|
||||
export * from './messages/DirFindQuery';
|
||||
export * from './messages/DirFindQueryBackend';
|
||||
export * from './messages/DirPlacesQuery';
|
||||
export * from './messages/DirPlacesQueryBackend';
|
||||
export * from './messages/DirPlacesReply';
|
||||
export * from './messages/DirPeopleReply';
|
||||
export * from './messages/DirEventsReply';
|
||||
export * from './messages/DirGroupsReply';
|
||||
export * from './messages/DirClassifiedQuery';
|
||||
export * from './messages/DirClassifiedQueryBackend';
|
||||
export * from './messages/DirClassifiedReply';
|
||||
export * from './messages/AvatarClassifiedReply';
|
||||
export * from './messages/ClassifiedInfoRequest';
|
||||
export * from './messages/ClassifiedInfoReply';
|
||||
export * from './messages/ClassifiedInfoUpdate';
|
||||
export * from './messages/ClassifiedDelete';
|
||||
export * from './messages/ClassifiedGodDelete';
|
||||
export * from './messages/DirLandQuery';
|
||||
export * from './messages/DirLandQueryBackend';
|
||||
export * from './messages/DirLandReply';
|
||||
export * from './messages/DirPopularQuery';
|
||||
export * from './messages/DirPopularQueryBackend';
|
||||
export * from './messages/DirPopularReply';
|
||||
export * from './messages/ParcelInfoRequest';
|
||||
export * from './messages/ParcelInfoReply';
|
||||
export * from './messages/ParcelObjectOwnersRequest';
|
||||
export * from './messages/ParcelObjectOwnersReply';
|
||||
export * from './messages/GroupNoticesListRequest';
|
||||
export * from './messages/GroupNoticesListReply';
|
||||
export * from './messages/GroupNoticeRequest';
|
||||
export * from './messages/GroupNoticeAdd';
|
||||
export * from './messages/TeleportRequest';
|
||||
export * from './messages/TeleportLocationRequest';
|
||||
export * from './messages/TeleportLocal';
|
||||
export * from './messages/TeleportLandmarkRequest';
|
||||
export * from './messages/TeleportProgress';
|
||||
export * from './messages/DataHomeLocationRequest';
|
||||
export * from './messages/DataHomeLocationReply';
|
||||
export * from './messages/TeleportFinish';
|
||||
export * from './messages/StartLure';
|
||||
export * from './messages/TeleportLureRequest';
|
||||
export * from './messages/TeleportCancel';
|
||||
export * from './messages/TeleportStart';
|
||||
export * from './messages/TeleportFailed';
|
||||
export * from './messages/Undo';
|
||||
export * from './messages/Redo';
|
||||
export * from './messages/UndoLand';
|
||||
export * from './messages/AgentPause';
|
||||
export * from './messages/AgentResume';
|
||||
export * from './messages/AgentUpdate';
|
||||
export * from './messages/ChatFromViewer';
|
||||
export * from './messages/AgentThrottle';
|
||||
export * from './messages/AgentFOV';
|
||||
export * from './messages/AgentHeightWidth';
|
||||
export * from './messages/AgentSetAppearance';
|
||||
export * from './messages/AgentAnimation';
|
||||
export * from './messages/AgentRequestSit';
|
||||
export * from './messages/AgentSit';
|
||||
export * from './messages/AgentQuitCopy';
|
||||
export * from './messages/RequestImage';
|
||||
export * from './messages/ImageNotInDatabase';
|
||||
export * from './messages/RebakeAvatarTextures';
|
||||
export * from './messages/SetAlwaysRun';
|
||||
export * from './messages/ObjectAdd';
|
||||
export * from './messages/ObjectDelete';
|
||||
export * from './messages/ObjectDuplicate';
|
||||
export * from './messages/ObjectDuplicateOnRay';
|
||||
export * from './messages/MultipleObjectUpdate';
|
||||
export * from './messages/RequestMultipleObjects';
|
||||
export * from './messages/ObjectPosition';
|
||||
export * from './messages/ObjectScale';
|
||||
export * from './messages/ObjectRotation';
|
||||
export * from './messages/ObjectFlagUpdate';
|
||||
export * from './messages/ObjectClickAction';
|
||||
export * from './messages/ObjectImage';
|
||||
export * from './messages/ObjectMaterial';
|
||||
export * from './messages/ObjectShape';
|
||||
export * from './messages/ObjectExtraParams';
|
||||
export * from './messages/ObjectOwner';
|
||||
export * from './messages/ObjectGroup';
|
||||
export * from './messages/ObjectBuy';
|
||||
export * from './messages/BuyObjectInventory';
|
||||
export * from './messages/DerezContainer';
|
||||
export * from './messages/ObjectPermissions';
|
||||
export * from './messages/ObjectSaleInfo';
|
||||
export * from './messages/ObjectName';
|
||||
export * from './messages/ObjectDescription';
|
||||
export * from './messages/ObjectCategory';
|
||||
export * from './messages/ObjectSelect';
|
||||
export * from './messages/ObjectDeselect';
|
||||
export * from './messages/ObjectAttach';
|
||||
export * from './messages/ObjectDetach';
|
||||
export * from './messages/ObjectDrop';
|
||||
export * from './messages/ObjectLink';
|
||||
export * from './messages/ObjectDelink';
|
||||
export * from './messages/ObjectGrab';
|
||||
export * from './messages/ObjectGrabUpdate';
|
||||
export * from './messages/ObjectDeGrab';
|
||||
export * from './messages/ObjectSpinStart';
|
||||
export * from './messages/ObjectSpinUpdate';
|
||||
export * from './messages/ObjectSpinStop';
|
||||
export * from './messages/ObjectExportSelected';
|
||||
export * from './messages/ModifyLand';
|
||||
export * from './messages/VelocityInterpolateOn';
|
||||
export * from './messages/VelocityInterpolateOff';
|
||||
export * from './messages/StateSave';
|
||||
export * from './messages/ReportAutosaveCrash';
|
||||
export * from './messages/SimWideDeletes';
|
||||
export * from './messages/RequestObjectPropertiesFamily';
|
||||
export * from './messages/TrackAgent';
|
||||
export * from './messages/ViewerStats';
|
||||
export * from './messages/ScriptAnswerYes';
|
||||
export * from './messages/UserReport';
|
||||
export * from './messages/AlertMessage';
|
||||
export * from './messages/AgentAlertMessage';
|
||||
export * from './messages/MeanCollisionAlert';
|
||||
export * from './messages/ViewerFrozenMessage';
|
||||
export * from './messages/HealthMessage';
|
||||
export * from './messages/ChatFromSimulator';
|
||||
export * from './messages/SimStats';
|
||||
export * from './messages/RequestRegionInfo';
|
||||
export * from './messages/RegionInfo';
|
||||
export * from './messages/GodUpdateRegionInfo';
|
||||
export * from './messages/NearestLandingRegionRequest';
|
||||
export * from './messages/NearestLandingRegionReply';
|
||||
export * from './messages/NearestLandingRegionUpdated';
|
||||
export * from './messages/TeleportLandingStatusChanged';
|
||||
export * from './messages/RegionHandshake';
|
||||
export * from './messages/RegionHandshakeReply';
|
||||
export * from './messages/CoarseLocationUpdate';
|
||||
export * from './messages/ImageData';
|
||||
export * from './messages/ImagePacket';
|
||||
export * from './messages/LayerData';
|
||||
export * from './messages/ObjectUpdate';
|
||||
export * from './messages/ObjectUpdateCompressed';
|
||||
export * from './messages/ObjectUpdateCached';
|
||||
export * from './messages/ImprovedTerseObjectUpdate';
|
||||
export * from './messages/KillObject';
|
||||
export * from './messages/CrossedRegion';
|
||||
export * from './messages/SimulatorViewerTimeMessage';
|
||||
export * from './messages/EnableSimulator';
|
||||
export * from './messages/DisableSimulator';
|
||||
export * from './messages/ConfirmEnableSimulator';
|
||||
export * from './messages/TransferRequest';
|
||||
export * from './messages/TransferInfo';
|
||||
export * from './messages/TransferPacket';
|
||||
export * from './messages/TransferAbort';
|
||||
export * from './messages/RequestXfer';
|
||||
export * from './messages/SendXferPacket';
|
||||
export * from './messages/ConfirmXferPacket';
|
||||
export * from './messages/AbortXfer';
|
||||
export * from './messages/AvatarAnimation';
|
||||
export * from './messages/AvatarAppearance';
|
||||
export * from './messages/AvatarSitResponse';
|
||||
export * from './messages/SetFollowCamProperties';
|
||||
export * from './messages/ClearFollowCamProperties';
|
||||
export * from './messages/CameraConstraint';
|
||||
export * from './messages/ObjectProperties';
|
||||
export * from './messages/ObjectPropertiesFamily';
|
||||
export * from './messages/RequestPayPrice';
|
||||
export * from './messages/PayPriceReply';
|
||||
export * from './messages/KickUser';
|
||||
export * from './messages/KickUserAck';
|
||||
export * from './messages/GodKickUser';
|
||||
export * from './messages/SystemKickUser';
|
||||
export * from './messages/EjectUser';
|
||||
export * from './messages/FreezeUser';
|
||||
export * from './messages/AvatarPropertiesRequest';
|
||||
export * from './messages/AvatarPropertiesRequestBackend';
|
||||
export * from './messages/AvatarPropertiesReply';
|
||||
export * from './messages/AvatarInterestsReply';
|
||||
export * from './messages/AvatarGroupsReply';
|
||||
export * from './messages/AvatarPropertiesUpdate';
|
||||
export * from './messages/AvatarInterestsUpdate';
|
||||
export * from './messages/AvatarNotesReply';
|
||||
export * from './messages/AvatarNotesUpdate';
|
||||
export * from './messages/AvatarPicksReply';
|
||||
export * from './messages/EventInfoRequest';
|
||||
export * from './messages/EventInfoReply';
|
||||
export * from './messages/EventNotificationAddRequest';
|
||||
export * from './messages/EventNotificationRemoveRequest';
|
||||
export * from './messages/EventGodDelete';
|
||||
export * from './messages/PickInfoReply';
|
||||
export * from './messages/PickInfoUpdate';
|
||||
export * from './messages/PickDelete';
|
||||
export * from './messages/PickGodDelete';
|
||||
export * from './messages/ScriptQuestion';
|
||||
export * from './messages/ScriptControlChange';
|
||||
export * from './messages/ScriptDialog';
|
||||
export * from './messages/ScriptDialogReply';
|
||||
export * from './messages/ForceScriptControlRelease';
|
||||
export * from './messages/RevokePermissions';
|
||||
export * from './messages/LoadURL';
|
||||
export * from './messages/ScriptTeleportRequest';
|
||||
export * from './messages/ParcelOverlay';
|
||||
export * from './messages/ParcelPropertiesRequest';
|
||||
export * from './messages/ParcelPropertiesRequestByID';
|
||||
export * from './messages/ParcelProperties';
|
||||
export * from './messages/ParcelPropertiesUpdate';
|
||||
export * from './messages/ParcelReturnObjects';
|
||||
export * from './messages/ParcelSetOtherCleanTime';
|
||||
export * from './messages/ParcelDisableObjects';
|
||||
export * from './messages/ParcelSelectObjects';
|
||||
export * from './messages/EstateCovenantRequest';
|
||||
export * from './messages/EstateCovenantReply';
|
||||
export * from './messages/ForceObjectSelect';
|
||||
export * from './messages/ParcelBuyPass';
|
||||
export * from './messages/ParcelDeedToGroup';
|
||||
export * from './messages/ParcelReclaim';
|
||||
export * from './messages/ParcelClaim';
|
||||
export * from './messages/ParcelJoin';
|
||||
export * from './messages/ParcelDivide';
|
||||
export * from './messages/ParcelRelease';
|
||||
export * from './messages/ParcelBuy';
|
||||
export * from './messages/ParcelGodForceOwner';
|
||||
export * from './messages/ParcelAccessListRequest';
|
||||
export * from './messages/ParcelAccessListReply';
|
||||
export * from './messages/ParcelAccessListUpdate';
|
||||
export * from './messages/ParcelDwellRequest';
|
||||
export * from './messages/ParcelDwellReply';
|
||||
export * from './messages/RequestParcelTransfer';
|
||||
export * from './messages/UpdateParcel';
|
||||
export * from './messages/RemoveParcel';
|
||||
export * from './messages/MergeParcel';
|
||||
export * from './messages/LogParcelChanges';
|
||||
export * from './messages/CheckParcelSales';
|
||||
export * from './messages/ParcelSales';
|
||||
export * from './messages/ParcelGodMarkAsContent';
|
||||
export * from './messages/ViewerStartAuction';
|
||||
export * from './messages/StartAuction';
|
||||
export * from './messages/ConfirmAuctionStart';
|
||||
export * from './messages/CompleteAuction';
|
||||
export * from './messages/CancelAuction';
|
||||
export * from './messages/CheckParcelAuctions';
|
||||
export * from './messages/ParcelAuctions';
|
||||
export * from './messages/UUIDNameRequest';
|
||||
export * from './messages/UUIDNameReply';
|
||||
export * from './messages/UUIDGroupNameRequest';
|
||||
export * from './messages/UUIDGroupNameReply';
|
||||
export * from './messages/ChatPass';
|
||||
export * from './messages/EdgeDataPacket';
|
||||
export * from './messages/SimStatus';
|
||||
export * from './messages/ChildAgentUpdate';
|
||||
export * from './messages/ChildAgentAlive';
|
||||
export * from './messages/ChildAgentPositionUpdate';
|
||||
export * from './messages/ChildAgentDying';
|
||||
export * from './messages/ChildAgentUnknown';
|
||||
export * from './messages/AtomicPassObject';
|
||||
export * from './messages/KillChildAgents';
|
||||
export * from './messages/GetScriptRunning';
|
||||
export * from './messages/ScriptRunningReply';
|
||||
export * from './messages/SetScriptRunning';
|
||||
export * from './messages/ScriptReset';
|
||||
export * from './messages/ScriptSensorRequest';
|
||||
export * from './messages/ScriptSensorReply';
|
||||
export * from './messages/CompleteAgentMovement';
|
||||
export * from './messages/AgentMovementComplete';
|
||||
export * from './messages/DataServerLogout';
|
||||
export * from './messages/LogoutRequest';
|
||||
export * from './messages/LogoutReply';
|
||||
export * from './messages/ImprovedInstantMessage';
|
||||
export * from './messages/RetrieveInstantMessages';
|
||||
export * from './messages/FindAgent';
|
||||
export * from './messages/RequestGodlikePowers';
|
||||
export * from './messages/GrantGodlikePowers';
|
||||
export * from './messages/GodlikeMessage';
|
||||
export * from './messages/EstateOwnerMessage';
|
||||
export * from './messages/GenericMessage';
|
||||
export * from './messages/MuteListRequest';
|
||||
export * from './messages/UpdateMuteListEntry';
|
||||
export * from './messages/RemoveMuteListEntry';
|
||||
export * from './messages/CopyInventoryFromNotecard';
|
||||
export * from './messages/UpdateInventoryItem';
|
||||
export * from './messages/UpdateCreateInventoryItem';
|
||||
export * from './messages/MoveInventoryItem';
|
||||
export * from './messages/CopyInventoryItem';
|
||||
export * from './messages/RemoveInventoryItem';
|
||||
export * from './messages/ChangeInventoryItemFlags';
|
||||
export * from './messages/SaveAssetIntoInventory';
|
||||
export * from './messages/CreateInventoryFolder';
|
||||
export * from './messages/UpdateInventoryFolder';
|
||||
export * from './messages/MoveInventoryFolder';
|
||||
export * from './messages/RemoveInventoryFolder';
|
||||
export * from './messages/FetchInventoryDescendents';
|
||||
export * from './messages/InventoryDescendents';
|
||||
export * from './messages/FetchInventory';
|
||||
export * from './messages/FetchInventoryReply';
|
||||
export * from './messages/BulkUpdateInventory';
|
||||
export * from './messages/RequestInventoryAsset';
|
||||
export * from './messages/InventoryAssetResponse';
|
||||
export * from './messages/RemoveInventoryObjects';
|
||||
export * from './messages/PurgeInventoryDescendents';
|
||||
export * from './messages/UpdateTaskInventory';
|
||||
export * from './messages/RemoveTaskInventory';
|
||||
export * from './messages/MoveTaskInventory';
|
||||
export * from './messages/RequestTaskInventory';
|
||||
export * from './messages/ReplyTaskInventory';
|
||||
export * from './messages/DeRezObject';
|
||||
export * from './messages/DeRezAck';
|
||||
export * from './messages/RezObject';
|
||||
export * from './messages/RezObjectFromNotecard';
|
||||
export * from './messages/TransferInventory';
|
||||
export * from './messages/TransferInventoryAck';
|
||||
export * from './messages/AcceptFriendship';
|
||||
export * from './messages/DeclineFriendship';
|
||||
export * from './messages/FormFriendship';
|
||||
export * from './messages/TerminateFriendship';
|
||||
export * from './messages/OfferCallingCard';
|
||||
export * from './messages/AcceptCallingCard';
|
||||
export * from './messages/DeclineCallingCard';
|
||||
export * from './messages/RezScript';
|
||||
export * from './messages/CreateInventoryItem';
|
||||
export * from './messages/CreateLandmarkForEvent';
|
||||
export * from './messages/EventLocationRequest';
|
||||
export * from './messages/EventLocationReply';
|
||||
export * from './messages/RegionHandleRequest';
|
||||
export * from './messages/RegionIDAndHandleReply';
|
||||
export * from './messages/MoneyTransferRequest';
|
||||
export * from './messages/MoneyTransferBackend';
|
||||
export * from './messages/MoneyBalanceRequest';
|
||||
export * from './messages/MoneyBalanceReply';
|
||||
export * from './messages/RoutedMoneyBalanceReply';
|
||||
export * from './messages/ActivateGestures';
|
||||
export * from './messages/DeactivateGestures';
|
||||
export * from './messages/MuteListUpdate';
|
||||
export * from './messages/UseCachedMuteList';
|
||||
export * from './messages/GrantUserRights';
|
||||
export * from './messages/ChangeUserRights';
|
||||
export * from './messages/OnlineNotification';
|
||||
export * from './messages/OfflineNotification';
|
||||
export * from './messages/SetStartLocationRequest';
|
||||
export * from './messages/SetStartLocation';
|
||||
export * from './messages/NetTest';
|
||||
export * from './messages/SetCPURatio';
|
||||
export * from './messages/SimCrashed';
|
||||
export * from './messages/NameValuePair';
|
||||
export * from './messages/RemoveNameValuePair';
|
||||
export * from './messages/UpdateAttachment';
|
||||
export * from './messages/RemoveAttachment';
|
||||
export * from './messages/SoundTrigger';
|
||||
export * from './messages/AttachedSound';
|
||||
export * from './messages/AttachedSoundGainChange';
|
||||
export * from './messages/PreloadSound';
|
||||
export * from './messages/AssetUploadRequest';
|
||||
export * from './messages/AssetUploadComplete';
|
||||
export * from './messages/EmailMessageRequest';
|
||||
export * from './messages/EmailMessageReply';
|
||||
export * from './messages/InternalScriptMail';
|
||||
export * from './messages/ScriptDataRequest';
|
||||
export * from './messages/ScriptDataReply';
|
||||
export * from './messages/CreateGroupRequest';
|
||||
export * from './messages/CreateGroupReply';
|
||||
export * from './messages/UpdateGroupInfo';
|
||||
export * from './messages/GroupRoleChanges';
|
||||
export * from './messages/JoinGroupRequest';
|
||||
export * from './messages/JoinGroupReply';
|
||||
export * from './messages/EjectGroupMemberRequest';
|
||||
export * from './messages/EjectGroupMemberReply';
|
||||
export * from './messages/LeaveGroupRequest';
|
||||
export * from './messages/LeaveGroupReply';
|
||||
export * from './messages/InviteGroupRequest';
|
||||
export * from './messages/InviteGroupResponse';
|
||||
export * from './messages/GroupProfileRequest';
|
||||
export * from './messages/GroupProfileReply';
|
||||
export * from './messages/GroupAccountSummaryRequest';
|
||||
export * from './messages/GroupAccountSummaryReply';
|
||||
export * from './messages/GroupAccountDetailsRequest';
|
||||
export * from './messages/GroupAccountDetailsReply';
|
||||
export * from './messages/GroupAccountTransactionsRequest';
|
||||
export * from './messages/GroupAccountTransactionsReply';
|
||||
export * from './messages/GroupActiveProposalsRequest';
|
||||
export * from './messages/GroupActiveProposalItemReply';
|
||||
export * from './messages/GroupVoteHistoryRequest';
|
||||
export * from './messages/GroupVoteHistoryItemReply';
|
||||
export * from './messages/StartGroupProposal';
|
||||
export * from './messages/GroupProposalBallot';
|
||||
export * from './messages/TallyVotes';
|
||||
export * from './messages/GroupMembersRequest';
|
||||
export * from './messages/GroupMembersReply';
|
||||
export * from './messages/ActivateGroup';
|
||||
export * from './messages/SetGroupContribution';
|
||||
export * from './messages/SetGroupAcceptNotices';
|
||||
export * from './messages/GroupRoleDataRequest';
|
||||
export * from './messages/GroupRoleDataReply';
|
||||
export * from './messages/GroupRoleMembersRequest';
|
||||
export * from './messages/GroupRoleMembersReply';
|
||||
export * from './messages/GroupTitlesRequest';
|
||||
export * from './messages/GroupTitlesReply';
|
||||
export * from './messages/GroupTitleUpdate';
|
||||
export * from './messages/GroupRoleUpdate';
|
||||
export * from './messages/LiveHelpGroupRequest';
|
||||
export * from './messages/LiveHelpGroupReply';
|
||||
export * from './messages/AgentWearablesRequest';
|
||||
export * from './messages/AgentWearablesUpdate';
|
||||
export * from './messages/AgentIsNowWearing';
|
||||
export * from './messages/AgentCachedTexture';
|
||||
export * from './messages/AgentCachedTextureResponse';
|
||||
export * from './messages/AgentDataUpdateRequest';
|
||||
export * from './messages/AgentDataUpdate';
|
||||
export * from './messages/GroupDataUpdate';
|
||||
export * from './messages/AgentGroupDataUpdate';
|
||||
export * from './messages/AgentDropGroup';
|
||||
export * from './messages/LogTextMessage';
|
||||
export * from './messages/ViewerEffect';
|
||||
export * from './messages/CreateTrustedCircuit';
|
||||
export * from './messages/DenyTrustedCircuit';
|
||||
export * from './messages/RequestTrustedCircuit';
|
||||
export * from './messages/RezSingleAttachmentFromInv';
|
||||
export * from './messages/RezMultipleAttachmentsFromInv';
|
||||
export * from './messages/DetachAttachmentIntoInv';
|
||||
export * from './messages/CreateNewOutfitAttachments';
|
||||
export * from './messages/UserInfoRequest';
|
||||
export * from './messages/UserInfoReply';
|
||||
export * from './messages/UpdateUserInfo';
|
||||
export * from './messages/ParcelRename';
|
||||
export * from './messages/InitiateDownload';
|
||||
export * from './messages/SystemMessage';
|
||||
export * from './messages/MapLayerRequest';
|
||||
export * from './messages/MapLayerReply';
|
||||
export * from './messages/MapBlockRequest';
|
||||
export * from './messages/MapNameRequest';
|
||||
export * from './messages/MapBlockReply';
|
||||
export * from './messages/MapItemRequest';
|
||||
export * from './messages/MapItemReply';
|
||||
export * from './messages/SendPostcard';
|
||||
export * from './messages/RpcChannelRequest';
|
||||
export * from './messages/RpcChannelReply';
|
||||
export * from './messages/RpcScriptRequestInbound';
|
||||
export * from './messages/RpcScriptRequestInboundForward';
|
||||
export * from './messages/RpcScriptReplyInbound';
|
||||
export * from './messages/ScriptMailRegistration';
|
||||
export * from './messages/ParcelMediaCommandMessage';
|
||||
export * from './messages/ParcelMediaUpdate';
|
||||
export * from './messages/LandStatRequest';
|
||||
export * from './messages/LandStatReply';
|
||||
export * from './messages/Error';
|
||||
export * from './messages/ObjectIncludeInSearch';
|
||||
export * from './messages/RezRestoreToWorld';
|
||||
export * from './messages/LinkInventoryItem';
|
||||
export * from './messages/RetrieveIMsExtended';
|
||||
export * from './messages/JoinGroupRequestExtended';
|
||||
export * from './messages/CreateGroupRequestExtended';
|
||||
import { Message } from '../enums/Message';
|
||||
export declare function nameFromID(id: Message): string;
|
||||
968
dist/classes/MessageClasses.js
vendored
968
dist/classes/MessageClasses.js
vendored
@@ -1,968 +0,0 @@
|
||||
"use strict";
|
||||
function __export(m) {
|
||||
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
|
||||
}
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
__export(require("./messages/TestMessage"));
|
||||
__export(require("./messages/PacketAck"));
|
||||
__export(require("./messages/OpenCircuit"));
|
||||
__export(require("./messages/CloseCircuit"));
|
||||
__export(require("./messages/StartPingCheck"));
|
||||
__export(require("./messages/CompletePingCheck"));
|
||||
__export(require("./messages/AddCircuitCode"));
|
||||
__export(require("./messages/UseCircuitCode"));
|
||||
__export(require("./messages/NeighborList"));
|
||||
__export(require("./messages/AvatarTextureUpdate"));
|
||||
__export(require("./messages/SimulatorMapUpdate"));
|
||||
__export(require("./messages/SimulatorSetMap"));
|
||||
__export(require("./messages/SubscribeLoad"));
|
||||
__export(require("./messages/UnsubscribeLoad"));
|
||||
__export(require("./messages/SimulatorReady"));
|
||||
__export(require("./messages/TelehubInfo"));
|
||||
__export(require("./messages/SimulatorPresentAtLocation"));
|
||||
__export(require("./messages/SimulatorLoad"));
|
||||
__export(require("./messages/SimulatorShutdownRequest"));
|
||||
__export(require("./messages/RegionPresenceRequestByRegionID"));
|
||||
__export(require("./messages/RegionPresenceRequestByHandle"));
|
||||
__export(require("./messages/RegionPresenceResponse"));
|
||||
__export(require("./messages/UpdateSimulator"));
|
||||
__export(require("./messages/LogDwellTime"));
|
||||
__export(require("./messages/FeatureDisabled"));
|
||||
__export(require("./messages/LogFailedMoneyTransaction"));
|
||||
__export(require("./messages/UserReportInternal"));
|
||||
__export(require("./messages/SetSimStatusInDatabase"));
|
||||
__export(require("./messages/SetSimPresenceInDatabase"));
|
||||
__export(require("./messages/EconomyDataRequest"));
|
||||
__export(require("./messages/EconomyData"));
|
||||
__export(require("./messages/AvatarPickerRequest"));
|
||||
__export(require("./messages/AvatarPickerRequestBackend"));
|
||||
__export(require("./messages/AvatarPickerReply"));
|
||||
__export(require("./messages/PlacesQuery"));
|
||||
__export(require("./messages/PlacesReply"));
|
||||
__export(require("./messages/DirFindQuery"));
|
||||
__export(require("./messages/DirFindQueryBackend"));
|
||||
__export(require("./messages/DirPlacesQuery"));
|
||||
__export(require("./messages/DirPlacesQueryBackend"));
|
||||
__export(require("./messages/DirPlacesReply"));
|
||||
__export(require("./messages/DirPeopleReply"));
|
||||
__export(require("./messages/DirEventsReply"));
|
||||
__export(require("./messages/DirGroupsReply"));
|
||||
__export(require("./messages/DirClassifiedQuery"));
|
||||
__export(require("./messages/DirClassifiedQueryBackend"));
|
||||
__export(require("./messages/DirClassifiedReply"));
|
||||
__export(require("./messages/AvatarClassifiedReply"));
|
||||
__export(require("./messages/ClassifiedInfoRequest"));
|
||||
__export(require("./messages/ClassifiedInfoReply"));
|
||||
__export(require("./messages/ClassifiedInfoUpdate"));
|
||||
__export(require("./messages/ClassifiedDelete"));
|
||||
__export(require("./messages/ClassifiedGodDelete"));
|
||||
__export(require("./messages/DirLandQuery"));
|
||||
__export(require("./messages/DirLandQueryBackend"));
|
||||
__export(require("./messages/DirLandReply"));
|
||||
__export(require("./messages/DirPopularQuery"));
|
||||
__export(require("./messages/DirPopularQueryBackend"));
|
||||
__export(require("./messages/DirPopularReply"));
|
||||
__export(require("./messages/ParcelInfoRequest"));
|
||||
__export(require("./messages/ParcelInfoReply"));
|
||||
__export(require("./messages/ParcelObjectOwnersRequest"));
|
||||
__export(require("./messages/ParcelObjectOwnersReply"));
|
||||
__export(require("./messages/GroupNoticesListRequest"));
|
||||
__export(require("./messages/GroupNoticesListReply"));
|
||||
__export(require("./messages/GroupNoticeRequest"));
|
||||
__export(require("./messages/GroupNoticeAdd"));
|
||||
__export(require("./messages/TeleportRequest"));
|
||||
__export(require("./messages/TeleportLocationRequest"));
|
||||
__export(require("./messages/TeleportLocal"));
|
||||
__export(require("./messages/TeleportLandmarkRequest"));
|
||||
__export(require("./messages/TeleportProgress"));
|
||||
__export(require("./messages/DataHomeLocationRequest"));
|
||||
__export(require("./messages/DataHomeLocationReply"));
|
||||
__export(require("./messages/TeleportFinish"));
|
||||
__export(require("./messages/StartLure"));
|
||||
__export(require("./messages/TeleportLureRequest"));
|
||||
__export(require("./messages/TeleportCancel"));
|
||||
__export(require("./messages/TeleportStart"));
|
||||
__export(require("./messages/TeleportFailed"));
|
||||
__export(require("./messages/Undo"));
|
||||
__export(require("./messages/Redo"));
|
||||
__export(require("./messages/UndoLand"));
|
||||
__export(require("./messages/AgentPause"));
|
||||
__export(require("./messages/AgentResume"));
|
||||
__export(require("./messages/AgentUpdate"));
|
||||
__export(require("./messages/ChatFromViewer"));
|
||||
__export(require("./messages/AgentThrottle"));
|
||||
__export(require("./messages/AgentFOV"));
|
||||
__export(require("./messages/AgentHeightWidth"));
|
||||
__export(require("./messages/AgentSetAppearance"));
|
||||
__export(require("./messages/AgentAnimation"));
|
||||
__export(require("./messages/AgentRequestSit"));
|
||||
__export(require("./messages/AgentSit"));
|
||||
__export(require("./messages/AgentQuitCopy"));
|
||||
__export(require("./messages/RequestImage"));
|
||||
__export(require("./messages/ImageNotInDatabase"));
|
||||
__export(require("./messages/RebakeAvatarTextures"));
|
||||
__export(require("./messages/SetAlwaysRun"));
|
||||
__export(require("./messages/ObjectAdd"));
|
||||
__export(require("./messages/ObjectDelete"));
|
||||
__export(require("./messages/ObjectDuplicate"));
|
||||
__export(require("./messages/ObjectDuplicateOnRay"));
|
||||
__export(require("./messages/MultipleObjectUpdate"));
|
||||
__export(require("./messages/RequestMultipleObjects"));
|
||||
__export(require("./messages/ObjectPosition"));
|
||||
__export(require("./messages/ObjectScale"));
|
||||
__export(require("./messages/ObjectRotation"));
|
||||
__export(require("./messages/ObjectFlagUpdate"));
|
||||
__export(require("./messages/ObjectClickAction"));
|
||||
__export(require("./messages/ObjectImage"));
|
||||
__export(require("./messages/ObjectMaterial"));
|
||||
__export(require("./messages/ObjectShape"));
|
||||
__export(require("./messages/ObjectExtraParams"));
|
||||
__export(require("./messages/ObjectOwner"));
|
||||
__export(require("./messages/ObjectGroup"));
|
||||
__export(require("./messages/ObjectBuy"));
|
||||
__export(require("./messages/BuyObjectInventory"));
|
||||
__export(require("./messages/DerezContainer"));
|
||||
__export(require("./messages/ObjectPermissions"));
|
||||
__export(require("./messages/ObjectSaleInfo"));
|
||||
__export(require("./messages/ObjectName"));
|
||||
__export(require("./messages/ObjectDescription"));
|
||||
__export(require("./messages/ObjectCategory"));
|
||||
__export(require("./messages/ObjectSelect"));
|
||||
__export(require("./messages/ObjectDeselect"));
|
||||
__export(require("./messages/ObjectAttach"));
|
||||
__export(require("./messages/ObjectDetach"));
|
||||
__export(require("./messages/ObjectDrop"));
|
||||
__export(require("./messages/ObjectLink"));
|
||||
__export(require("./messages/ObjectDelink"));
|
||||
__export(require("./messages/ObjectGrab"));
|
||||
__export(require("./messages/ObjectGrabUpdate"));
|
||||
__export(require("./messages/ObjectDeGrab"));
|
||||
__export(require("./messages/ObjectSpinStart"));
|
||||
__export(require("./messages/ObjectSpinUpdate"));
|
||||
__export(require("./messages/ObjectSpinStop"));
|
||||
__export(require("./messages/ObjectExportSelected"));
|
||||
__export(require("./messages/ModifyLand"));
|
||||
__export(require("./messages/VelocityInterpolateOn"));
|
||||
__export(require("./messages/VelocityInterpolateOff"));
|
||||
__export(require("./messages/StateSave"));
|
||||
__export(require("./messages/ReportAutosaveCrash"));
|
||||
__export(require("./messages/SimWideDeletes"));
|
||||
__export(require("./messages/RequestObjectPropertiesFamily"));
|
||||
__export(require("./messages/TrackAgent"));
|
||||
__export(require("./messages/ViewerStats"));
|
||||
__export(require("./messages/ScriptAnswerYes"));
|
||||
__export(require("./messages/UserReport"));
|
||||
__export(require("./messages/AlertMessage"));
|
||||
__export(require("./messages/AgentAlertMessage"));
|
||||
__export(require("./messages/MeanCollisionAlert"));
|
||||
__export(require("./messages/ViewerFrozenMessage"));
|
||||
__export(require("./messages/HealthMessage"));
|
||||
__export(require("./messages/ChatFromSimulator"));
|
||||
__export(require("./messages/SimStats"));
|
||||
__export(require("./messages/RequestRegionInfo"));
|
||||
__export(require("./messages/RegionInfo"));
|
||||
__export(require("./messages/GodUpdateRegionInfo"));
|
||||
__export(require("./messages/NearestLandingRegionRequest"));
|
||||
__export(require("./messages/NearestLandingRegionReply"));
|
||||
__export(require("./messages/NearestLandingRegionUpdated"));
|
||||
__export(require("./messages/TeleportLandingStatusChanged"));
|
||||
__export(require("./messages/RegionHandshake"));
|
||||
__export(require("./messages/RegionHandshakeReply"));
|
||||
__export(require("./messages/CoarseLocationUpdate"));
|
||||
__export(require("./messages/ImageData"));
|
||||
__export(require("./messages/ImagePacket"));
|
||||
__export(require("./messages/LayerData"));
|
||||
__export(require("./messages/ObjectUpdate"));
|
||||
__export(require("./messages/ObjectUpdateCompressed"));
|
||||
__export(require("./messages/ObjectUpdateCached"));
|
||||
__export(require("./messages/ImprovedTerseObjectUpdate"));
|
||||
__export(require("./messages/KillObject"));
|
||||
__export(require("./messages/CrossedRegion"));
|
||||
__export(require("./messages/SimulatorViewerTimeMessage"));
|
||||
__export(require("./messages/EnableSimulator"));
|
||||
__export(require("./messages/DisableSimulator"));
|
||||
__export(require("./messages/ConfirmEnableSimulator"));
|
||||
__export(require("./messages/TransferRequest"));
|
||||
__export(require("./messages/TransferInfo"));
|
||||
__export(require("./messages/TransferPacket"));
|
||||
__export(require("./messages/TransferAbort"));
|
||||
__export(require("./messages/RequestXfer"));
|
||||
__export(require("./messages/SendXferPacket"));
|
||||
__export(require("./messages/ConfirmXferPacket"));
|
||||
__export(require("./messages/AbortXfer"));
|
||||
__export(require("./messages/AvatarAnimation"));
|
||||
__export(require("./messages/AvatarAppearance"));
|
||||
__export(require("./messages/AvatarSitResponse"));
|
||||
__export(require("./messages/SetFollowCamProperties"));
|
||||
__export(require("./messages/ClearFollowCamProperties"));
|
||||
__export(require("./messages/CameraConstraint"));
|
||||
__export(require("./messages/ObjectProperties"));
|
||||
__export(require("./messages/ObjectPropertiesFamily"));
|
||||
__export(require("./messages/RequestPayPrice"));
|
||||
__export(require("./messages/PayPriceReply"));
|
||||
__export(require("./messages/KickUser"));
|
||||
__export(require("./messages/KickUserAck"));
|
||||
__export(require("./messages/GodKickUser"));
|
||||
__export(require("./messages/SystemKickUser"));
|
||||
__export(require("./messages/EjectUser"));
|
||||
__export(require("./messages/FreezeUser"));
|
||||
__export(require("./messages/AvatarPropertiesRequest"));
|
||||
__export(require("./messages/AvatarPropertiesRequestBackend"));
|
||||
__export(require("./messages/AvatarPropertiesReply"));
|
||||
__export(require("./messages/AvatarInterestsReply"));
|
||||
__export(require("./messages/AvatarGroupsReply"));
|
||||
__export(require("./messages/AvatarPropertiesUpdate"));
|
||||
__export(require("./messages/AvatarInterestsUpdate"));
|
||||
__export(require("./messages/AvatarNotesReply"));
|
||||
__export(require("./messages/AvatarNotesUpdate"));
|
||||
__export(require("./messages/AvatarPicksReply"));
|
||||
__export(require("./messages/EventInfoRequest"));
|
||||
__export(require("./messages/EventInfoReply"));
|
||||
__export(require("./messages/EventNotificationAddRequest"));
|
||||
__export(require("./messages/EventNotificationRemoveRequest"));
|
||||
__export(require("./messages/EventGodDelete"));
|
||||
__export(require("./messages/PickInfoReply"));
|
||||
__export(require("./messages/PickInfoUpdate"));
|
||||
__export(require("./messages/PickDelete"));
|
||||
__export(require("./messages/PickGodDelete"));
|
||||
__export(require("./messages/ScriptQuestion"));
|
||||
__export(require("./messages/ScriptControlChange"));
|
||||
__export(require("./messages/ScriptDialog"));
|
||||
__export(require("./messages/ScriptDialogReply"));
|
||||
__export(require("./messages/ForceScriptControlRelease"));
|
||||
__export(require("./messages/RevokePermissions"));
|
||||
__export(require("./messages/LoadURL"));
|
||||
__export(require("./messages/ScriptTeleportRequest"));
|
||||
__export(require("./messages/ParcelOverlay"));
|
||||
__export(require("./messages/ParcelPropertiesRequest"));
|
||||
__export(require("./messages/ParcelPropertiesRequestByID"));
|
||||
__export(require("./messages/ParcelProperties"));
|
||||
__export(require("./messages/ParcelPropertiesUpdate"));
|
||||
__export(require("./messages/ParcelReturnObjects"));
|
||||
__export(require("./messages/ParcelSetOtherCleanTime"));
|
||||
__export(require("./messages/ParcelDisableObjects"));
|
||||
__export(require("./messages/ParcelSelectObjects"));
|
||||
__export(require("./messages/EstateCovenantRequest"));
|
||||
__export(require("./messages/EstateCovenantReply"));
|
||||
__export(require("./messages/ForceObjectSelect"));
|
||||
__export(require("./messages/ParcelBuyPass"));
|
||||
__export(require("./messages/ParcelDeedToGroup"));
|
||||
__export(require("./messages/ParcelReclaim"));
|
||||
__export(require("./messages/ParcelClaim"));
|
||||
__export(require("./messages/ParcelJoin"));
|
||||
__export(require("./messages/ParcelDivide"));
|
||||
__export(require("./messages/ParcelRelease"));
|
||||
__export(require("./messages/ParcelBuy"));
|
||||
__export(require("./messages/ParcelGodForceOwner"));
|
||||
__export(require("./messages/ParcelAccessListRequest"));
|
||||
__export(require("./messages/ParcelAccessListReply"));
|
||||
__export(require("./messages/ParcelAccessListUpdate"));
|
||||
__export(require("./messages/ParcelDwellRequest"));
|
||||
__export(require("./messages/ParcelDwellReply"));
|
||||
__export(require("./messages/RequestParcelTransfer"));
|
||||
__export(require("./messages/UpdateParcel"));
|
||||
__export(require("./messages/RemoveParcel"));
|
||||
__export(require("./messages/MergeParcel"));
|
||||
__export(require("./messages/LogParcelChanges"));
|
||||
__export(require("./messages/CheckParcelSales"));
|
||||
__export(require("./messages/ParcelSales"));
|
||||
__export(require("./messages/ParcelGodMarkAsContent"));
|
||||
__export(require("./messages/ViewerStartAuction"));
|
||||
__export(require("./messages/StartAuction"));
|
||||
__export(require("./messages/ConfirmAuctionStart"));
|
||||
__export(require("./messages/CompleteAuction"));
|
||||
__export(require("./messages/CancelAuction"));
|
||||
__export(require("./messages/CheckParcelAuctions"));
|
||||
__export(require("./messages/ParcelAuctions"));
|
||||
__export(require("./messages/UUIDNameRequest"));
|
||||
__export(require("./messages/UUIDNameReply"));
|
||||
__export(require("./messages/UUIDGroupNameRequest"));
|
||||
__export(require("./messages/UUIDGroupNameReply"));
|
||||
__export(require("./messages/ChatPass"));
|
||||
__export(require("./messages/EdgeDataPacket"));
|
||||
__export(require("./messages/SimStatus"));
|
||||
__export(require("./messages/ChildAgentUpdate"));
|
||||
__export(require("./messages/ChildAgentAlive"));
|
||||
__export(require("./messages/ChildAgentPositionUpdate"));
|
||||
__export(require("./messages/ChildAgentDying"));
|
||||
__export(require("./messages/ChildAgentUnknown"));
|
||||
__export(require("./messages/AtomicPassObject"));
|
||||
__export(require("./messages/KillChildAgents"));
|
||||
__export(require("./messages/GetScriptRunning"));
|
||||
__export(require("./messages/ScriptRunningReply"));
|
||||
__export(require("./messages/SetScriptRunning"));
|
||||
__export(require("./messages/ScriptReset"));
|
||||
__export(require("./messages/ScriptSensorRequest"));
|
||||
__export(require("./messages/ScriptSensorReply"));
|
||||
__export(require("./messages/CompleteAgentMovement"));
|
||||
__export(require("./messages/AgentMovementComplete"));
|
||||
__export(require("./messages/DataServerLogout"));
|
||||
__export(require("./messages/LogoutRequest"));
|
||||
__export(require("./messages/LogoutReply"));
|
||||
__export(require("./messages/ImprovedInstantMessage"));
|
||||
__export(require("./messages/RetrieveInstantMessages"));
|
||||
__export(require("./messages/FindAgent"));
|
||||
__export(require("./messages/RequestGodlikePowers"));
|
||||
__export(require("./messages/GrantGodlikePowers"));
|
||||
__export(require("./messages/GodlikeMessage"));
|
||||
__export(require("./messages/EstateOwnerMessage"));
|
||||
__export(require("./messages/GenericMessage"));
|
||||
__export(require("./messages/MuteListRequest"));
|
||||
__export(require("./messages/UpdateMuteListEntry"));
|
||||
__export(require("./messages/RemoveMuteListEntry"));
|
||||
__export(require("./messages/CopyInventoryFromNotecard"));
|
||||
__export(require("./messages/UpdateInventoryItem"));
|
||||
__export(require("./messages/UpdateCreateInventoryItem"));
|
||||
__export(require("./messages/MoveInventoryItem"));
|
||||
__export(require("./messages/CopyInventoryItem"));
|
||||
__export(require("./messages/RemoveInventoryItem"));
|
||||
__export(require("./messages/ChangeInventoryItemFlags"));
|
||||
__export(require("./messages/SaveAssetIntoInventory"));
|
||||
__export(require("./messages/CreateInventoryFolder"));
|
||||
__export(require("./messages/UpdateInventoryFolder"));
|
||||
__export(require("./messages/MoveInventoryFolder"));
|
||||
__export(require("./messages/RemoveInventoryFolder"));
|
||||
__export(require("./messages/FetchInventoryDescendents"));
|
||||
__export(require("./messages/InventoryDescendents"));
|
||||
__export(require("./messages/FetchInventory"));
|
||||
__export(require("./messages/FetchInventoryReply"));
|
||||
__export(require("./messages/BulkUpdateInventory"));
|
||||
__export(require("./messages/RequestInventoryAsset"));
|
||||
__export(require("./messages/InventoryAssetResponse"));
|
||||
__export(require("./messages/RemoveInventoryObjects"));
|
||||
__export(require("./messages/PurgeInventoryDescendents"));
|
||||
__export(require("./messages/UpdateTaskInventory"));
|
||||
__export(require("./messages/RemoveTaskInventory"));
|
||||
__export(require("./messages/MoveTaskInventory"));
|
||||
__export(require("./messages/RequestTaskInventory"));
|
||||
__export(require("./messages/ReplyTaskInventory"));
|
||||
__export(require("./messages/DeRezObject"));
|
||||
__export(require("./messages/DeRezAck"));
|
||||
__export(require("./messages/RezObject"));
|
||||
__export(require("./messages/RezObjectFromNotecard"));
|
||||
__export(require("./messages/TransferInventory"));
|
||||
__export(require("./messages/TransferInventoryAck"));
|
||||
__export(require("./messages/AcceptFriendship"));
|
||||
__export(require("./messages/DeclineFriendship"));
|
||||
__export(require("./messages/FormFriendship"));
|
||||
__export(require("./messages/TerminateFriendship"));
|
||||
__export(require("./messages/OfferCallingCard"));
|
||||
__export(require("./messages/AcceptCallingCard"));
|
||||
__export(require("./messages/DeclineCallingCard"));
|
||||
__export(require("./messages/RezScript"));
|
||||
__export(require("./messages/CreateInventoryItem"));
|
||||
__export(require("./messages/CreateLandmarkForEvent"));
|
||||
__export(require("./messages/EventLocationRequest"));
|
||||
__export(require("./messages/EventLocationReply"));
|
||||
__export(require("./messages/RegionHandleRequest"));
|
||||
__export(require("./messages/RegionIDAndHandleReply"));
|
||||
__export(require("./messages/MoneyTransferRequest"));
|
||||
__export(require("./messages/MoneyTransferBackend"));
|
||||
__export(require("./messages/MoneyBalanceRequest"));
|
||||
__export(require("./messages/MoneyBalanceReply"));
|
||||
__export(require("./messages/RoutedMoneyBalanceReply"));
|
||||
__export(require("./messages/ActivateGestures"));
|
||||
__export(require("./messages/DeactivateGestures"));
|
||||
__export(require("./messages/MuteListUpdate"));
|
||||
__export(require("./messages/UseCachedMuteList"));
|
||||
__export(require("./messages/GrantUserRights"));
|
||||
__export(require("./messages/ChangeUserRights"));
|
||||
__export(require("./messages/OnlineNotification"));
|
||||
__export(require("./messages/OfflineNotification"));
|
||||
__export(require("./messages/SetStartLocationRequest"));
|
||||
__export(require("./messages/SetStartLocation"));
|
||||
__export(require("./messages/NetTest"));
|
||||
__export(require("./messages/SetCPURatio"));
|
||||
__export(require("./messages/SimCrashed"));
|
||||
__export(require("./messages/NameValuePair"));
|
||||
__export(require("./messages/RemoveNameValuePair"));
|
||||
__export(require("./messages/UpdateAttachment"));
|
||||
__export(require("./messages/RemoveAttachment"));
|
||||
__export(require("./messages/SoundTrigger"));
|
||||
__export(require("./messages/AttachedSound"));
|
||||
__export(require("./messages/AttachedSoundGainChange"));
|
||||
__export(require("./messages/PreloadSound"));
|
||||
__export(require("./messages/AssetUploadRequest"));
|
||||
__export(require("./messages/AssetUploadComplete"));
|
||||
__export(require("./messages/EmailMessageRequest"));
|
||||
__export(require("./messages/EmailMessageReply"));
|
||||
__export(require("./messages/InternalScriptMail"));
|
||||
__export(require("./messages/ScriptDataRequest"));
|
||||
__export(require("./messages/ScriptDataReply"));
|
||||
__export(require("./messages/CreateGroupRequest"));
|
||||
__export(require("./messages/CreateGroupReply"));
|
||||
__export(require("./messages/UpdateGroupInfo"));
|
||||
__export(require("./messages/GroupRoleChanges"));
|
||||
__export(require("./messages/JoinGroupRequest"));
|
||||
__export(require("./messages/JoinGroupReply"));
|
||||
__export(require("./messages/EjectGroupMemberRequest"));
|
||||
__export(require("./messages/EjectGroupMemberReply"));
|
||||
__export(require("./messages/LeaveGroupRequest"));
|
||||
__export(require("./messages/LeaveGroupReply"));
|
||||
__export(require("./messages/InviteGroupRequest"));
|
||||
__export(require("./messages/InviteGroupResponse"));
|
||||
__export(require("./messages/GroupProfileRequest"));
|
||||
__export(require("./messages/GroupProfileReply"));
|
||||
__export(require("./messages/GroupAccountSummaryRequest"));
|
||||
__export(require("./messages/GroupAccountSummaryReply"));
|
||||
__export(require("./messages/GroupAccountDetailsRequest"));
|
||||
__export(require("./messages/GroupAccountDetailsReply"));
|
||||
__export(require("./messages/GroupAccountTransactionsRequest"));
|
||||
__export(require("./messages/GroupAccountTransactionsReply"));
|
||||
__export(require("./messages/GroupActiveProposalsRequest"));
|
||||
__export(require("./messages/GroupActiveProposalItemReply"));
|
||||
__export(require("./messages/GroupVoteHistoryRequest"));
|
||||
__export(require("./messages/GroupVoteHistoryItemReply"));
|
||||
__export(require("./messages/StartGroupProposal"));
|
||||
__export(require("./messages/GroupProposalBallot"));
|
||||
__export(require("./messages/TallyVotes"));
|
||||
__export(require("./messages/GroupMembersRequest"));
|
||||
__export(require("./messages/GroupMembersReply"));
|
||||
__export(require("./messages/ActivateGroup"));
|
||||
__export(require("./messages/SetGroupContribution"));
|
||||
__export(require("./messages/SetGroupAcceptNotices"));
|
||||
__export(require("./messages/GroupRoleDataRequest"));
|
||||
__export(require("./messages/GroupRoleDataReply"));
|
||||
__export(require("./messages/GroupRoleMembersRequest"));
|
||||
__export(require("./messages/GroupRoleMembersReply"));
|
||||
__export(require("./messages/GroupTitlesRequest"));
|
||||
__export(require("./messages/GroupTitlesReply"));
|
||||
__export(require("./messages/GroupTitleUpdate"));
|
||||
__export(require("./messages/GroupRoleUpdate"));
|
||||
__export(require("./messages/LiveHelpGroupRequest"));
|
||||
__export(require("./messages/LiveHelpGroupReply"));
|
||||
__export(require("./messages/AgentWearablesRequest"));
|
||||
__export(require("./messages/AgentWearablesUpdate"));
|
||||
__export(require("./messages/AgentIsNowWearing"));
|
||||
__export(require("./messages/AgentCachedTexture"));
|
||||
__export(require("./messages/AgentCachedTextureResponse"));
|
||||
__export(require("./messages/AgentDataUpdateRequest"));
|
||||
__export(require("./messages/AgentDataUpdate"));
|
||||
__export(require("./messages/GroupDataUpdate"));
|
||||
__export(require("./messages/AgentGroupDataUpdate"));
|
||||
__export(require("./messages/AgentDropGroup"));
|
||||
__export(require("./messages/LogTextMessage"));
|
||||
__export(require("./messages/ViewerEffect"));
|
||||
__export(require("./messages/CreateTrustedCircuit"));
|
||||
__export(require("./messages/DenyTrustedCircuit"));
|
||||
__export(require("./messages/RequestTrustedCircuit"));
|
||||
__export(require("./messages/RezSingleAttachmentFromInv"));
|
||||
__export(require("./messages/RezMultipleAttachmentsFromInv"));
|
||||
__export(require("./messages/DetachAttachmentIntoInv"));
|
||||
__export(require("./messages/CreateNewOutfitAttachments"));
|
||||
__export(require("./messages/UserInfoRequest"));
|
||||
__export(require("./messages/UserInfoReply"));
|
||||
__export(require("./messages/UpdateUserInfo"));
|
||||
__export(require("./messages/ParcelRename"));
|
||||
__export(require("./messages/InitiateDownload"));
|
||||
__export(require("./messages/SystemMessage"));
|
||||
__export(require("./messages/MapLayerRequest"));
|
||||
__export(require("./messages/MapLayerReply"));
|
||||
__export(require("./messages/MapBlockRequest"));
|
||||
__export(require("./messages/MapNameRequest"));
|
||||
__export(require("./messages/MapBlockReply"));
|
||||
__export(require("./messages/MapItemRequest"));
|
||||
__export(require("./messages/MapItemReply"));
|
||||
__export(require("./messages/SendPostcard"));
|
||||
__export(require("./messages/RpcChannelRequest"));
|
||||
__export(require("./messages/RpcChannelReply"));
|
||||
__export(require("./messages/RpcScriptRequestInbound"));
|
||||
__export(require("./messages/RpcScriptRequestInboundForward"));
|
||||
__export(require("./messages/RpcScriptReplyInbound"));
|
||||
__export(require("./messages/ScriptMailRegistration"));
|
||||
__export(require("./messages/ParcelMediaCommandMessage"));
|
||||
__export(require("./messages/ParcelMediaUpdate"));
|
||||
__export(require("./messages/LandStatRequest"));
|
||||
__export(require("./messages/LandStatReply"));
|
||||
__export(require("./messages/Error"));
|
||||
__export(require("./messages/ObjectIncludeInSearch"));
|
||||
__export(require("./messages/RezRestoreToWorld"));
|
||||
__export(require("./messages/LinkInventoryItem"));
|
||||
__export(require("./messages/RetrieveIMsExtended"));
|
||||
__export(require("./messages/JoinGroupRequestExtended"));
|
||||
__export(require("./messages/CreateGroupRequestExtended"));
|
||||
const Message_1 = require("../enums/Message");
|
||||
const messages = {};
|
||||
messages[Message_1.Message.TestMessage] = 'TestMessageMessage';
|
||||
messages[Message_1.Message.PacketAck] = 'PacketAckMessage';
|
||||
messages[Message_1.Message.OpenCircuit] = 'OpenCircuitMessage';
|
||||
messages[Message_1.Message.CloseCircuit] = 'CloseCircuitMessage';
|
||||
messages[Message_1.Message.StartPingCheck] = 'StartPingCheckMessage';
|
||||
messages[Message_1.Message.CompletePingCheck] = 'CompletePingCheckMessage';
|
||||
messages[Message_1.Message.AddCircuitCode] = 'AddCircuitCodeMessage';
|
||||
messages[Message_1.Message.UseCircuitCode] = 'UseCircuitCodeMessage';
|
||||
messages[Message_1.Message.NeighborList] = 'NeighborListMessage';
|
||||
messages[Message_1.Message.AvatarTextureUpdate] = 'AvatarTextureUpdateMessage';
|
||||
messages[Message_1.Message.SimulatorMapUpdate] = 'SimulatorMapUpdateMessage';
|
||||
messages[Message_1.Message.SimulatorSetMap] = 'SimulatorSetMapMessage';
|
||||
messages[Message_1.Message.SubscribeLoad] = 'SubscribeLoadMessage';
|
||||
messages[Message_1.Message.UnsubscribeLoad] = 'UnsubscribeLoadMessage';
|
||||
messages[Message_1.Message.SimulatorReady] = 'SimulatorReadyMessage';
|
||||
messages[Message_1.Message.TelehubInfo] = 'TelehubInfoMessage';
|
||||
messages[Message_1.Message.SimulatorPresentAtLocation] = 'SimulatorPresentAtLocationMessage';
|
||||
messages[Message_1.Message.SimulatorLoad] = 'SimulatorLoadMessage';
|
||||
messages[Message_1.Message.SimulatorShutdownRequest] = 'SimulatorShutdownRequestMessage';
|
||||
messages[Message_1.Message.RegionPresenceRequestByRegionID] = 'RegionPresenceRequestByRegionIDMessage';
|
||||
messages[Message_1.Message.RegionPresenceRequestByHandle] = 'RegionPresenceRequestByHandleMessage';
|
||||
messages[Message_1.Message.RegionPresenceResponse] = 'RegionPresenceResponseMessage';
|
||||
messages[Message_1.Message.UpdateSimulator] = 'UpdateSimulatorMessage';
|
||||
messages[Message_1.Message.LogDwellTime] = 'LogDwellTimeMessage';
|
||||
messages[Message_1.Message.FeatureDisabled] = 'FeatureDisabledMessage';
|
||||
messages[Message_1.Message.LogFailedMoneyTransaction] = 'LogFailedMoneyTransactionMessage';
|
||||
messages[Message_1.Message.UserReportInternal] = 'UserReportInternalMessage';
|
||||
messages[Message_1.Message.SetSimStatusInDatabase] = 'SetSimStatusInDatabaseMessage';
|
||||
messages[Message_1.Message.SetSimPresenceInDatabase] = 'SetSimPresenceInDatabaseMessage';
|
||||
messages[Message_1.Message.EconomyDataRequest] = 'EconomyDataRequestMessage';
|
||||
messages[Message_1.Message.EconomyData] = 'EconomyDataMessage';
|
||||
messages[Message_1.Message.AvatarPickerRequest] = 'AvatarPickerRequestMessage';
|
||||
messages[Message_1.Message.AvatarPickerRequestBackend] = 'AvatarPickerRequestBackendMessage';
|
||||
messages[Message_1.Message.AvatarPickerReply] = 'AvatarPickerReplyMessage';
|
||||
messages[Message_1.Message.PlacesQuery] = 'PlacesQueryMessage';
|
||||
messages[Message_1.Message.PlacesReply] = 'PlacesReplyMessage';
|
||||
messages[Message_1.Message.DirFindQuery] = 'DirFindQueryMessage';
|
||||
messages[Message_1.Message.DirFindQueryBackend] = 'DirFindQueryBackendMessage';
|
||||
messages[Message_1.Message.DirPlacesQuery] = 'DirPlacesQueryMessage';
|
||||
messages[Message_1.Message.DirPlacesQueryBackend] = 'DirPlacesQueryBackendMessage';
|
||||
messages[Message_1.Message.DirPlacesReply] = 'DirPlacesReplyMessage';
|
||||
messages[Message_1.Message.DirPeopleReply] = 'DirPeopleReplyMessage';
|
||||
messages[Message_1.Message.DirEventsReply] = 'DirEventsReplyMessage';
|
||||
messages[Message_1.Message.DirGroupsReply] = 'DirGroupsReplyMessage';
|
||||
messages[Message_1.Message.DirClassifiedQuery] = 'DirClassifiedQueryMessage';
|
||||
messages[Message_1.Message.DirClassifiedQueryBackend] = 'DirClassifiedQueryBackendMessage';
|
||||
messages[Message_1.Message.DirClassifiedReply] = 'DirClassifiedReplyMessage';
|
||||
messages[Message_1.Message.AvatarClassifiedReply] = 'AvatarClassifiedReplyMessage';
|
||||
messages[Message_1.Message.ClassifiedInfoRequest] = 'ClassifiedInfoRequestMessage';
|
||||
messages[Message_1.Message.ClassifiedInfoReply] = 'ClassifiedInfoReplyMessage';
|
||||
messages[Message_1.Message.ClassifiedInfoUpdate] = 'ClassifiedInfoUpdateMessage';
|
||||
messages[Message_1.Message.ClassifiedDelete] = 'ClassifiedDeleteMessage';
|
||||
messages[Message_1.Message.ClassifiedGodDelete] = 'ClassifiedGodDeleteMessage';
|
||||
messages[Message_1.Message.DirLandQuery] = 'DirLandQueryMessage';
|
||||
messages[Message_1.Message.DirLandQueryBackend] = 'DirLandQueryBackendMessage';
|
||||
messages[Message_1.Message.DirLandReply] = 'DirLandReplyMessage';
|
||||
messages[Message_1.Message.DirPopularQuery] = 'DirPopularQueryMessage';
|
||||
messages[Message_1.Message.DirPopularQueryBackend] = 'DirPopularQueryBackendMessage';
|
||||
messages[Message_1.Message.DirPopularReply] = 'DirPopularReplyMessage';
|
||||
messages[Message_1.Message.ParcelInfoRequest] = 'ParcelInfoRequestMessage';
|
||||
messages[Message_1.Message.ParcelInfoReply] = 'ParcelInfoReplyMessage';
|
||||
messages[Message_1.Message.ParcelObjectOwnersRequest] = 'ParcelObjectOwnersRequestMessage';
|
||||
messages[Message_1.Message.ParcelObjectOwnersReply] = 'ParcelObjectOwnersReplyMessage';
|
||||
messages[Message_1.Message.GroupNoticesListRequest] = 'GroupNoticesListRequestMessage';
|
||||
messages[Message_1.Message.GroupNoticesListReply] = 'GroupNoticesListReplyMessage';
|
||||
messages[Message_1.Message.GroupNoticeRequest] = 'GroupNoticeRequestMessage';
|
||||
messages[Message_1.Message.GroupNoticeAdd] = 'GroupNoticeAddMessage';
|
||||
messages[Message_1.Message.TeleportRequest] = 'TeleportRequestMessage';
|
||||
messages[Message_1.Message.TeleportLocationRequest] = 'TeleportLocationRequestMessage';
|
||||
messages[Message_1.Message.TeleportLocal] = 'TeleportLocalMessage';
|
||||
messages[Message_1.Message.TeleportLandmarkRequest] = 'TeleportLandmarkRequestMessage';
|
||||
messages[Message_1.Message.TeleportProgress] = 'TeleportProgressMessage';
|
||||
messages[Message_1.Message.DataHomeLocationRequest] = 'DataHomeLocationRequestMessage';
|
||||
messages[Message_1.Message.DataHomeLocationReply] = 'DataHomeLocationReplyMessage';
|
||||
messages[Message_1.Message.TeleportFinish] = 'TeleportFinishMessage';
|
||||
messages[Message_1.Message.StartLure] = 'StartLureMessage';
|
||||
messages[Message_1.Message.TeleportLureRequest] = 'TeleportLureRequestMessage';
|
||||
messages[Message_1.Message.TeleportCancel] = 'TeleportCancelMessage';
|
||||
messages[Message_1.Message.TeleportStart] = 'TeleportStartMessage';
|
||||
messages[Message_1.Message.TeleportFailed] = 'TeleportFailedMessage';
|
||||
messages[Message_1.Message.Undo] = 'UndoMessage';
|
||||
messages[Message_1.Message.Redo] = 'RedoMessage';
|
||||
messages[Message_1.Message.UndoLand] = 'UndoLandMessage';
|
||||
messages[Message_1.Message.AgentPause] = 'AgentPauseMessage';
|
||||
messages[Message_1.Message.AgentResume] = 'AgentResumeMessage';
|
||||
messages[Message_1.Message.AgentUpdate] = 'AgentUpdateMessage';
|
||||
messages[Message_1.Message.ChatFromViewer] = 'ChatFromViewerMessage';
|
||||
messages[Message_1.Message.AgentThrottle] = 'AgentThrottleMessage';
|
||||
messages[Message_1.Message.AgentFOV] = 'AgentFOVMessage';
|
||||
messages[Message_1.Message.AgentHeightWidth] = 'AgentHeightWidthMessage';
|
||||
messages[Message_1.Message.AgentSetAppearance] = 'AgentSetAppearanceMessage';
|
||||
messages[Message_1.Message.AgentAnimation] = 'AgentAnimationMessage';
|
||||
messages[Message_1.Message.AgentRequestSit] = 'AgentRequestSitMessage';
|
||||
messages[Message_1.Message.AgentSit] = 'AgentSitMessage';
|
||||
messages[Message_1.Message.AgentQuitCopy] = 'AgentQuitCopyMessage';
|
||||
messages[Message_1.Message.RequestImage] = 'RequestImageMessage';
|
||||
messages[Message_1.Message.ImageNotInDatabase] = 'ImageNotInDatabaseMessage';
|
||||
messages[Message_1.Message.RebakeAvatarTextures] = 'RebakeAvatarTexturesMessage';
|
||||
messages[Message_1.Message.SetAlwaysRun] = 'SetAlwaysRunMessage';
|
||||
messages[Message_1.Message.ObjectAdd] = 'ObjectAddMessage';
|
||||
messages[Message_1.Message.ObjectDelete] = 'ObjectDeleteMessage';
|
||||
messages[Message_1.Message.ObjectDuplicate] = 'ObjectDuplicateMessage';
|
||||
messages[Message_1.Message.ObjectDuplicateOnRay] = 'ObjectDuplicateOnRayMessage';
|
||||
messages[Message_1.Message.MultipleObjectUpdate] = 'MultipleObjectUpdateMessage';
|
||||
messages[Message_1.Message.RequestMultipleObjects] = 'RequestMultipleObjectsMessage';
|
||||
messages[Message_1.Message.ObjectPosition] = 'ObjectPositionMessage';
|
||||
messages[Message_1.Message.ObjectScale] = 'ObjectScaleMessage';
|
||||
messages[Message_1.Message.ObjectRotation] = 'ObjectRotationMessage';
|
||||
messages[Message_1.Message.ObjectFlagUpdate] = 'ObjectFlagUpdateMessage';
|
||||
messages[Message_1.Message.ObjectClickAction] = 'ObjectClickActionMessage';
|
||||
messages[Message_1.Message.ObjectImage] = 'ObjectImageMessage';
|
||||
messages[Message_1.Message.ObjectMaterial] = 'ObjectMaterialMessage';
|
||||
messages[Message_1.Message.ObjectShape] = 'ObjectShapeMessage';
|
||||
messages[Message_1.Message.ObjectExtraParams] = 'ObjectExtraParamsMessage';
|
||||
messages[Message_1.Message.ObjectOwner] = 'ObjectOwnerMessage';
|
||||
messages[Message_1.Message.ObjectGroup] = 'ObjectGroupMessage';
|
||||
messages[Message_1.Message.ObjectBuy] = 'ObjectBuyMessage';
|
||||
messages[Message_1.Message.BuyObjectInventory] = 'BuyObjectInventoryMessage';
|
||||
messages[Message_1.Message.DerezContainer] = 'DerezContainerMessage';
|
||||
messages[Message_1.Message.ObjectPermissions] = 'ObjectPermissionsMessage';
|
||||
messages[Message_1.Message.ObjectSaleInfo] = 'ObjectSaleInfoMessage';
|
||||
messages[Message_1.Message.ObjectName] = 'ObjectNameMessage';
|
||||
messages[Message_1.Message.ObjectDescription] = 'ObjectDescriptionMessage';
|
||||
messages[Message_1.Message.ObjectCategory] = 'ObjectCategoryMessage';
|
||||
messages[Message_1.Message.ObjectSelect] = 'ObjectSelectMessage';
|
||||
messages[Message_1.Message.ObjectDeselect] = 'ObjectDeselectMessage';
|
||||
messages[Message_1.Message.ObjectAttach] = 'ObjectAttachMessage';
|
||||
messages[Message_1.Message.ObjectDetach] = 'ObjectDetachMessage';
|
||||
messages[Message_1.Message.ObjectDrop] = 'ObjectDropMessage';
|
||||
messages[Message_1.Message.ObjectLink] = 'ObjectLinkMessage';
|
||||
messages[Message_1.Message.ObjectDelink] = 'ObjectDelinkMessage';
|
||||
messages[Message_1.Message.ObjectGrab] = 'ObjectGrabMessage';
|
||||
messages[Message_1.Message.ObjectGrabUpdate] = 'ObjectGrabUpdateMessage';
|
||||
messages[Message_1.Message.ObjectDeGrab] = 'ObjectDeGrabMessage';
|
||||
messages[Message_1.Message.ObjectSpinStart] = 'ObjectSpinStartMessage';
|
||||
messages[Message_1.Message.ObjectSpinUpdate] = 'ObjectSpinUpdateMessage';
|
||||
messages[Message_1.Message.ObjectSpinStop] = 'ObjectSpinStopMessage';
|
||||
messages[Message_1.Message.ObjectExportSelected] = 'ObjectExportSelectedMessage';
|
||||
messages[Message_1.Message.ModifyLand] = 'ModifyLandMessage';
|
||||
messages[Message_1.Message.VelocityInterpolateOn] = 'VelocityInterpolateOnMessage';
|
||||
messages[Message_1.Message.VelocityInterpolateOff] = 'VelocityInterpolateOffMessage';
|
||||
messages[Message_1.Message.StateSave] = 'StateSaveMessage';
|
||||
messages[Message_1.Message.ReportAutosaveCrash] = 'ReportAutosaveCrashMessage';
|
||||
messages[Message_1.Message.SimWideDeletes] = 'SimWideDeletesMessage';
|
||||
messages[Message_1.Message.RequestObjectPropertiesFamily] = 'RequestObjectPropertiesFamilyMessage';
|
||||
messages[Message_1.Message.TrackAgent] = 'TrackAgentMessage';
|
||||
messages[Message_1.Message.ViewerStats] = 'ViewerStatsMessage';
|
||||
messages[Message_1.Message.ScriptAnswerYes] = 'ScriptAnswerYesMessage';
|
||||
messages[Message_1.Message.UserReport] = 'UserReportMessage';
|
||||
messages[Message_1.Message.AlertMessage] = 'AlertMessageMessage';
|
||||
messages[Message_1.Message.AgentAlertMessage] = 'AgentAlertMessageMessage';
|
||||
messages[Message_1.Message.MeanCollisionAlert] = 'MeanCollisionAlertMessage';
|
||||
messages[Message_1.Message.ViewerFrozenMessage] = 'ViewerFrozenMessageMessage';
|
||||
messages[Message_1.Message.HealthMessage] = 'HealthMessageMessage';
|
||||
messages[Message_1.Message.ChatFromSimulator] = 'ChatFromSimulatorMessage';
|
||||
messages[Message_1.Message.SimStats] = 'SimStatsMessage';
|
||||
messages[Message_1.Message.RequestRegionInfo] = 'RequestRegionInfoMessage';
|
||||
messages[Message_1.Message.RegionInfo] = 'RegionInfoMessage';
|
||||
messages[Message_1.Message.GodUpdateRegionInfo] = 'GodUpdateRegionInfoMessage';
|
||||
messages[Message_1.Message.NearestLandingRegionRequest] = 'NearestLandingRegionRequestMessage';
|
||||
messages[Message_1.Message.NearestLandingRegionReply] = 'NearestLandingRegionReplyMessage';
|
||||
messages[Message_1.Message.NearestLandingRegionUpdated] = 'NearestLandingRegionUpdatedMessage';
|
||||
messages[Message_1.Message.TeleportLandingStatusChanged] = 'TeleportLandingStatusChangedMessage';
|
||||
messages[Message_1.Message.RegionHandshake] = 'RegionHandshakeMessage';
|
||||
messages[Message_1.Message.RegionHandshakeReply] = 'RegionHandshakeReplyMessage';
|
||||
messages[Message_1.Message.CoarseLocationUpdate] = 'CoarseLocationUpdateMessage';
|
||||
messages[Message_1.Message.ImageData] = 'ImageDataMessage';
|
||||
messages[Message_1.Message.ImagePacket] = 'ImagePacketMessage';
|
||||
messages[Message_1.Message.LayerData] = 'LayerDataMessage';
|
||||
messages[Message_1.Message.ObjectUpdate] = 'ObjectUpdateMessage';
|
||||
messages[Message_1.Message.ObjectUpdateCompressed] = 'ObjectUpdateCompressedMessage';
|
||||
messages[Message_1.Message.ObjectUpdateCached] = 'ObjectUpdateCachedMessage';
|
||||
messages[Message_1.Message.ImprovedTerseObjectUpdate] = 'ImprovedTerseObjectUpdateMessage';
|
||||
messages[Message_1.Message.KillObject] = 'KillObjectMessage';
|
||||
messages[Message_1.Message.CrossedRegion] = 'CrossedRegionMessage';
|
||||
messages[Message_1.Message.SimulatorViewerTimeMessage] = 'SimulatorViewerTimeMessageMessage';
|
||||
messages[Message_1.Message.EnableSimulator] = 'EnableSimulatorMessage';
|
||||
messages[Message_1.Message.DisableSimulator] = 'DisableSimulatorMessage';
|
||||
messages[Message_1.Message.ConfirmEnableSimulator] = 'ConfirmEnableSimulatorMessage';
|
||||
messages[Message_1.Message.TransferRequest] = 'TransferRequestMessage';
|
||||
messages[Message_1.Message.TransferInfo] = 'TransferInfoMessage';
|
||||
messages[Message_1.Message.TransferPacket] = 'TransferPacketMessage';
|
||||
messages[Message_1.Message.TransferAbort] = 'TransferAbortMessage';
|
||||
messages[Message_1.Message.RequestXfer] = 'RequestXferMessage';
|
||||
messages[Message_1.Message.SendXferPacket] = 'SendXferPacketMessage';
|
||||
messages[Message_1.Message.ConfirmXferPacket] = 'ConfirmXferPacketMessage';
|
||||
messages[Message_1.Message.AbortXfer] = 'AbortXferMessage';
|
||||
messages[Message_1.Message.AvatarAnimation] = 'AvatarAnimationMessage';
|
||||
messages[Message_1.Message.AvatarAppearance] = 'AvatarAppearanceMessage';
|
||||
messages[Message_1.Message.AvatarSitResponse] = 'AvatarSitResponseMessage';
|
||||
messages[Message_1.Message.SetFollowCamProperties] = 'SetFollowCamPropertiesMessage';
|
||||
messages[Message_1.Message.ClearFollowCamProperties] = 'ClearFollowCamPropertiesMessage';
|
||||
messages[Message_1.Message.CameraConstraint] = 'CameraConstraintMessage';
|
||||
messages[Message_1.Message.ObjectProperties] = 'ObjectPropertiesMessage';
|
||||
messages[Message_1.Message.ObjectPropertiesFamily] = 'ObjectPropertiesFamilyMessage';
|
||||
messages[Message_1.Message.RequestPayPrice] = 'RequestPayPriceMessage';
|
||||
messages[Message_1.Message.PayPriceReply] = 'PayPriceReplyMessage';
|
||||
messages[Message_1.Message.KickUser] = 'KickUserMessage';
|
||||
messages[Message_1.Message.KickUserAck] = 'KickUserAckMessage';
|
||||
messages[Message_1.Message.GodKickUser] = 'GodKickUserMessage';
|
||||
messages[Message_1.Message.SystemKickUser] = 'SystemKickUserMessage';
|
||||
messages[Message_1.Message.EjectUser] = 'EjectUserMessage';
|
||||
messages[Message_1.Message.FreezeUser] = 'FreezeUserMessage';
|
||||
messages[Message_1.Message.AvatarPropertiesRequest] = 'AvatarPropertiesRequestMessage';
|
||||
messages[Message_1.Message.AvatarPropertiesRequestBackend] = 'AvatarPropertiesRequestBackendMessage';
|
||||
messages[Message_1.Message.AvatarPropertiesReply] = 'AvatarPropertiesReplyMessage';
|
||||
messages[Message_1.Message.AvatarInterestsReply] = 'AvatarInterestsReplyMessage';
|
||||
messages[Message_1.Message.AvatarGroupsReply] = 'AvatarGroupsReplyMessage';
|
||||
messages[Message_1.Message.AvatarPropertiesUpdate] = 'AvatarPropertiesUpdateMessage';
|
||||
messages[Message_1.Message.AvatarInterestsUpdate] = 'AvatarInterestsUpdateMessage';
|
||||
messages[Message_1.Message.AvatarNotesReply] = 'AvatarNotesReplyMessage';
|
||||
messages[Message_1.Message.AvatarNotesUpdate] = 'AvatarNotesUpdateMessage';
|
||||
messages[Message_1.Message.AvatarPicksReply] = 'AvatarPicksReplyMessage';
|
||||
messages[Message_1.Message.EventInfoRequest] = 'EventInfoRequestMessage';
|
||||
messages[Message_1.Message.EventInfoReply] = 'EventInfoReplyMessage';
|
||||
messages[Message_1.Message.EventNotificationAddRequest] = 'EventNotificationAddRequestMessage';
|
||||
messages[Message_1.Message.EventNotificationRemoveRequest] = 'EventNotificationRemoveRequestMessage';
|
||||
messages[Message_1.Message.EventGodDelete] = 'EventGodDeleteMessage';
|
||||
messages[Message_1.Message.PickInfoReply] = 'PickInfoReplyMessage';
|
||||
messages[Message_1.Message.PickInfoUpdate] = 'PickInfoUpdateMessage';
|
||||
messages[Message_1.Message.PickDelete] = 'PickDeleteMessage';
|
||||
messages[Message_1.Message.PickGodDelete] = 'PickGodDeleteMessage';
|
||||
messages[Message_1.Message.ScriptQuestion] = 'ScriptQuestionMessage';
|
||||
messages[Message_1.Message.ScriptControlChange] = 'ScriptControlChangeMessage';
|
||||
messages[Message_1.Message.ScriptDialog] = 'ScriptDialogMessage';
|
||||
messages[Message_1.Message.ScriptDialogReply] = 'ScriptDialogReplyMessage';
|
||||
messages[Message_1.Message.ForceScriptControlRelease] = 'ForceScriptControlReleaseMessage';
|
||||
messages[Message_1.Message.RevokePermissions] = 'RevokePermissionsMessage';
|
||||
messages[Message_1.Message.LoadURL] = 'LoadURLMessage';
|
||||
messages[Message_1.Message.ScriptTeleportRequest] = 'ScriptTeleportRequestMessage';
|
||||
messages[Message_1.Message.ParcelOverlay] = 'ParcelOverlayMessage';
|
||||
messages[Message_1.Message.ParcelPropertiesRequest] = 'ParcelPropertiesRequestMessage';
|
||||
messages[Message_1.Message.ParcelPropertiesRequestByID] = 'ParcelPropertiesRequestByIDMessage';
|
||||
messages[Message_1.Message.ParcelProperties] = 'ParcelPropertiesMessage';
|
||||
messages[Message_1.Message.ParcelPropertiesUpdate] = 'ParcelPropertiesUpdateMessage';
|
||||
messages[Message_1.Message.ParcelReturnObjects] = 'ParcelReturnObjectsMessage';
|
||||
messages[Message_1.Message.ParcelSetOtherCleanTime] = 'ParcelSetOtherCleanTimeMessage';
|
||||
messages[Message_1.Message.ParcelDisableObjects] = 'ParcelDisableObjectsMessage';
|
||||
messages[Message_1.Message.ParcelSelectObjects] = 'ParcelSelectObjectsMessage';
|
||||
messages[Message_1.Message.EstateCovenantRequest] = 'EstateCovenantRequestMessage';
|
||||
messages[Message_1.Message.EstateCovenantReply] = 'EstateCovenantReplyMessage';
|
||||
messages[Message_1.Message.ForceObjectSelect] = 'ForceObjectSelectMessage';
|
||||
messages[Message_1.Message.ParcelBuyPass] = 'ParcelBuyPassMessage';
|
||||
messages[Message_1.Message.ParcelDeedToGroup] = 'ParcelDeedToGroupMessage';
|
||||
messages[Message_1.Message.ParcelReclaim] = 'ParcelReclaimMessage';
|
||||
messages[Message_1.Message.ParcelClaim] = 'ParcelClaimMessage';
|
||||
messages[Message_1.Message.ParcelJoin] = 'ParcelJoinMessage';
|
||||
messages[Message_1.Message.ParcelDivide] = 'ParcelDivideMessage';
|
||||
messages[Message_1.Message.ParcelRelease] = 'ParcelReleaseMessage';
|
||||
messages[Message_1.Message.ParcelBuy] = 'ParcelBuyMessage';
|
||||
messages[Message_1.Message.ParcelGodForceOwner] = 'ParcelGodForceOwnerMessage';
|
||||
messages[Message_1.Message.ParcelAccessListRequest] = 'ParcelAccessListRequestMessage';
|
||||
messages[Message_1.Message.ParcelAccessListReply] = 'ParcelAccessListReplyMessage';
|
||||
messages[Message_1.Message.ParcelAccessListUpdate] = 'ParcelAccessListUpdateMessage';
|
||||
messages[Message_1.Message.ParcelDwellRequest] = 'ParcelDwellRequestMessage';
|
||||
messages[Message_1.Message.ParcelDwellReply] = 'ParcelDwellReplyMessage';
|
||||
messages[Message_1.Message.RequestParcelTransfer] = 'RequestParcelTransferMessage';
|
||||
messages[Message_1.Message.UpdateParcel] = 'UpdateParcelMessage';
|
||||
messages[Message_1.Message.RemoveParcel] = 'RemoveParcelMessage';
|
||||
messages[Message_1.Message.MergeParcel] = 'MergeParcelMessage';
|
||||
messages[Message_1.Message.LogParcelChanges] = 'LogParcelChangesMessage';
|
||||
messages[Message_1.Message.CheckParcelSales] = 'CheckParcelSalesMessage';
|
||||
messages[Message_1.Message.ParcelSales] = 'ParcelSalesMessage';
|
||||
messages[Message_1.Message.ParcelGodMarkAsContent] = 'ParcelGodMarkAsContentMessage';
|
||||
messages[Message_1.Message.ViewerStartAuction] = 'ViewerStartAuctionMessage';
|
||||
messages[Message_1.Message.StartAuction] = 'StartAuctionMessage';
|
||||
messages[Message_1.Message.ConfirmAuctionStart] = 'ConfirmAuctionStartMessage';
|
||||
messages[Message_1.Message.CompleteAuction] = 'CompleteAuctionMessage';
|
||||
messages[Message_1.Message.CancelAuction] = 'CancelAuctionMessage';
|
||||
messages[Message_1.Message.CheckParcelAuctions] = 'CheckParcelAuctionsMessage';
|
||||
messages[Message_1.Message.ParcelAuctions] = 'ParcelAuctionsMessage';
|
||||
messages[Message_1.Message.UUIDNameRequest] = 'UUIDNameRequestMessage';
|
||||
messages[Message_1.Message.UUIDNameReply] = 'UUIDNameReplyMessage';
|
||||
messages[Message_1.Message.UUIDGroupNameRequest] = 'UUIDGroupNameRequestMessage';
|
||||
messages[Message_1.Message.UUIDGroupNameReply] = 'UUIDGroupNameReplyMessage';
|
||||
messages[Message_1.Message.ChatPass] = 'ChatPassMessage';
|
||||
messages[Message_1.Message.EdgeDataPacket] = 'EdgeDataPacketMessage';
|
||||
messages[Message_1.Message.SimStatus] = 'SimStatusMessage';
|
||||
messages[Message_1.Message.ChildAgentUpdate] = 'ChildAgentUpdateMessage';
|
||||
messages[Message_1.Message.ChildAgentAlive] = 'ChildAgentAliveMessage';
|
||||
messages[Message_1.Message.ChildAgentPositionUpdate] = 'ChildAgentPositionUpdateMessage';
|
||||
messages[Message_1.Message.ChildAgentDying] = 'ChildAgentDyingMessage';
|
||||
messages[Message_1.Message.ChildAgentUnknown] = 'ChildAgentUnknownMessage';
|
||||
messages[Message_1.Message.AtomicPassObject] = 'AtomicPassObjectMessage';
|
||||
messages[Message_1.Message.KillChildAgents] = 'KillChildAgentsMessage';
|
||||
messages[Message_1.Message.GetScriptRunning] = 'GetScriptRunningMessage';
|
||||
messages[Message_1.Message.ScriptRunningReply] = 'ScriptRunningReplyMessage';
|
||||
messages[Message_1.Message.SetScriptRunning] = 'SetScriptRunningMessage';
|
||||
messages[Message_1.Message.ScriptReset] = 'ScriptResetMessage';
|
||||
messages[Message_1.Message.ScriptSensorRequest] = 'ScriptSensorRequestMessage';
|
||||
messages[Message_1.Message.ScriptSensorReply] = 'ScriptSensorReplyMessage';
|
||||
messages[Message_1.Message.CompleteAgentMovement] = 'CompleteAgentMovementMessage';
|
||||
messages[Message_1.Message.AgentMovementComplete] = 'AgentMovementCompleteMessage';
|
||||
messages[Message_1.Message.DataServerLogout] = 'DataServerLogoutMessage';
|
||||
messages[Message_1.Message.LogoutRequest] = 'LogoutRequestMessage';
|
||||
messages[Message_1.Message.LogoutReply] = 'LogoutReplyMessage';
|
||||
messages[Message_1.Message.ImprovedInstantMessage] = 'ImprovedInstantMessageMessage';
|
||||
messages[Message_1.Message.RetrieveInstantMessages] = 'RetrieveInstantMessagesMessage';
|
||||
messages[Message_1.Message.FindAgent] = 'FindAgentMessage';
|
||||
messages[Message_1.Message.RequestGodlikePowers] = 'RequestGodlikePowersMessage';
|
||||
messages[Message_1.Message.GrantGodlikePowers] = 'GrantGodlikePowersMessage';
|
||||
messages[Message_1.Message.GodlikeMessage] = 'GodlikeMessageMessage';
|
||||
messages[Message_1.Message.EstateOwnerMessage] = 'EstateOwnerMessageMessage';
|
||||
messages[Message_1.Message.GenericMessage] = 'GenericMessageMessage';
|
||||
messages[Message_1.Message.MuteListRequest] = 'MuteListRequestMessage';
|
||||
messages[Message_1.Message.UpdateMuteListEntry] = 'UpdateMuteListEntryMessage';
|
||||
messages[Message_1.Message.RemoveMuteListEntry] = 'RemoveMuteListEntryMessage';
|
||||
messages[Message_1.Message.CopyInventoryFromNotecard] = 'CopyInventoryFromNotecardMessage';
|
||||
messages[Message_1.Message.UpdateInventoryItem] = 'UpdateInventoryItemMessage';
|
||||
messages[Message_1.Message.UpdateCreateInventoryItem] = 'UpdateCreateInventoryItemMessage';
|
||||
messages[Message_1.Message.MoveInventoryItem] = 'MoveInventoryItemMessage';
|
||||
messages[Message_1.Message.CopyInventoryItem] = 'CopyInventoryItemMessage';
|
||||
messages[Message_1.Message.RemoveInventoryItem] = 'RemoveInventoryItemMessage';
|
||||
messages[Message_1.Message.ChangeInventoryItemFlags] = 'ChangeInventoryItemFlagsMessage';
|
||||
messages[Message_1.Message.SaveAssetIntoInventory] = 'SaveAssetIntoInventoryMessage';
|
||||
messages[Message_1.Message.CreateInventoryFolder] = 'CreateInventoryFolderMessage';
|
||||
messages[Message_1.Message.UpdateInventoryFolder] = 'UpdateInventoryFolderMessage';
|
||||
messages[Message_1.Message.MoveInventoryFolder] = 'MoveInventoryFolderMessage';
|
||||
messages[Message_1.Message.RemoveInventoryFolder] = 'RemoveInventoryFolderMessage';
|
||||
messages[Message_1.Message.FetchInventoryDescendents] = 'FetchInventoryDescendentsMessage';
|
||||
messages[Message_1.Message.InventoryDescendents] = 'InventoryDescendentsMessage';
|
||||
messages[Message_1.Message.FetchInventory] = 'FetchInventoryMessage';
|
||||
messages[Message_1.Message.FetchInventoryReply] = 'FetchInventoryReplyMessage';
|
||||
messages[Message_1.Message.BulkUpdateInventory] = 'BulkUpdateInventoryMessage';
|
||||
messages[Message_1.Message.RequestInventoryAsset] = 'RequestInventoryAssetMessage';
|
||||
messages[Message_1.Message.InventoryAssetResponse] = 'InventoryAssetResponseMessage';
|
||||
messages[Message_1.Message.RemoveInventoryObjects] = 'RemoveInventoryObjectsMessage';
|
||||
messages[Message_1.Message.PurgeInventoryDescendents] = 'PurgeInventoryDescendentsMessage';
|
||||
messages[Message_1.Message.UpdateTaskInventory] = 'UpdateTaskInventoryMessage';
|
||||
messages[Message_1.Message.RemoveTaskInventory] = 'RemoveTaskInventoryMessage';
|
||||
messages[Message_1.Message.MoveTaskInventory] = 'MoveTaskInventoryMessage';
|
||||
messages[Message_1.Message.RequestTaskInventory] = 'RequestTaskInventoryMessage';
|
||||
messages[Message_1.Message.ReplyTaskInventory] = 'ReplyTaskInventoryMessage';
|
||||
messages[Message_1.Message.DeRezObject] = 'DeRezObjectMessage';
|
||||
messages[Message_1.Message.DeRezAck] = 'DeRezAckMessage';
|
||||
messages[Message_1.Message.RezObject] = 'RezObjectMessage';
|
||||
messages[Message_1.Message.RezObjectFromNotecard] = 'RezObjectFromNotecardMessage';
|
||||
messages[Message_1.Message.TransferInventory] = 'TransferInventoryMessage';
|
||||
messages[Message_1.Message.TransferInventoryAck] = 'TransferInventoryAckMessage';
|
||||
messages[Message_1.Message.AcceptFriendship] = 'AcceptFriendshipMessage';
|
||||
messages[Message_1.Message.DeclineFriendship] = 'DeclineFriendshipMessage';
|
||||
messages[Message_1.Message.FormFriendship] = 'FormFriendshipMessage';
|
||||
messages[Message_1.Message.TerminateFriendship] = 'TerminateFriendshipMessage';
|
||||
messages[Message_1.Message.OfferCallingCard] = 'OfferCallingCardMessage';
|
||||
messages[Message_1.Message.AcceptCallingCard] = 'AcceptCallingCardMessage';
|
||||
messages[Message_1.Message.DeclineCallingCard] = 'DeclineCallingCardMessage';
|
||||
messages[Message_1.Message.RezScript] = 'RezScriptMessage';
|
||||
messages[Message_1.Message.CreateInventoryItem] = 'CreateInventoryItemMessage';
|
||||
messages[Message_1.Message.CreateLandmarkForEvent] = 'CreateLandmarkForEventMessage';
|
||||
messages[Message_1.Message.EventLocationRequest] = 'EventLocationRequestMessage';
|
||||
messages[Message_1.Message.EventLocationReply] = 'EventLocationReplyMessage';
|
||||
messages[Message_1.Message.RegionHandleRequest] = 'RegionHandleRequestMessage';
|
||||
messages[Message_1.Message.RegionIDAndHandleReply] = 'RegionIDAndHandleReplyMessage';
|
||||
messages[Message_1.Message.MoneyTransferRequest] = 'MoneyTransferRequestMessage';
|
||||
messages[Message_1.Message.MoneyTransferBackend] = 'MoneyTransferBackendMessage';
|
||||
messages[Message_1.Message.MoneyBalanceRequest] = 'MoneyBalanceRequestMessage';
|
||||
messages[Message_1.Message.MoneyBalanceReply] = 'MoneyBalanceReplyMessage';
|
||||
messages[Message_1.Message.RoutedMoneyBalanceReply] = 'RoutedMoneyBalanceReplyMessage';
|
||||
messages[Message_1.Message.ActivateGestures] = 'ActivateGesturesMessage';
|
||||
messages[Message_1.Message.DeactivateGestures] = 'DeactivateGesturesMessage';
|
||||
messages[Message_1.Message.MuteListUpdate] = 'MuteListUpdateMessage';
|
||||
messages[Message_1.Message.UseCachedMuteList] = 'UseCachedMuteListMessage';
|
||||
messages[Message_1.Message.GrantUserRights] = 'GrantUserRightsMessage';
|
||||
messages[Message_1.Message.ChangeUserRights] = 'ChangeUserRightsMessage';
|
||||
messages[Message_1.Message.OnlineNotification] = 'OnlineNotificationMessage';
|
||||
messages[Message_1.Message.OfflineNotification] = 'OfflineNotificationMessage';
|
||||
messages[Message_1.Message.SetStartLocationRequest] = 'SetStartLocationRequestMessage';
|
||||
messages[Message_1.Message.SetStartLocation] = 'SetStartLocationMessage';
|
||||
messages[Message_1.Message.NetTest] = 'NetTestMessage';
|
||||
messages[Message_1.Message.SetCPURatio] = 'SetCPURatioMessage';
|
||||
messages[Message_1.Message.SimCrashed] = 'SimCrashedMessage';
|
||||
messages[Message_1.Message.NameValuePair] = 'NameValuePairMessage';
|
||||
messages[Message_1.Message.RemoveNameValuePair] = 'RemoveNameValuePairMessage';
|
||||
messages[Message_1.Message.UpdateAttachment] = 'UpdateAttachmentMessage';
|
||||
messages[Message_1.Message.RemoveAttachment] = 'RemoveAttachmentMessage';
|
||||
messages[Message_1.Message.SoundTrigger] = 'SoundTriggerMessage';
|
||||
messages[Message_1.Message.AttachedSound] = 'AttachedSoundMessage';
|
||||
messages[Message_1.Message.AttachedSoundGainChange] = 'AttachedSoundGainChangeMessage';
|
||||
messages[Message_1.Message.PreloadSound] = 'PreloadSoundMessage';
|
||||
messages[Message_1.Message.AssetUploadRequest] = 'AssetUploadRequestMessage';
|
||||
messages[Message_1.Message.AssetUploadComplete] = 'AssetUploadCompleteMessage';
|
||||
messages[Message_1.Message.EmailMessageRequest] = 'EmailMessageRequestMessage';
|
||||
messages[Message_1.Message.EmailMessageReply] = 'EmailMessageReplyMessage';
|
||||
messages[Message_1.Message.InternalScriptMail] = 'InternalScriptMailMessage';
|
||||
messages[Message_1.Message.ScriptDataRequest] = 'ScriptDataRequestMessage';
|
||||
messages[Message_1.Message.ScriptDataReply] = 'ScriptDataReplyMessage';
|
||||
messages[Message_1.Message.CreateGroupRequest] = 'CreateGroupRequestMessage';
|
||||
messages[Message_1.Message.CreateGroupReply] = 'CreateGroupReplyMessage';
|
||||
messages[Message_1.Message.UpdateGroupInfo] = 'UpdateGroupInfoMessage';
|
||||
messages[Message_1.Message.GroupRoleChanges] = 'GroupRoleChangesMessage';
|
||||
messages[Message_1.Message.JoinGroupRequest] = 'JoinGroupRequestMessage';
|
||||
messages[Message_1.Message.JoinGroupReply] = 'JoinGroupReplyMessage';
|
||||
messages[Message_1.Message.EjectGroupMemberRequest] = 'EjectGroupMemberRequestMessage';
|
||||
messages[Message_1.Message.EjectGroupMemberReply] = 'EjectGroupMemberReplyMessage';
|
||||
messages[Message_1.Message.LeaveGroupRequest] = 'LeaveGroupRequestMessage';
|
||||
messages[Message_1.Message.LeaveGroupReply] = 'LeaveGroupReplyMessage';
|
||||
messages[Message_1.Message.InviteGroupRequest] = 'InviteGroupRequestMessage';
|
||||
messages[Message_1.Message.InviteGroupResponse] = 'InviteGroupResponseMessage';
|
||||
messages[Message_1.Message.GroupProfileRequest] = 'GroupProfileRequestMessage';
|
||||
messages[Message_1.Message.GroupProfileReply] = 'GroupProfileReplyMessage';
|
||||
messages[Message_1.Message.GroupAccountSummaryRequest] = 'GroupAccountSummaryRequestMessage';
|
||||
messages[Message_1.Message.GroupAccountSummaryReply] = 'GroupAccountSummaryReplyMessage';
|
||||
messages[Message_1.Message.GroupAccountDetailsRequest] = 'GroupAccountDetailsRequestMessage';
|
||||
messages[Message_1.Message.GroupAccountDetailsReply] = 'GroupAccountDetailsReplyMessage';
|
||||
messages[Message_1.Message.GroupAccountTransactionsRequest] = 'GroupAccountTransactionsRequestMessage';
|
||||
messages[Message_1.Message.GroupAccountTransactionsReply] = 'GroupAccountTransactionsReplyMessage';
|
||||
messages[Message_1.Message.GroupActiveProposalsRequest] = 'GroupActiveProposalsRequestMessage';
|
||||
messages[Message_1.Message.GroupActiveProposalItemReply] = 'GroupActiveProposalItemReplyMessage';
|
||||
messages[Message_1.Message.GroupVoteHistoryRequest] = 'GroupVoteHistoryRequestMessage';
|
||||
messages[Message_1.Message.GroupVoteHistoryItemReply] = 'GroupVoteHistoryItemReplyMessage';
|
||||
messages[Message_1.Message.StartGroupProposal] = 'StartGroupProposalMessage';
|
||||
messages[Message_1.Message.GroupProposalBallot] = 'GroupProposalBallotMessage';
|
||||
messages[Message_1.Message.TallyVotes] = 'TallyVotesMessage';
|
||||
messages[Message_1.Message.GroupMembersRequest] = 'GroupMembersRequestMessage';
|
||||
messages[Message_1.Message.GroupMembersReply] = 'GroupMembersReplyMessage';
|
||||
messages[Message_1.Message.ActivateGroup] = 'ActivateGroupMessage';
|
||||
messages[Message_1.Message.SetGroupContribution] = 'SetGroupContributionMessage';
|
||||
messages[Message_1.Message.SetGroupAcceptNotices] = 'SetGroupAcceptNoticesMessage';
|
||||
messages[Message_1.Message.GroupRoleDataRequest] = 'GroupRoleDataRequestMessage';
|
||||
messages[Message_1.Message.GroupRoleDataReply] = 'GroupRoleDataReplyMessage';
|
||||
messages[Message_1.Message.GroupRoleMembersRequest] = 'GroupRoleMembersRequestMessage';
|
||||
messages[Message_1.Message.GroupRoleMembersReply] = 'GroupRoleMembersReplyMessage';
|
||||
messages[Message_1.Message.GroupTitlesRequest] = 'GroupTitlesRequestMessage';
|
||||
messages[Message_1.Message.GroupTitlesReply] = 'GroupTitlesReplyMessage';
|
||||
messages[Message_1.Message.GroupTitleUpdate] = 'GroupTitleUpdateMessage';
|
||||
messages[Message_1.Message.GroupRoleUpdate] = 'GroupRoleUpdateMessage';
|
||||
messages[Message_1.Message.LiveHelpGroupRequest] = 'LiveHelpGroupRequestMessage';
|
||||
messages[Message_1.Message.LiveHelpGroupReply] = 'LiveHelpGroupReplyMessage';
|
||||
messages[Message_1.Message.AgentWearablesRequest] = 'AgentWearablesRequestMessage';
|
||||
messages[Message_1.Message.AgentWearablesUpdate] = 'AgentWearablesUpdateMessage';
|
||||
messages[Message_1.Message.AgentIsNowWearing] = 'AgentIsNowWearingMessage';
|
||||
messages[Message_1.Message.AgentCachedTexture] = 'AgentCachedTextureMessage';
|
||||
messages[Message_1.Message.AgentCachedTextureResponse] = 'AgentCachedTextureResponseMessage';
|
||||
messages[Message_1.Message.AgentDataUpdateRequest] = 'AgentDataUpdateRequestMessage';
|
||||
messages[Message_1.Message.AgentDataUpdate] = 'AgentDataUpdateMessage';
|
||||
messages[Message_1.Message.GroupDataUpdate] = 'GroupDataUpdateMessage';
|
||||
messages[Message_1.Message.AgentGroupDataUpdate] = 'AgentGroupDataUpdateMessage';
|
||||
messages[Message_1.Message.AgentDropGroup] = 'AgentDropGroupMessage';
|
||||
messages[Message_1.Message.LogTextMessage] = 'LogTextMessageMessage';
|
||||
messages[Message_1.Message.ViewerEffect] = 'ViewerEffectMessage';
|
||||
messages[Message_1.Message.CreateTrustedCircuit] = 'CreateTrustedCircuitMessage';
|
||||
messages[Message_1.Message.DenyTrustedCircuit] = 'DenyTrustedCircuitMessage';
|
||||
messages[Message_1.Message.RequestTrustedCircuit] = 'RequestTrustedCircuitMessage';
|
||||
messages[Message_1.Message.RezSingleAttachmentFromInv] = 'RezSingleAttachmentFromInvMessage';
|
||||
messages[Message_1.Message.RezMultipleAttachmentsFromInv] = 'RezMultipleAttachmentsFromInvMessage';
|
||||
messages[Message_1.Message.DetachAttachmentIntoInv] = 'DetachAttachmentIntoInvMessage';
|
||||
messages[Message_1.Message.CreateNewOutfitAttachments] = 'CreateNewOutfitAttachmentsMessage';
|
||||
messages[Message_1.Message.UserInfoRequest] = 'UserInfoRequestMessage';
|
||||
messages[Message_1.Message.UserInfoReply] = 'UserInfoReplyMessage';
|
||||
messages[Message_1.Message.UpdateUserInfo] = 'UpdateUserInfoMessage';
|
||||
messages[Message_1.Message.ParcelRename] = 'ParcelRenameMessage';
|
||||
messages[Message_1.Message.InitiateDownload] = 'InitiateDownloadMessage';
|
||||
messages[Message_1.Message.SystemMessage] = 'SystemMessageMessage';
|
||||
messages[Message_1.Message.MapLayerRequest] = 'MapLayerRequestMessage';
|
||||
messages[Message_1.Message.MapLayerReply] = 'MapLayerReplyMessage';
|
||||
messages[Message_1.Message.MapBlockRequest] = 'MapBlockRequestMessage';
|
||||
messages[Message_1.Message.MapNameRequest] = 'MapNameRequestMessage';
|
||||
messages[Message_1.Message.MapBlockReply] = 'MapBlockReplyMessage';
|
||||
messages[Message_1.Message.MapItemRequest] = 'MapItemRequestMessage';
|
||||
messages[Message_1.Message.MapItemReply] = 'MapItemReplyMessage';
|
||||
messages[Message_1.Message.SendPostcard] = 'SendPostcardMessage';
|
||||
messages[Message_1.Message.RpcChannelRequest] = 'RpcChannelRequestMessage';
|
||||
messages[Message_1.Message.RpcChannelReply] = 'RpcChannelReplyMessage';
|
||||
messages[Message_1.Message.RpcScriptRequestInbound] = 'RpcScriptRequestInboundMessage';
|
||||
messages[Message_1.Message.RpcScriptRequestInboundForward] = 'RpcScriptRequestInboundForwardMessage';
|
||||
messages[Message_1.Message.RpcScriptReplyInbound] = 'RpcScriptReplyInboundMessage';
|
||||
messages[Message_1.Message.ScriptMailRegistration] = 'ScriptMailRegistrationMessage';
|
||||
messages[Message_1.Message.ParcelMediaCommandMessage] = 'ParcelMediaCommandMessageMessage';
|
||||
messages[Message_1.Message.ParcelMediaUpdate] = 'ParcelMediaUpdateMessage';
|
||||
messages[Message_1.Message.LandStatRequest] = 'LandStatRequestMessage';
|
||||
messages[Message_1.Message.LandStatReply] = 'LandStatReplyMessage';
|
||||
messages[Message_1.Message.Error] = 'ErrorMessage';
|
||||
messages[Message_1.Message.ObjectIncludeInSearch] = 'ObjectIncludeInSearchMessage';
|
||||
messages[Message_1.Message.RezRestoreToWorld] = 'RezRestoreToWorldMessage';
|
||||
messages[Message_1.Message.LinkInventoryItem] = 'LinkInventoryItemMessage';
|
||||
messages[Message_1.Message.RetrieveIMsExtended] = 'RetrieveIMsExtendedMessage';
|
||||
messages[Message_1.Message.JoinGroupRequestExtended] = 'JoinGroupRequestExtendedMessage';
|
||||
messages[Message_1.Message.CreateGroupRequestExtended] = 'CreateGroupRequestExtendedMessage';
|
||||
function nameFromID(id) {
|
||||
return messages[id];
|
||||
}
|
||||
exports.nameFromID = nameFromID;
|
||||
//# sourceMappingURL=MessageClasses.js.map
|
||||
1
dist/classes/MessageClasses.js.map
vendored
1
dist/classes/MessageClasses.js.map
vendored
File diff suppressed because one or more lines are too long
6
dist/classes/NameValue.d.ts
vendored
6
dist/classes/NameValue.d.ts
vendored
@@ -1,6 +0,0 @@
|
||||
export declare class NameValue {
|
||||
type: string;
|
||||
class: string;
|
||||
sendTo: string;
|
||||
value: string;
|
||||
}
|
||||
6
dist/classes/NameValue.js
vendored
6
dist/classes/NameValue.js
vendored
@@ -1,6 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
class NameValue {
|
||||
}
|
||||
exports.NameValue = NameValue;
|
||||
//# sourceMappingURL=NameValue.js.map
|
||||
1
dist/classes/NameValue.js.map
vendored
1
dist/classes/NameValue.js.map
vendored
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"NameValue.js","sourceRoot":"","sources":["../../lib/classes/NameValue.ts"],"names":[],"mappings":";;AAAA,MAAa,SAAS;CAMrB;AAND,8BAMC"}
|
||||
19
dist/classes/ObjectStoreFull.d.ts
vendored
19
dist/classes/ObjectStoreFull.d.ts
vendored
@@ -1,19 +0,0 @@
|
||||
import { Circuit } from './Circuit';
|
||||
import { ObjectUpdateMessage } from './messages/ObjectUpdate';
|
||||
import { ObjectUpdateCachedMessage } from './messages/ObjectUpdateCached';
|
||||
import { ObjectUpdateCompressedMessage } from './messages/ObjectUpdateCompressed';
|
||||
import { ImprovedTerseObjectUpdateMessage } from './messages/ImprovedTerseObjectUpdate';
|
||||
import { Agent } from './Agent';
|
||||
import { ClientEvents } from './ClientEvents';
|
||||
import { IObjectStore } from './interfaces/IObjectStore';
|
||||
import { BotOptionFlags } from '..';
|
||||
import { RBush3D } from 'rbush-3d/dist';
|
||||
import { ObjectStoreLite } from './ObjectStoreLite';
|
||||
export declare class ObjectStoreFull extends ObjectStoreLite implements IObjectStore {
|
||||
rtree?: RBush3D;
|
||||
constructor(circuit: Circuit, agent: Agent, clientEvents: ClientEvents, options: BotOptionFlags);
|
||||
protected objectUpdate(objectUpdate: ObjectUpdateMessage): void;
|
||||
protected objectUpdateCached(objectUpdateCached: ObjectUpdateCachedMessage): void;
|
||||
protected objectUpdateCompressed(objectUpdateCompressed: ObjectUpdateCompressedMessage): void;
|
||||
protected objectUpdateTerse(objectUpdateTerse: ImprovedTerseObjectUpdateMessage): void;
|
||||
}
|
||||
453
dist/classes/ObjectStoreFull.js
vendored
453
dist/classes/ObjectStoreFull.js
vendored
@@ -1,453 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const RequestMultipleObjects_1 = require("./messages/RequestMultipleObjects");
|
||||
const UUID_1 = require("./UUID");
|
||||
const Quaternion_1 = require("./Quaternion");
|
||||
const Vector3_1 = require("./Vector3");
|
||||
const Utils_1 = require("./Utils");
|
||||
const PCode_1 = require("../enums/PCode");
|
||||
const __1 = require("..");
|
||||
const dist_1 = require("rbush-3d/dist");
|
||||
const Vector4_1 = require("./Vector4");
|
||||
const TextureEntry_1 = require("./TextureEntry");
|
||||
const Color4_1 = require("./Color4");
|
||||
const ParticleSystem_1 = require("./ParticleSystem");
|
||||
const GameObject_1 = require("./GameObject");
|
||||
const ObjectStoreLite_1 = require("./ObjectStoreLite");
|
||||
class ObjectStoreFull extends ObjectStoreLite_1.ObjectStoreLite {
|
||||
constructor(circuit, agent, clientEvents, options) {
|
||||
super(circuit, agent, clientEvents, options);
|
||||
this.rtree = new dist_1.RBush3D();
|
||||
}
|
||||
objectUpdate(objectUpdate) {
|
||||
for (const objData of objectUpdate.ObjectData) {
|
||||
const localID = objData.ID;
|
||||
const parentID = objData.ParentID;
|
||||
let addToParentList = true;
|
||||
if (this.objects[localID]) {
|
||||
if (this.objects[localID].ParentID !== parentID && this.objectsByParent[parentID]) {
|
||||
const ind = this.objectsByParent[parentID].indexOf(localID);
|
||||
if (ind !== -1) {
|
||||
this.objectsByParent[parentID].splice(ind, 1);
|
||||
}
|
||||
}
|
||||
else {
|
||||
addToParentList = false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
this.objects[localID] = new GameObject_1.GameObject();
|
||||
}
|
||||
const obj = this.objects[localID];
|
||||
obj.ID = objData.ID;
|
||||
obj.State = objData.State;
|
||||
obj.FullID = objData.FullID;
|
||||
obj.CRC = objData.CRC;
|
||||
obj.PCode = objData.PCode;
|
||||
obj.Material = objData.Material;
|
||||
obj.ClickAction = objData.ClickAction;
|
||||
obj.Scale = objData.Scale;
|
||||
obj.ObjectData = objData.ObjectData;
|
||||
const data = objData.ObjectData;
|
||||
let dataPos = 0;
|
||||
switch (data.length) {
|
||||
case 76:
|
||||
obj.CollisionPlane = new Vector4_1.Vector4(objData.ObjectData, dataPos);
|
||||
dataPos += 16;
|
||||
case 60:
|
||||
obj.Position = new Vector3_1.Vector3(objData.ObjectData, dataPos);
|
||||
dataPos += 12;
|
||||
obj.Velocity = new Vector3_1.Vector3(objData.ObjectData, dataPos);
|
||||
dataPos += 12;
|
||||
obj.Acceleration = new Vector3_1.Vector3(objData.ObjectData, dataPos);
|
||||
dataPos += 12;
|
||||
obj.Rotation = new Quaternion_1.Quaternion(objData.ObjectData, dataPos);
|
||||
dataPos += 12;
|
||||
obj.AngularVelocity = new Vector3_1.Vector3(objData.ObjectData, dataPos);
|
||||
dataPos += 12;
|
||||
break;
|
||||
case 48:
|
||||
obj.CollisionPlane = new Vector4_1.Vector4(objData.ObjectData, dataPos);
|
||||
dataPos += 16;
|
||||
case 32:
|
||||
obj.Position = new Vector3_1.Vector3([
|
||||
Utils_1.Utils.UInt16ToFloat(objData.ObjectData.readUInt16LE(dataPos), -0.5 * 256.0, 1.5 * 256.0),
|
||||
Utils_1.Utils.UInt16ToFloat(objData.ObjectData.readUInt16LE(dataPos + 2), -0.5 * 256.0, 1.5 * 256.0),
|
||||
Utils_1.Utils.UInt16ToFloat(objData.ObjectData.readUInt16LE(dataPos + 4), -256.0, 3.0 * 256.0)
|
||||
]);
|
||||
dataPos += 6;
|
||||
obj.Velocity = new Vector3_1.Vector3([
|
||||
Utils_1.Utils.UInt16ToFloat(objData.ObjectData.readUInt16LE(dataPos), -256.0, 256.0),
|
||||
Utils_1.Utils.UInt16ToFloat(objData.ObjectData.readUInt16LE(dataPos + 2), -256.0, 256.0),
|
||||
Utils_1.Utils.UInt16ToFloat(objData.ObjectData.readUInt16LE(dataPos + 4), -256.0, 256.0)
|
||||
]);
|
||||
dataPos += 6;
|
||||
obj.Acceleration = new Vector3_1.Vector3([
|
||||
Utils_1.Utils.UInt16ToFloat(objData.ObjectData.readUInt16LE(dataPos), -256.0, 256.0),
|
||||
Utils_1.Utils.UInt16ToFloat(objData.ObjectData.readUInt16LE(dataPos + 2), -256.0, 256.0),
|
||||
Utils_1.Utils.UInt16ToFloat(objData.ObjectData.readUInt16LE(dataPos + 4), -256.0, 256.0)
|
||||
]);
|
||||
dataPos += 6;
|
||||
obj.Rotation = new Quaternion_1.Quaternion([
|
||||
Utils_1.Utils.UInt16ToFloat(objData.ObjectData.readUInt16LE(dataPos), -1.0, 1.0),
|
||||
Utils_1.Utils.UInt16ToFloat(objData.ObjectData.readUInt16LE(dataPos + 2), -1.0, 1.0),
|
||||
Utils_1.Utils.UInt16ToFloat(objData.ObjectData.readUInt16LE(dataPos + 4), -1.0, 1.0),
|
||||
Utils_1.Utils.UInt16ToFloat(objData.ObjectData.readUInt16LE(dataPos + 4), -1.0, 1.0)
|
||||
]);
|
||||
dataPos += 8;
|
||||
obj.AngularVelocity = new Vector3_1.Vector3([
|
||||
Utils_1.Utils.UInt16ToFloat(objData.ObjectData.readUInt16LE(dataPos), -256.0, 256.0),
|
||||
Utils_1.Utils.UInt16ToFloat(objData.ObjectData.readUInt16LE(dataPos + 2), -256.0, 256.0),
|
||||
Utils_1.Utils.UInt16ToFloat(objData.ObjectData.readUInt16LE(dataPos + 4), -256.0, 256.0)
|
||||
]);
|
||||
dataPos += 6;
|
||||
break;
|
||||
case 16:
|
||||
obj.Position = new Vector3_1.Vector3([
|
||||
Utils_1.Utils.ByteToFloat(objData.ObjectData.readUInt8(dataPos++), -256.0, 256.0),
|
||||
Utils_1.Utils.ByteToFloat(objData.ObjectData.readUInt8(dataPos++), -256.0, 256.0),
|
||||
Utils_1.Utils.ByteToFloat(objData.ObjectData.readUInt8(dataPos++), -256.0, 256.0)
|
||||
]);
|
||||
obj.Velocity = new Vector3_1.Vector3([
|
||||
Utils_1.Utils.ByteToFloat(objData.ObjectData.readUInt8(dataPos++), -256.0, 256.0),
|
||||
Utils_1.Utils.ByteToFloat(objData.ObjectData.readUInt8(dataPos++), -256.0, 256.0),
|
||||
Utils_1.Utils.ByteToFloat(objData.ObjectData.readUInt8(dataPos++), -256.0, 256.0)
|
||||
]);
|
||||
obj.Acceleration = new Vector3_1.Vector3([
|
||||
Utils_1.Utils.ByteToFloat(objData.ObjectData.readUInt8(dataPos++), -256.0, 256.0),
|
||||
Utils_1.Utils.ByteToFloat(objData.ObjectData.readUInt8(dataPos++), -256.0, 256.0),
|
||||
Utils_1.Utils.ByteToFloat(objData.ObjectData.readUInt8(dataPos++), -256.0, 256.0)
|
||||
]);
|
||||
obj.Rotation = new Quaternion_1.Quaternion([
|
||||
Utils_1.Utils.ByteToFloat(objData.ObjectData.readUInt8(dataPos++), -1.0, 1.0),
|
||||
Utils_1.Utils.ByteToFloat(objData.ObjectData.readUInt8(dataPos++), -1.0, 1.0),
|
||||
Utils_1.Utils.ByteToFloat(objData.ObjectData.readUInt8(dataPos++), -1.0, 1.0),
|
||||
Utils_1.Utils.ByteToFloat(objData.ObjectData.readUInt8(dataPos++), -1.0, 1.0)
|
||||
]);
|
||||
obj.AngularVelocity = new Vector3_1.Vector3([
|
||||
Utils_1.Utils.ByteToFloat(objData.ObjectData.readUInt8(dataPos++), -256.0, 256.0),
|
||||
Utils_1.Utils.ByteToFloat(objData.ObjectData.readUInt8(dataPos++), -256.0, 256.0),
|
||||
Utils_1.Utils.ByteToFloat(objData.ObjectData.readUInt8(dataPos++), -256.0, 256.0)
|
||||
]);
|
||||
break;
|
||||
}
|
||||
obj.ParentID = objData.ParentID;
|
||||
obj.Flags = objData.UpdateFlags;
|
||||
obj.PathCurve = objData.PathCurve;
|
||||
obj.ProfileCurve = objData.ProfileCurve;
|
||||
obj.PathBegin = objData.PathBegin;
|
||||
obj.PathEnd = objData.PathEnd;
|
||||
obj.PathScaleX = objData.PathScaleX;
|
||||
obj.PathScaleY = objData.PathScaleY;
|
||||
obj.PathShearX = objData.PathShearX;
|
||||
obj.PathShearY = objData.PathShearY;
|
||||
obj.PathTwist = objData.PathTwist;
|
||||
obj.PathTwistBegin = objData.PathTwistBegin;
|
||||
obj.PathRadiusOffset = objData.PathRadiusOffset;
|
||||
obj.PathTaperX = objData.PathTaperX;
|
||||
obj.PathTaperY = objData.PathTaperY;
|
||||
obj.PathRevolutions = objData.PathRevolutions;
|
||||
obj.PathSkew = objData.PathSkew;
|
||||
obj.ProfileBegin = objData.ProfileBegin;
|
||||
obj.ProfileEnd = objData.ProfileEnd;
|
||||
obj.ProfileHollow = objData.ProfileHollow;
|
||||
obj.TextureEntry = new TextureEntry_1.TextureEntry(objData.TextureEntry);
|
||||
obj.TextureAnim = objData.TextureAnim;
|
||||
const pcodeData = objData.Data;
|
||||
obj.Text = Utils_1.Utils.BufferToStringSimple(objData.Text);
|
||||
obj.TextColor = new Color4_1.Color4(objData.TextColor, 0, false, true);
|
||||
obj.MediaURL = Utils_1.Utils.BufferToStringSimple(objData.MediaURL);
|
||||
obj.PSBlock = objData.PSBlock;
|
||||
obj.Sound = objData.Sound;
|
||||
obj.OwnerID = objData.OwnerID;
|
||||
obj.SoundGain = objData.Gain;
|
||||
obj.SoundFlags = objData.Flags;
|
||||
obj.SoundRadius = objData.Radius;
|
||||
obj.JointType = objData.JointType;
|
||||
obj.JointPivot = objData.JointPivot;
|
||||
obj.JointAxisOrAnchor = objData.JointAxisOrAnchor;
|
||||
switch (obj.PCode) {
|
||||
case PCode_1.PCode.Grass:
|
||||
case PCode_1.PCode.Tree:
|
||||
case PCode_1.PCode.NewTree:
|
||||
if (pcodeData.length === 1) {
|
||||
obj.TreeSpecies = pcodeData[0];
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (this.objects[localID].PCode === PCode_1.PCode.Avatar && this.objects[localID].FullID.toString() === this.agent.agentID.toString()) {
|
||||
this.agent.localID = localID;
|
||||
if (this.options & __1.BotOptionFlags.StoreMyAttachmentsOnly) {
|
||||
Object.keys(this.objectsByParent).forEach((objParentID) => {
|
||||
const parent = parseInt(objParentID, 10);
|
||||
if (parent !== this.agent.localID) {
|
||||
let foundAvatars = false;
|
||||
this.objectsByParent[parent].forEach((objID) => {
|
||||
if (this.objects[objID]) {
|
||||
const o = this.objects[objID];
|
||||
if (o.PCode === PCode_1.PCode.Avatar) {
|
||||
foundAvatars = true;
|
||||
}
|
||||
}
|
||||
});
|
||||
if (this.objects[parent]) {
|
||||
const o = this.objects[parent];
|
||||
if (o.PCode === PCode_1.PCode.Avatar) {
|
||||
foundAvatars = true;
|
||||
}
|
||||
}
|
||||
if (!foundAvatars) {
|
||||
this.deleteObject(parent);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
this.readExtraParams(objData.ExtraParams, 0, this.objects[localID]);
|
||||
this.objects[localID].NameValue = this.parseNameValues(Utils_1.Utils.BufferToStringSimple(objData.NameValue));
|
||||
this.objectsByUUID[objData.FullID.toString()] = localID;
|
||||
if (!this.objectsByParent[parentID]) {
|
||||
this.objectsByParent[parentID] = [];
|
||||
}
|
||||
if (addToParentList) {
|
||||
this.objectsByParent[parentID].push(localID);
|
||||
}
|
||||
if (objData.PCode !== PCode_1.PCode.Avatar && this.options & __1.BotOptionFlags.StoreMyAttachmentsOnly && (this.agent.localID !== 0 && obj.ParentID !== this.agent.localID)) {
|
||||
this.deleteObject(localID);
|
||||
}
|
||||
else {
|
||||
this.insertIntoRtree(obj);
|
||||
}
|
||||
}
|
||||
}
|
||||
objectUpdateCached(objectUpdateCached) {
|
||||
const rmo = new RequestMultipleObjects_1.RequestMultipleObjectsMessage();
|
||||
rmo.AgentData = {
|
||||
AgentID: this.agent.agentID,
|
||||
SessionID: this.circuit.sessionID
|
||||
};
|
||||
rmo.ObjectData = [];
|
||||
for (const obj of objectUpdateCached.ObjectData) {
|
||||
if (!this.objects[obj.ID]) {
|
||||
rmo.ObjectData.push({
|
||||
CacheMissType: 0,
|
||||
ID: obj.ID
|
||||
});
|
||||
}
|
||||
}
|
||||
if (rmo.ObjectData.length > 0) {
|
||||
this.circuit.sendMessage(rmo, 0);
|
||||
}
|
||||
}
|
||||
objectUpdateCompressed(objectUpdateCompressed) {
|
||||
for (const obj of objectUpdateCompressed.ObjectData) {
|
||||
const flags = obj.UpdateFlags;
|
||||
const buf = obj.Data;
|
||||
let pos = 0;
|
||||
const fullID = new UUID_1.UUID(buf, pos);
|
||||
pos += 16;
|
||||
const localID = buf.readUInt32LE(pos);
|
||||
pos += 4;
|
||||
const pcode = buf.readUInt8(pos++);
|
||||
let newObj = false;
|
||||
if (!this.objects[localID]) {
|
||||
newObj = true;
|
||||
this.objects[localID] = new GameObject_1.GameObject();
|
||||
}
|
||||
const o = this.objects[localID];
|
||||
o.ID = localID;
|
||||
this.objectsByUUID[fullID.toString()] = localID;
|
||||
o.FullID = fullID;
|
||||
o.Flags = flags;
|
||||
o.PCode = pcode;
|
||||
o.State = buf.readUInt8(pos++);
|
||||
o.CRC = buf.readUInt32LE(pos);
|
||||
pos = pos + 4;
|
||||
o.Material = buf.readUInt8(pos++);
|
||||
o.ClickAction = buf.readUInt8(pos++);
|
||||
o.Scale = new Vector3_1.Vector3(buf, pos, false);
|
||||
pos = pos + 12;
|
||||
o.Position = new Vector3_1.Vector3(buf, pos, false);
|
||||
pos = pos + 12;
|
||||
o.Rotation = new Quaternion_1.Quaternion(buf, pos);
|
||||
pos = pos + 12;
|
||||
const compressedflags = buf.readUInt32LE(pos);
|
||||
pos = pos + 4;
|
||||
o.OwnerID = new UUID_1.UUID(buf, pos);
|
||||
pos += 16;
|
||||
if (compressedflags & __1.CompressedFlags.HasAngularVelocity) {
|
||||
o.AngularVelocity = new Vector3_1.Vector3(buf, pos, false);
|
||||
pos = pos + 12;
|
||||
}
|
||||
if (compressedflags & __1.CompressedFlags.HasParent) {
|
||||
const newParentID = buf.readUInt32LE(pos);
|
||||
pos += 4;
|
||||
let add = true;
|
||||
if (!newObj) {
|
||||
if (newParentID !== o.ParentID) {
|
||||
const index = this.objectsByParent[o.ParentID].indexOf(localID);
|
||||
if (index !== -1) {
|
||||
this.objectsByParent[o.ParentID].splice(index, 1);
|
||||
}
|
||||
}
|
||||
else {
|
||||
add = false;
|
||||
}
|
||||
}
|
||||
if (add) {
|
||||
if (!this.objectsByParent[newParentID]) {
|
||||
this.objectsByParent[newParentID] = [];
|
||||
}
|
||||
this.objectsByParent[newParentID].push(localID);
|
||||
}
|
||||
o.ParentID = newParentID;
|
||||
}
|
||||
if (pcode !== PCode_1.PCode.Avatar && newObj && this.options & __1.BotOptionFlags.StoreMyAttachmentsOnly && (this.agent.localID !== 0 && o.ParentID !== this.agent.localID)) {
|
||||
this.deleteObject(localID);
|
||||
return;
|
||||
}
|
||||
else {
|
||||
if (compressedflags & __1.CompressedFlags.Tree) {
|
||||
o.TreeSpecies = buf.readUInt8(pos++);
|
||||
}
|
||||
else if (compressedflags & __1.CompressedFlags.ScratchPad) {
|
||||
o.TreeSpecies = 0;
|
||||
const scratchPadSize = buf.readUInt8(pos++);
|
||||
pos = pos + scratchPadSize;
|
||||
}
|
||||
if (compressedflags & __1.CompressedFlags.HasText) {
|
||||
const result = Utils_1.Utils.BufferToString(buf, pos);
|
||||
pos += result.readLength;
|
||||
o.Text = result.result;
|
||||
o.TextColor = new Color4_1.Color4(buf, pos, false, true);
|
||||
pos = pos + 4;
|
||||
}
|
||||
else {
|
||||
o.Text = '';
|
||||
}
|
||||
if (compressedflags & __1.CompressedFlags.MediaURL) {
|
||||
const result = Utils_1.Utils.BufferToString(buf, pos);
|
||||
pos += result.readLength;
|
||||
o.MediaURL = result.result;
|
||||
}
|
||||
if (compressedflags & __1.CompressedFlags.HasParticles) {
|
||||
o.Particles = new ParticleSystem_1.ParticleSystem(buf.slice(pos, pos + 86), 0);
|
||||
pos += 86;
|
||||
}
|
||||
pos = this.readExtraParams(buf, pos, o);
|
||||
if (compressedflags & __1.CompressedFlags.HasSound) {
|
||||
o.Sound = new UUID_1.UUID(buf, pos);
|
||||
pos = pos + 16;
|
||||
o.SoundGain = buf.readFloatLE(pos);
|
||||
pos += 4;
|
||||
o.SoundFlags = buf.readUInt8(pos++);
|
||||
o.SoundRadius = buf.readFloatLE(pos);
|
||||
pos = pos + 4;
|
||||
}
|
||||
if (compressedflags & __1.CompressedFlags.HasNameValues) {
|
||||
const result = Utils_1.Utils.BufferToString(buf, pos);
|
||||
o.NameValue = this.parseNameValues(result.result);
|
||||
pos += result.readLength;
|
||||
}
|
||||
o.PathCurve = buf.readUInt8(pos++);
|
||||
o.PathBegin = buf.readUInt16LE(pos);
|
||||
pos = pos + 2;
|
||||
o.PathEnd = buf.readUInt16LE(pos);
|
||||
pos = pos + 2;
|
||||
o.PathScaleX = buf.readUInt8(pos++);
|
||||
o.PathScaleY = buf.readUInt8(pos++);
|
||||
o.PathShearX = buf.readUInt8(pos++);
|
||||
o.PathShearY = buf.readUInt8(pos++);
|
||||
o.PathTwist = buf.readUInt8(pos++);
|
||||
o.PathTwistBegin = buf.readUInt8(pos++);
|
||||
o.PathRadiusOffset = buf.readUInt8(pos++);
|
||||
o.PathTaperX = buf.readUInt8(pos++);
|
||||
o.PathTaperY = buf.readUInt8(pos++);
|
||||
o.PathRevolutions = buf.readUInt8(pos++);
|
||||
o.PathSkew = buf.readUInt8(pos++);
|
||||
o.ProfileCurve = buf.readUInt8(pos++);
|
||||
o.ProfileBegin = buf.readUInt16LE(pos);
|
||||
pos = pos + 2;
|
||||
o.ProfileEnd = buf.readUInt16LE(pos);
|
||||
pos = pos + 2;
|
||||
o.ProfileHollow = buf.readUInt16LE(pos);
|
||||
pos = pos + 2;
|
||||
const textureEntryLength = buf.readUInt32LE(pos);
|
||||
pos = pos + 4;
|
||||
o.TextureEntry = new TextureEntry_1.TextureEntry(buf.slice(pos, pos + textureEntryLength));
|
||||
pos = pos + textureEntryLength;
|
||||
if (compressedflags & __1.CompressedFlags.TextureAnimation) {
|
||||
pos = pos + 4;
|
||||
}
|
||||
o.IsAttachment = (compressedflags & __1.CompressedFlags.HasNameValues) !== 0 && o.ParentID !== 0;
|
||||
this.insertIntoRtree(o);
|
||||
}
|
||||
}
|
||||
}
|
||||
objectUpdateTerse(objectUpdateTerse) {
|
||||
const dilation = objectUpdateTerse.RegionData.TimeDilation / 65535.0;
|
||||
for (let i = 0; i < objectUpdateTerse.ObjectData.length; i++) {
|
||||
const objectData = objectUpdateTerse.ObjectData[i];
|
||||
if (!(this.options & __1.BotOptionFlags.StoreMyAttachmentsOnly)) {
|
||||
let pos = 0;
|
||||
const localID = objectData.Data.readUInt32LE(pos);
|
||||
pos = pos + 4;
|
||||
if (this.objects[localID]) {
|
||||
this.objects[localID].State = objectData.Data.readUInt8(pos++);
|
||||
const avatar = (objectData.Data.readUInt8(pos++) !== 0);
|
||||
if (avatar) {
|
||||
this.objects[localID].CollisionPlane = new Vector4_1.Vector4(objectData.Data, pos);
|
||||
pos += 16;
|
||||
}
|
||||
this.objects[localID].Position = new Vector3_1.Vector3(objectData.Data, pos);
|
||||
pos += 12;
|
||||
this.objects[localID].Velocity = new Vector3_1.Vector3([
|
||||
Utils_1.Utils.UInt16ToFloat(objectData.Data.readUInt16LE(pos), -128.0, 128.0),
|
||||
Utils_1.Utils.UInt16ToFloat(objectData.Data.readUInt16LE(pos + 2), -128.0, 128.0),
|
||||
Utils_1.Utils.UInt16ToFloat(objectData.Data.readUInt16LE(pos + 4), -128.0, 128.0)
|
||||
]);
|
||||
pos += 6;
|
||||
this.objects[localID].Acceleration = new Vector3_1.Vector3([
|
||||
Utils_1.Utils.UInt16ToFloat(objectData.Data.readUInt16LE(pos), -64.0, 64.0),
|
||||
Utils_1.Utils.UInt16ToFloat(objectData.Data.readUInt16LE(pos + 2), -64.0, 64.0),
|
||||
Utils_1.Utils.UInt16ToFloat(objectData.Data.readUInt16LE(pos + 4), -64.0, 64.0)
|
||||
]);
|
||||
pos += 6;
|
||||
this.objects[localID].Rotation = new Quaternion_1.Quaternion([
|
||||
Utils_1.Utils.UInt16ToFloat(objectData.Data.readUInt16LE(pos), -1.0, 1.0),
|
||||
Utils_1.Utils.UInt16ToFloat(objectData.Data.readUInt16LE(pos + 2), -1.0, 1.0),
|
||||
Utils_1.Utils.UInt16ToFloat(objectData.Data.readUInt16LE(pos + 4), -1.0, 1.0),
|
||||
Utils_1.Utils.UInt16ToFloat(objectData.Data.readUInt16LE(pos + 6), -1.0, 1.0)
|
||||
]);
|
||||
pos += 8;
|
||||
this.objects[localID].AngularVelocity = new Vector3_1.Vector3([
|
||||
Utils_1.Utils.UInt16ToFloat(objectData.Data.readUInt16LE(pos), -64.0, 64.0),
|
||||
Utils_1.Utils.UInt16ToFloat(objectData.Data.readUInt16LE(pos + 2), -64.0, 64.0),
|
||||
Utils_1.Utils.UInt16ToFloat(objectData.Data.readUInt16LE(pos + 4), -64.0, 64.0)
|
||||
]);
|
||||
pos += 6;
|
||||
if (objectData.TextureEntry.length > 0) {
|
||||
this.objects[localID].TextureEntry = new TextureEntry_1.TextureEntry(objectData.TextureEntry.slice(4));
|
||||
}
|
||||
this.insertIntoRtree(this.objects[localID]);
|
||||
}
|
||||
else {
|
||||
console.log('Received terse update for object ' + localID + ' which is not in the store, so requesting the object');
|
||||
const rmo = new RequestMultipleObjects_1.RequestMultipleObjectsMessage();
|
||||
rmo.AgentData = {
|
||||
AgentID: this.agent.agentID,
|
||||
SessionID: this.circuit.sessionID
|
||||
};
|
||||
rmo.ObjectData = [];
|
||||
rmo.ObjectData.push({
|
||||
CacheMissType: 0,
|
||||
ID: localID
|
||||
});
|
||||
this.circuit.sendMessage(rmo, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.ObjectStoreFull = ObjectStoreFull;
|
||||
//# sourceMappingURL=ObjectStoreFull.js.map
|
||||
1
dist/classes/ObjectStoreFull.js.map
vendored
1
dist/classes/ObjectStoreFull.js.map
vendored
File diff suppressed because one or more lines are too long
54
dist/classes/ObjectStoreLite.d.ts
vendored
54
dist/classes/ObjectStoreLite.d.ts
vendored
@@ -1,54 +0,0 @@
|
||||
/// <reference types="node" />
|
||||
import { Circuit } from './Circuit';
|
||||
import { ObjectUpdateMessage } from './messages/ObjectUpdate';
|
||||
import { ObjectUpdateCachedMessage } from './messages/ObjectUpdateCached';
|
||||
import { ObjectUpdateCompressedMessage } from './messages/ObjectUpdateCompressed';
|
||||
import { ImprovedTerseObjectUpdateMessage } from './messages/ImprovedTerseObjectUpdate';
|
||||
import { MultipleObjectUpdateMessage } from './messages/MultipleObjectUpdate';
|
||||
import { Agent } from './Agent';
|
||||
import { UUID } from './UUID';
|
||||
import { ClientEvents } from './ClientEvents';
|
||||
import { KillObjectMessage } from './messages/KillObject';
|
||||
import { IObjectStore } from './interfaces/IObjectStore';
|
||||
import { NameValue } from './NameValue';
|
||||
import { BotOptionFlags } from '..';
|
||||
import { GameObject } from './GameObject';
|
||||
import { RBush3D } from 'rbush-3d/dist';
|
||||
export declare class ObjectStoreLite implements IObjectStore {
|
||||
protected circuit: Circuit;
|
||||
protected agent: Agent;
|
||||
protected objects: {
|
||||
[key: number]: GameObject;
|
||||
};
|
||||
protected objectsByUUID: {
|
||||
[key: string]: number;
|
||||
};
|
||||
protected objectsByParent: {
|
||||
[key: number]: number[];
|
||||
};
|
||||
protected clientEvents: ClientEvents;
|
||||
protected options: BotOptionFlags;
|
||||
rtree?: RBush3D;
|
||||
constructor(circuit: Circuit, agent: Agent, clientEvents: ClientEvents, options: BotOptionFlags);
|
||||
protected objectUpdate(objectUpdate: ObjectUpdateMessage): void;
|
||||
protected objectUpdateCached(objectUpdateCached: ObjectUpdateCachedMessage): void;
|
||||
protected objectUpdateCompressed(objectUpdateCompressed: ObjectUpdateCompressedMessage): void;
|
||||
protected objectUpdateTerse(objectUpdateTerse: ImprovedTerseObjectUpdateMessage): void;
|
||||
protected objectUpdateMultiple(objectUpdateMultiple: MultipleObjectUpdateMessage): void;
|
||||
protected killObject(killObj: KillObjectMessage): void;
|
||||
deleteObject(objectID: number): void;
|
||||
readExtraParams(buf: Buffer, pos: number, o: GameObject): number;
|
||||
getObjectsByParent(parentID: number): GameObject[];
|
||||
parseNameValues(str: string): {
|
||||
[key: string]: NameValue;
|
||||
};
|
||||
shutdown(): void;
|
||||
protected findParent(go: GameObject): GameObject;
|
||||
private populateChildren;
|
||||
getAllObjects(): GameObject[];
|
||||
getNumberOfObjects(): number;
|
||||
getObjectsInArea(minX: number, maxX: number, minY: number, maxY: number, minZ: number, maxZ: number): GameObject[];
|
||||
getObjectByUUID(fullID: UUID | string): GameObject;
|
||||
getObjectByLocalID(localID: number): GameObject;
|
||||
insertIntoRtree(obj: GameObject): void;
|
||||
}
|
||||
478
dist/classes/ObjectStoreLite.js
vendored
478
dist/classes/ObjectStoreLite.js
vendored
@@ -1,478 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const Message_1 = require("../enums/Message");
|
||||
const RequestMultipleObjects_1 = require("./messages/RequestMultipleObjects");
|
||||
const UUID_1 = require("./UUID");
|
||||
const Utils_1 = require("./Utils");
|
||||
const PCode_1 = require("../enums/PCode");
|
||||
const NameValue_1 = require("./NameValue");
|
||||
const __1 = require("..");
|
||||
const GameObject_1 = require("./GameObject");
|
||||
class ObjectStoreLite {
|
||||
constructor(circuit, agent, clientEvents, options) {
|
||||
this.objects = {};
|
||||
this.objectsByUUID = {};
|
||||
this.objectsByParent = {};
|
||||
agent.localID = 0;
|
||||
this.options = options;
|
||||
this.clientEvents = clientEvents;
|
||||
this.circuit = circuit;
|
||||
this.agent = agent;
|
||||
this.circuit.subscribeToMessages([
|
||||
Message_1.Message.ObjectUpdate,
|
||||
Message_1.Message.ObjectUpdateCached,
|
||||
Message_1.Message.ObjectUpdateCompressed,
|
||||
Message_1.Message.ImprovedTerseObjectUpdate,
|
||||
Message_1.Message.MultipleObjectUpdate,
|
||||
Message_1.Message.KillObject
|
||||
], (packet) => {
|
||||
switch (packet.message.id) {
|
||||
case Message_1.Message.ObjectUpdate:
|
||||
const objectUpdate = packet.message;
|
||||
this.objectUpdate(objectUpdate);
|
||||
break;
|
||||
case Message_1.Message.ObjectUpdateCached:
|
||||
const objectUpdateCached = packet.message;
|
||||
this.objectUpdateCached(objectUpdateCached);
|
||||
break;
|
||||
case Message_1.Message.ObjectUpdateCompressed:
|
||||
{
|
||||
const objectUpdateCompressed = packet.message;
|
||||
this.objectUpdateCompressed(objectUpdateCompressed);
|
||||
break;
|
||||
}
|
||||
case Message_1.Message.ImprovedTerseObjectUpdate:
|
||||
const objectUpdateTerse = packet.message;
|
||||
this.objectUpdateTerse(objectUpdateTerse);
|
||||
break;
|
||||
case Message_1.Message.MultipleObjectUpdate:
|
||||
const multipleObjectUpdate = packet.message;
|
||||
this.objectUpdateMultiple(multipleObjectUpdate);
|
||||
break;
|
||||
case Message_1.Message.KillObject:
|
||||
const killObj = packet.message;
|
||||
this.killObject(killObj);
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
objectUpdate(objectUpdate) {
|
||||
objectUpdate.ObjectData.forEach((objData) => {
|
||||
const localID = objData.ID;
|
||||
const parentID = objData.ParentID;
|
||||
let addToParentList = true;
|
||||
if (this.objects[localID]) {
|
||||
if (this.objects[localID].ParentID !== parentID && this.objectsByParent[parentID]) {
|
||||
const ind = this.objectsByParent[parentID].indexOf(localID);
|
||||
if (ind !== -1) {
|
||||
this.objectsByParent[parentID].splice(ind, 1);
|
||||
}
|
||||
}
|
||||
else {
|
||||
addToParentList = false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
this.objects[localID] = new GameObject_1.GameObject();
|
||||
}
|
||||
const obj = this.objects[localID];
|
||||
obj.ID = objData.ID;
|
||||
obj.FullID = objData.FullID;
|
||||
obj.ParentID = objData.ParentID;
|
||||
obj.OwnerID = objData.OwnerID;
|
||||
obj.PCode = objData.PCode;
|
||||
this.objects[localID].NameValue = this.parseNameValues(Utils_1.Utils.BufferToStringSimple(objData.NameValue));
|
||||
if (objData.PCode === PCode_1.PCode.Avatar && this.objects[localID].FullID.toString() === this.agent.agentID.toString()) {
|
||||
this.agent.localID = localID;
|
||||
if (this.options & __1.BotOptionFlags.StoreMyAttachmentsOnly) {
|
||||
Object.keys(this.objectsByParent).forEach((objParentID) => {
|
||||
const parent = parseInt(objParentID, 10);
|
||||
if (parent !== this.agent.localID) {
|
||||
let foundAvatars = false;
|
||||
this.objectsByParent[parent].forEach((objID) => {
|
||||
if (this.objects[objID]) {
|
||||
const o = this.objects[objID];
|
||||
if (o.PCode === PCode_1.PCode.Avatar) {
|
||||
foundAvatars = true;
|
||||
}
|
||||
}
|
||||
});
|
||||
if (this.objects[parent]) {
|
||||
const o = this.objects[parent];
|
||||
if (o.PCode === PCode_1.PCode.Avatar) {
|
||||
foundAvatars = true;
|
||||
}
|
||||
}
|
||||
if (!foundAvatars) {
|
||||
this.deleteObject(parent);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
this.objectsByUUID[objData.FullID.toString()] = localID;
|
||||
if (!this.objectsByParent[parentID]) {
|
||||
this.objectsByParent[parentID] = [];
|
||||
}
|
||||
if (addToParentList) {
|
||||
this.objectsByParent[parentID].push(localID);
|
||||
}
|
||||
if (objData.PCode !== PCode_1.PCode.Avatar && this.options & __1.BotOptionFlags.StoreMyAttachmentsOnly) {
|
||||
if (this.agent.localID !== 0 && obj.ParentID !== this.agent.localID) {
|
||||
this.deleteObject(localID);
|
||||
return;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
objectUpdateCached(objectUpdateCached) {
|
||||
const rmo = new RequestMultipleObjects_1.RequestMultipleObjectsMessage();
|
||||
rmo.AgentData = {
|
||||
AgentID: this.agent.agentID,
|
||||
SessionID: this.circuit.sessionID
|
||||
};
|
||||
rmo.ObjectData = [];
|
||||
objectUpdateCached.ObjectData.forEach((obj) => {
|
||||
rmo.ObjectData.push({
|
||||
CacheMissType: 0,
|
||||
ID: obj.ID
|
||||
});
|
||||
});
|
||||
this.circuit.sendMessage(rmo, 0);
|
||||
}
|
||||
objectUpdateCompressed(objectUpdateCompressed) {
|
||||
for (const obj of objectUpdateCompressed.ObjectData) {
|
||||
const flags = obj.UpdateFlags;
|
||||
const buf = obj.Data;
|
||||
let pos = 0;
|
||||
const fullID = new UUID_1.UUID(buf, pos);
|
||||
pos += 16;
|
||||
const localID = buf.readUInt32LE(pos);
|
||||
pos += 4;
|
||||
const pcode = buf.readUInt8(pos++);
|
||||
let newObj = false;
|
||||
if (!this.objects[localID]) {
|
||||
newObj = true;
|
||||
this.objects[localID] = new GameObject_1.GameObject();
|
||||
}
|
||||
const o = this.objects[localID];
|
||||
o.ID = localID;
|
||||
o.PCode = pcode;
|
||||
this.objectsByUUID[fullID.toString()] = localID;
|
||||
o.FullID = fullID;
|
||||
pos++;
|
||||
pos = pos + 4;
|
||||
pos++;
|
||||
pos++;
|
||||
pos = pos + 12;
|
||||
pos = pos + 12;
|
||||
pos = pos + 12;
|
||||
const compressedflags = buf.readUInt32LE(pos);
|
||||
pos = pos + 4;
|
||||
o.OwnerID = new UUID_1.UUID(buf, pos);
|
||||
pos += 16;
|
||||
if (compressedflags & __1.CompressedFlags.HasAngularVelocity) {
|
||||
pos = pos + 12;
|
||||
}
|
||||
if (compressedflags & __1.CompressedFlags.HasParent) {
|
||||
const newParentID = buf.readUInt32LE(pos);
|
||||
pos += 4;
|
||||
let add = true;
|
||||
if (!newObj) {
|
||||
if (newParentID !== o.ParentID) {
|
||||
const index = this.objectsByParent[o.ParentID].indexOf(localID);
|
||||
if (index !== -1) {
|
||||
this.objectsByParent[o.ParentID].splice(index, 1);
|
||||
}
|
||||
}
|
||||
else {
|
||||
add = false;
|
||||
}
|
||||
}
|
||||
if (add) {
|
||||
if (!this.objectsByParent[newParentID]) {
|
||||
this.objectsByParent[newParentID] = [];
|
||||
}
|
||||
this.objectsByParent[newParentID].push(localID);
|
||||
}
|
||||
o.ParentID = newParentID;
|
||||
}
|
||||
if (pcode !== PCode_1.PCode.Avatar && newObj && this.options & __1.BotOptionFlags.StoreMyAttachmentsOnly) {
|
||||
if (this.agent.localID !== 0 && o.ParentID !== this.agent.localID) {
|
||||
this.deleteObject(localID);
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (compressedflags & __1.CompressedFlags.Tree) {
|
||||
pos++;
|
||||
}
|
||||
else if (compressedflags & __1.CompressedFlags.ScratchPad) {
|
||||
const scratchPadSize = buf.readUInt8(pos++);
|
||||
pos = pos + scratchPadSize;
|
||||
}
|
||||
if (compressedflags & __1.CompressedFlags.HasText) {
|
||||
const result = Utils_1.Utils.BufferToString(buf, pos);
|
||||
pos += result.readLength;
|
||||
pos = pos + 4;
|
||||
}
|
||||
if (compressedflags & __1.CompressedFlags.MediaURL) {
|
||||
const result = Utils_1.Utils.BufferToString(buf, pos);
|
||||
pos += result.readLength;
|
||||
}
|
||||
if (compressedflags & __1.CompressedFlags.HasParticles) {
|
||||
pos += 86;
|
||||
}
|
||||
pos = this.readExtraParams(buf, pos, o);
|
||||
if (compressedflags & __1.CompressedFlags.HasSound) {
|
||||
pos = pos + 16;
|
||||
pos += 4;
|
||||
pos++;
|
||||
pos = pos + 4;
|
||||
}
|
||||
if (compressedflags & __1.CompressedFlags.HasNameValues) {
|
||||
const result = Utils_1.Utils.BufferToString(buf, pos);
|
||||
o.NameValue = this.parseNameValues(result.result);
|
||||
pos += result.readLength;
|
||||
}
|
||||
pos++;
|
||||
pos = pos + 2;
|
||||
pos = pos + 2;
|
||||
pos = pos + 12;
|
||||
pos = pos + 2;
|
||||
pos = pos + 2;
|
||||
pos = pos + 2;
|
||||
const textureEntryLength = buf.readUInt32LE(pos);
|
||||
pos = pos + 4;
|
||||
pos = pos + textureEntryLength;
|
||||
if (compressedflags & __1.CompressedFlags.TextureAnimation) {
|
||||
pos = pos + 4;
|
||||
}
|
||||
o.IsAttachment = (compressedflags & __1.CompressedFlags.HasNameValues) !== 0 && o.ParentID !== 0;
|
||||
}
|
||||
}
|
||||
objectUpdateTerse(objectUpdateTerse) { }
|
||||
objectUpdateMultiple(objectUpdateMultiple) { }
|
||||
killObject(killObj) {
|
||||
killObj.ObjectData.forEach((obj) => {
|
||||
const objectID = obj.ID;
|
||||
this.deleteObject(objectID);
|
||||
});
|
||||
}
|
||||
deleteObject(objectID) {
|
||||
if (this.objects[objectID]) {
|
||||
if (this.objectsByParent[objectID]) {
|
||||
this.objectsByParent[objectID].forEach((childObjID) => {
|
||||
this.deleteObject(childObjID);
|
||||
});
|
||||
}
|
||||
delete this.objectsByParent[objectID];
|
||||
const objct = this.objects[objectID];
|
||||
const uuid = objct.FullID.toString();
|
||||
if (this.objectsByUUID[uuid]) {
|
||||
delete this.objectsByUUID[uuid];
|
||||
}
|
||||
const parentID = objct.ParentID;
|
||||
if (this.objectsByParent[parentID]) {
|
||||
const ind = this.objectsByParent[parentID].indexOf(objectID);
|
||||
if (ind !== -1) {
|
||||
this.objectsByParent[parentID].splice(ind, 1);
|
||||
}
|
||||
}
|
||||
if (this.rtree && this.objects[objectID].rtreeEntry !== undefined) {
|
||||
this.rtree.remove(this.objects[objectID].rtreeEntry);
|
||||
}
|
||||
delete this.objects[objectID];
|
||||
}
|
||||
}
|
||||
readExtraParams(buf, pos, o) {
|
||||
if (pos >= buf.length) {
|
||||
return 0;
|
||||
}
|
||||
const extraParamCount = buf.readUInt8(pos++);
|
||||
for (let k = 0; k < extraParamCount; k++) {
|
||||
const type = buf.readUInt16LE(pos);
|
||||
pos = pos + 2;
|
||||
const paramLength = buf.readUInt32LE(pos);
|
||||
pos = pos + 4;
|
||||
pos += paramLength;
|
||||
}
|
||||
return pos;
|
||||
}
|
||||
getObjectsByParent(parentID) {
|
||||
const list = this.objectsByParent[parentID];
|
||||
if (list === undefined) {
|
||||
return [];
|
||||
}
|
||||
const result = [];
|
||||
list.forEach((localID) => {
|
||||
result.push(this.objects[localID]);
|
||||
});
|
||||
return result;
|
||||
}
|
||||
parseNameValues(str) {
|
||||
const nv = {};
|
||||
const lines = str.split('\n');
|
||||
lines.forEach((line) => {
|
||||
if (line.length > 0) {
|
||||
let kv = line.split(/[\t ]/);
|
||||
if (kv.length > 5) {
|
||||
for (let x = 5; x < kv.length; x++) {
|
||||
kv[4] += ' ' + kv[x];
|
||||
}
|
||||
kv = kv.slice(0, 5);
|
||||
}
|
||||
if (kv.length === 5) {
|
||||
const namevalue = new NameValue_1.NameValue();
|
||||
namevalue.type = kv[1];
|
||||
namevalue.class = kv[2];
|
||||
namevalue.sendTo = kv[3];
|
||||
namevalue.value = kv[4];
|
||||
nv[kv[0]] = namevalue;
|
||||
}
|
||||
else {
|
||||
console.log('namevalue unexpected length: ' + kv.length);
|
||||
console.log(kv);
|
||||
}
|
||||
}
|
||||
});
|
||||
return nv;
|
||||
}
|
||||
shutdown() {
|
||||
this.objects = {};
|
||||
if (this.rtree) {
|
||||
this.rtree.clear();
|
||||
}
|
||||
this.objectsByUUID = {};
|
||||
this.objectsByParent = {};
|
||||
}
|
||||
findParent(go) {
|
||||
if (go.ParentID !== 0 && this.objects[go.ParentID]) {
|
||||
return this.findParent(this.objects[go.ParentID]);
|
||||
}
|
||||
else {
|
||||
return go;
|
||||
}
|
||||
}
|
||||
populateChildren(obj) {
|
||||
obj.children = [];
|
||||
obj.totalChildren = 0;
|
||||
for (const child of this.getObjectsByParent(obj.ID)) {
|
||||
obj.totalChildren++;
|
||||
this.populateChildren(child);
|
||||
if (child.totalChildren !== undefined) {
|
||||
obj.totalChildren += child.totalChildren;
|
||||
}
|
||||
obj.children.push(child);
|
||||
}
|
||||
}
|
||||
getAllObjects() {
|
||||
const results = [];
|
||||
const found = {};
|
||||
for (const k of Object.keys(this.objects)) {
|
||||
const go = this.objects[parseInt(k, 10)];
|
||||
if (go.PCode !== PCode_1.PCode.Avatar && (go.IsAttachment === undefined || go.IsAttachment === false)) {
|
||||
try {
|
||||
const parent = this.findParent(go);
|
||||
if (parent.PCode !== PCode_1.PCode.Avatar && (parent.IsAttachment === undefined || parent.IsAttachment === false)) {
|
||||
const uuid = parent.FullID.toString();
|
||||
if (found[uuid] === undefined) {
|
||||
found[uuid] = parent;
|
||||
results.push(parent);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (error) {
|
||||
console.log('Failed to find parent for ' + go.FullID.toString());
|
||||
console.error(error);
|
||||
}
|
||||
}
|
||||
}
|
||||
for (const obj of results) {
|
||||
this.populateChildren(obj);
|
||||
}
|
||||
return results;
|
||||
}
|
||||
getNumberOfObjects() {
|
||||
return Object.keys(this.objects).length;
|
||||
}
|
||||
getObjectsInArea(minX, maxX, minY, maxY, minZ, maxZ) {
|
||||
if (!this.rtree) {
|
||||
throw new Error('GetObjectsInArea not available with the Lite object store');
|
||||
}
|
||||
const result = this.rtree.search({
|
||||
minX: minX,
|
||||
maxX: maxX,
|
||||
minY: minY,
|
||||
maxY: maxY,
|
||||
minZ: minZ,
|
||||
maxZ: maxZ
|
||||
});
|
||||
const found = {};
|
||||
const objs = [];
|
||||
for (const obj of result) {
|
||||
const o = obj;
|
||||
const go = o.gameObject;
|
||||
if (go.PCode !== PCode_1.PCode.Avatar && (go.IsAttachment === undefined || go.IsAttachment === false)) {
|
||||
try {
|
||||
const parent = this.findParent(go);
|
||||
if (parent.PCode !== PCode_1.PCode.Avatar && (parent.IsAttachment === undefined || parent.IsAttachment === false)) {
|
||||
const uuid = parent.FullID.toString();
|
||||
if (found[uuid] === undefined) {
|
||||
found[uuid] = parent;
|
||||
objs.push(parent);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (error) {
|
||||
console.log('Failed to find parent for ' + go.FullID.toString());
|
||||
console.error(error);
|
||||
}
|
||||
}
|
||||
}
|
||||
for (const obj of objs) {
|
||||
this.populateChildren(obj);
|
||||
}
|
||||
return objs;
|
||||
}
|
||||
getObjectByUUID(fullID) {
|
||||
if (fullID instanceof UUID_1.UUID) {
|
||||
fullID = fullID.toString();
|
||||
}
|
||||
if (!this.objectsByUUID[fullID]) {
|
||||
throw new Error('No object found with that UUID');
|
||||
}
|
||||
const localID = this.objectsByUUID[fullID];
|
||||
return this.objects[localID];
|
||||
}
|
||||
getObjectByLocalID(localID) {
|
||||
if (!this.objects[localID]) {
|
||||
throw new Error('No object found with that UUID');
|
||||
}
|
||||
return this.objects[localID];
|
||||
}
|
||||
insertIntoRtree(obj) {
|
||||
if (!this.rtree) {
|
||||
return;
|
||||
}
|
||||
if (obj.rtreeEntry !== undefined) {
|
||||
this.rtree.remove(obj.rtreeEntry);
|
||||
}
|
||||
if (!obj.Scale || !obj.Position || !obj.Rotation) {
|
||||
return;
|
||||
}
|
||||
const normalizedScale = obj.Scale.multiplyByQuat(obj.Rotation);
|
||||
const bounds = {
|
||||
minX: obj.Position.x - (normalizedScale.x / 2),
|
||||
maxX: obj.Position.x + (normalizedScale.x / 2),
|
||||
minY: obj.Position.y - (normalizedScale.y / 2),
|
||||
maxY: obj.Position.y + (normalizedScale.y / 2),
|
||||
minZ: obj.Position.z - (normalizedScale.z / 2),
|
||||
maxZ: obj.Position.z + (normalizedScale.z / 2),
|
||||
gameObject: obj
|
||||
};
|
||||
obj.rtreeEntry = bounds;
|
||||
this.rtree.insert(bounds);
|
||||
}
|
||||
}
|
||||
exports.ObjectStoreLite = ObjectStoreLite;
|
||||
//# sourceMappingURL=ObjectStoreLite.js.map
|
||||
1
dist/classes/ObjectStoreLite.js.map
vendored
1
dist/classes/ObjectStoreLite.js.map
vendored
File diff suppressed because one or more lines are too long
12
dist/classes/Packet.d.ts
vendored
12
dist/classes/Packet.d.ts
vendored
@@ -1,12 +0,0 @@
|
||||
/// <reference types="node" />
|
||||
import { MessageBase } from './MessageBase';
|
||||
import { DecodeFlags, PacketFlags } from '..';
|
||||
export declare class Packet {
|
||||
packetFlags: PacketFlags;
|
||||
sequenceNumber: number;
|
||||
extraHeader: Buffer;
|
||||
message: MessageBase;
|
||||
getSize(): number;
|
||||
writeToBuffer(buf: Buffer, pos: number, options?: DecodeFlags): Buffer;
|
||||
readFromBuffer(buf: Buffer, pos: number, ackReceived: (sequenceID: number) => void, sendAck: (sequenceID: number) => void): number;
|
||||
}
|
||||
124
dist/classes/Packet.js
vendored
124
dist/classes/Packet.js
vendored
@@ -1,124 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const Zerocoder_1 = require("./Zerocoder");
|
||||
const MessageClasses_1 = require("./MessageClasses");
|
||||
const MessageClass = require("./MessageClasses");
|
||||
const __1 = require("..");
|
||||
class Packet {
|
||||
constructor() {
|
||||
this.packetFlags = 0;
|
||||
this.sequenceNumber = 0;
|
||||
this.extraHeader = Buffer.allocUnsafe(0);
|
||||
}
|
||||
getSize() {
|
||||
let idSize = 4;
|
||||
if (this.message.messageFlags & __1.MessageFlags.FrequencyHigh) {
|
||||
idSize = 1;
|
||||
}
|
||||
else if (this.message.messageFlags & __1.MessageFlags.FrequencyMedium) {
|
||||
idSize = 2;
|
||||
}
|
||||
return 1 + 4 + 1 + this.extraHeader.length + idSize + this.message.getSize();
|
||||
}
|
||||
writeToBuffer(buf, pos, options) {
|
||||
if (options === undefined) {
|
||||
options = 0;
|
||||
}
|
||||
if (this.message.messageFlags & __1.MessageFlags.Zerocoded && !(options & 1)) {
|
||||
this.packetFlags = this.packetFlags | __1.PacketFlags.Zerocoded;
|
||||
}
|
||||
buf.writeUInt8(this.packetFlags, pos++);
|
||||
buf.writeUInt32BE(this.sequenceNumber, pos);
|
||||
pos = pos + 4;
|
||||
buf.writeUInt8(this.extraHeader.length, pos++);
|
||||
if (this.extraHeader.length > 0) {
|
||||
this.extraHeader.copy(buf, pos);
|
||||
pos += this.extraHeader.length;
|
||||
}
|
||||
const bodyStart = pos;
|
||||
if (this.message.messageFlags & __1.MessageFlags.FrequencyHigh) {
|
||||
buf.writeUInt8(this.message.id, pos++);
|
||||
}
|
||||
else if (this.message.messageFlags & __1.MessageFlags.FrequencyMedium) {
|
||||
buf.writeUInt16BE(this.message.id, pos);
|
||||
pos += 2;
|
||||
}
|
||||
else {
|
||||
buf.writeUInt32BE(this.message.id, pos);
|
||||
pos += 4;
|
||||
}
|
||||
const expectedLength = this.message.getSize();
|
||||
const actualLength = this.message.writeToBuffer(buf, pos);
|
||||
if (actualLength !== expectedLength) {
|
||||
console.error('WARNING: Bytes written does not match expected message data length');
|
||||
}
|
||||
pos += actualLength;
|
||||
if (pos < buf.length) {
|
||||
console.error('WARNING: BUFFER UNDERFLOW: Finished writing but we are not at the end of the buffer (Written: ' + pos + ' bytes, expected ' + buf.length);
|
||||
}
|
||||
if (this.packetFlags & __1.PacketFlags.Zerocoded) {
|
||||
buf = Zerocoder_1.Zerocoder.Encode(buf, bodyStart, pos);
|
||||
}
|
||||
return buf;
|
||||
}
|
||||
readFromBuffer(buf, pos, ackReceived, sendAck) {
|
||||
this.packetFlags = buf.readUInt8(pos++);
|
||||
this.sequenceNumber = buf.readUInt32BE(pos);
|
||||
if (this.packetFlags & __1.PacketFlags.Reliable) {
|
||||
sendAck(this.sequenceNumber);
|
||||
}
|
||||
pos = pos + 4;
|
||||
const extraBytes = buf.readUInt8(pos++);
|
||||
if (extraBytes > 0) {
|
||||
this.extraHeader = buf.slice(pos, pos + extraBytes);
|
||||
pos += extraBytes;
|
||||
}
|
||||
else {
|
||||
this.extraHeader = Buffer.allocUnsafe(0);
|
||||
}
|
||||
let appendedAcks = 0;
|
||||
if (this.packetFlags & __1.PacketFlags.Ack) {
|
||||
appendedAcks = buf.readUInt8(buf.length - 1);
|
||||
}
|
||||
if (this.packetFlags & __1.PacketFlags.Zerocoded) {
|
||||
let tail = 0;
|
||||
if (this.packetFlags & __1.PacketFlags.Ack) {
|
||||
tail = 1;
|
||||
if (appendedAcks > 0) {
|
||||
tail += appendedAcks * 4;
|
||||
}
|
||||
}
|
||||
buf = Zerocoder_1.Zerocoder.Decode(buf, pos, buf.length - 1, tail);
|
||||
}
|
||||
let messageID = buf.readUInt8(pos);
|
||||
if (messageID === 0xFF) {
|
||||
messageID = buf.readUInt16BE(pos);
|
||||
if (messageID === 0xFFFF) {
|
||||
messageID = buf.readUInt32BE(pos);
|
||||
pos += 4;
|
||||
}
|
||||
else {
|
||||
pos += 2;
|
||||
}
|
||||
}
|
||||
else {
|
||||
pos++;
|
||||
}
|
||||
this.message = new MessageClass[MessageClasses_1.nameFromID(messageID)]();
|
||||
pos += this.message.readFromBuffer(buf, pos);
|
||||
if (this.packetFlags & __1.PacketFlags.Ack) {
|
||||
for (let i = 0; i < appendedAcks; i++) {
|
||||
const ackID = buf.readUInt32BE(pos);
|
||||
ackReceived(ackID);
|
||||
pos += 4;
|
||||
}
|
||||
pos++;
|
||||
}
|
||||
if (pos < buf.length) {
|
||||
console.error('WARNING: Finished reading ' + MessageClasses_1.nameFromID(messageID) + ' but we\'re not at the end of the packet (' + pos + ' < ' + buf.length + ', seq ' + this.sequenceNumber + ')');
|
||||
}
|
||||
return pos;
|
||||
}
|
||||
}
|
||||
exports.Packet = Packet;
|
||||
//# sourceMappingURL=Packet.js.map
|
||||
1
dist/classes/Packet.js.map
vendored
1
dist/classes/Packet.js.map
vendored
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"Packet.js","sourceRoot":"","sources":["../../lib/classes/Packet.ts"],"names":[],"mappings":";;AACA,2CAAsC;AACtC,qDAA4C;AAC5C,iDAAiD;AACjD,0BAA0D;AAE1D,MAAa,MAAM;IAAnB;QAEI,gBAAW,GAAgB,CAAC,CAAC;QAC7B,mBAAc,GAAG,CAAC,CAAC;QACnB,gBAAW,GAAW,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAuJhD,CAAC;IApJG,OAAO;QAEH,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,gBAAY,CAAC,aAAa,EAC1D;YACI,MAAM,GAAG,CAAC,CAAC;SACd;aACI,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,gBAAY,CAAC,eAAe,EACjE;YACI,MAAM,GAAG,CAAC,CAAC;SACd;QACD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IACjF,CAAC;IAED,aAAa,CAAC,GAAW,EAAE,GAAW,EAAE,OAAqB;QAEzD,IAAI,OAAO,KAAK,SAAS,EACzB;YACI,OAAO,GAAG,CAAC,CAAC;SACf;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,gBAAY,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,EACxE;YACI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,eAAW,CAAC,SAAS,CAAC;SAC/D;QACD,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;QACxC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAC5C,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QACd,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAC/B;YACI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAChC,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;SAClC;QACD,MAAM,SAAS,GAAG,GAAG,CAAC;QAEtB,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,gBAAY,CAAC,aAAa,EAC1D;YACI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;SAC1C;aACI,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,gBAAY,CAAC,eAAe,EACjE;YACI,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YACxC,GAAG,IAAI,CAAC,CAAC;SACZ;aAED;YACI,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YACxC,GAAG,IAAI,CAAC,CAAC;SACZ;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC1D,IAAI,YAAY,KAAK,cAAc,EACnC;YACI,OAAO,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAA;SACtF;QACD,GAAG,IAAI,YAAY,CAAC;QACpB,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,EACpB;YACI,OAAO,CAAC,KAAK,CAAC,gGAAgG,GAAG,GAAG,GAAG,mBAAmB,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;SAC5J;QACD,IAAI,IAAI,CAAC,WAAW,GAAG,eAAW,CAAC,SAAS,EAC5C;YACI,GAAG,GAAG,qBAAS,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;SAC/C;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAED,cAAc,CAAC,GAAW,EAAE,GAAW,EAAE,WAAyC,EAAE,OAAqC;QAErH,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,WAAW,GAAG,eAAW,CAAC,QAAQ,EAC3C;YACI,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAChC;QACD,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QACd,MAAM,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;QACxC,IAAI,UAAU,GAAG,CAAC,EAClB;YACI,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,UAAU,CAAC,CAAC;YACpD,GAAG,IAAI,UAAU,CAAC;SACrB;aAED;YACI,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;SAC5C;QACD,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,IAAI,CAAC,WAAW,GAAG,eAAW,CAAC,GAAG,EACtC;YACI,YAAY,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SAChD;QACD,IAAI,IAAI,CAAC,WAAW,GAAG,eAAW,CAAC,SAAS,EAC5C;YAEI,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,IAAI,IAAI,CAAC,WAAW,GAAG,eAAW,CAAC,GAAG,EACtC;gBAEI,IAAI,GAAG,CAAC,CAAC;gBACT,IAAI,YAAY,GAAG,CAAC,EACpB;oBACI,IAAI,IAAI,YAAY,GAAG,CAAC,CAAC;iBAC5B;aACJ;YACD,GAAG,GAAG,qBAAS,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;SAC1D;QAED,IAAI,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,SAAS,KAAK,IAAI,EACtB;YACI,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,SAAS,KAAK,MAAM,EACxB;gBACI,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBAClC,GAAG,IAAI,CAAC,CAAC;aACZ;iBAED;gBACI,GAAG,IAAI,CAAC,CAAC;aACZ;SACJ;aAED;YACI,GAAG,EAAE,CAAC;SACT;QAED,IAAI,CAAC,OAAO,GAAG,IAAU,YAAa,CAAC,2BAAU,CAAC,SAAS,CAAC,CAAC,EAAiB,CAAC;QAE/E,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAE7C,IAAI,IAAI,CAAC,WAAW,GAAG,eAAW,CAAC,GAAG,EACtC;YACI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EACrC;gBACI,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBACpC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACnB,GAAG,IAAI,CAAC,CAAC;aACZ;YAED,GAAG,EAAE,CAAC;SACT;QACD,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,EACpB;YACI,OAAO,CAAC,KAAK,CAAC,4BAA4B,GAAG,2BAAU,CAAC,SAAS,CAAC,GAAG,4CAA4C,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC;SACxL;QACD,OAAO,GAAG,CAAC;IACf,CAAC;CACJ;AA3JD,wBA2JC"}
|
||||
41
dist/classes/ParticleSystem.d.ts
vendored
41
dist/classes/ParticleSystem.d.ts
vendored
@@ -1,41 +0,0 @@
|
||||
/// <reference types="node" />
|
||||
import { BlendFunc } from '../enums/BlendFunc';
|
||||
import { SourcePattern } from '../enums/SourcePattern';
|
||||
import { Vector3 } from './Vector3';
|
||||
import { UUID } from './UUID';
|
||||
import { ParticleDataFlags } from '../enums/ParticleDataFlags';
|
||||
import { Color4 } from './Color4';
|
||||
export declare class ParticleSystem {
|
||||
startGlow: number;
|
||||
endGlow: number;
|
||||
blendFuncSource: BlendFunc;
|
||||
blendFuncDest: BlendFunc;
|
||||
crc: number;
|
||||
pattern: SourcePattern;
|
||||
maxAge: number;
|
||||
startAge: number;
|
||||
innerAngle: number;
|
||||
outerAngle: number;
|
||||
burstRate: number;
|
||||
burstRadius: number;
|
||||
burstSpeedMin: number;
|
||||
burstSpeedMax: number;
|
||||
burstPartCount: number;
|
||||
angularVelocity: Vector3;
|
||||
acceleration: Vector3;
|
||||
texture: UUID;
|
||||
target: UUID;
|
||||
dataFlags: ParticleDataFlags;
|
||||
partMaxAge: number;
|
||||
startColor: Color4;
|
||||
endColor: Color4;
|
||||
startScaleX: number;
|
||||
startScaleY: number;
|
||||
endScaleX: number;
|
||||
endScaleY: number;
|
||||
flags: number;
|
||||
static unpackFixed(buf: Buffer, pos: number, signed: boolean, intBits: number, fracBits: number): number;
|
||||
constructor(buf: Buffer, pos: number);
|
||||
unpackSystem(buf: Buffer, pos: number): number;
|
||||
unpackLegacyData(buf: Buffer, pos: number): number;
|
||||
}
|
||||
153
dist/classes/ParticleSystem.js
vendored
153
dist/classes/ParticleSystem.js
vendored
@@ -1,153 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const BlendFunc_1 = require("../enums/BlendFunc");
|
||||
const SourcePattern_1 = require("../enums/SourcePattern");
|
||||
const Vector3_1 = require("./Vector3");
|
||||
const UUID_1 = require("./UUID");
|
||||
const ParticleDataFlags_1 = require("../enums/ParticleDataFlags");
|
||||
const Color4_1 = require("./Color4");
|
||||
class ParticleSystem {
|
||||
constructor(buf, pos) {
|
||||
this.startGlow = 0.0;
|
||||
this.endGlow = 0.0;
|
||||
this.blendFuncSource = BlendFunc_1.BlendFunc.SourceAlpha;
|
||||
this.blendFuncDest = BlendFunc_1.BlendFunc.OneMinusSourceAlpha;
|
||||
this.crc = 0;
|
||||
this.pattern = SourcePattern_1.SourcePattern.None;
|
||||
this.maxAge = 0.0;
|
||||
this.startAge = 0.0;
|
||||
this.innerAngle = 0.0;
|
||||
this.outerAngle = 0.0;
|
||||
this.burstRate = 0.0;
|
||||
this.burstRadius = 0.0;
|
||||
this.burstSpeedMin = 0.0;
|
||||
this.burstSpeedMax = 0.0;
|
||||
this.burstPartCount = 0;
|
||||
this.angularVelocity = Vector3_1.Vector3.getZero();
|
||||
this.acceleration = Vector3_1.Vector3.getZero();
|
||||
this.texture = UUID_1.UUID.zero();
|
||||
this.target = UUID_1.UUID.zero();
|
||||
this.dataFlags = ParticleDataFlags_1.ParticleDataFlags.None;
|
||||
this.partMaxAge = 0.0;
|
||||
this.startColor = Color4_1.Color4.black;
|
||||
this.endColor = Color4_1.Color4.black;
|
||||
this.startScaleX = 0.0;
|
||||
this.startScaleY = 0.0;
|
||||
this.endScaleX = 0.0;
|
||||
this.endScaleY = 0.0;
|
||||
this.flags = 0;
|
||||
const size = buf.length - pos;
|
||||
if (size === 86) {
|
||||
pos = this.unpackSystem(buf, pos);
|
||||
pos = this.unpackLegacyData(buf, pos);
|
||||
}
|
||||
else if (size > 86 && size <= 98) {
|
||||
const sysSize = buf.readInt32LE(pos);
|
||||
pos += 4;
|
||||
if (sysSize !== 68) {
|
||||
console.error('Particle system block size ' + sysSize + ' different from expected 68 bytes');
|
||||
return;
|
||||
}
|
||||
pos = this.unpackSystem(buf, pos);
|
||||
const dataSize = buf.readInt32LE(pos);
|
||||
pos += 4;
|
||||
pos = this.unpackLegacyData(buf, pos);
|
||||
if ((this.dataFlags & ParticleDataFlags_1.ParticleDataFlags.DataGlow) === ParticleDataFlags_1.ParticleDataFlags.DataGlow) {
|
||||
let glow = buf.readUInt8(pos++);
|
||||
this.startGlow = glow / 255.0;
|
||||
glow = buf.readUInt8(pos++);
|
||||
this.endGlow = glow / 255.0;
|
||||
}
|
||||
if ((this.dataFlags & ParticleDataFlags_1.ParticleDataFlags.DataBlend) === ParticleDataFlags_1.ParticleDataFlags.DataBlend) {
|
||||
this.blendFuncSource = buf.readUInt8(pos++);
|
||||
this.blendFuncDest = buf.readUInt8(pos++);
|
||||
}
|
||||
}
|
||||
else {
|
||||
console.error('WARNING: Paricle system size of ' + size + ' bytes exceeds maximum block size of 98');
|
||||
}
|
||||
}
|
||||
static unpackFixed(buf, pos, signed, intBits, fracBits) {
|
||||
let totalBits = intBits + fracBits;
|
||||
let fixedVal = 0.0;
|
||||
if (signed) {
|
||||
totalBits++;
|
||||
}
|
||||
const maxVal = 1 << intBits;
|
||||
if (totalBits <= 8) {
|
||||
fixedVal = buf.readUInt8(pos);
|
||||
}
|
||||
else if (totalBits <= 16) {
|
||||
fixedVal = buf.readUInt16LE(pos);
|
||||
}
|
||||
else if (totalBits <= 31) {
|
||||
fixedVal = buf.readUInt32LE(pos);
|
||||
}
|
||||
else {
|
||||
return 0.0;
|
||||
}
|
||||
fixedVal /= (1 << fracBits);
|
||||
if (signed) {
|
||||
fixedVal -= maxVal;
|
||||
}
|
||||
return fixedVal;
|
||||
}
|
||||
unpackSystem(buf, pos) {
|
||||
const startPos = pos;
|
||||
this.crc = buf.readUInt32LE(pos);
|
||||
pos += 4;
|
||||
this.flags = buf.readUInt32LE(pos);
|
||||
pos += 4;
|
||||
this.pattern = buf.readUInt8(pos++);
|
||||
this.maxAge = ParticleSystem.unpackFixed(buf, pos, false, 8, 8);
|
||||
pos += 2;
|
||||
this.startAge = ParticleSystem.unpackFixed(buf, pos, false, 8, 8);
|
||||
pos += 2;
|
||||
this.innerAngle = ParticleSystem.unpackFixed(buf, pos++, false, 3, 5);
|
||||
this.outerAngle = ParticleSystem.unpackFixed(buf, pos++, false, 3, 5);
|
||||
this.burstRate = ParticleSystem.unpackFixed(buf, pos, false, 8, 8);
|
||||
pos += 2;
|
||||
this.burstRadius = ParticleSystem.unpackFixed(buf, pos, false, 8, 8);
|
||||
pos += 2;
|
||||
this.burstSpeedMin = ParticleSystem.unpackFixed(buf, pos, false, 8, 8);
|
||||
pos += 2;
|
||||
this.burstSpeedMax = ParticleSystem.unpackFixed(buf, pos, false, 8, 8);
|
||||
pos += 2;
|
||||
this.burstPartCount = buf.readUInt8(pos++);
|
||||
this.angularVelocity = new Vector3_1.Vector3([
|
||||
ParticleSystem.unpackFixed(buf, pos, true, 8, 7),
|
||||
ParticleSystem.unpackFixed(buf, pos + 2, true, 8, 7),
|
||||
ParticleSystem.unpackFixed(buf, pos + 4, true, 8, 7),
|
||||
]);
|
||||
pos = pos + 6;
|
||||
this.acceleration = new Vector3_1.Vector3([
|
||||
ParticleSystem.unpackFixed(buf, pos, true, 8, 7),
|
||||
ParticleSystem.unpackFixed(buf, pos + 2, true, 8, 7),
|
||||
ParticleSystem.unpackFixed(buf, pos + 4, true, 8, 7),
|
||||
]);
|
||||
pos = pos + 6;
|
||||
this.texture = new UUID_1.UUID(buf, pos);
|
||||
pos += 16;
|
||||
this.target = new UUID_1.UUID(buf, pos);
|
||||
pos += 16;
|
||||
if (pos - startPos !== 68) {
|
||||
console.log('INVALID SIZE: ' + (pos - startPos));
|
||||
}
|
||||
return pos;
|
||||
}
|
||||
unpackLegacyData(buf, pos) {
|
||||
this.dataFlags = buf.readUInt32LE(pos);
|
||||
pos += 4;
|
||||
this.partMaxAge = ParticleSystem.unpackFixed(buf, pos, false, 8, 8);
|
||||
pos += 2;
|
||||
this.startColor = new Color4_1.Color4(buf.readUInt8(pos++), buf.readUInt8(pos++), buf.readUInt8(pos++), buf.readUInt8(pos++));
|
||||
this.endColor = new Color4_1.Color4(buf.readUInt8(pos++), buf.readUInt8(pos++), buf.readUInt8(pos++), buf.readUInt8(pos++));
|
||||
this.startScaleX = ParticleSystem.unpackFixed(buf, pos++, false, 3, 5);
|
||||
this.startScaleY = ParticleSystem.unpackFixed(buf, pos++, false, 3, 5);
|
||||
this.endScaleX = ParticleSystem.unpackFixed(buf, pos++, false, 3, 5);
|
||||
this.endScaleY = ParticleSystem.unpackFixed(buf, pos++, false, 3, 5);
|
||||
return pos;
|
||||
}
|
||||
}
|
||||
exports.ParticleSystem = ParticleSystem;
|
||||
//# sourceMappingURL=ParticleSystem.js.map
|
||||
1
dist/classes/ParticleSystem.js.map
vendored
1
dist/classes/ParticleSystem.js.map
vendored
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user