Signed-off-by: TRAfoer <lhf190@outlook.com>
This commit is contained in:
2025-11-08 23:21:45 +08:00
parent 1280e32612
commit 45739dd8fa
8 changed files with 692 additions and 370 deletions

View File

@@ -18,6 +18,8 @@ namespace Ichni.RhythmGame
public float TimeOffset;
public BaseElement_BM MatchingExportElement { get; set; } = null;
public List<InterferometerBase> Interferometers { get; set; } = new();
private bool isSwitchingReturnType = false;
public static DisplacementTracker GenerateElement(string elementName, System.Guid id,
List<string> tags, bool isFirstGenerated, GameElement animatedObject, Displacement targetDisplacement, float timeOffset)
{
@@ -44,10 +46,12 @@ namespace Ichni.RhythmGame
{
animationReturnType = FlexibleReturnType.MiddleExecuting;
ApplyValue(songTime);
isSwitchingReturnType = true;
}
else if (x.Item2 || y.Item2 || z.Item2)
else if (isSwitchingReturnType)
{
animationReturnType = FlexibleReturnType.MiddleExecuting;
isSwitchingReturnType = false;
ApplyValue(songTime);
}
else
@@ -108,6 +112,11 @@ namespace Ichni.RhythmGame
string ShowConnection() => targetDisplacement == null ? "No Displacement Connected" : "Connected With: " + ((GameElement)targetDisplacement).elementName;
var connectHintText = inspector.GenerateHintText(this, effectSettings, ShowConnection);
var InputField = inspector.GenerateInputField(this, effectSettings, "Offset", nameof(TimeOffset));
var interferometerButton = inspector.GenerateButton(this, effectSettings, "Interferometer", () =>
{
Vector3Interferometer.GenerateElement("New Vector3 Interferometer", Guid.NewGuid(), new List<string>(), true,
this, InterferomType.Additive, Vector3.zero);
});
}

View File

@@ -18,6 +18,8 @@ namespace Ichni.RhythmGame
public float TimeOffset;
public BaseElement_BM MatchingExportElement { get; set; } = null;
public List<InterferometerBase> Interferometers { get; set; } = new();
private bool isSwitchingReturnType = false;
public static ScaleTracker GenerateElement(string elementName, Guid id,
List<string> tags, bool isFirstGenerated, GameElement animatedObject, ICanBeTrackedScale targetScale, float timeOffset)
{
@@ -44,10 +46,12 @@ namespace Ichni.RhythmGame
{
animationReturnType = FlexibleReturnType.MiddleExecuting;
ApplyValue(songTime);
isSwitchingReturnType = true;
}
else if (x.Item2 || y.Item2 || z.Item2)
else if (isSwitchingReturnType)
{
animationReturnType = FlexibleReturnType.MiddleExecuting;
isSwitchingReturnType = false;
ApplyValue(songTime);
}
else
@@ -104,6 +108,12 @@ namespace Ichni.RhythmGame
string ShowConnection() => targetScale == null ? "No Scale Connected" : "Connected With: " + ((GameElement)targetScale).elementName;
var connectHintText = inspector.GenerateHintText(this, effectSettings, ShowConnection);
var InputField = inspector.GenerateInputField(this, effectSettings, "Offset", nameof(TimeOffset));
var interferometerButton = inspector.GenerateButton(this, effectSettings, "Interferometer", () =>
{
Vector3Interferometer.GenerateElement("New Vector3 Interferometer", Guid.NewGuid(), new List<string>(), true,
this, InterferomType.Additive, Vector3.zero);
});
}
public override void SaveBM()

View File

@@ -18,6 +18,8 @@ namespace Ichni.RhythmGame
public float TimeOffset;
public BaseElement_BM MatchingExportElement { get; set; } = null;
public List<InterferometerBase> Interferometers { get; set; } = new();
private bool isSwitchingReturnType = false;
public static SwirlTracker GenerateElement(string elementName, Guid id,
List<string> tags, bool isFirstGenerated, GameElement animatedObject, Swirl targetSwirl, float timeOffset)
{
@@ -44,10 +46,12 @@ namespace Ichni.RhythmGame
{
animationReturnType = FlexibleReturnType.MiddleExecuting;
ApplyValue(songTime);
isSwitchingReturnType = true;
}
else if (x.Item2 || y.Item2 || z.Item2)
else if (isSwitchingReturnType)
{
animationReturnType = FlexibleReturnType.MiddleExecuting;
isSwitchingReturnType = false;
ApplyValue(songTime);
}
else
@@ -104,6 +108,11 @@ namespace Ichni.RhythmGame
string ShowConnection() => targetSwirl == null ? "No Swirl Connected" : "Connected With: " + ((GameElement)targetSwirl).elementName;
var connectHintText = inspector.GenerateHintText(this, effectSettings, ShowConnection);
var InputField = inspector.GenerateInputField(this, effectSettings, "Offset", nameof(TimeOffset));
var interferometerButton = inspector.GenerateButton(this, effectSettings, "Interferometer", () =>
{
Vector3Interferometer.GenerateElement("New Vector3 Interferometer", Guid.NewGuid(), new List<string>(), true,
this, InterferomType.Additive, Vector3.zero);
});
}
public override void SaveBM()