You've already forked Nitro_Render_V3
mirror of
https://github.com/duckietm/Nitro_Render_V3.git
synced 2026-06-20 15:36:18 +00:00
Expose room, user and furni metadata for wired tools
- parse extra room snapshot data such as hotel time, room item limit and group context - expose richer furni metadata including flags, dimensions and teleport targets - expose richer user metadata including room-entry fields and ids needed by inspection tools - keep session and room engine models aligned with the new wired monitor/inspection flow
This commit is contained in:
@@ -24,6 +24,7 @@ export class FurnitureData implements IFurnitureData
|
||||
private _purchaseCouldBeUsedForBuyout: boolean;
|
||||
private _rentCouldBeUsedForBuyout: boolean;
|
||||
private _availableForBuildersClub: boolean;
|
||||
private _allowStack: boolean;
|
||||
private _canStandOn: boolean;
|
||||
private _canSitOn: boolean;
|
||||
private _canLayOn: boolean;
|
||||
@@ -32,7 +33,7 @@ export class FurnitureData implements IFurnitureData
|
||||
private _environment: string;
|
||||
private _rare: boolean;
|
||||
|
||||
constructor(type: FurnitureType, id: number, fullName: string, className: string, category: string, localizedName: string, description: string, revision: number, tileSizeX: number, tileSizeY: number, tileSizeZ: number, colors: number[], hadIndexedColor: boolean, colorIndex: number, adUrl: string, purchaseOfferId: number, purchaseCouldBeUsedForBuyout: boolean, rentOfferId: number, rentCouldBeUsedForBuyout: boolean, availableForBuildersClub: boolean, customParams: string, specialType: number, canStandOn: boolean, canSitOn: boolean, canLayOn: boolean, excludedfromDynamic: boolean, furniLine: string, environment: string, rare: boolean)
|
||||
constructor(type: FurnitureType, id: number, fullName: string, className: string, category: string, localizedName: string, description: string, revision: number, tileSizeX: number, tileSizeY: number, tileSizeZ: number, colors: number[], hadIndexedColor: boolean, colorIndex: number, adUrl: string, purchaseOfferId: number, purchaseCouldBeUsedForBuyout: boolean, rentOfferId: number, rentCouldBeUsedForBuyout: boolean, availableForBuildersClub: boolean, customParams: string, specialType: number, allowStack: boolean, canStandOn: boolean, canSitOn: boolean, canLayOn: boolean, excludedfromDynamic: boolean, furniLine: string, environment: string, rare: boolean)
|
||||
{
|
||||
this._type = type;
|
||||
this._id = id;
|
||||
@@ -56,6 +57,7 @@ export class FurnitureData implements IFurnitureData
|
||||
this._customParams = customParams;
|
||||
this._specialType = specialType;
|
||||
this._availableForBuildersClub = availableForBuildersClub;
|
||||
this._allowStack = allowStack;
|
||||
this._canStandOn = canStandOn;
|
||||
this._canSitOn = canSitOn;
|
||||
this._canLayOn = canLayOn;
|
||||
@@ -180,6 +182,11 @@ export class FurnitureData implements IFurnitureData
|
||||
return this._availableForBuildersClub;
|
||||
}
|
||||
|
||||
public get allowStack(): boolean
|
||||
{
|
||||
return this._allowStack;
|
||||
}
|
||||
|
||||
public get canStandOn(): boolean
|
||||
{
|
||||
return this._canStandOn;
|
||||
|
||||
@@ -82,8 +82,9 @@ export class FurnitureDataLoader
|
||||
const className = classSplit[0];
|
||||
const colorIndex = ((classSplit.length > 1) ? parseInt(classSplit[1]) : 0);
|
||||
const hasColorIndex = (classSplit.length > 1);
|
||||
const allowStack = this.resolveBooleanFlag(furniture.allowstack, furniture.allow_stack, furniture.allowStack);
|
||||
|
||||
const furnitureData = new FurnitureData(FurnitureType.FLOOR, furniture.id, furniture.classname, className, furniture.category, furniture.name, furniture.description, furniture.revision, furniture.xdim, furniture.ydim, 0, colors, hasColorIndex, colorIndex, furniture.adurl, furniture.offerid, furniture.buyout, furniture.rentofferid, furniture.rentbuyout, furniture.bc, furniture.customparams, furniture.specialtype, furniture.canstandon, furniture.cansiton, furniture.canlayon, furniture.excludeddynamic, furniture.furniline, furniture.environment, furniture.rare);
|
||||
const furnitureData = new FurnitureData(FurnitureType.FLOOR, furniture.id, furniture.classname, className, furniture.category, furniture.name, furniture.description, furniture.revision, furniture.xdim, furniture.ydim, 0, colors, hasColorIndex, colorIndex, furniture.adurl, furniture.offerid, furniture.buyout, furniture.rentofferid, furniture.rentbuyout, furniture.bc, furniture.customparams, furniture.specialtype, allowStack, furniture.canstandon, furniture.cansiton, furniture.canlayon, furniture.excludeddynamic, furniture.furniline, furniture.environment, furniture.rare);
|
||||
|
||||
this._floorItems.set(furnitureData.id, furnitureData);
|
||||
|
||||
@@ -99,7 +100,8 @@ export class FurnitureDataLoader
|
||||
{
|
||||
if(!furniture) continue;
|
||||
|
||||
const furnitureData = new FurnitureData(FurnitureType.WALL, furniture.id, furniture.classname, furniture.classname, furniture.category, furniture.name, furniture.description, furniture.revision, 0, 0, 0, null, false, 0, furniture.adurl, furniture.offerid, furniture.buyout, furniture.rentofferid, furniture.rentbuyout, furniture.bc, null, furniture.specialtype, false, false, false, furniture.excludeddynamic, furniture.furniline, furniture.environment, furniture.rare);
|
||||
const allowStack = this.resolveBooleanFlag(furniture.allowstack, furniture.allow_stack, furniture.allowStack);
|
||||
const furnitureData = new FurnitureData(FurnitureType.WALL, furniture.id, furniture.classname, furniture.classname, furniture.category, furniture.name, furniture.description, furniture.revision, 0, 0, 0, null, false, 0, furniture.adurl, furniture.offerid, furniture.buyout, furniture.rentofferid, furniture.rentbuyout, furniture.bc, null, furniture.specialtype, allowStack, false, false, false, furniture.excludeddynamic, furniture.furniline, furniture.environment, furniture.rare);
|
||||
|
||||
this._wallItems.set(furnitureData.id, furnitureData);
|
||||
|
||||
@@ -121,4 +123,26 @@ export class FurnitureDataLoader
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
private resolveBooleanFlag(...values: any[]): boolean
|
||||
{
|
||||
for(const value of values)
|
||||
{
|
||||
if(value === undefined || value === null) continue;
|
||||
|
||||
if(typeof value === 'string')
|
||||
{
|
||||
const normalized = value.trim().toLowerCase();
|
||||
|
||||
if(!normalized.length) continue;
|
||||
|
||||
if([ '1', 'true', 'yes' ].includes(normalized)) return true;
|
||||
if([ '0', 'false', 'no' ].includes(normalized)) return false;
|
||||
}
|
||||
|
||||
return !!value;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user