diff --git a/docs/lua/examples/texture-override/main.lua b/docs/lua/examples/texture-override/main.lua new file mode 100644 index 000000000..8ab7839c0 --- /dev/null +++ b/docs/lua/examples/texture-override/main.lua @@ -0,0 +1,55 @@ +-- name: Matrix Code +-- description: Run /matrix and a builtin texture name to replace with the digital rain +-- deluxe: true + +if SM64COOPDX_VERSION ~= nil then + local first = false + hook_event(HOOK_ON_LEVEL_INIT, function() + if not first then + first = true + play_sound(SOUND_MENU_CAMERA_BUZZ, gMarioStates[0].marioObj.header.gfx.cameraToObject) + djui_chat_message_create("\\#ff7f7f\\Matrix Code is not supported with sm64ex-coop\nas it uses sm64coopdx exclusive Lua functionality.\n\\#dcdcdc\\To use this mod, try out sm64coopdx at\n\\#7f7fff\\https://sm64coopdx.com") + end + end) + return +end + +local sMatrixFrames = {} +for i = 0, 10 do + sMatrixFrames[i] = get_texture_info("matrix_" .. i) +end +local matrixFrame = 0 + +local sOverrideTextures = {} + +local globalTimer = 0 + +local function split(s) + local result = {} + for match in (s):gmatch(string.format("[^%s]+", " ")) do + table.insert(result, match) + end + return result +end + +local function update() + globalTimer = globalTimer + 1 + if globalTimer % 2 ~= 1 then return end + + for _, texture in pairs(sOverrideTextures) do + texture_override_set(texture, sMatrixFrames[matrixFrame]) + matrixFrame = (matrixFrame + 1) % 10 + end +end + +local function on_matrix_command(msg) + local textures = split(msg) + for _, texture in pairs(textures) do + table.insert(sOverrideTextures, texture) + end + return true +end + +hook_event(HOOK_UPDATE, update) + +hook_chat_command("matrix", "[TEXTURE]", on_matrix_command) \ No newline at end of file diff --git a/docs/lua/examples/texture-override/textures/matrix_0.png b/docs/lua/examples/texture-override/textures/matrix_0.png new file mode 100644 index 000000000..b5f68c9fb Binary files /dev/null and b/docs/lua/examples/texture-override/textures/matrix_0.png differ diff --git a/docs/lua/examples/texture-override/textures/matrix_0.tex b/docs/lua/examples/texture-override/textures/matrix_0.tex new file mode 100644 index 000000000..ffa6b001f Binary files /dev/null and b/docs/lua/examples/texture-override/textures/matrix_0.tex differ diff --git a/docs/lua/examples/texture-override/textures/matrix_1.png b/docs/lua/examples/texture-override/textures/matrix_1.png new file mode 100644 index 000000000..411ee3cb8 Binary files /dev/null and b/docs/lua/examples/texture-override/textures/matrix_1.png differ diff --git a/docs/lua/examples/texture-override/textures/matrix_1.tex b/docs/lua/examples/texture-override/textures/matrix_1.tex new file mode 100644 index 000000000..dec94a3b5 Binary files /dev/null and b/docs/lua/examples/texture-override/textures/matrix_1.tex differ diff --git a/docs/lua/examples/texture-override/textures/matrix_10.png b/docs/lua/examples/texture-override/textures/matrix_10.png new file mode 100644 index 000000000..2f386355a Binary files /dev/null and b/docs/lua/examples/texture-override/textures/matrix_10.png differ diff --git a/docs/lua/examples/texture-override/textures/matrix_10.tex b/docs/lua/examples/texture-override/textures/matrix_10.tex new file mode 100644 index 000000000..53ceab5f3 Binary files /dev/null and b/docs/lua/examples/texture-override/textures/matrix_10.tex differ diff --git a/docs/lua/examples/texture-override/textures/matrix_2.png b/docs/lua/examples/texture-override/textures/matrix_2.png new file mode 100644 index 000000000..c26813b13 Binary files /dev/null and b/docs/lua/examples/texture-override/textures/matrix_2.png differ diff --git a/docs/lua/examples/texture-override/textures/matrix_2.tex b/docs/lua/examples/texture-override/textures/matrix_2.tex new file mode 100644 index 000000000..46afced83 Binary files /dev/null and b/docs/lua/examples/texture-override/textures/matrix_2.tex differ diff --git a/docs/lua/examples/texture-override/textures/matrix_3.png b/docs/lua/examples/texture-override/textures/matrix_3.png new file mode 100644 index 000000000..9078e77fd Binary files /dev/null and b/docs/lua/examples/texture-override/textures/matrix_3.png differ diff --git a/docs/lua/examples/texture-override/textures/matrix_3.tex b/docs/lua/examples/texture-override/textures/matrix_3.tex new file mode 100644 index 000000000..537d81aec Binary files /dev/null and b/docs/lua/examples/texture-override/textures/matrix_3.tex differ diff --git a/docs/lua/examples/texture-override/textures/matrix_4.png b/docs/lua/examples/texture-override/textures/matrix_4.png new file mode 100644 index 000000000..bea122526 Binary files /dev/null and b/docs/lua/examples/texture-override/textures/matrix_4.png differ diff --git a/docs/lua/examples/texture-override/textures/matrix_4.tex b/docs/lua/examples/texture-override/textures/matrix_4.tex new file mode 100644 index 000000000..6615f3d38 Binary files /dev/null and b/docs/lua/examples/texture-override/textures/matrix_4.tex differ diff --git a/docs/lua/examples/texture-override/textures/matrix_5.png b/docs/lua/examples/texture-override/textures/matrix_5.png new file mode 100644 index 000000000..f43ab4d01 Binary files /dev/null and b/docs/lua/examples/texture-override/textures/matrix_5.png differ diff --git a/docs/lua/examples/texture-override/textures/matrix_5.tex b/docs/lua/examples/texture-override/textures/matrix_5.tex new file mode 100644 index 000000000..9cc8b43c1 Binary files /dev/null and b/docs/lua/examples/texture-override/textures/matrix_5.tex differ diff --git a/docs/lua/examples/texture-override/textures/matrix_6.png b/docs/lua/examples/texture-override/textures/matrix_6.png new file mode 100644 index 000000000..58223649e Binary files /dev/null and b/docs/lua/examples/texture-override/textures/matrix_6.png differ diff --git a/docs/lua/examples/texture-override/textures/matrix_6.tex b/docs/lua/examples/texture-override/textures/matrix_6.tex new file mode 100644 index 000000000..989c427db Binary files /dev/null and b/docs/lua/examples/texture-override/textures/matrix_6.tex differ diff --git a/docs/lua/examples/texture-override/textures/matrix_7.png b/docs/lua/examples/texture-override/textures/matrix_7.png new file mode 100644 index 000000000..ae9863a79 Binary files /dev/null and b/docs/lua/examples/texture-override/textures/matrix_7.png differ diff --git a/docs/lua/examples/texture-override/textures/matrix_7.tex b/docs/lua/examples/texture-override/textures/matrix_7.tex new file mode 100644 index 000000000..ea8178759 Binary files /dev/null and b/docs/lua/examples/texture-override/textures/matrix_7.tex differ diff --git a/docs/lua/examples/texture-override/textures/matrix_8.png b/docs/lua/examples/texture-override/textures/matrix_8.png new file mode 100644 index 000000000..1bad5bd53 Binary files /dev/null and b/docs/lua/examples/texture-override/textures/matrix_8.png differ diff --git a/docs/lua/examples/texture-override/textures/matrix_8.tex b/docs/lua/examples/texture-override/textures/matrix_8.tex new file mode 100644 index 000000000..61930eb1c Binary files /dev/null and b/docs/lua/examples/texture-override/textures/matrix_8.tex differ diff --git a/docs/lua/examples/texture-override/textures/matrix_9.png b/docs/lua/examples/texture-override/textures/matrix_9.png new file mode 100644 index 000000000..d5a0b0d18 Binary files /dev/null and b/docs/lua/examples/texture-override/textures/matrix_9.png differ diff --git a/docs/lua/examples/texture-override/textures/matrix_9.tex b/docs/lua/examples/texture-override/textures/matrix_9.tex new file mode 100644 index 000000000..e9491ee07 Binary files /dev/null and b/docs/lua/examples/texture-override/textures/matrix_9.tex differ diff --git a/docs/lua/lua.md b/docs/lua/lua.md index 0446fb68d..f5e275dff 100644 --- a/docs/lua/lua.md +++ b/docs/lua/lua.md @@ -67,9 +67,7 @@ All of this is a holdover from when there were only two players. It was a reason - [Custom Level](examples/custom-level) - [Custom HUD Texture](examples/custom-hud-texture) - [Custom Audio Test](examples/audio-test) +- [Custom Texture Overriding](examples/texture-override) ## Example Lua mods (large) -- [Extended Moveset](../../mods/extended-moveset.lua) -- [Character Movesets](../../mods/character-movesets.lua) - [Hide and Seek Gamemode](../../mods/hide-and-seek.lua) -- [Football (soccer) Gamemode](../../mods/football.lua)