LiteLoaderBDS-1.16.40/LiteLoader/Main/ModifyPack.cpp

48 lines
2.2 KiB
C++

//#include <Global.h>
//#include <MC/Core.hpp>
//#include "LiteLoader.h"
//#include <MC/ResourcePack.hpp>
//#include <MC/Pack.hpp>
//#include <MC/ResourceLocation.hpp>
//#include <MC/ResourcePackRepository.hpp>
//#include <MC/Types.hpp>
//#include <MC/SemVersion.hpp>
//#include <MC/PackManifest.hpp>
//#include <MC/ResourcePackStack.hpp>
//#include <MC/PackSettingsFactory.hpp>
//#include <MC/PackSettings.hpp>
//#include <MC/PackInstance.hpp>
//#include <MC/PackIdVersion.hpp>
//
//namespace ModifyPack {
// vector<PackIdVersion> PackListCache;
//}
//
//THook(ResourcePack*, "??0ResourcePack@@QEAA@AEAVPack@@@Z",
// ResourcePack* self, Pack* a2) {
// auto Pack = original(self, a2);
// auto manifest = &Pack->getManifest();
// if (manifest && manifest->getPackOrigin() == PackOrigin::PackOrigin_Dev) {
// ModifyPack::PackListCache.push_back(a2->getManifest().getIdentity());
// }
// return Pack;
//}
//
//THook(std::unique_ptr<ResourcePackStack>, "?deserialize@ResourcePackStack@@SA?AV?$unique_ptr@VResourcePackStack@@U?$default_delete@VResourcePackStack@@@std@@@std@@AEAV?$basic_istream@DU?$char_traits@D@std@@@3@AEBVIResourcePackRepository@@@Z",
// __int64 a2, ResourcePackRepository* a3) {
// auto Stack = original( a2, a3);
// for (auto& id : ModifyPack::PackListCache) {
// auto Pack = a3->getResourcePackForPackId(id);
// auto& SettingsFactory = a3->getPackSettingsFactory();
// auto settings = SettingsFactory.getPackSettings(Pack->getManifest());
// char gsl[16];
// auto gslPath = SymCall("??$?0PEAVResourcePack@@X@?$not_null@V?$NonOwnerPointer@VResourcePack@@@Bedrock@@@gsl@@QEAA@AEBV?$not_null@PEAVResourcePack@@@1@@Z",
// void*, char*, ResourcePack**)(gsl, &Pack);
// char size[480];
// auto Instance = SymCall("??0PackInstance@@QEAA@V?$not_null@V?$NonOwnerPointer@VResourcePack@@@Bedrock@@@gsl@@H_NPEAVPackSettings@@@Z",
// PackInstance*, char*, void*, int, bool, PackSettings*)(size, gslPath, 0, false, settings);
// Stack->add(*Instance, *(IResourcePackRepository*)a3, 0);
// }
// ModifyPack::PackListCache.clear();
// return Stack;
//}