prevent editor warnings when initializing notes

This commit is contained in:
msk
2023-10-09 20:58:33 -07:00
parent 8d117dd3fe
commit cdcef063bf
+27 -15
View File
@@ -9,10 +9,8 @@ namespace WacK.Things.TunnelObjects
private NinePatchRect noteBase; private NinePatchRect noteBase;
public NotePlay noteData; public NotePlay noteData;
public async void Init(NotePlay noteData) public void Init(NotePlay noteData)
{ {
await ToSignal(GetTree(), SceneTree.SignalName.ProcessFrame);
this.noteData = noteData; this.noteData = noteData;
SetPosSize((int)noteData.pos, (int)noteData.size); SetPosSize((int)noteData.pos, (int)noteData.size);
@@ -26,30 +24,44 @@ namespace WacK.Things.TunnelObjects
public void SetPosSize(int pos, int size) public void SetPosSize(int pos, int size)
{ {
var nbPos = pos; float pxPerMinute = Constants.BASE_2D_RESOLUTION / 60;
var nbSize = size;
// TODO: end caps peak into bounds float posPx = 0;
if (3 <= size && size <= 59) float sizePx = 0;
if (size <= 59)
{ {
nbPos += 1; if (size >= 3)
nbSize -= 2; {
posPx = (pos + 1) * pxPerMinute;
sizePx = (size - 2) * pxPerMinute;
}
else // 2 or smaller
{
posPx = pos * pxPerMinute;
sizePx = size * pxPerMinute;
}
// end-caps
posPx -= 12;
sizePx += 24;
} }
else if (size >= 60) else // size is 60 or greater
{ {
size = 60; size = 60;
nbSize = 60; sizePx = Constants.BASE_2D_RESOLUTION;
// remove end-caps
noteBase.RegionRect = new Rect2(12, 0, new Vector2(488, 36)); noteBase.RegionRect = new Rect2(12, 0, new Vector2(488, 36));
noteBase.PatchMarginLeft = 0; noteBase.PatchMarginLeft = 0;
noteBase.PatchMarginRight = 0; noteBase.PatchMarginRight = 0;
} }
var nPos = noteBase.Position; var nPos = noteBase.Position;
nPos.X = nbPos * (Constants.BASE_2D_RESOLUTION/60) - 12; nPos.X = posPx;
noteBase.Position = nPos; noteBase.SetDeferred("position", nPos);
var nSize = noteBase.Size; var nSize = noteBase.Size;
nSize.X = nbSize * (Constants.BASE_2D_RESOLUTION/60) + 24; nSize.X = sizePx;
noteBase.Size = nSize; noteBase.SetDeferred("size", nSize);
// handle swipe arrow size // handle swipe arrow size
if (noteData.type == NotePlayType.SwipeCW || noteData.type == NotePlayType.SwipeCCW) if (noteData.type == NotePlayType.SwipeCW || noteData.type == NotePlayType.SwipeCCW)