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

summaryrefslogtreecommitdiff
path: root/source/game
diff options
context:
space:
mode:
Diffstat (limited to 'source/game')
-rw-r--r--source/game/StarItemDatabase.cpp7
-rw-r--r--source/game/StarItemDatabase.hpp1
2 files changed, 7 insertions, 1 deletions
diff --git a/source/game/StarItemDatabase.cpp b/source/game/StarItemDatabase.cpp
index 30e8c5e..dc0238f 100644
--- a/source/game/StarItemDatabase.cpp
+++ b/source/game/StarItemDatabase.cpp
@@ -214,8 +214,11 @@ ItemDatabase::ItemConfig ItemDatabase::itemConfig(String const& itemName, Json p
}
Maybe<String> ItemDatabase::itemFile(String const& itemName) const {
+ if (!hasItem(itemName)) {
+ return {}
+ }
auto const& data = itemData(itemName);
- return itemData(itemName).assetsConfig;
+ return data->directory + "/" + data->filename;
}
ItemPtr ItemDatabase::itemShared(ItemDescriptor descriptor, Maybe<float> level, Maybe<uint64_t> seed) const {
@@ -568,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) {
@@ -591,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");
diff --git a/source/game/StarItemDatabase.hpp b/source/game/StarItemDatabase.hpp
index 714eee7..8268ace 100644
--- a/source/game/StarItemDatabase.hpp
+++ b/source/game/StarItemDatabase.hpp
@@ -159,6 +159,7 @@ private:
Maybe<String> assetsConfig;
JsonObject customConfig;
String directory;
+ String filename;
};
static ItemPtr createItem(ItemType type, ItemConfig const& config);