Allowing player to gather resources

This commit is contained in:
2026-03-19 12:38:45 -05:00
parent 9ba725d207
commit 50d44e8387
4 changed files with 174 additions and 5 deletions
@@ -140,10 +140,34 @@ public class CharacterStore
{
X = coord.GetValue("x", 0).ToInt32(),
Y = coord.GetValue("y", 0).ToInt32()
}
},
Resources = MapVisibleLocationResources(document)
};
}
private static List<VisibleLocationResource> MapVisibleLocationResources(BsonDocument document)
{
if (!document.TryGetValue("resources", out var resourcesValue) || resourcesValue.BsonType != BsonType.Array)
return [];
var results = new List<VisibleLocationResource>();
foreach (var value in resourcesValue.AsBsonArray)
{
if (value.BsonType != BsonType.Document)
continue;
var resource = value.AsBsonDocument;
results.Add(new VisibleLocationResource
{
ItemKey = resource.GetValue("itemKey", "").AsString,
RemainingQuantity = resource.GetValue("remainingQuantity", 0).ToInt32(),
GatherQuantity = resource.GetValue("gatherQuantity", 1).ToInt32()
});
}
return results;
}
private void EnsureLocationCoordIndexes()
{
var indexes = _locations.Indexes.List().ToList();