- When resolving objects, populate object costs (land impact)

- Add a function to find objects by name (regex or micromatch *glob style)
This commit is contained in:
Casper Warden
2018-10-20 14:32:33 +01:00
parent c291ed7eda
commit 4c6cbfc45b
14 changed files with 1144 additions and 34 deletions

View File

@@ -5,7 +5,6 @@ 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 {RequestMultipleObjectsMessage} from './messages/RequestMultipleObjects';
import {Agent} from './Agent';
import {UUID} from './UUID';
@@ -45,7 +44,6 @@ export class ObjectStoreLite implements IObjectStore
Message.ObjectUpdateCached,
Message.ObjectUpdateCompressed,
Message.ImprovedTerseObjectUpdate,
Message.MultipleObjectUpdate,
Message.KillObject
], (packet: Packet) =>
{
@@ -69,10 +67,6 @@ export class ObjectStoreLite implements IObjectStore
const objectUpdateTerse = packet.message as ImprovedTerseObjectUpdateMessage;
this.objectUpdateTerse(objectUpdateTerse);
break;
case Message.MultipleObjectUpdate:
const multipleObjectUpdate = packet.message as MultipleObjectUpdateMessage;
this.objectUpdateMultiple(multipleObjectUpdate);
break;
case Message.KillObject:
const killObj = packet.message as KillObjectMessage;
this.killObject(killObj);
@@ -118,6 +112,15 @@ export class ObjectStoreLite implements IObjectStore
this.objects[localID].NameValue = this.parseNameValues(Utils.BufferToStringSimple(objData.NameValue));
if (this.objects[localID].NameValue['AttachItemID'])
{
this.objects[localID].IsAttachment = true;
}
else
{
this.objects[localID].IsAttachment = false;
}
if (objData.PCode === PCode.Avatar && this.objects[localID].FullID.toString() === this.agent.agentID.toString())
{
this.agent.localID = localID;
@@ -354,15 +357,15 @@ export class ObjectStoreLite implements IObjectStore
protected objectUpdateTerse(objectUpdateTerse: ImprovedTerseObjectUpdateMessage)
{ }
protected objectUpdateMultiple(objectUpdateMultiple: MultipleObjectUpdateMessage)
{ }
protected killObject(killObj: KillObjectMessage)
{
killObj.ObjectData.forEach((obj) =>
{
const objectID = obj.ID;
this.deleteObject(objectID);
if (this.objects[objectID])
{
this.deleteObject(objectID);
}
});
}