Files
itgmania212121/Docs/steps.lua
T
2010-01-27 10:42:58 -08:00

190 lines
6.1 KiB
Lua

-- steps.lua: rough rough draft. Please don't use until finalized.
-- ver 20100116
local MetaTags = {
Title = {"Dyamite Rave","(transliteration)"},
Subtitle = {"Down Bird Sota Mix","(transliteration)"},
Artist = {"NAOKI","(transliteration)"},
Genre = {"Scouse House","(transliteration)"},
License = "CC-BY-NC",
URL = "http://shakesoda.org/"
}
--[[
If an int is used in a field that expects a time of some sort, it is
assumed to use beats. If it's a float, it assumes seconds instead.
]]
local CacheData {
HasAttacks = true,
HasBanner = true,
HasBackground = true,
HasKeysounds = true,
HasLyrics = true,
HasMusic = true,
SongFileNames = "path/from/song/folder",
LongestChartLength = 220.000
}
local MetaData = {
Attacks = {
-- start = length, startup time, mod string
0 = { 10, 1.0, "mod,50% reverse" },
10 = { 5, 1.0, "mod,70% boost" }
},
BannerPath = { "banner.png" }, -- can be an image, video, or lua
Background = { -- background changes.
Path = "background.png",
Animation = { -- can have as many changes as needed
--[[
startTime = { path, rate, offset, commands }
Any ommitted arguments will default to nil, except for rate, which would use 1.0
]]
0 = {"path/to/bga", 1.0, 0.000, 0, cmd(rainbow) },
0 = {"path/to/bga2", 1.0, 0.000, 0, cmd(thump) }
},
},
--[[
-- #BGCHANGES2:32.000=flash=1.000=0=0=1=====,
BackgroundChanges2 = {
32.000 = { "flash", 1.000, 0, 0, 1, [unk], [unk], [unk], [unk], [unk] };
},
]]
BPMs = { 0.000 = 280.000 },
CDTitle = "",
DisplayBPM = { 150, 300 }, -- can be either an array of two values to cycle or 'Random'
FormatRevision = 1,
InstrumentTracks = {
-- todo: account for dj-hero style crossfading for an arbitrary amount of tracks (at least two)
InstrumentTrack_Guitar = "guitar.ogg",
InstrumentTrack_Rhythm = "rhythm.ogg",
InstrumentTrack_Bass = "bass.ogg"
},
Keysounds = {}, -- I forget exactly how the SM format does this, but it'll be similar here.
LeadOut = 3,
LyricsPath = "Dynamite Rave.lrc",
Offset = 0.014,
Overlay = {}, -- same as Background, but without path.
PreviewMusic = { 50.000, 60.000 },
Selectable = true,
Stops = { 156.000 = 0.540 },
TimeSignatures = { 0.000 = "4/4" }
}
local NoteCharts = {
{
ChartRevison = 20,
BPMs = { 0.000 = 140.000 }, -- override
Description = "Z. Nard", -- usually the chart author or "Copied from *"
Difficulty = 'Difficulty_Hard',
Meter = '100', -- value clamped between 1 and 100, scaled to whatever works theme-side.
RadarValues = {
-- may not be 100%; won't be commented/linebroken in actual file
0.931, -- Stream (0..1)
1.000, -- Voltage (0..1)
0.439, -- Air (0..1)
0.174, -- Freeze (0..1)
0.156, -- Chaos (0..1)
},
-- taps and holds, jumps, holds, mines, hands, rolls
Stats = { 645, 48, 19, 3, 0, 0 },
StepsType = 'StepsType_Dance_Single',
Stops = { 140.000 = 0.860 }, -- override
TimeSignatures = { 0.000 = "4/4" }, -- override
NoteData = {
{ -- measure 1
-- row level
--{ column level }, works like this:
{ 0,0,0,0 },
{ 0,0,0,0 },
{ 0,0,0,0 },
{ 0,0,0,1 = { SomeFunction(), 'TNS_GreaterThan', 'TapNoteScore_W5' } } -- example of assigning a function to a note.
},
{ -- measure 2
-- row level
--{ column level } or in other words
{ 0,0,0,0 },
{ 0,0,0,0 },
{ 0,0,0,0 },
{ 0,0,0,0 }
}
}
},
-- second example chart
{
ChartRevison = 5,
BPMs = { 0.000 = 140.000 }, -- override
Description = "B. McLargeHuge", -- usually the chart author or "Copied from *"
Difficulty = 'Difficulty_Expert',
Meter = '60',
RadarValues = {
-- may not be 100%; won't be commented/linebroken in actual file
0.931, -- Stream (0..1)
1.000, -- Voltage (0..1)
0.439, -- Air (0..1)
0.174, -- Freeze (0..1)
0.156, -- Chaos (0..1)
},
-- taps and holds, jumps, holds, mines, hands, rolls
Stats = { 16, 0, 0, 16, 0, 0 },
StepsType = 'StepsType_Dance_Single',
-- usually last
NoteData = {
{ { 1,0,0,0 }, { 0,0,0,0 }, { 0,0,0,0 }, { 0,0,0,'m' }, },
{ { 0,1,0,0 }, { 0,0,0,0 }, { 0,0,0,0 }, { 0,0,'m',0 }, },
{ { 0,0,1,0 }, { 0,0,0,0 }, { 0,0,0,0 }, { 0,'m',0,0 }, },
{ { 0,0,0,1 }, { 0,0,0,0 }, { 0,0,0,0 }, { 'm',0,0,0 }, },
{ { 0,0,0,0 }, { 1,0,0,0 }, { 0,0,0,'m' }, { 0,0,0,0 }, },
{ { 0,0,0,0 }, { 0,1,0,0 }, { 0,0,'m',0 }, { 0,0,0,0 }, },
{ { 0,0,0,0 }, { 0,0,1,0 }, { 0,'m',0,0 }, { 0,0,0,0 }, },
{ { 0,0,0,0 }, { 0,0,0,1 }, { 'm',0,0,0 }, { 0,0,0,0 }, },
{ { 0,0,0,0 }, { 0,0,0,'m' }, { 1,0,0,0 }, { 0,0,0,0 }, },
{ { 0,0,0,0 }, { 0,0,'m',0 }, { 0,1,0,0 }, { 0,0,0,0 }, },
{ { 0,0,0,0 }, { 0,'m',0,0 }, { 0,0,1,0 }, { 0,0,0,0 }, },
{ { 0,0,0,0 }, { 'm',0,0,0 }, { 0,0,0,1 }, { 0,0,0,0 }, },
{ { 0,0,0,'m' }, { 0,0,0,0 }, { 0,0,0,0 }, { 1,0,0,0 }, },
{ { 0,0,'m',0 }, { 0,0,0,0 }, { 0,0,0,0 }, { 0,1,0,0 }, },
{ { 0,'m',0,0 }, { 0,0,0,0 }, { 0,0,0,0 }, { 0,0,1,0 }, },
{ { 'm',0,0,0 }, { 0,0,0,0 }, { 0,0,0,0 }, { 0,0,0,1 }, }
}
}
}
local EditCharts = {
{
-- todo: uh..... (this is the internal version of the edits.)
-- should be like NoteData but with fewer available overrides.
}
}
-- this is a work in progress format. expect things to change as better ideas come about.
-- this isn't how steps currently work internally. that can be dealt with.
--[[
Below is a minimal example file.
Just about every value that can be calculated or defaulted to something
reasonable has been omitted, and much extra whitespace reduced.
]]
MetaTags = {
Title = {"Black Lawn Finale", "long wait FINALLY"},
Artist = {"The Flashbulb", "teh falshbald"}
}
MetaData = {
BannerPath = { "banner.png" },
Background = { Path = "background.png" },
BPMs = { 0.000 = 280.000 },
FormatRevision = 1,
Offset = 0.028
}
NoteCharts = {
{
Description = "S. Slabrock",
Difficulty = 'Difficulty_Medium',
Meter = '50',
StepsType = 'StepsType_Dance_Single',
NoteData = {
{{0,0,0,0},{0,0,1,0},{0,0,0,0},{0,0,0,1}}, -- measure of 4ths
{{0,1,0,0},{0,0,0,0},{0,1,0,0},{0,0,0,1},{0,0,0,0},{0,0,0,1},{0,0,0,0},{0,0,0,1}} -- measure of 8ths
}
}
}