mirror of
https://github.com/billsonnn/nitro-renderer.git
synced 2025-01-19 06:46:28 +01:00
Fix present logic
This commit is contained in:
parent
089db9cd2a
commit
cfa1b6a6ab
@ -1,4 +1,5 @@
|
|||||||
import { IAssetData } from '../../../../../core/asset/interfaces';
|
import { IAssetData } from '../../../../../core/asset/interfaces';
|
||||||
|
import { IParticleSystem } from '../../../../../core/asset/interfaces/particlesystem';
|
||||||
import { RoomSpriteMouseEvent } from '../../../../../room/events/RoomSpriteMouseEvent';
|
import { RoomSpriteMouseEvent } from '../../../../../room/events/RoomSpriteMouseEvent';
|
||||||
import { RoomObjectUpdateMessage } from '../../../../../room/messages/RoomObjectUpdateMessage';
|
import { RoomObjectUpdateMessage } from '../../../../../room/messages/RoomObjectUpdateMessage';
|
||||||
import { IRoomGeometry } from '../../../../../room/utils/IRoomGeometry';
|
import { IRoomGeometry } from '../../../../../room/utils/IRoomGeometry';
|
||||||
@ -32,7 +33,10 @@ export class FurniturePresentLogic extends FurnitureLogic
|
|||||||
{
|
{
|
||||||
super.initialize(asset);
|
super.initialize(asset);
|
||||||
|
|
||||||
// particle system etc
|
if(asset.particleSystems && asset.particleSystems.length)
|
||||||
|
{
|
||||||
|
this.object.model.setValue<IParticleSystem[]>(RoomObjectVariable.FURNITURE_FIREWORKS_DATA, asset.particleSystems);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public processUpdateMessage(message: RoomObjectUpdateMessage): void
|
public processUpdateMessage(message: RoomObjectUpdateMessage): void
|
||||||
|
@ -119,9 +119,9 @@ export class FurnitureParticleSystem
|
|||||||
|
|
||||||
if(!this._emptySprite)
|
if(!this._emptySprite)
|
||||||
{
|
{
|
||||||
this._emptySprite = new NitroSprite(Texture.WHITE);
|
this._emptySprite = new NitroSprite(Texture.EMPTY);
|
||||||
|
|
||||||
this._emptySprite.tint = this._bgColor;
|
this._emptySprite.alpha = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
this._centerX = -(this._roomSprite.offsetX);
|
this._centerX = -(this._roomSprite.offsetX);
|
||||||
@ -183,25 +183,10 @@ export class FurnitureParticleSystem
|
|||||||
|
|
||||||
if(!this._canvasTexture) this.updateCanvas();
|
if(!this._canvasTexture) this.updateCanvas();
|
||||||
|
|
||||||
if(this._blackOverlayAlphaTransform.alpha === 1)
|
Nitro.instance.renderer.render(this._emptySprite, {
|
||||||
{
|
renderTexture: this._canvasTexture,
|
||||||
this._emptySprite.filters = null;
|
clear: true
|
||||||
|
});
|
||||||
Nitro.instance.renderer.render(this._emptySprite, {
|
|
||||||
renderTexture: this._canvasTexture,
|
|
||||||
clear: true
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this._emptySprite.filters = [ this._blackOverlayAlphaTransform ];
|
|
||||||
|
|
||||||
Nitro.instance.renderer.render(this._emptySprite, {
|
|
||||||
renderTexture: this._canvasTexture,
|
|
||||||
transform: this._identityMatrix,
|
|
||||||
clear: true
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
for(const particle of this._currentEmitter.particles)
|
for(const particle of this._currentEmitter.particles)
|
||||||
{
|
{
|
||||||
@ -209,16 +194,14 @@ 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();
|
||||||
|
|
||||||
if(asset)
|
if(asset && asset.texture)
|
||||||
{
|
{
|
||||||
const texture = asset.texture;
|
|
||||||
|
|
||||||
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 NitroSprite(texture);
|
const sprite = new NitroSprite(asset.texture);
|
||||||
|
|
||||||
this._particleColorTransform.alpha = particle.alphaMultiplier;
|
this._particleColorTransform.alpha = particle.alphaMultiplier;
|
||||||
|
|
||||||
@ -233,8 +216,7 @@ export class FurnitureParticleSystem
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
const point = new NitroPoint((tx + asset.offsetX), (ty + asset.offsetY));
|
const point = new NitroPoint((tx + asset.offsetX), (ty + asset.offsetY));
|
||||||
|
const sprite = new NitroSprite(asset.texture);
|
||||||
const sprite = new NitroSprite(texture);
|
|
||||||
|
|
||||||
sprite.x = point.x;
|
sprite.x = point.x;
|
||||||
sprite.y = point.y;
|
sprite.y = point.y;
|
||||||
|
Loading…
Reference in New Issue
Block a user