public void GetAreaByHash(int value, out Area area, out Passability passability) { AreaPassabilityPair val = _hashToArea[value]; area = val.area; passability = val.passability; }
public void AddAreaHash(Area area) { if (area == null) { Debug.LogError("you try to create area hash using null"); } if (_areaPool.Add(area)) { //adding this pairs AreaPassabilityPair crouchable = new AreaPassabilityPair(area, Passability.Crouchable); AreaPassabilityPair walkable = new AreaPassabilityPair(area, Passability.Walkable); //reson is + 1 cause we can use ID:0 to tell "just do nothing" instead of ID:-1 later on (in layer hashmap for example) int crouchableKey = _areaToHash.Count + 1; int walkableKey = _areaToHash.Count + 2; _areaToHash.Add(crouchable, crouchableKey); _areaToHash.Add(walkable, walkableKey); _hashToArea.Add(crouchableKey, crouchable); _hashToArea.Add(walkableKey, walkable); } }