This commit is contained in:
boonsboos
2025-09-08 22:59:59 +02:00
commit aca5cd42f1
36 changed files with 1137 additions and 0 deletions

70
dst/clippy.lua Normal file
View File

@@ -0,0 +1,70 @@
local function getClippy(speechBubbleX, speechBubbleY, speechBubbleFontHeight)
return {
-- clippy
{
id = "clippy_character",
filter = 0, -- nearest neigbour
dst = {
{ x = speechBubbleX - 10, y = 66, w = 300, h = 300, a = 255 }
}
},
{
id = "clippy_speechbubble",
dst = {
{ x = speechBubbleX, y = speechBubbleY, w = 300, h = 300, a = 255 }
}
},
-- clippy speech text
{
id = "clippy_rank",
dst = {
{ x = speechBubbleX + 10, y = speechBubbleY + 220, w = 300, h = 60, a = 255, r = 10, g = 10, b = 10 }
}
},
{
id = "clippy_rank_best",
dst = {
{ x = speechBubbleX + 190, y = speechBubbleY + 230, w = 100, h = speechBubbleFontHeight, a = 255, r = 10, g = 10, b = 10 }
}
},
-- gauge type
{
id = "clippy_clear_type",
dst = {
{ x = speechBubbleX + 10, y = speechBubbleY + 160, w = 300, h = speechBubbleFontHeight, a = 255, r = 10, g = 10, b = 10 }
}
},
{
id = "clippy_clear_type_best",
dst = {
{ x = speechBubbleX + 190, y = speechBubbleY + 160, w = 100, h = speechBubbleFontHeight, a = 255, r = 10, g = 10, b = 10 }
}
},
-- ir display
{
id = "clippy_ir_unavailable",
op = { 50 },
dst = {
{ x = speechBubbleX + 10, y = speechBubbleY + 100, w = 300, h = speechBubbleFontHeight, a = 255, r = 10, g = 10, b = 10 }
}
},
{
id = "clippy_ir_rank",
op = { 51 },
dst = {
{ x = speechBubbleX + 10, y = speechBubbleY + 100, w = 300, h = speechBubbleFontHeight, a = 255, r = 10, g = 10, b = 10 }
}
},
-- rate
{
id = "clippy_rate",
dst = {
{ x = speechBubbleX + 10, y = speechBubbleY + 40, w = 300, h = speechBubbleFontHeight, a = 255, r = 10, g = 10, b = 10 }
}
}
}
end
return {
getClippy = getClippy
}

37
dst/gauge.lua Normal file
View File

@@ -0,0 +1,37 @@
local function getGauge(grooveX, grooveY)
return {
-- gauge graph
{
id = "bg_groove",
loop = 200,
dst = {
{ time = 0, x = grooveX, y = grooveY, w = 600, h = 300, a = 0, filter = 1 },
{ time = 200, a = 255 }
}
},
{
id = "text_groove_title",
loop = 200,
dst = {
{ time = 0, x = grooveX + 70, y = grooveY + 240, w = 400, h = 40, a = 0, r = 255, g = 255, b = 255, filter = 1 },
{ time = 200, a = 255 }
}
},
{
id = "gauge_line",
dst = {
{ x = grooveX + 4, y = grooveY + 4, w = 592, h = 230, a = 255 }
}
},
{
id = "gauge_bg",
dst = {
{ x = grooveX + 4, y = grooveY + 4, w = 592, h = 230, a = 192 }
}
}
}
end
return {
getGauge = getGauge
}

42
dst/jacket.lua Normal file
View File

@@ -0,0 +1,42 @@
local function getJacket(jacketWindowX, jacketWindowY)
-- jacket image
return {
{
id = "jacket_window",
dst = {
{ x = jacketWindowX, y = jacketWindowY, w = 408, h = 372, a = 255 }
}
},
{
id = "text_jacket_title",
dst = {
{ x = jacketWindowX + 68, y = jacketWindowY + 314, w = 130, h = 40, a = 255, r = 255, g = 255, b = 255 }
}
},
{
id = -110, -- black image for the black bars in the jacket window
dst = {
{ x = jacketWindowX + 6, y = jacketWindowY + 6, w = 396, h = 296, a = 255 }
}
},
{
id = -100, -- stage file (music select image)
op = { 191 },
dst = {
{ x = jacketWindowX + 6, y = jacketWindowY + 6, w = 396, h = 296, a = 255 }
}
},
{
id = "jacket_no_jacket",
op = { 190 },
dst = { -- text is centered so the draw origin is shifted by 200 px
{ x = jacketWindowX + 206, y = jacketWindowY + 120, w = 400, h = 52, a = 255, r = 255, g = 255, b = 255 }
}
}
}
end
return {
getJacket = getJacket
}

