// TODO: Finding visible entities should be done somewhere else, like gravity entity or something? void Update() { // Right now, just looks at currently visible entities and adds new ones var contactFilter = new ContactFilter2D { useLayerMask = true, layerMask = layerMask }; var visibleColliders = new Collider2D[maxVisible]; if (lineOfSight != null && Physics2D.OverlapCollider(lineOfSight, contactFilter, visibleColliders) > 0) { for (int i = 0; i < visibleColliders.Length; i++) { var col = visibleColliders[i]; if (col != null) { var relationship = col?.GetComponent <RelationshipEntity>(); if (relationship != null && relationship?.gameObject != this.gameObject && !Relationships.Contains(relationship) ) { Relationships.Add(relationship); var relationshipEvent = new RelationshipEvent { Target = relationship, Rating = Vector2.zero, Text = $"Met {relationship.Name}", }; Events.Add(relationshipEvent); RelationshipRatings[relationship] = relationshipEvent.Rating; } } } } }
public bool InsertRelationship(Relationship relationship) { if (relationship != null && !Relationships.Contains(relationship) && Entities.Contains(relationship.First) && Entities.Contains(relationship.Second)) { AddRelationship(relationship); return(true); } return(false); }
public bool AddRelationship(Relationship relationship) { if (!Relationships.Contains(relationship)) { if (Nodes.Contains(relationship.From) && Nodes.Contains(relationship.To)) { Relationships.Add(relationship); } } return(false); }
public void AddRelationship(Relationship relationship) { if (Relationships.Contains(relationship)) { return; } _relationships.Add(relationship); relationship.Database = Database; Database.AddRelationship(relationship); RaisePropertyChanged("Relationships"); RelationshipsChanged.RaiseAdditionEventEx(this, relationship); }
public bool Has(Relationship relationship) { return(Relationships.Contains(relationship)); }