From 53a740a4e44a516590fd64b92c87a10e167991b4 Mon Sep 17 00:00:00 2001 From: rdococ Date: Thu, 27 Jul 2017 08:28:13 +0100 Subject: [PATCH] Changed many things. Added setnav node and prevented setnavving before dematting. Fixed the remat sound, I think. Various things. --- demat.lua | 4 ++- functions.lua | 15 ++++++++-- init.lua | 1 + nodes.lua | 51 +++++++++++++++++++++++---------- remat.lua | 6 ++-- schematics/tardis_interior.mts | Bin 343 -> 364 bytes textures/tardis_navigator.png | Bin 0 -> 358 bytes 7 files changed, 57 insertions(+), 20 deletions(-) create mode 100644 textures/tardis_navigator.png diff --git a/demat.lua b/demat.lua index d61b228..862e202 100644 --- a/demat.lua +++ b/demat.lua @@ -1,4 +1,5 @@ -function tardis.demat (owner) +function tardis.demat (owner, name) + if owner ~= name then return false, "You don't own that TARDIS!" end local pos = tardis.tardises [owner]["exterior"] minetest.set_node (pos, {name = "tardis:tardis_demat"}) @@ -10,6 +11,7 @@ function tardis.demat (owner) max_hear_distance = 100 , gain = 10 , }) + return true end diff --git a/functions.lua b/functions.lua index 83edace..0bc5a4b 100644 --- a/functions.lua +++ b/functions.lua @@ -15,10 +15,11 @@ end function tardis:spawn_interior (pos, owner) local place_pos = { - x = pos ["x"] , + x = tardis.count * 12 , y = 30000 , - z = pos ["z"] , + z = 0 , } + tardis.count = tardis.count + 1 local interior_doors_pos = { x = (place_pos ["x"] + 5) , y = (place_pos ["y"] + 1) , @@ -29,6 +30,11 @@ function tardis:spawn_interior (pos, owner) y = (place_pos ["y"] + 2) , z = (place_pos ["z"] + 7) , } + local nav_pos = { + x = (place_pos ["x"] + 4) , + y = (place_pos ["y"] + 2) , + z = (place_pos ["z"] + 8) , + } minetest.place_schematic (place_pos, modpath .. "/schematics/tardis_interior.mts") @@ -39,6 +45,9 @@ function tardis:spawn_interior (pos, owner) local demat_meta = minetest.get_meta (demat_lever_pos) demat_meta:set_string ("owner", owner) + + local nav_meta = minetest.get_meta (nav_pos) + nav_meta:set_string ("owner", owner) local interior_doors_meta = minetest.get_meta (interior_doors_pos) interior_doors_meta:set_string ("owner", owner) @@ -52,6 +61,8 @@ end function tardis.set_nav (player, owner) local player_name = player:get_player_name() + if player_name ~= owner then minetest.chat_send_player(player_name, "You don't own that TARDIS!"); return end + if tardis.tardises[owner]["in_vortex"] == false then minetest.chat_send_player(player_name, "You must dematerialize the TARDIS first!"); return end minetest.show_formspec (player_name, "tardis:remat_form", "size[7,3]" .. diff --git a/init.lua b/init.lua index a8fd9e5..4629006 100644 --- a/init.lua +++ b/init.lua @@ -1,4 +1,5 @@ tardis = {} +tardis.count = 0 tardis.tardises = {} local modname = minetest.get_current_modname() diff --git a/nodes.lua b/nodes.lua index be042ef..79b397f 100644 --- a/nodes.lua +++ b/nodes.lua @@ -1,5 +1,5 @@ minetest.register_node ("tardis:tardis", { - decription = "Time And Relative Dimention In Space" , + decription = "Time And Relative Dimension In Space" , tiles = { "tardis_exterior.png" } , use_texture_alpha = true , drawtype = "mesh" , @@ -51,15 +51,15 @@ minetest.register_node ("tardis:demat_lever_on", { local meta = minetest.get_meta(pos) local owner = meta:get_string("owner") - if (tardis.remat (owner) == false) then - minetest.chat_send_player (player_name, "Nav Not Set!!") + local rematted, msg = tardis.remat (owner, player:get_player_name()) + if (rematted == false) then + minetest.chat_send_player (player_name, msg) else - minetest.sound_play ("tardis_demat", { + minetest.sound_play ("tardis_remat", { pos = pos , - max_hear_distance = 10 , - gain = 10 , - }) - + max_hear_distance = 100 , + gain = 10 , + }) minetest.swap_node (pos, {name = "tardis:demat_lever_off"}) end end @@ -77,15 +77,36 @@ minetest.register_node ("tardis:demat_lever_off", { on_rightclick = function (pos, node, player, itemstack, pointed_thing) local meta = minetest.get_meta(pos) local owner = meta:get_string("owner") + + local dematted, msg = tardis.demat (owner, player:get_player_name()) - tardis.demat (owner) - minetest.sound_play ("tardis_demat", { - pos = pos , - max_hear_distance = 10 , - gain = 10 , - }) + if dematted then + minetest.sound_play ("tardis_demat", { + pos = pos , + max_hear_distance = 10 , + gain = 10 , + }) - minetest.swap_node (pos, {name = "tardis:demat_lever_on"}) + minetest.swap_node (pos, {name = "tardis:demat_lever_on"}) + else + minetest.chat_send_player(player:get_player_name(), msg) + end + end , +}) + +minetest.register_node ("tardis:navigator", { + groups = {crumbly = 1} , + tiles = {"tardis_navigator.png"} , + drawtype = "signlike" , + paramtype = "light" , + paramtype2 = "wallmounted" , + is_ground_content = true , + + on_rightclick = function (pos, node, player, itemstack, pointed_thing) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + + tardis.set_nav(player, owner) end , }) diff --git a/remat.lua b/remat.lua index c178c33..7eb364d 100644 --- a/remat.lua +++ b/remat.lua @@ -1,6 +1,7 @@ -function tardis.remat (owner) +function tardis.remat (owner, name) + if owner ~= name then return false, "You don't own that TARDIS!" end if (tardis.tardises [owner]["destination"] == nil) then - return false + return false, "Coordinates haven't been set yet!" else local pos = tardis.tardises [owner]["destination"] @@ -17,6 +18,7 @@ function tardis.remat (owner) max_hear_distance = 100 , gain = 10 , }) + return true end end diff --git a/schematics/tardis_interior.mts b/schematics/tardis_interior.mts index 41a0a1d2704b9a928e4b342f268c4b6dda7be4f6..cc665500cffbcf21f14cba270574f4fc0464ed56 100644 GIT binary patch delta 228 zcmVQ47Bb;nnCMor7ljoU;-m3h`+VIi-ZCZK}@mL#~F282#S;-P^9%C zqmC<;6MQH~wDVoZ)wRc9mmzasjTuN`c(ZriKD7N8ZO+3T?uERa?fU~Vf3KhY!u6WE ey1H&Dt!?Jhu1Cr__iX|=!Ptu!{#G-yInc_7T4{3t delta 207 zcmV;=05JdT0@nf*O;l4&00aOF00saKe}8{}e}4c6kra}Dc%1E&feL^i3`8$oeS!bm zuP2qJbA**yktcy%?0lIH@apWN*Z}ka7lNBJToqXc65jUWYD#d)dTByF1FicIXVAJ@ zu8Wf{JVD1O$bV~j7ZC*lf{QWRU=%TdqloKWMj4kYC0Hn=^IgW3wa1|6!E=Yo z3?wip?>)CN4|V@Vo%8U9d%E JRug|f(8O*`UDp5r diff --git a/textures/tardis_navigator.png b/textures/tardis_navigator.png new file mode 100644 index 0000000000000000000000000000000000000000..7d7cd21bbd7461a65ef00ee4553f9033ec30e8cc GIT binary patch literal 358 zcmV-s0h#`ZP)U5JjJ{Eg>0> z;hxkv8FkJ^lP1)-F?sk^lez literal 0 HcmV?d00001