105
dst/songdata.lua Normal file
View File

@@ -0,0 +1,105 @@
local game = require("main_state")
local function getDiffColor(op)
local diff = tonumber(game.number(op))
if diff < 0 then
return 192
end
return 10
end
local function getSongData(judgeX, judgeY, judgeFontHeight, judgeOffset)
return {
-- song data + playdata
{
id = "bg_song",
dst = {
{ x = judgeX - 10, y = judgeY - 305, w = 1220, h = 376, a = 255, filter = 1 }
}
},
{
id = "text_title",
dst = {
{ x = judgeX + 60, y = judgeY + 12, w = 960, h = 40, a = 255, r = 255, g = 255, b = 255, filter = 1 }
}
},
{
id = "text_level",
dst = {
{ x = judgeX, y = judgeY - judgeOffset * 7 - 20, w = 150, h = 40, a = 255, r = 10, g = 10, b = 10, filter = 1 }
}
},
-- playdata
{
id = "pgreat",
dst = {
{ x = judgeX, y = judgeY - judgeOffset * 1, w = 300, h = judgeFontHeight, a = 255, r = 10, g = 10, b = 10 }
}
},
{
id = "great",
dst = {
{ x = judgeX, y = judgeY - judgeOffset * 2, w = 300, h = judgeFontHeight, a = 255, r = 10, g = 10, b = 10 }
}
},
{
id = "good",
dst = {
{ x = judgeX, y = judgeY - judgeOffset * 3, w = 300, h = judgeFontHeight, a = 255, r = 10, g = 10, b = 10 }
}
},
{
id = "bad",
dst = {
{ x = judgeX, y = judgeY - judgeOffset * 4, w = 300, h = judgeFontHeight, a = 255, r = 10, g = 10, b = 10 }
}
},
{
id = "poor",
dst = {
{ x = judgeX, y = judgeY - judgeOffset * 5, w = 300, h = judgeFontHeight, a = 255, r = 10, g = 10, b = 10 }
}
},
{
id = "expoor",
dst = {
{ x = judgeX, y = judgeY - judgeOffset * 6, w = 300, h = judgeFontHeight, a = 255, r = 10, g = 10, b = 10 }
}
},
{
id = "exscore",
dst = {
{ x = judgeX + 275, y = judgeY - judgeOffset * 1, w = 300, h = judgeFontHeight, a = 255, r = 10, g = 10, b = 10 }
}
},
{
id = "exscore_diff",
dst = {
{ x = judgeX + 275, y = judgeY - judgeOffset * 2, w = 300, h = judgeFontHeight, a = 255, r = getDiffColor(172), g = 10, b = 10 }
}
},
{
id = "exscore_diff_target",
dst = {
{ x = judgeX + 275, y = judgeY - judgeOffset * 3, w = 300, h = judgeFontHeight, a = 255, r = getDiffColor(153), g = 10, b = 10 }
}
},
-- fastslow
{
id = "total_fast",
dst = {
{ x = judgeX + 275, y = judgeY - judgeOffset * 5, w = 300, h = judgeFontHeight, a = 255, r = 10, g = 140, b = 180 }
}
},
{
id = "total_slow",
dst = {
{ x = judgeX + 275, y = judgeY - judgeOffset * 6, w = 300, h = judgeFontHeight, a = 255, r = 140, g = 10, b = 10 }
}
},
}
end
return {
getSongData = getSongData
}

27
dst/taskbar.lua Normal file
View File

@@ -0,0 +1,27 @@
local function getTaskbar()
return {
-- task bar
{ -- todo(boons): extract start button icon so we can use it to toggle the leaderboard
id = "taskbar",
dst = {
{ x = 0, y = 0, w = 1920, h = 63, a = 255, filter = 1 }
}
},
{
id = "taskbar_time",
dst = {
{ x = 1455, y = 7, w = 460, h = 50, a = 255, filter = 1 }
}
},
{
id = "taskbar_time_text",
dst = {
{ x = 1463, y = 8, w = 444, h = 40, a = 255, r = 0, g = 0, b = 0 }
}
}
}
end
return {
getTaskbar = getTaskbar
}