/// <summary> /// Réalise un échange de position entre deux layers /// </summary> /// <param name="index1">L'index de la première layer</param> /// <param name="index2">L'index de la seconde layer</param> /// <returns>L'état résultant de l'échange</returns> public bool SwapLayers(int index1, int index2) { if (index1 == index2) { return(true); } if (index1 < this.layers.Count && index2 < this.layers.Count && index1 >= 0 && index2 >= 0) { GameMapLayer layer1 = this.layers.ElementAt(index1); GameMapLayer layer2 = this.layers.ElementAt(index2); if (!this.ReplaceLayerAt(index1, layer2)) { return(false); } if (!this.ReplaceLayerAt(index2, layer1)) { return(false); } return(true); } return(false); }
/// <summary> /// Remplace le layer à l'index spcifiée par le layer donnée /// </summary> /// <param name="index">L'index de le layer à remplacer</param> /// <param name="layer">Le layer remplaçante</param> /// <returns>L'état resultant du remplacement</returns> public bool ReplaceLayerAt(int index, GameMapLayer layer) { if (this.RemoveLayerAt(index)) { return(this.InsertLayerAt(index, layer)); } return(false); }
/// <summary> /// Initialise les données internes de la carte /// </summary> private void InitializeComponents() { GameMapLayer layer = new GameMapLayer(DEFAULT_LAYER_NAME) { Type = LayerType.Lower, Visible = true }; layer.LayerChanged += Layer_LayerChanged; this.layers.Add(layer); }
private void Formular_MapLayerAdded(object sender, GameMapLayer layer) { if (this.layerPanelControl.Controls.Count < GameMap.MAX_LAYER_COUNT) { this.LayerPane.InsertAt(0, layer); this.Refresh(); } else ConsolePanel.Instance.WriteLine($"Impossible d'ajouter la nouvelle couche. Le nombre maximal de couches est atteint (maximum : {GameMap.MAX_LAYER_COUNT})", RowType.Error); }
private void LayerPane_ItemAdded(object sender, int index, GameMapLayer layer) { if (this.ActiveMapPanel != null) { this.ActiveMapPanel.Map.InsertLayerAt(index, layer); } else { throw new NullReferenceException("Tentative d'ajout d'une ou plusieurs valeurs dans un control parent inexistant"); } }
private void Formular_MapLayerAdded(object sender, GameMapLayer layer) { if (this.layerPanelControl.Controls.Count < GameMap.MAX_LAYER_COUNT) { this.LayerPane.InsertAt(0, layer); this.Refresh(); } else { ConsolePanel.Instance.WriteLine($"Impossible d'ajouter la nouvelle couche. Le nombre maximal de couches est atteint (maximum : {GameMap.MAX_LAYER_COUNT})", RowType.Error); } }
/// <summary> /// Insert la couche à la position spécifiée dans la liste des layers de map /// </summary> /// <param name="index">L'index d'insertion</param> /// <param name="layer">Le layer à insérer</param> /// <returns>L'état résultant de l'insertion</returns> public bool InsertLayerAt(int index, GameMapLayer layer) { if (this.layers.Count < MAX_LAYER_COUNT) { layer.LayerChanged += Layer_LayerChanged; this.layers.Insert(index, layer); // TODO : Reviser this.MapChanged?.Invoke(this); return(true); } return(false); }
private void LayerPane_ItemTypeChanged(object sender, int index, LayerType type) { if (this.ActiveMapPanel != null) { GameMapLayer layer = this.ActiveMapPanel.Map.GetLayerAt(index); if (layer != null) { layer.Type = type; } else { throw new NullReferenceException("Tentative de modification du type d'un objet inexistant"); } } else { throw new NullReferenceException("Tentative de modification d'un control enfant inexistant"); } }
/// <summary> /// Remplace le layer à l'index spcifiée par le layer donnée /// </summary> /// <param name="index">L'index de le layer à remplacer</param> /// <param name="layer">Le layer remplaçante</param> /// <returns>L'état resultant du remplacement</returns> public bool ReplaceLayerAt(int index, GameMapLayer layer) { if(this.RemoveLayerAt(index)) return this.InsertLayerAt(index, layer); return false; }
/// <summary> /// Insert la couche à la position spécifiée dans la liste des layers de map /// </summary> /// <param name="index">L'index d'insertion</param> /// <param name="layer">Le layer à insérer</param> /// <returns>L'état résultant de l'insertion</returns> public bool InsertLayerAt(int index, GameMapLayer layer) { if (this.layers.Count < MAX_LAYER_COUNT) { layer.LayerChanged += Layer_LayerChanged; this.layers.Insert(index, layer); // TODO : Reviser this.MapChanged?.Invoke(this); return true; } return false; }
/// <summary> /// Ajoute une couche de dessin dans la map /// </summary> /// <param name="layer">Le layer à ajouter</param> /// <returns>L'état résultant de l'ajout</returns> public bool AddLayer(GameMapLayer layer) { return this.InsertLayerAt(0, layer); }
private void LayerPane_ItemAdded(object sender, int index, GameMapLayer layer) { if (this.ActiveMapPanel != null) { this.ActiveMapPanel.Map.InsertLayerAt(index, layer); } else throw new NullReferenceException("Tentative d'ajout d'une ou plusieurs valeurs dans un control parent inexistant"); }
/// <summary> /// Ajoute une couche de dessin dans la map /// </summary> /// <param name="layer">Le layer à ajouter</param> /// <returns>L'état résultant de l'ajout</returns> public bool AddLayer(GameMapLayer layer) { return(this.InsertLayerAt(0, layer)); }