Ejemplo n.º 1
0
    private void AddToSelectedArea(Tile tile, EditorTileAreaModifier areaModifier)
    {
        if (areaModifier == null)
        {
            Logger.Error($"Could not find the areaModifier type {areaModifier.GetType()}");
        }

        areaModifier.SetSelectedTile(tile);
    }
Ejemplo n.º 2
0
    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;
    }