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 {hasGraphics} from '../has-graphics';
|
||||
import {TraitVisiblePacket} from '../packets/trait-visible.packet';
|
||||
import {
|
||||
TraitUpdateVisiblePacket,
|
||||
} from '../packets/trait-update-visible.packet';
|
||||
|
||||
const AUTO_ZINDEX = 1 << 16;
|
||||
|
||||
|
@ -72,7 +74,7 @@ export class Visible extends decorate(Trait) {
|
|||
}
|
||||
|
||||
acceptPacket(packet) {
|
||||
if (packet instanceof TraitVisiblePacket) {
|
||||
if (packet instanceof TraitUpdatedVisiblePacket) {
|
||||
this.entity.isVisible = packet.data.isVisible;
|
||||
this.entity.opacity = packet.data.opacity / 255;
|
||||
}
|
||||
|
@ -92,15 +94,10 @@ export class Visible extends decorate(Trait) {
|
|||
}
|
||||
|
||||
packetsForUpdate() {
|
||||
const packets = [];
|
||||
if (this.isDirty) {
|
||||
packets.push(new TraitVisiblePacket({
|
||||
isVisible: this.entity.isVisible,
|
||||
opacity: Math.floor(this.entity.opacity * 255),
|
||||
}, this.entity));
|
||||
this.makeClean();
|
||||
const {isVisible, opacity} = this.stateDifferences();
|
||||
if (isVisible || opacity) {
|
||||
return new TraitUpdateVisiblePacket(this.state);
|
||||
}
|
||||
return packets;
|
||||
}
|
||||
|
||||
get rawVisibleScale() {
|
||||
|
|
Loading…
Reference in New Issue
Block a user