mod sprite names now use directories instead of prefixes. note that this

commit will not work without manually removing the prefixes from loader
resources (and adding the directory prefixes to spritesheet keys) until
the CLI rewrite is finished
This commit is contained in:
HJfod 2022-08-29 00:16:30 +03:00
parent 34a64ae56b
commit 78415153b5
5 changed files with 13 additions and 25 deletions

View file

@ -201,6 +201,7 @@ class cocos2d::CCFadeTo {
class cocos2d::CCFileUtils : cocos2d::TypeInfo {
static cocos2d::CCFileUtils* sharedFileUtils() = mac 0x377030, ios 0x159450;
virtual std::string fullPathForFilename(const char* filename, bool unk);
}
class cocos2d::CCHide {

View file

@ -176,7 +176,6 @@ namespace geode {
* Mod::m_addResourcesToSearchPath to true
* first
*/
void addModResourcesPath(Mod* mod);
void updateResourcePaths();
void updateModResources(Mod* mod);
void updateResources();

View file

@ -12,9 +12,9 @@ static ModInfo getInternalModInfo() {
info.m_version = LOADER_VERSION;
info.m_supportsDisabling = false;
info.m_spritesheets = {
"geode.loader_LogoSheet",
"geode.loader_APISheet",
"geode.loader_BlankSheet"
"geode.loader/LogoSheet",
"geode.loader/APISheet",
"geode.loader/BlankSheet"
};
return info;

View file

@ -50,26 +50,15 @@ void Loader::createDirectories() {
m_logStream = std::ofstream(logDir / generateLogName());
}
void Loader::addModResourcesPath(Mod* mod) {
if (mod->m_addResourcesToSearchPath) {
CCFileUtils::sharedFileUtils()->addSearchPath(
mod->m_tempDirName.string().c_str()
);
CCFileUtils::sharedFileUtils()->addSearchPath(
(mod->m_tempDirName / "resources").string().c_str()
);
}
}
void Loader::updateResourcePaths() {
// add own resources directory
auto resDir = this->getGeodeDirectory() / GEODE_RESOURCE_DIRECTORY;
CCFileUtils::sharedFileUtils()->addSearchPath(resDir.string().c_str());
// add mods' resources directories
for (auto const& [_, mod] : m_mods) {
this->addModResourcesPath(mod);
}
CCFileUtils::sharedFileUtils()->addSearchPath(
(this->getGeodeDirectory() / GEODE_RESOURCE_DIRECTORY).string().c_str()
);
// add mods directory
CCFileUtils::sharedFileUtils()->addSearchPath(
(this->getGeodeDirectory() / GEODE_MOD_DIRECTORY).string().c_str()
);
}
void Loader::updateModResources(Mod* mod) {

View file

@ -131,7 +131,6 @@ Result<> Mod::createTempDir() {
}
this->m_addResourcesToSearchPath = true;
Loader::get()->addModResourcesPath(this);
return Ok<>(tempPath);
}
@ -484,7 +483,7 @@ const char* Mod::expandSpriteName(const char* name) {
return expanded[name];
}
auto exp = new char[strlen(name) + 2 + this->m_info.m_id.size()];
auto exps = this->m_info.m_id + "_" + name;
auto exps = this->m_info.m_id + "/" + name;
memcpy(exp, exps.c_str(), exps.size() + 1);
expanded[name] = exp;
return exp;
@ -560,7 +559,7 @@ Result<ModInfo> ModInfo::createFromSchemaV010(
.has("spritesheets")
.as<nlohmann::json::object_t>()
.each([&info](auto key, auto) -> void {
info.m_spritesheets.push_back(info.m_id + "_" + key);
info.m_spritesheets.push_back(info.m_id + "/" + key);
});
json_assign_optional(knownKeys, json, "toggleable", info.m_supportsDisabling);