#pragma once #include "APIHelp.h" #include #include #include //////////////////// Classes //////////////////// class Block; class BlockClass : public ScriptClass { private: Block* block; // Pre data std::string name, type; int id; IntVec4 pos; public: explicit BlockClass(Block const* p); BlockClass(Block const* p, BlockPos bp, int dim); void preloadData(BlockPos bp, int dim); Block* get() { return block; } BlockInstance toBlockInstance() { return BlockInstance::createBlockInstance(block, pos.getBlockPos(), pos.getDimensionId()); } static Local newBlock(Block const* p, BlockPos const* pos, int dim); static Local newBlock(BlockPos const* pos, int dim); static Local newBlock(const BlockPos& pos, int dim); static Local newBlock(Block const* p, BlockPos const* pos, BlockSource const* bs); static Local newBlock(IntVec4 pos); static Local newBlock(BlockInstance block); static Block* extract(Local v); Local asPointer(const Arguments& args); Local getName(); Local getType(); Local getId(); Local getPos(); Local getTileData(); Local getNbt(const Arguments& args); Local setNbt(const Arguments& args); Local getBlockState(const Arguments& args); Local hasContainer(const Arguments& args); Local getContainer(const Arguments& args); Local hasBlockEntity(const Arguments& args); Local getBlockEntity(const Arguments& args); Local removeBlockEntity(const Arguments& args); Local destroyBlock(const Arguments& args); }; extern ClassDefine BlockClassBuilder;