#include #include #include #include #include #include // StructureTemplate StructureTemplate::fromTag(std::string name, CompoundTag const& tag) { // StructureTemplate st(name); // // st.getName(name_span) // st.getData()->load(tag); // return st; // } // StructureTemplate::StructureTemplate(class StructureTemplate const& copy) // : StructureTemplate(copy.getName()) { // load(*copy.save()); // } // // bool StructureTemplate::load(CompoundTag const& tag) // //{ // // return getData()->load(tag); // // } // std::unique_ptr StructureTemplate::toTag() { // return save(); // } // StructureTemplate StructureTemplate::fromWorld(std::string name, int dimID, BlockPos p1, BlockPos p2, bool ignoreBlocks, bool ignoreEntities) { // auto st = StructureTemplate(name); // // st.getName(); // BlockPos start = {std::min(p1.x, p2.x), std::min(p1.y, p2.y), std::min(p1.z, p2.z)}; // BlockPos size = {std::abs(p1.x - p2.x) + 1, std::abs(p1.y - p2.y) + 1, std::abs(p1.z - p2.z) + 1}; // auto setting = StructureSettings(); // setting.setIgnoreBlocks(ignoreBlocks); // setting.setIgnoreEntities(ignoreEntities); // setting.setStructureSize(size); // st.fillFromWorld(*Level::getBlockSource(dimID), start, setting); // return st; // } // #include // bool StructureTemplate::toWorld(int dimID, BlockPos const& p1, Mirror mirror, Rotation rotation) { // auto& palette = Global->getBlockPalette(); // auto bs = Level::getBlockSource(dimID); // auto setting = StructureSettings(); // setting.setMirror(mirror); // setting.setStructureSize(getSize()); // setting.setRotation(rotation); // placeInWorld(*bs, palette, p1, setting, nullptr, false); // return true; // }; // StructureTemplateData* StructureTemplate::getData() { // return (StructureTemplateData*)((uintptr_t)this + 32); // };