轻轻松松改成定点数咯

This commit is contained in:
DESKTOP-5RP3AKU\Jisol
2024-10-21 04:04:13 +08:00
parent 0371576f87
commit 930911e7df
46 changed files with 1070 additions and 317 deletions

View File

@@ -70,6 +70,7 @@ namespace GAS.Editor
writer.WriteLine("using System;");
writer.WriteLine("using System.Collections.Generic;");
writer.WriteLine("using JNGame.Math;");
writer.WriteLine("");
@@ -97,14 +98,14 @@ namespace GAS.Editor
writer.WriteLine("");
{
writer.WriteLine($"/// <summary>{attributeAccessor.Comment}</summary>");
writer.WriteLine($"public AttributeBase {validAttrName} {{ get; }} = new(\"AS_{validName}\", \"{attributeName}\", {attributeAccessor.DefaultValue}f, CalculateMode.{attributeAccessor.CalculateMode}, (SupportedOperation){(byte)attributeAccessor.SupportedOperation}, {(attributeAccessor.LimitMinValue ? attributeAccessor.MinValue + "f" : "float.MinValue")}, {(attributeAccessor.LimitMaxValue ? attributeAccessor.MaxValue + "f" : "float.MaxValue")});");
writer.WriteLine($"public AttributeBase {validAttrName} {{ get; }} = new(\"AS_{validName}\", \"{attributeName}\", new LFloat(true,{attributeAccessor.DefaultValue.rawValue}), {(attributeAccessor.LimitMinValue ? $"new LFloat(true,{attributeAccessor.MinValue.rawValue})" : "LFloat.MinValue")}, {(attributeAccessor.LimitMaxValue ? $"new LFloat(true,{attributeAccessor.MaxValue.rawValue})" : "LFloat.MaxValue")}, CalculateMode.{attributeAccessor.CalculateMode}, (SupportedOperation){(byte)attributeAccessor.SupportedOperation});");
writer.WriteLine("");
writer.WriteLine($"public void Init{validAttrName}(float value) => {validAttrName}.Init(value);");
writer.WriteLine($"public void SetCurrent{validAttrName}(float value) => {validAttrName}.SetCurrentValue(value);");
writer.WriteLine($"public void SetBase{validAttrName}(float value) => {validAttrName}.SetBaseValue(value);");
writer.WriteLine($"public void SetMin{validAttrName}(float value) => {validAttrName}.SetMinValue(value);");
writer.WriteLine($"public void SetMax{validAttrName}(float value) => {validAttrName}.SetMaxValue(value);");
writer.WriteLine($"public void SetMinMax{validAttrName}(float min, float max) => {validAttrName}.SetMinMaxValue(min, max);");
writer.WriteLine($"public void Init{validAttrName}(LFloat value) => {validAttrName}.Init(value);");
writer.WriteLine($"public void SetCurrent{validAttrName}(LFloat value) => {validAttrName}.SetCurrentValue(value);");
writer.WriteLine($"public void SetBase{validAttrName}(LFloat value) => {validAttrName}.SetBaseValue(value);");
writer.WriteLine($"public void SetMin{validAttrName}(LFloat value) => {validAttrName}.SetMinValue(value);");
writer.WriteLine($"public void SetMax{validAttrName}(LFloat value) => {validAttrName}.SetMaxValue(value);");
writer.WriteLine($"public void SetMinMax{validAttrName}(LFloat min, LFloat max) => {validAttrName}.SetMinMaxValue(min, max);");
}
writer.WriteLine("");
writer.WriteLine($"#endregion {attributeName}");

View File

@@ -5,6 +5,7 @@ using GAS.Editor.General;
using GAS.General;
using GAS.General.Validation;
using GAS.Runtime;
using JNGame.Math;
using Sirenix.OdinInspector;
using UnityEditor;
using UnityEngine;
@@ -191,7 +192,7 @@ namespace GAS.Editor
[DelayedProperty]
[PropertyOrder(5)]
[HorizontalGroup("$DisplayName/Values")]
public float DefaultValue = 0f;
public LFloat DefaultValue = LFloat.L0;
[FoldoutGroup("$DisplayName")]
[LabelText("最小值"), LabelWidth(40)]
@@ -207,7 +208,7 @@ namespace GAS.Editor
[PropertyOrder(6)]
[EnableIf("LimitMinValue")]
[HorizontalGroup("$DisplayName/Values")]
public float MinValue = float.MinValue;
public LFloat MinValue = LFloat.MinValue;
[FoldoutGroup("$DisplayName")]
[LabelText("最大值"), LabelWidth(50)]
@@ -222,7 +223,7 @@ namespace GAS.Editor
[PropertyOrder(7)]
[EnableIf("LimitMaxValue")]
[HorizontalGroup("$DisplayName/Values")]
public float MaxValue = float.MaxValue;
public LFloat MaxValue = LFloat.MaxValue;
}
}
}

View File

@@ -1,3 +1,5 @@
using JNGame.Math;
#if UNITY_EDITOR
namespace GAS.Editor
{
@@ -41,7 +43,7 @@ namespace GAS.Editor
EditorGUILayout.BeginHorizontal();
EditorGUILayout.LabelField("Value:", GUILayout.Width(100));
_sourceModifier.ModiferMagnitude = EditorGUILayout.FloatField("", _sourceModifier.ModiferMagnitude);
_sourceModifier.ModiferMagnitude = EditorGUILayout.FloatField("", _sourceModifier.ModiferMagnitude).ToLFloat();
EditorGUILayout.EndHorizontal();
EditorGUILayout.Space();