private bool AddNeighbor(Node newNeighbor, bool addCannotVisit, float dist = 1f) { if (addCannotVisit) { return(AddNeighbor(newNeighbor, dist)); } if (!CanBeNeighbor(newNeighbor)) { return(false); } if (dist != 1f) { MyLib.ExpandArray(ref _neighbors, new NeighborAndDistance(newNeighbor, dist)); Graph.CostedConnections = true; } else { MyLib.ExpandArray(ref _neighbors, new NeighborAndDistance(newNeighbor, 1f)); } MyLib.ArrayRemoveOne(ref _cannotVisitNeighbors, newNeighbor); return(true); }
public bool AddNeighbor(Node newNeighbor, float dist = 1f) { if (!CanBeNeighbor(newNeighbor)) { return(false); } if (dist != 1f) { MyLib.ExpandArray(ref _neighbors, new NeighborAndDistance(newNeighbor, dist)); Graph.CostedConnections = true; } else { MyLib.ExpandArray(ref _neighbors, new NeighborAndDistance(newNeighbor, 1f)); } MyLib.ArrayRemoveOne(ref _cannotVisitNeighbors, newNeighbor); if (!newNeighbor.IsNeighboringTo(this)) { MyLib.ExpandArray(ref newNeighbor._cannotVisitNeighbors, this); } return(true); }
public void AddMobs(params BaseCharacterControl[] newMobs) { MyLib.ExpandArray(ref _mobs, newMobs); }