public void Remove(ResourceBundle res) { foreach (var kvp in res.Intersect(this)) { SafeSet(kvp.Key, kvp.Value); } }
public void Add(ResourceBundle res) { foreach (var kvp in res) { Add(kvp); } }
public ResourceBundle Intersect(ResourceBundle rb) { var res = new ResourceBundle(); foreach (var key in Keys.Intersect(rb.Keys)) { res.Add(key, Math.Min(SafeGet(key) ?? 0, rb.SafeGet(key) ?? 0)); } return(res); }
public bool ContainsAny(ResourceBundle resources) { foreach (var kvp in resources) { if (ContainsKey(kvp.Key) && kvp.Value > 0 && this[kvp.Key] > 0) { return(true); } } return(false); }
public bool ContainsFully(ResourceBundle resources) { foreach (var kvp in resources) { if (!ContainsKey(kvp.Key) || kvp.Value > this[kvp.Key]) { return(false); } } return(true); }
private void SetBundle(ResourceBundle rb, string buffer) { foreach (var input in buffer.Split('+')) { var m = Regex.Match(input, @"^\s*(\d+)\s+([\w\d][\w\d\s]*)$"); var rcname = m.Groups[2].Value.Trim(); if (rcname.EqualsI("time")) { TimeRequired = TimeSpan.FromSeconds(Convert.ToDouble(m.Groups[1].Value)); } else { rb.Add(PlarfGame.Instance.ResourceClasses.First(rc => rc.Name.EqualsI(rcname)), Convert.ToInt32(m.Groups[1].Value)); } } }
public static ResourceBundle operator +(ResourceBundle a, ResourceBundle b) { var res = new ResourceBundle(); foreach (var kvp in a) { res.Add(kvp); } foreach (var kvp in b) { if (res.ContainsKey(kvp.Key)) { res[kvp.Key] += kvp.Value; } else { res.Add(kvp); } } return(res); }