Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/game/StarItemDatabase.cpp
diff options
context:
space:
mode:
authorKae <80987908+Novaenia@users.noreply.github.com>2025-02-11 07:52:39 +1100
committerGitHub <noreply@github.com>2025-02-11 07:52:39 +1100
commit9eae03a968d0b2294d09d831a972cc3bbcae59c6 (patch)
tree7bba6df5e9339d95f6c2e5a0a6fbef3123ff39aa /source/game/StarItemDatabase.cpp
parenteef0da37e1b206a9d486c5ad74bb10b11944503b (diff)
parent12497113c9c61c251e3aa27dfeb161d20a6c6388 (diff)
Merge pull request #180 from ErodeesFleurs/itemFile
Add root.itemFile function.
Diffstat (limited to 'source/game/StarItemDatabase.cpp')
-rw-r--r--source/game/StarItemDatabase.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/source/game/StarItemDatabase.cpp b/source/game/StarItemDatabase.cpp
index b3eb16b..b228eed 100644
--- a/source/game/StarItemDatabase.cpp
+++ b/source/game/StarItemDatabase.cpp
@@ -213,6 +213,14 @@ ItemDatabase::ItemConfig ItemDatabase::itemConfig(String const& itemName, Json p
return itemConfig;
}
+Maybe<String> ItemDatabase::itemFile(String const& itemName) const {
+ if (!hasItem(itemName)) {
+ return {};
+ }
+ auto const& data = itemData(itemName);
+ return data.directory + "/" + data.filename;
+}
+
ItemPtr ItemDatabase::itemShared(ItemDescriptor descriptor, Maybe<float> level, Maybe<uint64_t> seed) const {
if (!descriptor)
return {};
@@ -563,6 +571,7 @@ void ItemDatabase::addItemSet(ItemType type, String const& extension) {
data.itemTags = config.opt("itemTags").apply(jsonToStringSet).value();
data.agingScripts = config.opt("itemAgingScripts").apply(jsonToStringList).value();
data.directory = AssetPath::directory(file);
+ data.filename = AssetPath::filename(file);
data.agingScripts = data.agingScripts.transformed(bind(&AssetPath::relativeTo, data.directory, _1));
} catch (std::exception const& e) {
@@ -586,6 +595,7 @@ void ItemDatabase::addObjectDropItem(String const& objectPath, Json const& objec
data.itemTags = objectConfig.opt("itemTags").apply(jsonToStringSet).value();
data.agingScripts = objectConfig.opt("itemAgingScripts").apply(jsonToStringList).value();
data.directory = AssetPath::directory(objectPath);
+ data.filename = AssetPath::filename(objectPath);
JsonObject customConfig = objectConfig.toObject();
if (!customConfig.contains("inventoryIcon")) {
customConfig["inventoryIcon"] = assets->json("/objects/defaultParameters.config:missingIcon");
@@ -757,4 +767,4 @@ void ItemDatabase::addCodexes() {
}
}
-}
+} \ No newline at end of file