silphius/app/net/client/client.js

32 lines
643 B
JavaScript
Raw Normal View History

2024-06-10 22:42:30 -05:00
import {CLIENT_LATENCY} from '@/constants.js';
export default class Client {
constructor() {
this.listeners = [];
}
accept(packet) {
for (const i in this.listeners) {
this.listeners[i](packet);
}
}
addPacketListener(listener) {
this.listeners.push(listener);
}
removePacketListener(listener) {
const index = this.listeners.indexOf(listener);
if (-1 !== index) {
this.listeners.splice(index, 1);
}
}
send(packet) {
if (CLIENT_LATENCY > 0) {
setTimeout(() => {
this.transmit(packet);
}, CLIENT_LATENCY);
}
else {
this.transmit(packet);
}
}
}