public bool Rem(Entity ent, bool recursive = true) { Contained con = ent.Get <Contained>(); if (con == null || !con.ContainedBy(this.ent)) { return(false); } if (items.Contains(ent.Key)) { items.Remove(ent.Key); con.container = 0; return(true); } if (!recursive) { return(false); } foreach (uint key in items) { Entity i = this.ent.Pool[key]; Container er = i.Get <Container>(); if (er == null) { continue; } if (er.Rem(ent)) { return(true); } } return(false); }
public bool ContainedBy(Entity ent) { Container er = ent.Get <Container>(); if (er == null) { return(false); } if (!er.Contains(this.ent)) { Contained ed = ent.Get <Contained>(); return(ed != null && ed.ContainedBy(ent)); } return(true); }