🆙 refectorimng room.nitro to be loaded by the renderer
|
Before Width: | Height: | Size: 390 KiB |
@@ -4,6 +4,7 @@ import { AnimatedGIF } from '@pixi/gif';
|
||||
import { Assets, Spritesheet, SpritesheetData, Texture } from 'pixi.js';
|
||||
import { GraphicAssetCollection } from './GraphicAssetCollection';
|
||||
|
||||
|
||||
export class AssetManager implements IAssetManager
|
||||
{
|
||||
private _textures: Map<string, Texture> = new Map();
|
||||
@@ -84,7 +85,6 @@ export class AssetManager implements IAssetManager
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
catch (err)
|
||||
{
|
||||
NitroLogger.error(err);
|
||||
@@ -99,6 +99,20 @@ export class AssetManager implements IAssetManager
|
||||
{
|
||||
if(!url || !url.length) return false;
|
||||
|
||||
if(url.startsWith('local://'))
|
||||
{
|
||||
const key = url.substring('local://'.length);
|
||||
|
||||
switch(key)
|
||||
{
|
||||
case 'room':
|
||||
await this.loadLocalRoom();
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
if(url.endsWith('.nitro') || url.endsWith('.gif'))
|
||||
{
|
||||
const response = await fetch(url);
|
||||
@@ -150,7 +164,6 @@ export class AssetManager implements IAssetManager
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
catch (err)
|
||||
{
|
||||
NitroLogger.error(err);
|
||||
@@ -159,6 +172,43 @@ export class AssetManager implements IAssetManager
|
||||
}
|
||||
}
|
||||
|
||||
private async loadLocalRoom(): Promise<void>
|
||||
{
|
||||
const roomDataModule = await import('./assets/room/room.asset.json');
|
||||
const roomData = (roomDataModule.default ?? roomDataModule) as IAssetData;
|
||||
const collection = this.createCollection(roomData, null) as GraphicAssetCollection;
|
||||
if(!collection) return;
|
||||
|
||||
const roomImages = import.meta.glob('./assets/room/*.png', { eager: true });
|
||||
const roomImagesSub = import.meta.glob('./assets/room/images/*.png', { eager: true });
|
||||
const merged = { ...roomImages, ...roomImagesSub };
|
||||
|
||||
for(const path in merged)
|
||||
{
|
||||
const mod = merged[path];
|
||||
const imageUrl = (mod.default ?? mod) as string;
|
||||
|
||||
const file = path.split('/').pop()!;
|
||||
const rawName = file.replace(/\.png$/i, '');
|
||||
|
||||
const texture = await Assets.load<Texture>(imageUrl);
|
||||
if(!texture) continue;
|
||||
|
||||
this.setTexture(rawName, texture);
|
||||
|
||||
collection.textures.set(rawName, texture);
|
||||
|
||||
if(rawName.startsWith('room_'))
|
||||
{
|
||||
const normalizedName = rawName.substring('room_'.length);
|
||||
this.setTexture(normalizedName, texture);
|
||||
collection.textures.set(normalizedName, texture);
|
||||
}
|
||||
}
|
||||
|
||||
collection.define(roomData);
|
||||
}
|
||||
|
||||
private async processAsset(texture: Texture, data: IAssetData): Promise<IGraphicAssetCollection>
|
||||
{
|
||||
let spritesheet: Spritesheet<SpritesheetData> = null;
|
||||
|
||||
|
After Width: | Height: | Size: 133 B |
|
After Width: | Height: | Size: 243 B |
|
After Width: | Height: | Size: 237 B |
|
After Width: | Height: | Size: 446 B |
|
After Width: | Height: | Size: 132 B |
|
After Width: | Height: | Size: 131 B |
|
After Width: | Height: | Size: 215 B |
|
After Width: | Height: | Size: 432 B |
|
After Width: | Height: | Size: 230 B |
|
After Width: | Height: | Size: 151 B |
|
After Width: | Height: | Size: 128 B |
|
After Width: | Height: | Size: 166 B |
|
After Width: | Height: | Size: 105 B |
|
After Width: | Height: | Size: 269 B |
|
After Width: | Height: | Size: 128 B |
|
After Width: | Height: | Size: 162 B |
|
After Width: | Height: | Size: 87 B |
|
After Width: | Height: | Size: 106 B |
|
After Width: | Height: | Size: 194 B |
|
After Width: | Height: | Size: 303 B |
|
After Width: | Height: | Size: 103 B |
|
After Width: | Height: | Size: 158 B |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 9.6 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 599 B |
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 5.2 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 7.9 KiB |
|
After Width: | Height: | Size: 158 B |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 7.4 KiB |
|
After Width: | Height: | Size: 7.7 KiB |
|
After Width: | Height: | Size: 352 B |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 147 B |
|
After Width: | Height: | Size: 373 B |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 734 B |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 323 B |
|
After Width: | Height: | Size: 214 B |
|
After Width: | Height: | Size: 169 B |
|
After Width: | Height: | Size: 151 B |
|
After Width: | Height: | Size: 139 B |
|
After Width: | Height: | Size: 138 B |
|
After Width: | Height: | Size: 150 B |
|
After Width: | Height: | Size: 303 B |
|
After Width: | Height: | Size: 124 B |
|
After Width: | Height: | Size: 117 B |
|
After Width: | Height: | Size: 183 B |
|
After Width: | Height: | Size: 176 B |
|
After Width: | Height: | Size: 294 B |
|
After Width: | Height: | Size: 129 B |
|
After Width: | Height: | Size: 172 B |
|
After Width: | Height: | Size: 319 B |
|
After Width: | Height: | Size: 199 B |
|
After Width: | Height: | Size: 187 B |
|
After Width: | Height: | Size: 200 B |
|
After Width: | Height: | Size: 187 B |
|
After Width: | Height: | Size: 199 B |
|
After Width: | Height: | Size: 199 B |
|
After Width: | Height: | Size: 198 B |
|
After Width: | Height: | Size: 91 B |
|
After Width: | Height: | Size: 88 B |
|
After Width: | Height: | Size: 153 B |
|
After Width: | Height: | Size: 152 B |
|
After Width: | Height: | Size: 161 B |
|
After Width: | Height: | Size: 164 B |
|
After Width: | Height: | Size: 179 B |
|
After Width: | Height: | Size: 176 B |
|
After Width: | Height: | Size: 160 B |
|
After Width: | Height: | Size: 224 B |
|
After Width: | Height: | Size: 257 B |
|
After Width: | Height: | Size: 209 B |
|
After Width: | Height: | Size: 426 B |
|
After Width: | Height: | Size: 257 B |
|
After Width: | Height: | Size: 247 B |
|
After Width: | Height: | Size: 183 B |
|
After Width: | Height: | Size: 231 B |
|
After Width: | Height: | Size: 212 B |
|
After Width: | Height: | Size: 203 B |
|
After Width: | Height: | Size: 204 B |
|
After Width: | Height: | Size: 199 B |
|
After Width: | Height: | Size: 202 B |