mc-beta-server/server/tileentities/TileEntity.ts

35 lines
1 KiB
TypeScript
Raw Permalink Normal View History

2024-11-22 23:51:27 +00:00
import { IReader, IWriter } from "bufferstuff";
2024-11-17 08:26:35 +00:00
import Block from "../blocks/Block";
import TileEntityType from "../enums/TileEntityType";
import Vec3 from "../Vec3";
2024-11-22 23:51:27 +00:00
import TileEntityChest from "./TileEntityChest";
2024-11-17 08:26:35 +00:00
export default class TileEntity {
private readonly type: TileEntityType;
private readonly forBlockId: Block;
private readonly position: Vec3;
public constructor(type: TileEntityType, forBlockId: Block, position: Vec3) {
this.type = type;
this.forBlockId = forBlockId;
this.position = position;
}
2024-11-22 23:51:27 +00:00
public fromSave(reader:IReader) : TileEntity {
let tileEntity:TileEntity;
const type: TileEntityType = reader.readUByte();
const forBlock = Block.blocks[reader.readUByte()];
const position = new Vec3(reader.readUByte(), reader.readUByte(), reader.readUByte());
if (type === TileEntityType.Chest) {
tileEntity = new TileEntityChest(type, forBlock, position);
} else {
tileEntity = new TileEntity(type, forBlock, position);
}
return tileEntity;
}
public toSave(writer:IWriter) {
}
2024-11-17 08:26:35 +00:00
}