wip: Construct API
This commit is contained in:
@@ -20,4 +20,21 @@ export class Builder {
|
||||
isFlexibleInstanceMoving() {
|
||||
return this.flexibleInstanceMovement !== void 0;
|
||||
}
|
||||
|
||||
asPacket() {
|
||||
return {
|
||||
playerId: this.playerId,
|
||||
easyPlace: this.isOptionEnabled('easyPlace'),
|
||||
fastEasyPlace: this.isOptionEnabled('fastEasyPlace'),
|
||||
materialGrabber: this.isOptionEnabled('materialGrabber'),
|
||||
materialInstanceName: this.materialInstanceName
|
||||
};
|
||||
}
|
||||
|
||||
setOptions(builderOptions) {
|
||||
this.setOption('easyPlace', builderOptions.easyPlace);
|
||||
this.setOption('fastEasyPlace', builderOptions.fastEasyPlace);
|
||||
this.setOption('materialGrabber', builderOptions.materialGrabber);
|
||||
this.materialInstanceName = builderOptions.materialInstanceName;
|
||||
}
|
||||
}
|
||||
@@ -1,29 +1,36 @@
|
||||
import { world } from "@minecraft/server";
|
||||
import { Builder } from "./Builder";
|
||||
import { BuilderNotFoundError } from "../Errors/BuilderNotFoundError";
|
||||
|
||||
export class Builders {
|
||||
static builders = {};
|
||||
|
||||
static add(playerId) {
|
||||
if (this.builders[playerId])
|
||||
if (Builders.builders[playerId])
|
||||
return;
|
||||
this.builders[playerId] = new Builder(playerId);
|
||||
Builders.builders[playerId] = new Builder(playerId);
|
||||
}
|
||||
|
||||
static remove(playerId) {
|
||||
delete this.builders[playerId];
|
||||
delete Builders.builders[playerId];
|
||||
}
|
||||
|
||||
static get(id) {
|
||||
return this.builders[id];
|
||||
const builder = Builders.builders[id];
|
||||
if (builder === void 0)
|
||||
throw new BuilderNotFoundError(id);
|
||||
}
|
||||
|
||||
static onJoin(playerId) {
|
||||
this.add(playerId);
|
||||
Builders.add(playerId);
|
||||
}
|
||||
|
||||
static onLeave(playerId) {
|
||||
this.remove(playerId);
|
||||
Builders.remove(playerId);
|
||||
}
|
||||
|
||||
static getIds() {
|
||||
return Object.keys(Builders.builders);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user