Something went wrong. Try again.
the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
Something went wrong. Try again.
2.8 kB · 104 lines
C++
at master
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104#include "stdafx.h"#include "net.minecraft.world.level.levelgen.structure.h"#include "StructureFeatureIO.h"
unordered_map<wstring, structureStartCreateFn> StructureFeatureIO::startIdClassMap;unordered_map<unsigned int, wstring> StructureFeatureIO::startClassIdMap;
unordered_map<wstring, structurePieceCreateFn> StructureFeatureIO::pieceIdClassMap;unordered_map<unsigned int, wstring> StructureFeatureIO::pieceClassIdMap;
void StructureFeatureIO::setStartId(EStructureStart clas, structureStartCreateFn createFn, const wstring &id){ startIdClassMap[id] = createFn; startClassIdMap[clas] = id;}
void StructureFeatureIO::setPieceId(EStructurePiece clas, structurePieceCreateFn createFn, const wstring &id){ pieceIdClassMap[id] = createFn; pieceClassIdMap[clas] = id;}
void StructureFeatureIO::staticCtor(){ setStartId(eStructureStart_MineShaftStart, MineShaftStart::Create, L"Mineshaft"); setStartId(eStructureStart_VillageStart, VillageFeature::VillageStart::Create, L"Village"); setStartId(eStructureStart_NetherBridgeStart, NetherBridgeFeature::NetherBridgeStart::Create, L"Fortress"); setStartId(eStructureStart_StrongholdStart, StrongholdFeature::StrongholdStart::Create, L"Stronghold"); setStartId(eStructureStart_ScatteredFeatureStart, RandomScatteredLargeFeature::ScatteredFeatureStart::Create, L"Temple");
MineShaftPieces::loadStatic(); VillagePieces::loadStatic(); NetherBridgePieces::loadStatic(); StrongholdPieces::loadStatic(); ScatteredFeaturePieces::loadStatic();}
wstring StructureFeatureIO::getEncodeId(StructureStart *start){ AUTO_VAR(it, startClassIdMap.find( start->GetType() ) ); if(it != startClassIdMap.end()) { return it->second; } else { return L""; }}
wstring StructureFeatureIO::getEncodeId(StructurePiece *piece){ AUTO_VAR(it, pieceClassIdMap.find( piece->GetType() ) ); if(it != pieceClassIdMap.end()) { return it->second; } else { return L""; }}
StructureStart *StructureFeatureIO::loadStaticStart(CompoundTag *tag, Level *level){ StructureStart *start = NULL;
AUTO_VAR(it, startIdClassMap.find( tag->getString(L"id") ) ); if(it != startIdClassMap.end()) { start = (it->second)(); }
if (start != NULL) { start->load(level, tag); } else { app.DebugPrintf( "Skipping Structure with id %ls", tag->getString(L"id").c_str() ); } return start;}
StructurePiece *StructureFeatureIO::loadStaticPiece(CompoundTag *tag, Level *level){ StructurePiece *piece = NULL;
AUTO_VAR(it, pieceIdClassMap.find( tag->getString(L"id") ) ); if(it != pieceIdClassMap.end()) { piece = (it->second)(); }
if (piece != NULL) { piece->load(level, tag); } else { app.DebugPrintf( "Skipping Piece with id %ls", tag->getString(L"id").c_str() ); } return piece;}