using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public abstract class BaseDeformation : MonoBehaviour, IDeformation
{
    [SerializeField]
    protected Sprite deformationIcon;
    public Sprite DeformationIcon { get { return deformationIcon; } }

    [SerializeField]
    protected float maxIntensity;
    public float MaxIntensity { get { return maxIntensity; } }
    [SerializeField]
    protected float minIntensity;
    public float MinIntensity { get { return minIntensity; } }

    public DeformationManager DeformationManager { get; set; }
    public abstract string DeformationName { get; protected set; }
    public abstract string Description { get; set; }
    public abstract float Intensity { get; set; }

    

    protected bool IsDeforming { get; set; }

    public virtual void AddUndoStep(UndoStack undoStack)
    {
        undoStack.AddStep(new UndoVertexPositions());
    }

    public abstract void StartDeforming();

    public abstract void StopDeforming();

    public abstract void InitializeDeformation(DeformationManager deformationManager);

 

}
