uranium-template/.typings/Song.lua
2022-09-19 17:45:17 +03:00

349 lines
7.6 KiB
Lua

--- @class Song
--- @field public __index table Gives you the ``Song`` table again
local Song = {}
--- Returns a list of all steps for the song
---
--- |since_itg|
---
--- @return Step[]
function Song:GetAllSteps() end
--- Returns the path to the song's background image
---
--- Can return ``nil`` if the song has no background image
---
--- |since_itg|
---
--- @return string|nil
function Song:GetBackgroundPath() end
--- Returns the path to the song's banner image
---
--- Can return ``nil`` if the song has no banner image
---
--- |since_itg|
---
--- @return string|nil
function Song:GetBannerPath() end
--- Returns the song title for display
---
--- |since_itg|
---
--- @return string
function Song:GetDisplayMainTitle() end
--- Returns the transliterated song title
---
--- |since_itg|
---
--- @return string
function Song:GetTranslitMainTitle() end
--- Returns the sub title for display
---
--- Returns an empty string is no subtitle is set
---
--- |since_itg|
---
--- @return string
function Song:GetDisplaySubTitle() end
--- Returns the transliterated sub title
---
--- Returns an empty string is no subtitle is set
---
--- |since_itg|
---
--- @return string
function Song:GetTranslitSubTitle() end
--- Returns the main title and sub title for display (``mainTitle .. " " .. subTitle``)
---
--- |since_itg|
---
--- @return string
function Song:GetDisplayFullTitle() end
--- Returns the transliterated main title and sub title (``mainTitleTranslit .. " " .. subTitleTranslit``)
---
--- Returns an empty string is no subtitle is set
---
--- |since_itg|
---
--- @return string
function Song:GetTranslitFullTitle() end
--- Returns the artist name for display
---
--- |since_itg|
---
--- @return string
function Song:GetDisplayArtist() end
--- Returns the transliterated artist name
---
--- |since_itg|
---
--- @return string
function Song:GetTranslitArtist() end
--- Returns whether the song was loaded from a player's USB drive
---
--- |since_itg|
---
--- @return boolean
function Song:IsCustomSong() end
--- Returns the lowest BPM of the song
---
--- |since_notitg_v4|
---
--- @return float
function Song:GetMinBPM() end
--- Returns the highest BPM of the song
---
--- |since_notitg_v4|
---
--- @return float
function Song:GetMaxBPM() end
--- Returns the note data from one of the song's steps
---
--- See :ref:`note_data_format`
---
--- |since_notitg_v4|
---
--- @param steps Steps The steps to fetch note data from
--- @param useSeconds boolean|nil If ``true``, the returned note data will use seconds as the time measurement unit
--- @param startBeat float|nil The start beat number (can be ``nil`` if you want to fetch *all* note data)
--- @param endBeat float|nil The end beat number (can be ``nil`` if you want to fetch *all* note data)
---
--- @return table[]
function Song:GetNoteData(steps, useSeconds, startBeat, endBeat) end
--- Returns a list of spell cards for the song
---
--- See :ref:`spell_card_format`
---
--- |since_notitg_v3|
---
--- @return table[]
function Song:GetSpellCards() end
--- Sets the number of spell cards for a song
---
--- |since_notitg_v3|
---
--- @param count int The number of spell cards
---
--- @return void
function Song:SetNumSpellCards(count) end
--- Sets a spell card's start and end point
---
--- |since_notitg_v3|
---
--- @param index int The spell card index (0 indexed)
--- @param startBeat float The beat to start the spell card
--- @param endBeat float The beat to end the spell card
---
--- @return void
function Song:SetSpellCardTiming(index, startBeat, endBeat) end
--- Sets a spell card's name
---
--- |since_notitg_v3|
---
--- @param index int The spell card index (0 indexed)
--- @param name string The new spell card name
---
--- @return void
function Song:SetSpellCardName(index, name) end
--- Sets a spell card's difficulty rating
---
--- |since_notitg_v3|
---
--- @param index int The spell card index (0 indexed)
--- @param difficulty int The difficulty rating to set
---
--- @return void
function Song:SetSpellCardDifficulty(index, difficulty) end
--- Sets the color of a spell card
---
--- |since_notitg_v3|
---
--- @param index int The spell card index (0 indexed)
--- @param r float The red value (0 - 1)
--- @param g float The green value (0 - 1)
--- @param b float The blue value (0 - 1)
--- @param a float The alpha value (0 - 1)
---
--- @return void
function Song:SetSpellCardColor(index, r, g, b, a) end
--- Returns the directory where the song is stored
---
--- |since_itg|
---
--- @return string
function Song:GetSongDir() end
--- Returns the path to the song's audio file
---
--- |since_notitg_v4|
---
--- @return string
function Song:GetMusicPath() end
--- Returns the length of the music in seconds
---
--- |since_itg|
---
--- @return float
function Song:MusicLengthSeconds() end
--- Returns the length of the steps in seconds
---
--- |since_notitg_v3|
---
--- @return float
function Song:StepsLengthSeconds() end
--- Returns true if the song will cost 2 credits
---
--- |since_itg|
---
--- @return boolean
function Song:IsLong() end
--- Returns true if the song will cost 3 credits
---
--- |since_itg|
---
--- @return boolean
function Song:IsMarathon() end
--- Adds a label to the song
---
--- |since_notitg_v3|
---
--- @param beat float The beat of the label
--- @param name string The name of the label
---
--- @return void
function Song:AddLabel(beat, name) end
--- Returns a list of song labels
---
--- |since_notitg_v3|
---
--- @return table
function Song:GetLabels() end
--- Removes all labels from the song
---
--- |since_notitg_v3|
---
--- @return void
function Song:ClearLabels() end
--- Returns the path to the Lua unlock file
---
--- Returns an empty string if the steps do not exist, or if there is no unlock file
---
--- |since_notitg_v4|
---
--- @param difficulty int The step difficulty (see :cpp:enum:`Difficulty`)
---
--- @return string
function Song:GetUnlockMethod(difficulty) end
--- Returns the name of the group (folder) the song is in
---
--- |since_itg|
---
--- @return string
function Song:GetGroupName() end
--- Returns BPM changes and stop data
---
--- Returns 2 lists of tables - the first one has the format ``{ beat, newBpm }``, the second one has the format ``{ beat, stopDuration }``
---
--- ``local beat_data, stop_data = song:GetTimingData()``
---
--- |since_notitg_v4_0_1|
---
--- @return multiple
function Song:GetTimingData() end
--- Returns the song's genre
---
--- |since_itg|
---
--- @return string
function Song:GetGenre() end
--- Returns the start point of the music preview in seconds
---
--- |since_notitg_v4|
---
--- @return float
function Song:GetSampleStartSeconds() end
--- Returns the length of the music preview in seconds
---
--- |since_notitg_v4|
---
--- @return float
function Song:GetSampleLengthSeconds() end
--- Converts a beat number to a seconds number
---
--- |since_notitg_v3|
---
--- @param beat float The beat to get a seconds number for
---
--- @return float
function Song:GetElapsedTimeFromBeat(beat) end
--- Converts a seconds number to a beat number
---
--- |since_notitg_v3|
---
--- @param seconds float The second to get a beat number for
---
--- @return float
function Song:GetBeatFromElapsedTime(seconds) end
--- Returns a list of steps matching ``stepsType``
---
--- |since_itg|
---
--- @param stepsType int The steps type - see :cpp:enum:`StepsType`
---
--- @return Steps[]
function Song:GetStepsByStepsType(stepsType) end
--- Tests for equality against another userdata object
---
--- |since_unk|
---
--- @param other userdata The object to test for equality against
---
--- @return boolean
function Song:__eq() end
--- Returns a ``Song (MemoryAddress)`` string
---
--- |since_unk|
---
--- @return string
function Song:__tostring() end
return Song