🆙 Update to Pixi.js 8.19.0 and alphablend is now fixed

This commit is contained in:
duckietm
2026-06-05 16:30:22 +02:00
parent d61a07e1e7
commit 20f6af232e
3 changed files with 8 additions and 21 deletions
+1 -1
View File
@@ -37,7 +37,7 @@
"json5": "^2.2.3", "json5": "^2.2.3",
"pako": "^2.1.0", "pako": "^2.1.0",
"pixi-filters": "^6.1.5", "pixi-filters": "^6.1.5",
"pixi.js": "^8.18.1" "pixi.js": "^8.19.0"
}, },
"devDependencies": { "devDependencies": {
"@eslint/js": "^9.13.0", "@eslint/js": "^9.13.0",
+5 -4
View File
@@ -136,10 +136,6 @@ export class RoomPreviewer
public updatePreviewModel(model: string, wallHeight: number, scale: boolean = true): void public updatePreviewModel(model: string, wallHeight: number, scale: boolean = true): void
{ {
// Defensive: dispose() nulls _planeParser, and React 19
// StrictMode dev double-mount can leave a stale reference
// briefly pointing at a disposed instance. Bail rather
// than crashing with "cannot read property reset of null".
if(!this._planeParser) return; if(!this._planeParser) return;
const parser = new FloorHeightMapMessageParser(); const parser = new FloorHeightMapMessageParser();
@@ -394,6 +390,11 @@ export class RoomPreviewer
} }
} }
public setAutomaticStateChange(enabled: boolean): void
{
this._automaticStateChange = enabled;
}
public changeRoomObjectDirection(): void public changeRoomObjectDirection(): void
{ {
if(this.isRoomEngineReady) if(this.isRoomEngineReady)
@@ -1,5 +1,5 @@
import { AlphaTolerance, IGraphicAsset, IObjectVisualizationData, IRoomGeometry, IRoomObjectSprite, RoomObjectVariable, RoomObjectVisualizationType } from '@nitrots/api'; import { AlphaTolerance, IGraphicAsset, IObjectVisualizationData, IRoomGeometry, IRoomObjectSprite, RoomObjectVariable, RoomObjectVisualizationType } from '@nitrots/api';
import { BlackToAlphaFilter, ChooserSelectionFilter } from '@nitrots/utils'; import { ChooserSelectionFilter } from '@nitrots/utils';
import { BLEND_MODES, Filter, Texture } from 'pixi.js'; import { BLEND_MODES, Filter, Texture } from 'pixi.js';
import { RoomObjectSpriteVisualization } from '../RoomObjectSpriteVisualization'; import { RoomObjectSpriteVisualization } from '../RoomObjectSpriteVisualization';
import { ColorData, LayerData } from '../data'; import { ColorData, LayerData } from '../data';
@@ -8,7 +8,6 @@ import { FurnitureVisualizationData } from './FurnitureVisualizationData';
export class FurnitureVisualization extends RoomObjectSpriteVisualization export class FurnitureVisualization extends RoomObjectSpriteVisualization
{ {
protected static DEPTH_MULTIPLIER: number = Math.sqrt(0.5); protected static DEPTH_MULTIPLIER: number = Math.sqrt(0.5);
private static _blackToAlphaFilter: BlackToAlphaFilter = null;
public static TYPE: string = RoomObjectVisualizationType.FURNITURE_STATIC; public static TYPE: string = RoomObjectVisualizationType.FURNITURE_STATIC;
@@ -340,20 +339,7 @@ export class FurnitureVisualization extends RoomObjectSpriteVisualization
const chooserFilters = (sprite.filters || []).filter(f => f instanceof ChooserSelectionFilter); const chooserFilters = (sprite.filters || []).filter(f => f instanceof ChooserSelectionFilter);
if(sprite.blendMode === 'add' && !this.isBackgroundColorBlack()) sprite.filters = chooserFilters.length > 0 ? [...this._filters, ...chooserFilters] : this._filters;
{
if(!FurnitureVisualization._blackToAlphaFilter) FurnitureVisualization._blackToAlphaFilter = new BlackToAlphaFilter();
sprite.filters = chooserFilters.length > 0
? [FurnitureVisualization._blackToAlphaFilter, ...chooserFilters]
: [FurnitureVisualization._blackToAlphaFilter];
}
else
{
sprite.filters = chooserFilters.length > 0
? [...this._filters, ...chooserFilters]
: this._filters;
}
} }
else else
{ {