// Remove items public virtual void Remove(string instanceId, Location location, bool resetState = false, bool didCollect = false) { ComputedLocationSpawnItems computed = null; lock (m_itemLocations) { m_itemLocations.Remove(instanceId, location); } // No hits for this item at this location if (!m_locationComputedItems.TryGetValue(location.Id, out computed)) { return; } LocationSpawnItemResults <T> result = null; if (!computed.Results.TryGetValue(instanceId, out result)) { return; } result.DidCollect = didCollect; if (resetState) { computed.Results.Remove(instanceId); } OnItemsRemoved(instanceId, result); }
protected ComputedLocationSpawnItems GetComputedItems(Location location) { ComputedLocationSpawnItems computed = null; m_locationComputedItems.TryGetValue(location.Id, out computed); return(computed); }
protected ComputedLocationSpawnItems GetOrCreateLocationComputedItems(Location location) { ComputedLocationSpawnItems computed = null; if (!m_locationComputedItems.TryGetValue(location.Id, out computed)) { computed = new ComputedLocationSpawnItems(); m_locationComputedItems.Add(location.Id, computed); } return(computed); }
public LocationSpawnItemResults <T> GetResults(string instanceId, Location location) { ComputedLocationSpawnItems computed = null; // No hits for this item at this location if (m_locationComputedItems.TryGetValue(location.Id, out computed)) { LocationSpawnItemResults <T> results; computed.Results.TryGetValue(instanceId, out results); return(results); } return(null); }