From 06b7546187ccea2dbce59ea610ada92ea35ff9c3 Mon Sep 17 00:00:00 2001 From: James Stevenson Date: Thu, 17 Mar 2016 21:22:07 -0400 Subject: [PATCH] Check for distance --- README | 5 ++++ init.lua | 50 ++++++++++++++++++++----------- sounds/checkpoint_checkpoint.ogg | Bin 0 -> 9198 bytes 3 files changed, 38 insertions(+), 17 deletions(-) create mode 100644 sounds/checkpoint_checkpoint.ogg diff --git a/README b/README index c4c14b8..7ac052b 100644 --- a/README +++ b/README @@ -1,2 +1,7 @@ License of checkpoint_teleporter.png: CC-BY-SA 3.0 UNPORTED. Created by Dragonop + +License of checkpoint_checkpoint.ogg: +CC BY-NC 3.0. Created by Robinhood76 +Original filename: 334914__robinhood76__06304-message-ding-1.wav +Source: www.freesound.org/people/Robinhood76/sounds/334914/ diff --git a/init.lua b/init.lua index e7a6f7f..3fbc195 100644 --- a/init.lua +++ b/init.lua @@ -1,27 +1,39 @@ local players = {} +local function vdistance(a, b) + local x, y, z = a.x - b.x, a.y - b.y, a.z - b.z + return x*x + y*y + z*z +end + +local function set_checkpoint(player, pos) + local name = player:get_player_name() + local ppos = player:getpos() + + --print(tostring(vdistance(pos, ppos))) + if vdistance(pos, ppos) <= 10 then + players[name] = ppos + minetest.sound_play({name="checkpoint_checkpoint", gain=0.75}, + {to_player=name}) + minetest.chat_send_player(name, "Checkpoint saved") + else + minetest.chat_send_player(name, "Out of range!") + end +end + minetest.register_node("checkpoint:checkpoint", { description = "Checkpoint", - --[[ - tiles = {"default_dirt.png^checkpoint_teleporter.png", - "default_wood.png^checkpoint_teleporter.png", - "default_steel_block.png^checkpoint_teleporter.png", - "default_gold_block.png^checkpoint_teleporter.png", - "default_mese_block.png^checkpoint_teleporter.png", - "default_diamond_block.png^checkpoint_teleporter.png"}, - --]] tiles = {"checkpoint_teleporter.png"}, + inventory_image = "checkpoint_teleporter.png", drawtype = "plantlike", sunlight_propagates = true, light_source = 8, paramtype = "light", - --paramtype2 = "facedir", - groups = {cracky=1, choppy=1, crumbly=1, snappy=1}, - on_rightclick = function(pos, node, clicker) - local name = clicker:get_player_name() - players[name] = clicker:getpos() - - minetest.chat_send_player(name, "Checkpoint saved") + groups = {cracky = 1, choppy = 1, crumbly = 1, snappy = 1}, + on_rightclick = function(pos, _, clicker) + set_checkpoint(clicker, pos) + end, + on_punch = function(pos, _, puncher) + set_checkpoint(puncher, pos) end }) @@ -40,6 +52,7 @@ minetest.register_craftitem("checkpoint:teleporter", { }) minetest.register_chatcommand("checkpoint", { + description = "Restore saved checkpoint", func = function(name, param) local pos = players[name] if pos then @@ -49,7 +62,10 @@ minetest.register_chatcommand("checkpoint", { minetest.chat_send_player(name, "No checkpoint saved") --return "No checkpoint saved" end - - --print(dump(players)) end }) + +minetest.register_on_leaveplayer(function(player) + local name = player:get_player_name() + players[name] = nil +end) diff --git a/sounds/checkpoint_checkpoint.ogg b/sounds/checkpoint_checkpoint.ogg new file mode 100644 index 0000000000000000000000000000000000000000..83705d5a007654110967d34b8a4328b25e296c15 GIT binary patch literal 9198 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 literal 0 HcmV?d00001