From 43776de41b57eddcf7dbb749dc03f6be564cb547 Mon Sep 17 00:00:00 2001 From: msk <15199219+muskit@users.noreply.github.com> Date: Mon, 9 Oct 2023 23:22:09 -0700 Subject: [PATCH] fix Util.PixelizeNote & HoldNote creation --- Scripts/Things/TunnelObjects/THNoteHold.cs | 29 ++++++++----- Scripts/Util.cs | 48 +++++++++++----------- 2 files changed, 43 insertions(+), 34 deletions(-) diff --git a/Scripts/Things/TunnelObjects/THNoteHold.cs b/Scripts/Things/TunnelObjects/THNoteHold.cs index f947ebb..26db6c5 100644 --- a/Scripts/Things/TunnelObjects/THNoteHold.cs +++ b/Scripts/Things/TunnelObjects/THNoteHold.cs @@ -60,14 +60,13 @@ namespace WacK.Things.TunnelObjects private Polygon2D CreateSegment(NotePlay origin, NotePlay destination) { - float minuteSize = Constants.BASE_2D_RESOLUTION / 60; - var length = Play.ScrollPxPerSec * (float)(destination.time - origin.time); var verts = new Vector2[4]; - int correctedDestPos = Util.NearestMinute((int) origin.pos, (int) destination.pos); + int destPosNearest = Util.NearestMinute((int) origin.pos, (int) destination.pos); + var (originPosPx, originSizePx) = Util.PixelizeNote((int)origin.pos, (int)origin.size); - var (destPosPx, destSizePx) = Util.PixelizeNote(correctedDestPos, (int)destination.size); + var (destPosPx, destSizePx) = Util.PixelizeNote(destPosNearest, (int)destination.size); verts[0] = new Vector2(originPosPx, 0); verts[1] = new Vector2(verts[0].X + originSizePx, 0); @@ -77,17 +76,27 @@ namespace WacK.Things.TunnelObjects // draw overflow var originFinalPos = origin.pos + origin.size; - var destinationFinalPos = correctedDestPos + destination.size; + var destinationFinalPos = destPosNearest + destination.size; if (originFinalPos > 60 || destinationFinalPos > 60) { - var subSegment = new Polygon2D() { Polygon = verts, Antialiased = true }; - subSegment.Translate(new Vector2(-Constants.BASE_2D_RESOLUTION, 0)); + GD.Print("overflowed to the right!"); + var subSegment = new Polygon2D + { + Polygon = verts, + Antialiased = true, + Position = new Vector2(-Constants.BASE_2D_RESOLUTION, 0) + }; segment.AddChild(subSegment); } - if (originFinalPos < 60 || destinationFinalPos < 60) + if (originFinalPos < 0 || destinationFinalPos < 0) { - var subSegment = new Polygon2D() { Polygon = verts, Antialiased = true }; - subSegment.Translate(new Vector2(Constants.BASE_2D_RESOLUTION, 0)); + GD.Print("overflowed to the left!"); + var subSegment = new Polygon2D + { + Polygon = verts, + Antialiased = true, + Position = new Vector2(Constants.BASE_2D_RESOLUTION, 0) + }; segment.AddChild(subSegment); } segment.Modulate = new Color("#FFFFFFD0"); diff --git a/Scripts/Util.cs b/Scripts/Util.cs index 6fe9d7f..34f0a07 100644 --- a/Scripts/Util.cs +++ b/Scripts/Util.cs @@ -16,8 +16,8 @@ namespace WacK { public static float Seg2Rad(float seg) { - return Mathf.DegToRad(6f * seg); - } + return Mathf.DegToRad(6f * seg); + } public static float Rad2Seg(float angle) { return Mathf.RadToDeg(angle / 6f); @@ -77,30 +77,30 @@ namespace WacK { float pxPerMinute = Constants.BASE_2D_RESOLUTION / 60; - float posPx = 0; - float sizePx = 0; + float posPx; + float sizePx; if (size <= 59) - { - if (size >= 3) - { - posPx = (pos + 1) * pxPerMinute; - sizePx = (size - 2) * pxPerMinute; - } - else // 2 or smaller - { - posPx = pos * pxPerMinute; - sizePx = size * pxPerMinute; - } - // end-caps - posPx -= endCapPx; - sizePx += 2*endCapPx; - } - else // size is 60 or greater - { - size = 60; - sizePx = Constants.BASE_2D_RESOLUTION; - } + { + if (size >= 3) + { + posPx = (pos + 1) * pxPerMinute; + sizePx = (size - 2) * pxPerMinute; + } + else // 2 or smaller + { + posPx = pos * pxPerMinute; + sizePx = size * pxPerMinute; + } + // end-caps + posPx -= endCapPx; + sizePx += 2*endCapPx; + } + else // size is 60 or greater + { + posPx = pxPerMinute * pos; + sizePx = Constants.BASE_2D_RESOLUTION; + } return (posPx, sizePx); }