Fixed cache bashing in checks

Cache should only return clones of data,
not references to the cached data
This commit is contained in:
Stefan Zermatten
2022-08-17 17:21:18 +02:00
parent 7d66c06107
commit 877c9ca099

View File

@@ -97,7 +97,10 @@ export function getCreature(creatureId) {
if (loadedCreatures.has(creatureId)) {
const loadedCreature = loadedCreatures.get(creatureId);
const creature = loadedCreature.creature;
if (creature) return creature;
if (creature) {
const cloneCreature = EJSON.clone(creature);
return cloneCreature;
}
}
// console.time(`Cache miss on Creature: ${creatureId}`);
const creature = Creatures.findOne(creatureId);
@@ -109,7 +112,10 @@ export function getVariables(creatureId) {
if (loadedCreatures.has(creatureId)) {
const loadedCreature = loadedCreatures.get(creatureId);
const variables = loadedCreature.variables;
if (variables) return variables;
if (variables) {
const cloneVarables = EJSON.clone(variables);
return cloneVarables;
}
}
// console.time(`Cache miss on variables: ${creatureId}`);
const variables = CreatureVariables.findOne({_creatureId: creatureId});