public void Init(TrapModel model, Vector3Int position) { m_model = model; m_nextActivation = Time.realtimeSinceStartup + m_model.Delay; m_activationPositions = new List <Vector2Int>(); m_blockPositions = new List <Vector2Int>(); m_position = new Vector2Int(position.x, position.y); m_activationPositions.AddRange(m_model.ActivationPositions(m_position)); m_blockPositions.AddRange(m_model.BlockPositions(m_position)); }
public bool CanSpawnTrapAt(TrapModel model, Vector3Int position) { var positions = Helper.ToVector3Int(model.BlockPositions(new Vector2Int(position.x, position.y))); var trapPositions = GridInformation.GetAllPositions(TilemapProperty.TrapProperty); if (!positions.All((pos) => trapPositions.Contains(pos))) { return(false); } List <Vector3Int> allTrapsPositions = new List <Vector3Int>(); m_traps.ForEach((t) => allTrapsPositions.AddRange(Helper.ToVector3Int(t.BlockPositions))); return(!positions.Any((pos) => allTrapsPositions.Contains(pos))); }