You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.8 KiB
C#

using System;
using UnityEngine;
namespace FluffyGroomingTool {
[Serializable]
public class CardMeshProperties : ICloneable {
[SerializeField] int _tempCardSubdivisionsY = -1;
/**
* Aplogies to myself and whoever reads this. This needs some refactoring.
*/
public int RedoWatcherCardSubdivisionsY { get; set; }
public int TempSubdivisionsY {
get {
if (_tempCardSubdivisionsY == -1) _tempCardSubdivisionsY = cardSubdivisionsY;
return _tempCardSubdivisionsY;
}
set => _tempCardSubdivisionsY = value;
}
public bool isSameCurve(float sum) {
if (curveSum < 0) curveSum = sum;
// ReSharper disable CompareOfFloatsByEqualityOperator
if (sum == curveSum) return true;
curveSum = sum;
return false;
}
[SerializeField] public int cardSubdivisionsX = 1;
[SerializeField] public int cardSubdivisionsY = 4;
private float curveSum = -1;
[SerializeField] public AnimationCurve shapeCurve = new AnimationCurve(
new Keyframe(0, 1f, -0.007165052f, -0.007165052f, 0, 0.6583334f),
new Keyframe(1f, 0f, -16.49596f, -16.49596f, 0.05833334f, 0)
);
[SerializeField] public AnimationCurve moveCurve = AnimationCurve.Linear(0, 0, 1, 1);
public int getCardMeshVerticesY() {
return cardSubdivisionsY + 1;
}
public object Clone() {
return new CardMeshProperties() {
TempSubdivisionsY = cardSubdivisionsY,
cardSubdivisionsX = cardSubdivisionsX,
shapeCurve = new AnimationCurve(shapeCurve.keys),
moveCurve = new AnimationCurve(moveCurve.keys),
curveSum = curveSum
};
}
}
}