private void AddToSelectedArea(Tile tile, EditorTileAreaModifier areaModifier) { if (areaModifier == null) { Logger.Error($"Could not find the areaModifier type {areaModifier.GetType()}"); } areaModifier.SetSelectedTile(tile); }
private void PlaceTileModifier() { if (EditorCanvasUI.Instance.SelectedTileModifierContainer == null) { if (PersistentGameManager.CurrentSceneType == SceneType.Maze) { EditorModificationPanelContainer.Instance.SelectMazeTileModificationPanel(); } else { EditorModificationPanelContainer.Instance.SelectOverworldTileModificationPanel(); } } EditorTileModifierCategory editorTileModifierType = EditorManager.SelectedTileModifierCategory; EditorSelectedTileModifierContainer selectedTileModifierContainer = EditorCanvasUI.Instance.SelectedTileModifierContainer; GameManager.Instance.CurrentEditorLevel.TilesByLocation.TryGetValue(CurrentlySelectedTile.GridLocation, out Tile tile); if (editorTileModifierType == EditorTileModifierCategory.Attribute) { List <IEditorTileModifier> attributes = selectedTileModifierContainer.CurrentlyAvailableTileModifiers[EditorTileModifierCategory.Attribute]; EditorTileAttributeModifier attribute = attributes[EditorManager.SelectedTileAttributeModifierIndex] as EditorTileAttributeModifier; PlaceTileAttribute(tile, attribute); } else if (editorTileModifierType == EditorTileModifierCategory.Background) { List <IEditorTileModifier> backgrounds = selectedTileModifierContainer.CurrentlyAvailableTileModifiers[EditorTileModifierCategory.Background]; EditorTileBackgroundModifier background = backgrounds[EditorManager.SelectedTileBackgroundModifierIndex] as EditorTileBackgroundModifier; PlaceTileBackground(tile, background); } else if (editorTileModifierType == EditorTileModifierCategory.TransformationTriggerer) { List <IEditorTileModifier> transformationTriggerers = selectedTileModifierContainer.CurrentlyAvailableTileModifiers[EditorTileModifierCategory.TransformationTriggerer]; EditorTileTransformationModifier transformationTriggerer = transformationTriggerers[EditorManager.SelectedTileTransformationTriggererIndex] as EditorTileTransformationModifier; PlaceTransformationTriggerer(tile, transformationTriggerer); } else if (editorTileModifierType == EditorTileModifierCategory.Area) { List <IEditorTileModifier> areaModifiers = selectedTileModifierContainer.CurrentlyAvailableTileModifiers[EditorTileModifierCategory.Area]; EditorTileAreaModifier tileAreaModifier = areaModifiers[EditorManager.SelectedTileAreaModifierIndex] as EditorTileAreaModifier; AddToSelectedArea(tile, tileAreaModifier); } else { Logger.Error($"EditorMazeTileModifierType {editorTileModifierType} not yet implemented"); } }
public override void SetSelectedModifier(int modifierIndex) { List <IEditorTileModifier> currentlyAvailableTileAreaModifiers = _editorSelectedModifierContainer.CurrentlyAvailableTileModifiers[EditorTileModifierCategory.Area]; if (currentlyAvailableTileAreaModifiers.Count == 0) { EditorManager.SelectedTileAreaModifierIndex = 0; return; } EditorTileAreaModifier areaModifier = currentlyAvailableTileAreaModifiers[modifierIndex] as EditorTileAreaModifier; _editorSelectedModifierContainer.SelectedModifierLabel.text = GetSelectedModifierLabel(areaModifier.Name); _editorSelectedModifierContainer.SelectedModifierSprite.sprite = areaModifier.GetSprite(); EditorManager.SelectedTileAreaModifierIndex = modifierIndex; areaModifier.InstantiateModifierActions(); EditorManager.SelectedTileModifier = areaModifier; }