mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2024-11-25 05:25:14 +00:00
Add spawn-stuff lua example
This commit is contained in:
parent
0c4a2c99f0
commit
ccf4952baa
2 changed files with 137 additions and 0 deletions
136
docs/lua/examples/spawn-stuff.lua
Normal file
136
docs/lua/examples/spawn-stuff.lua
Normal file
|
@ -0,0 +1,136 @@
|
|||
-- name: Spawn Stuff
|
||||
-- description: Press DPAD, or L+DPAD to spawn things
|
||||
|
||||
function non_l_spawning(m)
|
||||
if (m.controller.buttonPressed & U_JPAD) ~= 0 then
|
||||
-- spawn TTC cube
|
||||
spawn_sync_object(
|
||||
id_bhvTTCRotatingSolid,
|
||||
E_MODEL_TTC_ROTATING_CUBE,
|
||||
m.pos.x, m.pos.y, m.pos.z,
|
||||
|
||||
function(obj)
|
||||
obj.oBehParams2ndByte = 0
|
||||
obj.oOpacity = 255
|
||||
end)
|
||||
end
|
||||
|
||||
if (m.controller.buttonPressed & D_JPAD) ~= 0 then
|
||||
-- spawn breakable box
|
||||
spawn_sync_object(
|
||||
id_bhvBreakableBox,
|
||||
E_MODEL_BREAKABLE_BOX,
|
||||
m.pos.x, m.pos.y, m.pos.z,
|
||||
nil)
|
||||
end
|
||||
|
||||
if (m.controller.buttonPressed & L_JPAD) ~= 0 then
|
||||
-- spawn bobomb in hand
|
||||
local obj = spawn_sync_object(
|
||||
id_bhvBobomb,
|
||||
E_MODEL_BOBOMB_BUDDY,
|
||||
m.pos.x, m.pos.y, m.pos.z,
|
||||
|
||||
function(obj)
|
||||
obj.oBehParams2ndByte = 0
|
||||
obj.oOpacity = 255
|
||||
obj.oFlags = OBJ_FLAG_HOLDABLE
|
||||
obj.oInteractType = obj.oInteractType | INTERACT_GRABBABLE
|
||||
end)
|
||||
|
||||
if obj ~= nil then
|
||||
m.usedObj = obj
|
||||
mario_grab_used_object(m)
|
||||
m.marioBodyState.grabPos = GRAB_POS_LIGHT_OBJ
|
||||
set_mario_action(m, ACT_HOLD_IDLE, 0)
|
||||
end
|
||||
end
|
||||
|
||||
if (m.controller.buttonPressed & R_JPAD) ~= 0 then
|
||||
-- spawn goomba
|
||||
spawn_sync_object(
|
||||
id_bhvGoomba,
|
||||
E_MODEL_GOOMBA,
|
||||
m.pos.x + 150, m.pos.y, m.pos.z,
|
||||
nil)
|
||||
end
|
||||
end
|
||||
|
||||
function l_spawning(m)
|
||||
if (m.controller.buttonPressed & U_JPAD) ~= 0 then
|
||||
-- spawn TTC prism
|
||||
spawn_sync_object(
|
||||
id_bhvTTCRotatingSolid,
|
||||
E_MODEL_TTC_ROTATING_PRISM,
|
||||
m.pos.x, m.pos.y, m.pos.z,
|
||||
|
||||
function(obj)
|
||||
obj.oBehParams2ndByte = 1
|
||||
obj.oOpacity = 255
|
||||
end)
|
||||
end
|
||||
|
||||
if (m.controller.buttonPressed & D_JPAD) ~= 0 then
|
||||
-- spawn small breakable box in hand
|
||||
local obj = spawn_sync_object(
|
||||
id_bhvBreakableBoxSmall,
|
||||
E_MODEL_BREAKABLE_BOX_SMALL,
|
||||
m.pos.x, m.pos.y, m.pos.z,
|
||||
|
||||
function(obj)
|
||||
obj.oBehParams2ndByte = 0
|
||||
obj.oOpacity = 255
|
||||
obj.oFlags = OBJ_FLAG_HOLDABLE
|
||||
obj.oInteractType = obj.oInteractType | INTERACT_GRABBABLE
|
||||
end)
|
||||
|
||||
if obj ~= nil then
|
||||
m.usedObj = obj
|
||||
mario_grab_used_object(m)
|
||||
m.marioBodyState.grabPos = GRAB_POS_LIGHT_OBJ
|
||||
set_mario_action(m, ACT_HOLD_IDLE, 0)
|
||||
end
|
||||
end
|
||||
|
||||
if (m.controller.buttonPressed & L_JPAD) ~= 0 then
|
||||
-- spawn boulder
|
||||
spawn_sync_object(
|
||||
id_bhvBigBoulder,
|
||||
E_MODEL_HMC_ROLLING_ROCK,
|
||||
m.pos.x, m.pos.y, m.pos.z,
|
||||
|
||||
function(obj)
|
||||
obj.oBehParams2ndByte = 2
|
||||
obj.oMoveAngleYaw = m.marioObj.oMoveAngleYaw
|
||||
end)
|
||||
m.invincTimer = 5
|
||||
end
|
||||
|
||||
if (m.controller.buttonPressed & R_JPAD) ~= 0 then
|
||||
-- spawn boulder
|
||||
spawn_sync_object(
|
||||
id_bhvKoopaShell,
|
||||
E_MODEL_KOOPA_SHELL,
|
||||
m.pos.x + 150, m.pos.y, m.pos.z,
|
||||
nil)
|
||||
m.invincTimer = 5
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
function mario_update_local(m)
|
||||
if (m.controller.buttonDown & L_TRIG) ~= 0 then
|
||||
l_spawning(m)
|
||||
else
|
||||
non_l_spawning(m)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
function mario_update(m)
|
||||
if m.playerIndex == 0 then
|
||||
mario_update_local(m)
|
||||
end
|
||||
end
|
||||
|
||||
hook_event(HOOK_MARIO_UPDATE, mario_update)
|
|
@ -33,3 +33,4 @@ Lua scripts you make can be placed either the `mods` folder in the base director
|
|||
- [Faster Swimming](../../mods/faster-swimming.lua)
|
||||
- [Hide and Seek](../../mods/hide-and-seek.lua)
|
||||
- [HUD Rendering](examples/hud.lua)
|
||||
- [Object Spawning](examples/spawn-stuff.lua)
|
||||
|
|
Loading…
Reference in a new issue