Files
node-metaverse/lib/classes/Inventory.ts
Casper Warden 572cd576de Fix lint issues
2018-10-10 10:36:12 +01:00

84 lines
2.2 KiB
TypeScript

import {UUID} from './UUID';
import {ClientEvents} from './ClientEvents';
import {InventoryFolder} from './InventoryFolder';
import {Agent} from './Agent';
import {AssetType} from '..';
export class Inventory
{
main: {
skeleton: {[key: string]: InventoryFolder},
root?: UUID
} = {
skeleton: {}
};
library: {
owner?: UUID,
skeleton: {[key: string]: InventoryFolder},
root?: UUID
} = {
skeleton: {}
};
private clientEvents: ClientEvents;
private agent: Agent;
constructor(clientEvents: ClientEvents, agent: Agent)
{
this.agent = agent;
this.clientEvents = clientEvents;
}
getRootFolderLibrary(): InventoryFolder
{
if (this.library.root === undefined)
{
return new 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(this.library, this.agent);
}
}
getRootFolderMain(): InventoryFolder
{
if (this.main.root === undefined)
{
return new 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(this.main, this.agent);
}
}
findFolderForType(type: AssetType): UUID
{
if (this.main.root === undefined)
{
return UUID.zero();
}
if (type === AssetType.Folder)
{
return this.main.root;
}
let found = UUID.zero();
Object.keys(this.main.skeleton).forEach((fUUID) =>
{
const folder = this.main.skeleton[fUUID];
if (folder.typeDefault === type)
{
found = folder.folderID;
}
});
return found;
}
}