From 9a060eb6ffb1350089eace6ad25fe1ad9b31b7a1 Mon Sep 17 00:00:00 2001 From: OLDREDSTONE Date: Mon, 12 Jan 2026 20:58:25 +0800 Subject: [PATCH] =?UTF-8?q?[RDView]=20=E6=9B=B4=E6=96=B0=E7=BB=86=E5=88=86?= =?UTF-8?q?=E6=8B=8D=E7=9A=84=E5=9B=BE=E5=83=8F=EF=BC=8C=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=95=BF=E6=8C=89=E4=BA=8C=E6=8B=8D=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- script/rdview.js | 5 +++- script/rdview.ts | 5 +++- style/assets/beats/subdivision-area.png | Bin 130 -> 129 bytes style/rdview.css | 30 ++++++++++++++++++++++++ 4 files changed, 38 insertions(+), 2 deletions(-) diff --git a/script/rdview.js b/script/rdview.js index 90f77ca..fda7705 100644 --- a/script/rdview.js +++ b/script/rdview.js @@ -849,6 +849,9 @@ function ReadProperties(reader, event, pairs) { if (value = FindValue(pairs, "loop")) { event.BeatStyle.Loop = parseInt(value.Value); } + if (value = FindValue(pairs, "hold")) { + event.BeatStyle.Hold = parseFloat(value.Value); + } break; default: break; @@ -938,7 +941,7 @@ function ConstructDivObject(obj) { result += (((_a = obj.BeatStyle) === null || _a === void 0 ? void 0 : _a.RowXs[i]) === 'x') ? `
` : `
`; } return result; - }], [(obj.BeatType === BeatsSpecial.AddClassicBeat || obj.BeatType === BeatsSpecial.AddFreeTimeBeat || obj.BeatType === BeatsSpecial.PulseFreeTimeBeat) && ((_s = (_r = obj.BeatStyle) === null || _r === void 0 ? void 0 : _r.Hold) !== null && _s !== void 0 ? _s : 0) > 0, `holdbeat`, () => ''], [obj.BeatType === BeatsSpecial.AddOneshotBeat && obj.BeatStyle !== undefined && obj.BeatStyle.OneshotBeatSubType.includes(RDOneshotBeatSubType.Skipshot), `skipshot`, () => ''])}`; + }], [(obj.BeatType === BeatsSpecial.AddClassicBeat || obj.BeatType === BeatsSpecial.AddFreeTimeBeat || obj.BeatType === BeatsSpecial.PulseFreeTimeBeat || obj.BeatType === BeatsSpecial.AddOneshotBeat) && ((_s = (_r = obj.BeatStyle) === null || _r === void 0 ? void 0 : _r.Hold) !== null && _s !== void 0 ? _s : 0) > 0, `holdbeat`, () => ''], [obj.BeatType === BeatsSpecial.AddOneshotBeat && obj.BeatStyle !== undefined && obj.BeatStyle.OneshotBeatSubType.includes(RDOneshotBeatSubType.Skipshot), `skipshot`, () => ''])}`; } else if (obj instanceof RDGroup) { return `
0, `holdbeat`, () => ''], + [(obj.BeatType === BeatsSpecial.AddClassicBeat || obj.BeatType === BeatsSpecial.AddFreeTimeBeat || obj.BeatType === BeatsSpecial.PulseFreeTimeBeat || obj.BeatType === BeatsSpecial.AddOneshotBeat) && (obj.BeatStyle?.Hold ?? 0) > 0, `holdbeat`, () => ''], [obj.BeatType === BeatsSpecial.AddOneshotBeat && obj.BeatStyle !== undefined && obj.BeatStyle.OneshotBeatSubType.includes(RDOneshotBeatSubType.Skipshot), `skipshot`, () => ''], )}
`; } diff --git a/style/assets/beats/subdivision-area.png b/style/assets/beats/subdivision-area.png index 9915732d12a185d4444df4b13ad90c4eff048da7..1bd906b94b324322375cebbfb5d50fe0daa0ba1e 100644 GIT binary patch delta 87 zcmZo-Y-F5Z7+~$`;us<^HCg1|f*.beat:not(:has(.classicbeat)) { + &>div.holdbeat { + position: absolute; + width: calc((var(--hold) * 28 - 2) * 1px); + height: inherit; + background-size: auto 100%; + background-image: url(./assets/beats/hold-area.png); + transform: translate(calc(((var(--tick) + var(--delay)) * 28 - 4) * 1px), 0); + z-index: -2; + + &::after { + content: ''; + position: absolute; + width: 2px; + height: 28px; + background-size: auto 100%; + transform: translate(calc((var(--hold) * 28 - 2) * 1px), 0); + background-image: url(./assets/beats/hold-right.png); + } + } + + &:active>div.holdbeat { + background-image: url(./assets/beats/hold-hover-area.png); + + &::after { + background-image: url(./assets/beats/hold-hover-right.png); + } + } + } + &>.beat:has(.row-xs) { width: 56px; height: 28px;