fix: visible packet
This commit is contained in:
parent
0305d24c73
commit
a2b5583d44
27
packages/graphics/packets/trait-update-visible.packet.js
Normal file
27
packages/graphics/packets/trait-update-visible.packet.js
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
import {Packet} from '@avocado/net';
|
||||||
|
|
||||||
|
export class TraitUpdateVisiblePacket extends Packet {
|
||||||
|
|
||||||
|
static pack(packet) {
|
||||||
|
const data = packet.data[1];
|
||||||
|
data.opacity = Math.floor(data.opacity * 255);
|
||||||
|
return super.pack(packet);
|
||||||
|
}
|
||||||
|
|
||||||
|
static get schema() {
|
||||||
|
return {
|
||||||
|
...super.schema,
|
||||||
|
data: {
|
||||||
|
isVisible: 'bool',
|
||||||
|
opacity: 'uint8',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
static unpack(packet) {
|
||||||
|
const data = super.unpack(packet);
|
||||||
|
data.opacity = data.opacity / 255;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,12 +0,0 @@
|
||||||
import {Packet} from '@avocado/net';
|
|
||||||
|
|
||||||
export class TraitVisiblePacket extends Packet {
|
|
||||||
|
|
||||||
static get schema() {
|
|
||||||
const schema = super.schema;
|
|
||||||
schema.data.isVisible = 'bool';
|
|
||||||
schema.data.opacity = 'uint8';
|
|
||||||
return schema;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -6,7 +6,9 @@ import {Rectangle, Vector} from '@avocado/math';
|
||||||
|
|
||||||
import {Container} from '../container';
|
import {Container} from '../container';
|
||||||
import {hasGraphics} from '../has-graphics';
|
import {hasGraphics} from '../has-graphics';
|
||||||
import {TraitVisiblePacket} from '../packets/trait-visible.packet';
|
import {
|
||||||
|
TraitUpdateVisiblePacket,
|
||||||
|
} from '../packets/trait-update-visible.packet';
|
||||||
|
|
||||||
const AUTO_ZINDEX = 1 << 16;
|
const AUTO_ZINDEX = 1 << 16;
|
||||||
|
|
||||||
|
@ -72,7 +74,7 @@ export class Visible extends decorate(Trait) {
|
||||||
}
|
}
|
||||||
|
|
||||||
acceptPacket(packet) {
|
acceptPacket(packet) {
|
||||||
if (packet instanceof TraitVisiblePacket) {
|
if (packet instanceof TraitUpdatedVisiblePacket) {
|
||||||
this.entity.isVisible = packet.data.isVisible;
|
this.entity.isVisible = packet.data.isVisible;
|
||||||
this.entity.opacity = packet.data.opacity / 255;
|
this.entity.opacity = packet.data.opacity / 255;
|
||||||
}
|
}
|
||||||
|
@ -92,15 +94,10 @@ export class Visible extends decorate(Trait) {
|
||||||
}
|
}
|
||||||
|
|
||||||
packetsForUpdate() {
|
packetsForUpdate() {
|
||||||
const packets = [];
|
const {isVisible, opacity} = this.stateDifferences();
|
||||||
if (this.isDirty) {
|
if (isVisible || opacity) {
|
||||||
packets.push(new TraitVisiblePacket({
|
return new TraitUpdateVisiblePacket(this.state);
|
||||||
isVisible: this.entity.isVisible,
|
|
||||||
opacity: Math.floor(this.entity.opacity * 255),
|
|
||||||
}, this.entity));
|
|
||||||
this.makeClean();
|
|
||||||
}
|
}
|
||||||
return packets;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
get rawVisibleScale() {
|
get rawVisibleScale() {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user