基础内容-9

为次级模块增加存档类,仍在思考框架中
This commit is contained in:
SoulliesOfficial
2025-02-06 23:01:44 -05:00
parent bc1c5d65ef
commit 4cd90eaede
14 changed files with 436 additions and 19 deletions

View File

@@ -18,9 +18,9 @@ namespace Ichni.RhythmGame
endTime = 999;//TODO: 换为songLength
}
public TimeDurationSubmodule(BaseElement attachedElement, float startTime, float endTime) : base(attachedElement)
public TimeDurationSubmodule(BaseElement attachedElement, bool isOverridingDuration, float startTime, float endTime) : base(attachedElement)
{
this.isOverridingDuration = false;
this.isOverridingDuration = isOverridingDuration;
this.startTime = startTime;
this.endTime = endTime;
}
@@ -73,5 +73,42 @@ namespace Ichni.RhythmGame
startTime = durations.Min(duration => duration.x);
endTime = durations.Max(duration => duration.y);
}
public override void SaveBM()
{
matchedBM = new Beatmap.TimeDurationSubmodule_BM(attachedElement, this);
}
}
namespace Beatmap
{
public class TimeDurationSubmodule_BM : Submodule_BM
{
public bool isOverridingDuration;
public float startTime, endTime;
public TimeDurationSubmodule_BM()
{
}
public TimeDurationSubmodule_BM(BaseElement attachedElement, TimeDurationSubmodule timeDurationSubmodule) : base(attachedElement)
{
isOverridingDuration = timeDurationSubmodule.isOverridingDuration;
startTime = timeDurationSubmodule.startTime;
endTime = timeDurationSubmodule.endTime;
}
public override void ExecuteBM()
{
attachedElement = GetElement(attachedElementGuid);
attachedElement.timeDurationSubmodule = new TimeDurationSubmodule(attachedElement, isOverridingDuration, startTime, endTime);
}
public override void DuplicateBM(BaseElement attached)
{
attached.timeDurationSubmodule = new TimeDurationSubmodule(attached, isOverridingDuration, startTime, endTime);
}
}
}
}