62 lines
3.4 KiB
C#
62 lines
3.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using ParadoxNotion.Design;
|
|
using Sirenix.OdinInspector;
|
|
using UnityEngine;
|
|
|
|
namespace Reset.Units{
|
|
[Serializable]
|
|
public class UnitMovementData{
|
|
// Movement Direction
|
|
[Title("Direction Changing Softeness"), HideLabel, InlineProperty] public SettingValue<float> directionChangingSoftness = new SettingValue<float>(1f, defaultSmoothing: 1f);
|
|
[Title("Direction Spinning Hardness"), HideLabel, InlineProperty] public SettingValue<float> directionSpinningHardness = new SettingValue<float>(3f, defaultSmoothing: 1f);
|
|
[Title("Directoon Spinning Speed"), HideLabel, InlineProperty] public SettingValue<float> directionSpinningSpeed= new SettingValue<float>(3f, defaultSmoothing: 1f);
|
|
|
|
[SliderField(0,1)]
|
|
[Title("Air Direction Decay"), HideLabel, InlineProperty] public SettingValue<float> airDirectionDecay = new SettingValue<float>(1f); // TODO: Check default value
|
|
|
|
// Move Speed
|
|
[Title("Acceleration"), HideLabel, InlineProperty] public SettingValue<float> acceleration = new SettingValue<float>(5f);
|
|
[Title("Deacceleration"), HideLabel, InlineProperty] public SettingValue<float> deacceleration = new SettingValue<float>(5f);
|
|
[Title("Move Speed"), HideLabel, InlineProperty] public SettingValue<float> moveSpeed = new SettingValue<float>(15f, defaultSmoothing: 10f);
|
|
|
|
// Jumping
|
|
// [Title("Jump Power"), HideLabel, InlineProperty] [ShowInInspector] public SettingValue<float> jumpPower = new SettingValue<float>(0f);
|
|
// [Title("Move Smoothing"), HideLabel, InlineProperty] public SettingValue<float> jumpPowerDecay = new SettingValue<float>(3f); // TODO: Check default value
|
|
|
|
// Gravity
|
|
[Title("Gravity Power"), HideLabel, InlineProperty] [ShowInInspector] public SettingValue<float> gravityPower = new SettingValue<float>(1f);
|
|
[Title("Gravity Max"), HideLabel, InlineProperty] public SettingValue<float> gravityMax = new SettingValue<float>(8f);
|
|
[Title("Gravity Acceleration"), HideLabel, InlineProperty] public SettingValue<float> gravityAcceleration = new SettingValue<float>(1f);
|
|
[Title("Gravity Scale"), HideLabel, InlineProperty] public SettingValue<float> gravityScale = new SettingValue<float>(1f);
|
|
|
|
// Rotation
|
|
[Title("Rotate Facing"), HideLabel, InlineProperty] public SettingValue<PlayerFacingDirection> facingDirection = new SettingValue<PlayerFacingDirection>(initValue: PlayerFacingDirection.Momentum);
|
|
[Title("Rotation Speed"), HideLabel, InlineProperty] public SettingValue<float> rotationSpeed = new SettingValue<float>(5f);
|
|
|
|
|
|
public List<IResettableSettingValue> GetAllSettings(){
|
|
var outputList = new List<IResettableSettingValue>();
|
|
|
|
IResettableSettingValue[] settings = {
|
|
directionChangingSoftness,
|
|
directionSpinningHardness,
|
|
directionSpinningSpeed,
|
|
acceleration,
|
|
deacceleration,
|
|
airDirectionDecay,
|
|
moveSpeed,
|
|
gravityPower,
|
|
gravityMax,
|
|
gravityAcceleration,
|
|
gravityScale,
|
|
facingDirection,
|
|
rotationSpeed,
|
|
};
|
|
|
|
outputList.AddRange(settings);
|
|
|
|
return outputList;
|
|
}
|
|
}
|
|
} |