private void PlaceTileModifierVariation() { if (EditorCanvasUI.Instance.SelectedTileModifierContainer == null) { if (PersistentGameManager.CurrentSceneType == SceneType.Maze) { EditorModificationPanelContainer.Instance.SelectMazeTileModificationPanel(); } else { EditorModificationPanelContainer.Instance.SelectOverworldTileModificationPanel(); } } EditorTileModifierCategory editorMazeTileModifierCategory = EditorManager.SelectedTileModifierCategory; GameManager.Instance.CurrentEditorLevel.TilesByLocation.TryGetValue(CurrentlySelectedTile.GridLocation, out Tile tile); EditorSelectedTileModifierContainer selectedTileModifierContainer = EditorCanvasUI.Instance.SelectedTileModifierContainer; if (editorMazeTileModifierCategory == EditorTileModifierCategory.Attribute) { List <IEditorTileModifier> attributes = selectedTileModifierContainer.CurrentlyAvailableTileModifiers[EditorTileModifierCategory.Attribute]; EditorTileAttributeModifier attribute = attributes[EditorManager.SelectedTileAttributeModifierIndex] as EditorTileAttributeModifier; PlaceTileAttributeVariation(tile, attribute); } else if (editorMazeTileModifierCategory == EditorTileModifierCategory.Background) { List <IEditorTileModifier> backgrounds = selectedTileModifierContainer.CurrentlyAvailableTileModifiers[EditorTileModifierCategory.Background]; EditorTileBackgroundModifier background = backgrounds[EditorManager.SelectedTileBackgroundModifierIndex] as EditorTileBackgroundModifier; PlaceMazeTileBackgroundVariation(tile, background); } }
private void PlaceTileAttributeVariation(Tile tile, EditorTileAttributeModifier attribute) { if (attribute == null) { Logger.Error($"Could not find the attribute type {attribute.GetType()}"); } attribute.PlaceAttributeVariation(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> currentlyAvailableTileAttributes = _editorSelectedModifierContainer.CurrentlyAvailableTileModifiers[EditorTileModifierCategory.Attribute]; if (currentlyAvailableTileAttributes.Count == 0) { EditorManager.SelectedTileAttributeModifierIndex = 0; return; } EditorTileAttributeModifier attribute = currentlyAvailableTileAttributes[modifierIndex] as EditorTileAttributeModifier; _editorSelectedModifierContainer.SelectedModifierLabel.text = GetSelectedModifierLabel(attribute.Name); _editorSelectedModifierContainer.SelectedModifierSprite.sprite = attribute.GetSprite(); EditorManager.SelectedTileAttributeModifierIndex = modifierIndex; EditorManager.SelectedTileModifier = attribute; attribute.InstantiateModifierActions(); }