private static Floor GetSerializedFloor(AddableTile[] addables, EditableFloor floor) { EditableTile[] tiles = floor.GetComponentsInChildren <EditableTile>(true); int[] IDs = new int[tiles.Length]; for (int i = 0; i < tiles.Length; i++) { Element possible = tiles[i].GetComponentInChildren <Element>(true); if (possible == null) // nothing here { IDs[i] = NO_ELEMENT; } else // store index { IDs[i] = addables.IndexOf(a => possible.IsSource(a)); } } return(new Floor(IDs)); }
public bool IsFloorContainsType <T>(int indexToCheck, TileType type) where T : Element { EditableFloor floorToCheck = GetFloorAtIndex(indexToCheck); return(floorToCheck.GetComponentsInChildren <T>(true).Any(e => e.IsType(type))); }