Changed many things.
Added setnav node and prevented setnavving before dematting. Fixed the remat sound, I think. Various things.entity
parent
d734027784
commit
53a740a4e4
|
@ -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
|
||||
|
||||
|
||||
|
|
|
@ -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]" ..
|
||||
|
|
1
init.lua
1
init.lua
|
@ -1,4 +1,5 @@
|
|||
tardis = {}
|
||||
tardis.count = 0
|
||||
tardis.tardises = {}
|
||||
|
||||
local modname = minetest.get_current_modname()
|
||||
|
|
51
nodes.lua
51
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 ,
|
||||
})
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 358 B |
Loading…
Reference in New Issue