mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2024-11-25 13:35:12 +00:00
999ea1dd42
* Expose globally custom behaviors defined with hook_behavior; macros for mod strings max length * fixes * made customBehaviorIndex a mod field to be more relevant
234 lines
5.2 KiB
Lua
234 lines
5.2 KiB
Lua
-------------
|
|
-- globals --
|
|
-------------
|
|
|
|
--- @type MarioState[]
|
|
gMarioStates = {}
|
|
|
|
--- @type NetworkPlayer[]
|
|
gNetworkPlayers = {}
|
|
|
|
--- @type Mod[]
|
|
gActiveMods = {}
|
|
|
|
--- @type Character[]
|
|
gCharacter = {}
|
|
|
|
--- @type GlobalTextures
|
|
gTextures = {}
|
|
|
|
--- @type GlobalObjectAnimations
|
|
gObjectAnimations = {}
|
|
|
|
--- @type GlobalObjectCollisionData
|
|
gGlobalObjectCollisionData = {}
|
|
|
|
--- @alias SyncTable table
|
|
|
|
--- @type SyncTable
|
|
gGlobalSyncTable = {}
|
|
|
|
--- @type SyncTable[]
|
|
gPlayerSyncTable = {}
|
|
|
|
--- @type LevelValues
|
|
gLevelValues = {}
|
|
|
|
--- @type BehaviorValues
|
|
gBehaviorValues = {}
|
|
|
|
--- @type BehaviorValues
|
|
gBehaviorValues = {}
|
|
|
|
--- @type PlayerPalette[]
|
|
gPalettePresets = {}
|
|
|
|
--- @type LakituState
|
|
gLakituState = {}
|
|
|
|
--- @type PaintingValues
|
|
gPaintingValues = {}
|
|
|
|
--- @type ServerSettings
|
|
gServerSettings = {}
|
|
|
|
-----------
|
|
-- hooks --
|
|
-----------
|
|
|
|
--- @param behaviorId BehaviorId
|
|
--- @param objectList ObjectList
|
|
--- @param replaceBehavior boolean
|
|
--- @param initFunction fun(obj:Object)
|
|
--- @param loopFunction fun(obj:Object)
|
|
--- @param behaviorName string
|
|
--- @return BehaviorId
|
|
function hook_behavior(behaviorId, objectList, replaceBehavior, initFunction, loopFunction, behaviorName)
|
|
-- ...
|
|
end
|
|
|
|
--- @param command string
|
|
--- @param description string
|
|
--- @param func fun(msg:string)
|
|
function hook_chat_command(command, description, func)
|
|
-- ...
|
|
end
|
|
|
|
--- @param hookEventType LuaHookedEventType
|
|
--- @param func function
|
|
function hook_event(hookEventType, func)
|
|
-- ...
|
|
end
|
|
|
|
--- @param actionId integer
|
|
--- @param funcOrFuncTable fun(m:MarioState):integer | table(fun(m:MarioState):integer)
|
|
--- @param interactionType InteractionFlag
|
|
function hook_mario_action(actionId, funcOrFuncTable, interactionType)
|
|
-- ...
|
|
end
|
|
|
|
--- @param syncTable SyncTable
|
|
--- @param field any
|
|
--- @param tag any
|
|
--- @param func fun(tag:any, oldVal:any, newVal:any)
|
|
function hook_on_sync_table_change(syncTable, field, tag, func)
|
|
-- ...
|
|
end
|
|
|
|
---------------
|
|
-- functions --
|
|
---------------
|
|
|
|
--- @param t number
|
|
--- @return number
|
|
function sins(t)
|
|
-- ...
|
|
end
|
|
|
|
--- @param t number
|
|
--- @return number
|
|
function coss(t)
|
|
-- ...
|
|
end
|
|
|
|
--- @param y number
|
|
--- @param x number
|
|
--- @return integer
|
|
function atan2s(y, x)
|
|
-- ...
|
|
end
|
|
|
|
--- @param objFieldTable table
|
|
--- @return nil
|
|
function define_custom_obj_fields(objFieldTable)
|
|
-- ...
|
|
end
|
|
|
|
--- @param object Object
|
|
--- @param standardSync boolean
|
|
--- @param fieldTable table
|
|
--- @return nil
|
|
function network_init_object(object, standardSync, fieldTable)
|
|
-- ...
|
|
end
|
|
|
|
--- @param object Object
|
|
--- @param reliable boolean
|
|
--- @return nil
|
|
function network_send_object(object, reliable)
|
|
-- ...
|
|
end
|
|
|
|
--- @param reliable boolean
|
|
--- @param dataTable table
|
|
--- @return nil
|
|
function network_send(reliable, dataTable)
|
|
-- ...
|
|
end
|
|
|
|
--- @param toLocalIndex integer
|
|
--- @param reliable boolean
|
|
--- @param dataTable table
|
|
--- @return nil
|
|
function network_send_to(toLocalIndex, reliable, dataTable)
|
|
-- ...
|
|
end
|
|
|
|
--- @param textureName string
|
|
--- @return TextureInfo
|
|
function get_texture_info(textureName)
|
|
-- ...
|
|
end
|
|
|
|
--- @param textureName string
|
|
--- @return TextureInfo
|
|
function get_texture_info(textureName)
|
|
-- ...
|
|
end
|
|
|
|
--- @param texInfo TextureInfo
|
|
--- @param x number
|
|
--- @param y number
|
|
--- @param scaleW number
|
|
--- @param scaleH number
|
|
--- @return nil
|
|
function djui_hud_render_texture(texInfo, x, y, scaleW, scaleH)
|
|
-- ...
|
|
end
|
|
|
|
--- @param texInfo TextureInfo
|
|
--- @param x number
|
|
--- @param y number
|
|
--- @param scaleW number
|
|
--- @param scaleH number
|
|
--- @param tileX number
|
|
--- @param tileY number
|
|
--- @param tileW number
|
|
--- @param tileH number
|
|
--- @return nil
|
|
function djui_hud_render_texture_tile(texInfo, x, y, scaleW, scaleH, tileX, tileY, tileW, tileH)
|
|
-- ...
|
|
end
|
|
|
|
--- @param texInfo TextureInfo
|
|
--- @param prevX number
|
|
--- @param prevY number
|
|
--- @param prevScaleW number
|
|
--- @param prevScaleH number
|
|
--- @param x number
|
|
--- @param y number
|
|
--- @param scaleW number
|
|
--- @param scaleH number
|
|
--- @return nil
|
|
function djui_hud_render_texture_interpolated(texInfo, prevX, prevY, prevScaleW, prevScaleH, x, y, scaleW, scaleH)
|
|
-- ...
|
|
end
|
|
|
|
--- @param texInfo TextureInfo
|
|
--- @param prevX number
|
|
--- @param prevY number
|
|
--- @param prevScaleW number
|
|
--- @param prevScaleH number
|
|
--- @param x number
|
|
--- @param y number
|
|
--- @param scaleW number
|
|
--- @param scaleH number
|
|
--- @param tileX number
|
|
--- @param tileY number
|
|
--- @param tileW number
|
|
--- @param tileH number
|
|
--- @return nil
|
|
function djui_hud_render_texture_tile_interpolated(texInfo, prevX, prevY, prevScaleW, prevScaleH, x, y, scaleW, scaleH, tileX, tileY, tileW, tileH)
|
|
-- ...
|
|
end
|
|
|
|
--- @param levelNum number
|
|
--- @param func fun(areaIndex:number, bhvData:table, macroBhvIds:table, macroBhvArgs:table)
|
|
--- @return nil
|
|
--- When `func` is called, arguments are filled depending on the level command:
|
|
--- - `AREA` command: only `areaIndex` is filled. It's a number.
|
|
--- - `OBJECT` command: only `bhvData` is filled. `bhvData` is a table with two fields: `behavior` and `behaviorArg`.
|
|
--- - `MACRO` command: only `macroBhvIds` and `macroBhvArgs` are filled. `macrobhvIds` is a list of behavior ids. `macroBhvArgs` is a list of behavior params. Both lists have the same size and start at index 0.
|
|
function level_script_parse(levelNum, func)
|
|
-- ...
|
|
end
|