mirror of
https://github.com/duckietm/Nitro-Cool-UI-Renderer.git
synced 2025-06-21 15:06:58 +00:00
🆙 Fix firework memory leak and update pixi.js
This commit is contained in:
parent
1e4f45a107
commit
14bf0fdcbd
18
package.json
18
package.json
@ -30,21 +30,21 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"howler": "^2.2.4",
|
"howler": "^2.2.4",
|
||||||
"pako": "^2.1.0",
|
"pako": "^2.1.0",
|
||||||
"pixi-filters": "^6.0.4",
|
"pixi-filters": "^6.0.5",
|
||||||
"pixi.js": "^8.1.6",
|
"pixi.js": "^8.4.0",
|
||||||
"clientjs": "^0.2.1"
|
"clientjs": "^0.2.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@eslint/js": "^9.5.0",
|
"@eslint/js": "^9.8.0",
|
||||||
"@rollup/plugin-typescript": "^11.1.6",
|
"@rollup/plugin-typescript": "^11.1.6",
|
||||||
"@types/eslint__js": "^8.42.3",
|
"@types/eslint__js": "^8.42.3",
|
||||||
"@types/howler": "^2.2.11",
|
"@types/howler": "^2.2.11",
|
||||||
"@types/node": "^20.14.4",
|
"@types/node": "^20.14.12",
|
||||||
"@types/pako": "^2.0.3",
|
"@types/pako": "^2.0.3",
|
||||||
"eslint": "^9.5.0",
|
"eslint": "^9.8.0",
|
||||||
"tslib": "^2.3.1",
|
"tslib": "^2.6.3",
|
||||||
"typescript": "~5.4.2",
|
"typescript": "~5.5.4",
|
||||||
"typescript-eslint": "^7.13.1",
|
"typescript-eslint": "^7.17.0",
|
||||||
"vite": "^5.1.3"
|
"vite": "^5.4.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,9 +12,9 @@
|
|||||||
},
|
},
|
||||||
"main": "./index",
|
"main": "./index",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"pixi.js": "^8.1.6"
|
"pixi.js": "^8.2.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"typescript": "~5.4.2"
|
"typescript": "~5.5.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,6 +23,7 @@ export class RoomObjectVariable
|
|||||||
public static FURNITURE_PURCHASER_NAME: string = 'furniture_purchaser_name';
|
public static FURNITURE_PURCHASER_NAME: string = 'furniture_purchaser_name';
|
||||||
public static FURNITURE_PURCHASER_FIGURE: string = 'furniture_purchaser_figure';
|
public static FURNITURE_PURCHASER_FIGURE: string = 'furniture_purchaser_figure';
|
||||||
public static STD: string = 'std';
|
public static STD: string = 'std';
|
||||||
|
public static SWIM: string = 'swm';
|
||||||
public static FIGURE_SIGN: string = 'figure_sign';
|
public static FIGURE_SIGN: string = 'figure_sign';
|
||||||
public static FIGURE_FLAT_CONTROL: string = 'figure_flat_control';
|
public static FIGURE_FLAT_CONTROL: string = 'figure_flat_control';
|
||||||
public static FIGURE_IS_TYPING: string = 'figure_is_typing';
|
public static FIGURE_IS_TYPING: string = 'figure_is_typing';
|
||||||
|
@ -14,10 +14,10 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@nitrots/api": "1.0.0",
|
"@nitrots/api": "1.0.0",
|
||||||
"@nitrots/utils": "1.0.0",
|
"@nitrots/utils": "1.0.0",
|
||||||
"pixi.js": "^8.1.6",
|
"pixi.js": "^8.2.5",
|
||||||
"@pixi/gif": "^3.0.0"
|
"@pixi/gif": "^3.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"typescript": "~5.4.2"
|
"typescript": "~5.5.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,6 @@
|
|||||||
"@nitrots/utils": "1.0.0"
|
"@nitrots/utils": "1.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"typescript": "~5.4.2"
|
"typescript": "~5.5.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -822,6 +822,224 @@ export const HabboAvatarAnimations = {
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id': 'Swim',
|
||||||
|
'parts': [
|
||||||
|
{
|
||||||
|
'setType': 'bds',
|
||||||
|
'frames': [
|
||||||
|
{
|
||||||
|
'number': 0,
|
||||||
|
'assetPartDefinition': 'swm'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 1,
|
||||||
|
'assetPartDefinition': 'swm'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 2,
|
||||||
|
'assetPartDefinition': 'swm'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 3,
|
||||||
|
'assetPartDefinition': 'swm'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'ss',
|
||||||
|
'frames': [
|
||||||
|
{
|
||||||
|
'number': 0,
|
||||||
|
'assetPartDefinition': 'swm'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 1,
|
||||||
|
'assetPartDefinition': 'swm'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 2,
|
||||||
|
'assetPartDefinition': 'swm'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 3,
|
||||||
|
'assetPartDefinition': 'swm'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'lhs',
|
||||||
|
'frames': [
|
||||||
|
{
|
||||||
|
'number': 0,
|
||||||
|
'assetPartDefinition': 'swm'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 1,
|
||||||
|
'assetPartDefinition': 'swm'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 2,
|
||||||
|
'assetPartDefinition': 'swm'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 3,
|
||||||
|
'assetPartDefinition': 'swm'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'rhs',
|
||||||
|
'frames': [
|
||||||
|
{
|
||||||
|
'number': 0,
|
||||||
|
'assetPartDefinition': 'swm'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 1,
|
||||||
|
'assetPartDefinition': 'swm'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 2,
|
||||||
|
'assetPartDefinition': 'swm'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 3,
|
||||||
|
'assetPartDefinition': 'swm'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id': 'Float',
|
||||||
|
'parts': [
|
||||||
|
{
|
||||||
|
'setType': 'bds',
|
||||||
|
'frames': [
|
||||||
|
{
|
||||||
|
'number': 3,
|
||||||
|
'assetPartDefinition': 'sws'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 3,
|
||||||
|
'assetPartDefinition': 'sws'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 2,
|
||||||
|
'assetPartDefinition': 'sws'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 1,
|
||||||
|
'assetPartDefinition': 'sws'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 0,
|
||||||
|
'assetPartDefinition': 'sws'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'ss',
|
||||||
|
'frames': [
|
||||||
|
{
|
||||||
|
'number': 0,
|
||||||
|
'assetPartDefinition': 'sws'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'lhs',
|
||||||
|
'frames': [
|
||||||
|
{
|
||||||
|
'number': 0,
|
||||||
|
'assetPartDefinition': 'sws'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 0,
|
||||||
|
'assetPartDefinition': 'sws'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 1,
|
||||||
|
'assetPartDefinition': 'sws'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 1,
|
||||||
|
'assetPartDefinition': 'sws'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 2,
|
||||||
|
'assetPartDefinition': 'sws'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 3,
|
||||||
|
'assetPartDefinition': 'sws'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 3,
|
||||||
|
'assetPartDefinition': 'sws'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 2,
|
||||||
|
'assetPartDefinition': 'sws'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 1,
|
||||||
|
'assetPartDefinition': 'sws'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 1,
|
||||||
|
'assetPartDefinition': 'sws'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'rhs',
|
||||||
|
'frames': [
|
||||||
|
{
|
||||||
|
'number': 0,
|
||||||
|
'assetPartDefinition': 'sws'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 0,
|
||||||
|
'assetPartDefinition': 'sws'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 1,
|
||||||
|
'assetPartDefinition': 'sws'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 1,
|
||||||
|
'assetPartDefinition': 'sws'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 2,
|
||||||
|
'assetPartDefinition': 'sws'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 3,
|
||||||
|
'assetPartDefinition': 'sws'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 3,
|
||||||
|
'assetPartDefinition': 'sws'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 2,
|
||||||
|
'assetPartDefinition': 'sws'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 1,
|
||||||
|
'assetPartDefinition': 'sws'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'number': 1,
|
||||||
|
'assetPartDefinition': 'sws'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
]
|
||||||
};
|
};
|
||||||
|
@ -75,8 +75,8 @@ export const HabboAvatarGeometry = {
|
|||||||
'id': 'swim',
|
'id': 'swim',
|
||||||
'width': 64,
|
'width': 64,
|
||||||
'height': 70,
|
'height': 70,
|
||||||
'dx': 25,
|
'dx': 0,
|
||||||
'dy': 10
|
'dy': 0
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@ -1715,6 +1715,46 @@ export const HabboAvatarGeometry = {
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
'id': 'leftarm',
|
||||||
|
'x': -1,
|
||||||
|
'y': 0,
|
||||||
|
'z': 0.0,
|
||||||
|
'radius': 0.6,
|
||||||
|
'items': [
|
||||||
|
{
|
||||||
|
'id': 'lhs',
|
||||||
|
'x': 0,
|
||||||
|
'y': 0,
|
||||||
|
'z': 0,
|
||||||
|
'radius': 0.01,
|
||||||
|
'nx': 0,
|
||||||
|
'ny': 0,
|
||||||
|
'nz': -1,
|
||||||
|
'double': false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id': 'rightarm',
|
||||||
|
'x': 1,
|
||||||
|
'y': 0,
|
||||||
|
'z': 0.0,
|
||||||
|
'radius': 0.6,
|
||||||
|
'items': [
|
||||||
|
{
|
||||||
|
'id': 'rhs',
|
||||||
|
'x': 0,
|
||||||
|
'y': 0,
|
||||||
|
'z': 0,
|
||||||
|
'radius': 0.01,
|
||||||
|
'nx': 0,
|
||||||
|
'ny': 0,
|
||||||
|
'nz': -1,
|
||||||
|
'double': false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
'id': 'head',
|
'id': 'head',
|
||||||
'x': 0,
|
'x': 0,
|
||||||
|
@ -412,6 +412,72 @@ export const HabboAvatarPartSets = {
|
|||||||
'setType': 'ri'
|
'setType': 'ri'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id': 'swim',
|
||||||
|
'activeParts': [
|
||||||
|
{
|
||||||
|
'setType': 'bds'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'ss'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'lhs'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'rhs'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id': 'snowwarrun',
|
||||||
|
'activeParts': [
|
||||||
|
{
|
||||||
|
'setType': 'ch'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id': 'snowwarpick',
|
||||||
|
'activeParts': [
|
||||||
|
{
|
||||||
|
'setType': 'ch'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'hd'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id': 'snowwardiefront',
|
||||||
|
'activeParts': [
|
||||||
|
{
|
||||||
|
'setType': 'ch'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'hd'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id': 'snowwardieback',
|
||||||
|
'activeParts': [
|
||||||
|
{
|
||||||
|
'setType': 'ch'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'hd'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id': 'snowwarthrow',
|
||||||
|
'activeParts': [
|
||||||
|
{
|
||||||
|
'setType': 'ch'
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -14,9 +14,9 @@
|
|||||||
"@nitrots/configuration": "1.0.0",
|
"@nitrots/configuration": "1.0.0",
|
||||||
"@nitrots/events": "1.0.0",
|
"@nitrots/events": "1.0.0",
|
||||||
"@nitrots/utils": "1.0.0",
|
"@nitrots/utils": "1.0.0",
|
||||||
"pixi.js": "^8.1.6"
|
"pixi.js": "^8.2.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"typescript": "~5.4.2"
|
"typescript": "~5.5.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,6 @@
|
|||||||
"@nitrots/utils": "1.0.0"
|
"@nitrots/utils": "1.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"typescript": "~5.4.2"
|
"typescript": "~5.5.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -103,10 +103,10 @@ export class RoomUnitStatusParser implements IMessageParser
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
statusActions.push(new RoomUnitStatusAction(parts[0], parts[1]));
|
statusActions.push(new RoomUnitStatusAction(parts[0], parts[1]));
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
this._statuses.push(new RoomUnitStatusMessage(unitId, x, y, z, height, headDirection, direction, targetX, targetY, targetZ, didMove, canStandUp, statusActions));
|
this._statuses.push(new RoomUnitStatusMessage(unitId, x, y, z, height, headDirection, direction, targetX, targetY, targetZ, didMove, canStandUp, statusActions));
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,6 @@
|
|||||||
"@nitrots/utils": "1.0.0"
|
"@nitrots/utils": "1.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"typescript": "~5.4.2"
|
"typescript": "~5.5.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,6 @@
|
|||||||
"@nitrots/utils": "1.0.0"
|
"@nitrots/utils": "1.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"typescript": "~5.4.2"
|
"typescript": "~5.5.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,9 +13,9 @@
|
|||||||
"@nitrots/communication": "1.0.0",
|
"@nitrots/communication": "1.0.0",
|
||||||
"@nitrots/configuration": "1.0.0",
|
"@nitrots/configuration": "1.0.0",
|
||||||
"@nitrots/events": "1.0.0",
|
"@nitrots/events": "1.0.0",
|
||||||
"pixi.js": "^8.1.6"
|
"pixi.js": "^8.2.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"typescript": "~5.4.2"
|
"typescript": "~5.5.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,9 +16,9 @@
|
|||||||
"@nitrots/configuration": "1.0.0",
|
"@nitrots/configuration": "1.0.0",
|
||||||
"@nitrots/events": "1.0.0",
|
"@nitrots/events": "1.0.0",
|
||||||
"@nitrots/session": "1.0.0",
|
"@nitrots/session": "1.0.0",
|
||||||
"pixi.js": "^8.1.6"
|
"pixi.js": "^8.2.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"typescript": "~5.4.2"
|
"typescript": "~5.5.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -712,6 +712,8 @@ export class RoomMessageHandler
|
|||||||
let postureUpdate = false;
|
let postureUpdate = false;
|
||||||
let postureType = RoomObjectVariable.STD;
|
let postureType = RoomObjectVariable.STD;
|
||||||
let parameter = '';
|
let parameter = '';
|
||||||
|
let moveUpdate = false;
|
||||||
|
let swimUpdate = false;
|
||||||
|
|
||||||
if(status.actions && status.actions.length)
|
if(status.actions && status.actions.length)
|
||||||
{
|
{
|
||||||
@ -736,6 +738,13 @@ export class RoomMessageHandler
|
|||||||
break;
|
break;
|
||||||
case 'wav':
|
case 'wav':
|
||||||
case 'mv':
|
case 'mv':
|
||||||
|
moveUpdate = true;
|
||||||
|
postureUpdate = true;
|
||||||
|
postureType = action.action;
|
||||||
|
parameter = action.value;
|
||||||
|
break;
|
||||||
|
case 'swim':
|
||||||
|
swimUpdate = true;
|
||||||
postureUpdate = true;
|
postureUpdate = true;
|
||||||
postureType = action.action;
|
postureType = action.action;
|
||||||
parameter = action.value;
|
parameter = action.value;
|
||||||
@ -750,6 +759,12 @@ export class RoomMessageHandler
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!moveUpdate && swimUpdate)
|
||||||
|
{
|
||||||
|
postureUpdate = true;
|
||||||
|
postureType = 'float';
|
||||||
|
}
|
||||||
|
|
||||||
if(postureUpdate) this._roomEngine.updateRoomObjectUserPosture(this._currentRoomId, status.id, postureType, parameter);
|
if(postureUpdate) this._roomEngine.updateRoomObjectUserPosture(this._currentRoomId, status.id, postureType, parameter);
|
||||||
else if(isPosture) this._roomEngine.updateRoomObjectUserPosture(this._currentRoomId, status.id, RoomObjectVariable.STD, '');
|
else if(isPosture) this._roomEngine.updateRoomObjectUserPosture(this._currentRoomId, status.id, RoomObjectVariable.STD, '');
|
||||||
}
|
}
|
||||||
|
@ -26,6 +26,7 @@ export class FurnitureParticleSystem
|
|||||||
private _blend: number = 1;
|
private _blend: number = 1;
|
||||||
private _bgColor: number = 0xFF000000;
|
private _bgColor: number = 0xFF000000;
|
||||||
private _emptySprite: Sprite;
|
private _emptySprite: Sprite;
|
||||||
|
private _particleSprite: Sprite;
|
||||||
private _isDone: boolean = false;
|
private _isDone: boolean = false;
|
||||||
|
|
||||||
constructor(visualization: FurnitureAnimatedVisualization)
|
constructor(visualization: FurnitureAnimatedVisualization)
|
||||||
@ -37,6 +38,7 @@ export class FurnitureParticleSystem
|
|||||||
this._particleColorTransform = new AlphaFilter();
|
this._particleColorTransform = new AlphaFilter();
|
||||||
this._identityMatrix = new Matrix();
|
this._identityMatrix = new Matrix();
|
||||||
this._translationMatrix = new Matrix();
|
this._translationMatrix = new Matrix();
|
||||||
|
this._particleSprite = new Sprite();
|
||||||
}
|
}
|
||||||
|
|
||||||
public dispose(): void
|
public dispose(): void
|
||||||
@ -63,6 +65,12 @@ export class FurnitureParticleSystem
|
|||||||
this._emptySprite = null;
|
this._emptySprite = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this._particleSprite)
|
||||||
|
{
|
||||||
|
this._particleSprite.destroy();
|
||||||
|
this._particleSprite = null;
|
||||||
|
}
|
||||||
|
|
||||||
this._blackOverlayAlphaTransform = null;
|
this._blackOverlayAlphaTransform = null;
|
||||||
this._particleColorTransform = null;
|
this._particleColorTransform = null;
|
||||||
this._identityMatrix = null;
|
this._identityMatrix = null;
|
||||||
@ -101,7 +109,11 @@ export class FurnitureParticleSystem
|
|||||||
{
|
{
|
||||||
if((this._roomSprite.width <= 1) || (this._roomSprite.height <= 1)) return;
|
if((this._roomSprite.width <= 1) || (this._roomSprite.height <= 1)) return;
|
||||||
|
|
||||||
if(this._canvasTexture && ((this._canvasTexture.width !== this._roomSprite.width) || (this._canvasTexture.height !== this._roomSprite.height))) this._canvasTexture = null;
|
if(this._canvasTexture && ((this._canvasTexture.width !== this._roomSprite.width) || (this._canvasTexture.height !== this._roomSprite.height)))
|
||||||
|
{
|
||||||
|
this._canvasTexture.destroy();
|
||||||
|
this._canvasTexture = null;
|
||||||
|
}
|
||||||
|
|
||||||
this.clearCanvas();
|
this.clearCanvas();
|
||||||
|
|
||||||
@ -172,43 +184,50 @@ export class FurnitureParticleSystem
|
|||||||
const ty = ((this._centerY - offsetY) + ((((particle.y + ((particle.x + particle.z) / 2)) * k) / 10) * this._scaleMultiplier));
|
const ty = ((this._centerY - offsetY) + ((((particle.y + ((particle.x + particle.z) / 2)) * k) / 10) * this._scaleMultiplier));
|
||||||
const asset = particle.getAsset();
|
const asset = particle.getAsset();
|
||||||
|
|
||||||
|
this._particleSprite.texture = null;
|
||||||
|
this._particleSprite.tint = 0xFFFFFF;
|
||||||
|
this._particleSprite.width = 1;
|
||||||
|
this._particleSprite.height = 1;
|
||||||
|
this._particleSprite.x = 0;
|
||||||
|
this._particleSprite.y = 0;
|
||||||
|
this._particleSprite.filters = [];
|
||||||
|
|
||||||
if(asset && asset.texture)
|
if(asset && asset.texture)
|
||||||
{
|
{
|
||||||
|
this._particleSprite.texture = asset.texture;
|
||||||
|
this._particleSprite.width = asset.texture.width;
|
||||||
|
this._particleSprite.height = asset.texture.height;
|
||||||
|
|
||||||
if(particle.fade && (particle.alphaMultiplier < 1))
|
if(particle.fade && (particle.alphaMultiplier < 1))
|
||||||
{
|
{
|
||||||
this._translationMatrix.identity();
|
this._translationMatrix.identity();
|
||||||
this._translationMatrix.translate((tx + asset.offsetX), (ty + asset.offsetY));
|
this._translationMatrix.translate((tx + asset.offsetX), (ty + asset.offsetY));
|
||||||
|
|
||||||
const sprite = new Sprite(asset.texture);
|
|
||||||
|
|
||||||
this._particleColorTransform.alpha = particle.alphaMultiplier;
|
this._particleColorTransform.alpha = particle.alphaMultiplier;
|
||||||
|
|
||||||
sprite.filters = [this._particleColorTransform];
|
this._particleSprite.filters = [this._particleColorTransform];
|
||||||
|
|
||||||
TextureUtils.writeToTexture(sprite, this._canvasTexture, false, this._translationMatrix);
|
TextureUtils.writeToTexture(this._particleSprite, this._canvasTexture, false, this._translationMatrix);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
const point = new Point((tx + asset.offsetX), (ty + asset.offsetY));
|
const point = new Point((tx + asset.offsetX), (ty + asset.offsetY));
|
||||||
const sprite = new Sprite(asset.texture);
|
|
||||||
|
|
||||||
sprite.x = point.x;
|
this._particleSprite.x = point.x;
|
||||||
sprite.y = point.y;
|
this._particleSprite.y = point.y;
|
||||||
|
|
||||||
TextureUtils.writeToTexture(sprite, this._canvasTexture, false);
|
TextureUtils.writeToTexture(this._particleSprite, this._canvasTexture, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
const sprite = new Sprite(Texture.WHITE);
|
this._particleSprite.tint = 0xFFFFFF;
|
||||||
|
this._particleSprite.x = (tx - 1);
|
||||||
|
this._particleSprite.y = (ty - 1);
|
||||||
|
this._particleSprite.width = 2;
|
||||||
|
this._particleSprite.height = 2;
|
||||||
|
|
||||||
sprite.tint = 0xFFFFFF;
|
TextureUtils.writeToTexture(this._particleSprite, this._canvasTexture, false);
|
||||||
sprite.x = (tx - 1);
|
|
||||||
sprite.y = (ty - 1);
|
|
||||||
sprite.width = 2;
|
|
||||||
sprite.height = 2;
|
|
||||||
|
|
||||||
TextureUtils.writeToTexture(sprite, this._canvasTexture, false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -289,15 +308,17 @@ export class FurnitureParticleSystem
|
|||||||
|
|
||||||
if(this._currentEmitter) this._currentEmitter.copyStateFrom(particleSystem._currentEmitter, (particleSystem._size / this._size));
|
if(this._currentEmitter) this._currentEmitter.copyStateFrom(particleSystem._currentEmitter, (particleSystem._size / this._size));
|
||||||
|
|
||||||
|
if (this._canvasTexture) {
|
||||||
|
this._canvasTexture.destroy();
|
||||||
this._canvasTexture = null;
|
this._canvasTexture = null;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private clearCanvas(): void
|
private clearCanvas(): void
|
||||||
{
|
{
|
||||||
if(!this._emptySprite)
|
if(!this._emptySprite)
|
||||||
{
|
{
|
||||||
this._emptySprite = new Sprite(Texture.EMPTY);
|
this._emptySprite = new Sprite(Texture.EMPTY);
|
||||||
|
|
||||||
this._emptySprite.alpha = 0;
|
this._emptySprite.alpha = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,9 +15,9 @@
|
|||||||
"@nitrots/configuration": "1.0.0",
|
"@nitrots/configuration": "1.0.0",
|
||||||
"@nitrots/events": "1.0.0",
|
"@nitrots/events": "1.0.0",
|
||||||
"@nitrots/localization": "1.0.0",
|
"@nitrots/localization": "1.0.0",
|
||||||
"pixi.js": "^8.1.6"
|
"pixi.js": "^8.2.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"typescript": "~5.4.2"
|
"typescript": "~5.5.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,9 +11,9 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@nitrots/api": "1.0.0",
|
"@nitrots/api": "1.0.0",
|
||||||
"@nitrots/communication": "1.0.0",
|
"@nitrots/communication": "1.0.0",
|
||||||
"pixi.js": "^8.1.6"
|
"pixi.js": "^8.2.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"typescript": "~5.4.2"
|
"typescript": "~5.5.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,10 +11,10 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@nitrots/api": "1.0.0",
|
"@nitrots/api": "1.0.0",
|
||||||
"pako": "^2.1.0",
|
"pako": "^2.1.0",
|
||||||
"pixi.js": "^8.1.6"
|
"pixi.js": "^8.2.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/pako": "^2.0.3",
|
"@types/pako": "^2.0.3",
|
||||||
"typescript": "~5.4.2"
|
"typescript": "~5.5.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import { BufferImageSource, Filter, FilterSystem, GlProgram, RenderSurface, Texture } from 'pixi.js';
|
import { BufferImageSource, Filter, FilterSystem, GlProgram, RenderSurface, Texture } from 'pixi.js';
|
||||||
import { TextureUtils } from '../TextureUtils';
|
|
||||||
|
|
||||||
export interface PaletteMapFilterOptions
|
export interface PaletteMapFilterOptions
|
||||||
{
|
{
|
||||||
@ -98,11 +97,6 @@ export class PaletteMapFilter extends Filter
|
|||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
(async () =>
|
|
||||||
{
|
|
||||||
console.log(await TextureUtils.generateImageUrl(lutTexture));
|
|
||||||
})();
|
|
||||||
|
|
||||||
super({
|
super({
|
||||||
gpuProgram: null,
|
gpuProgram: null,
|
||||||
glProgram,
|
glProgram,
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
import { GetRoomEngine, RoomEngine } from '@nitrots/room';
|
import { GetRoomEngine, RoomEngine } from '@nitrots/room';
|
||||||
import { GetRenderer, GetTexturePool } from '@nitrots/utils';
|
|
||||||
import { Texture, TextureGCSystem, TextureSource } from 'pixi.js';
|
|
||||||
export { };
|
export { };
|
||||||
|
|
||||||
declare global
|
declare global
|
||||||
@ -9,17 +7,11 @@ declare global
|
|||||||
{
|
{
|
||||||
NitroDevTools?:
|
NitroDevTools?:
|
||||||
{
|
{
|
||||||
roomEngine(): RoomEngine;
|
roomEngine: RoomEngine;
|
||||||
textureCache(): TextureSource<any>[];
|
|
||||||
texturePool(): { [index: string]: { [index: string]: Texture[] } };
|
|
||||||
textureGC(): TextureGCSystem;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
window.NitroDevTools = {
|
window.NitroDevTools = {
|
||||||
roomEngine: () => GetRoomEngine(),
|
roomEngine: GetRoomEngine()
|
||||||
textureCache: () => GetRenderer().texture.managedTextures,
|
|
||||||
texturePool: () => GetTexturePool().textures,
|
|
||||||
textureGC: () => GetRenderer().textureGC
|
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user