feat: visible state packet

This commit is contained in:
cha0s 2019-06-05 20:19:12 -05:00
parent d353648f51
commit 226a71f065
2 changed files with 32 additions and 0 deletions

View File

@ -0,0 +1,12 @@
import {EntityPacket} from '@avocado/entity';
export class TraitVisiblePacket extends EntityPacket {
static get schema() {
const schema = super.schema;
schema.data.isVisible = 'bool';
schema.data.opacity = 'uint8';
return schema;
}
}

View File

@ -6,6 +6,7 @@ import {Rectangle, Vector} from '@avocado/math';
import {Container} from '../container';
import {hasGraphics} from '../has-graphics';
import {TraitVisiblePacket} from '../packets/trait-visible.packet';
const AUTO_ZINDEX = 1 << 16;
@ -70,6 +71,13 @@ export class Visible extends decorate(Trait) {
}
}
acceptPacket(packet) {
if (packet instanceof TraitVisiblePacket) {
this.entity.isVisible = packet.data.isVisible;
this.entity.opacity = packet.data.opacity / 255;
}
}
get container() {
return this._container;
}
@ -83,6 +91,18 @@ 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();
}
return packets;
}
get rawVisibleScale() {
return this._visibleScale;
}