diff options
Diffstat (limited to 'peaceful_npc/commands.lua')
-rw-r--r-- | peaceful_npc/commands.lua | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/peaceful_npc/commands.lua b/peaceful_npc/commands.lua new file mode 100644 index 0000000..ca3b7d3 --- /dev/null +++ b/peaceful_npc/commands.lua @@ -0,0 +1,39 @@ +--Spawn Command Function +function npc_command( command_name, npc_command_type, command_desc) + local function spawn_for_command(name, param) + local npcs_to_spawn = tonumber(param) or 1 + local player = minetest.get_player_by_name(name) + local pos = player:getpos() + local max_spawn = 20 + local max_surround_npc = 30 + local active_npc_count = table.getn(minetest.get_objects_inside_radius(pos, 50)) + if active_npc_count == nil then + active_npc_count = 0 + end + if npcs_to_spawn + active_npc_count > max_surround_npc then + minetest.chat_send_player(name, "There are too many NPCs around you.") + elseif npcs_to_spawn >= max_spawn + 1 then + minetest.chat_send_player(name, "The spawn limit is"..max_spawn) + else + for n = 1, npcs_to_spawn do + offsetx = math.random(-5,5) + offsety = math.random(2,4) + offsetz = math.random(-5,5) + minetest.add_entity({ x=pos.x+offsetx, y=pos.y+offsety, z=pos.z+offsetz }, ("peaceful_npc:npc_"..npc_command_type)) + end + end + end + + --Spawn command + minetest.register_chatcommand(command_name, { + description = command_desc, + privs = {peacefulnpc=true}, + func = spawn_for_command + }) +end + +npc_command( "summonnpc_fast", "fast", "Summons Fast NPCs") +npc_command( "summonnpc_def", "def", "Summon Default NPCs") +npc_command( "summonnpc_dwarf", "dwarf", "Summon Dwarf NPCs") + +print("Peaceful NPC commands.lua loaded! By jojoa1997!")
\ No newline at end of file |