55 lines
2.2 KiB
C#
55 lines
2.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using ParadoxNotion.Design;
|
|
using Sirenix.OdinInspector;
|
|
using UnityEngine;
|
|
|
|
namespace Reset.Units{
|
|
[Serializable]
|
|
public class UnitMovementData : ICloneable{
|
|
// Movement Direction
|
|
public SettingValue<Vector2> moveSmoothing = new SettingValue<Vector2>(new Vector2(.5f, .5f));
|
|
public SettingValue<float> acceleration = new SettingValue<float>(5f);
|
|
public SettingValue<float> deacceleration = new SettingValue<float>(5f);
|
|
|
|
[SliderField(0,1)]
|
|
public SettingValue<float> airDirectionDecay = new SettingValue<float>(1f); // TODO: Check default value
|
|
|
|
// Move Speed
|
|
public SettingValue<float> softening = new SettingValue<float>(1f, defaultSmoothing: 1f);
|
|
public SettingValue<float> moveSpeed = new SettingValue<float>(15f, defaultSmoothing: 10f);
|
|
|
|
// Jumping
|
|
[ShowInInspector] public SettingValue<float> jumpPower = new SettingValue<float>(0f);
|
|
public SettingValue<float> jumpPowerDecay = new SettingValue<float>(3f); // TODO: Check default value
|
|
|
|
// Gravity
|
|
[ShowInInspector] public SettingValue<float> gravityPower = new SettingValue<float>(1f);
|
|
public SettingValue<float> gravityMax = new SettingValue<float>(8f);
|
|
public SettingValue<float> gravityAcceleration = new SettingValue<float>(1f);
|
|
public SettingValue<float> gravityScale = new SettingValue<float>(1f);
|
|
|
|
// Rotation
|
|
[ShowInInspector, SerializeReference] public Enum rotateFacing;
|
|
public SettingValue<float> rotationSpeed = new SettingValue<float>(5f);
|
|
public SettingValue<float> rotationInputBlending = new SettingValue<float>(.3f);
|
|
|
|
public object Clone(){
|
|
return MemberwiseClone();
|
|
}
|
|
|
|
public List<IResettableSettingValue> GetAllSettings(){
|
|
var outputList = new List<IResettableSettingValue>();
|
|
|
|
IResettableSettingValue[] test = new[]{
|
|
moveSmoothing as IResettableSettingValue,
|
|
};
|
|
|
|
test[0].SmoothAndEase();
|
|
|
|
outputList.AddRange(test);
|
|
|
|
return outputList;
|
|
}
|
|
}
|
|
} |