Added isp coin slot

master
DonBatman 2015-05-01 14:48:23 -07:00
parent 0fd742760b
commit f0ea30d3d6
6 changed files with 491 additions and 228 deletions

View File

@ -37,5 +37,11 @@ in order to mine bitcoins.
04/29/15 added form spec to router to show network information.. 04/29/15 added form spec to router to show network information..
04/30/15 made a few items into nodes to place as deco.. added isp box for router to work.. 04/30/15 made a few items into nodes to place as deco.. added isp box for router to work..
plan to add a pay system for internet. animated the isp box like the router. plan to add a pay system for internet. animated the isp box like the router.
05/01/15 ips box now works as intended and is an owned node, only bitcoins are excepted right now
updated formspec to show isp's computer's and router's counts withing its range.. improved a few functions..
router is now an owned node
Enjoy!! :D Enjoy!! :D

View File

@ -34,5 +34,9 @@ of Minetest, improved code and added more visual feedback.
player now must punch computer to reboot and mine coins again. MilesDyson player now must punch computer to reboot and mine coins again. MilesDyson
04/28/15 added router that can turn on and off, computers now require a router to be within 30 node radius 04/28/15 added router that can turn on and off, computers now require a router to be within 30 node radius
in order to mine bitcoins. in order to mine bitcoins.
04/29/15 added form spec to router to show network information..
04/30/15 made a few items into nodes to place as deco.. added isp box for router to work..
plan to add a pay system for internet. animated the isp box like the router.
05/01/15 ips box now works as intended and is an owned item, only bitcoins are excepted right now
updated formspec to show isp's computer's and router's counts withing its range.. improved a few functions..
Enjoy!! :D Enjoy!! :D

220
isp.lua
View File

@ -1,5 +1,33 @@
-- internet usage timer config
payment_bitcoin = 24000
payment_bitqu = 60000
payment_bitdi = 2400
payment_bitni = 1200
payment_bitcent = 600
function default.isp_on_formspec(pos)
local spos = pos.x .. "," .. pos.y .. "," ..pos.z
local formspec = "size[10,10]"..
"label[1,2;Powered On...]"..
"label[1,2.6;Payment:]"..
"list[nodemeta:".. spos .. ";main;1,3;1,1;]"..
"list[current_player;main;1,6;8,4;]"..
"button_exit[4,5;2,1;exit;Exit]"
return formspec
end
function default.isp_off_formspec(pos) function default.isp_off_formspec(pos)
local spos = pos.x .. "," .. pos.y .. "," ..pos.z
local formspec = "size[10,10]"..
"label[1,2;Powered Off...]"..
"list[nodemeta:".. spos .. ";main;1,3;1,1;]"..
"list[current_player;main;1,6;8,4;]"..
"button_exit[4,5;2,1;exit;Exit]"
return formspec
end
function default.isp_on(pos)
local spos = pos.x .. "," .. pos.y .. "," ..pos.z local spos = pos.x .. "," .. pos.y .. "," ..pos.z
local formspec = "size[10,10]".. local formspec = "size[10,10]"..
"label[2,2;Powered Off...]".. "label[2,2;Powered Off...]"..
@ -9,25 +37,11 @@ function default.isp_off_formspec(pos)
return formspec return formspec
end end
function default.isp_on_formspec(pos) local function isp_owner(meta, player)
local active_computers = minetest.find_nodes_in_area({x=pos.x-30, y=pos.y-30, z=pos.z-30}, {x=pos.x+30, y=pos.y+30, z=pos.z+30}, {"mycoins:home_computer_active","mycoins:game_computer_active","mycoins:alien_computer_active"}) if player:get_player_name() ~= meta:get_string("owner") then
local inactive_computers = minetest.find_nodes_in_area({x=pos.x-30, y=pos.y-30, z=pos.z-30}, {x=pos.x+30, y=pos.y+30, z=pos.z+30}, {"mycoins:home_computer","mycoins:game_computer","mycoins:alien_computer"}) return false
local active_routers = minetest.find_nodes_in_area({x=pos.x-30, y=pos.y-30, z=pos.z-30}, {x=pos.x+30, y=pos.y+30, z=pos.z+30}, {"mycoins:router_on"}) end
local inactive_routers = minetest.find_nodes_in_area({x=pos.x-30, y=pos.y-30, z=pos.z-30}, {x=pos.x+30, y=pos.y+30, z=pos.z+30}, {"mycoins:router"}) return true
local spos = pos.x .. "," .. pos.y .. "," ..pos.z
local formspec = "size[10,10]"..
"label[1,0;Powered On...]"..
"label[2,0.6;Computers:]"..
"label[2,0.8;Active: "..#active_computers.."]"..
"label[2,1;Inactive: "..#inactive_computers.."]"..
"label[4,0.6;Routers:]"..
"label[4,0.8;Active: "..#active_routers.."]"..
"label[4,1;Inactive: "..#inactive_routers.."]"..
"label[1,2.6;Payment:]"..
"list[nodemeta:".. spos .. ";main;1,3;1,1;]"..
"list[current_player;main;1,6;8,4;]"..
"button_exit[4,5;2,1;exit;Exit]"
return formspec
end end
-- ISP -- ISP
@ -53,37 +67,64 @@ minetest.register_node("mycoins:isp", {
node_box = { node_box = {
type = "fixed", type = "fixed",
fixed = { fixed = {
{-0.153531, -0.5, -0.405738, 0.153531, -0.315951, 0.405738}, -- NodeBox1 {-0.153531, -0.5, -0.405738, 0.153531, -0.315951, 0.405738},
{-0.122825, -0.315951, -0.374616, 0.122825, 0.371166, 0.375}, -- NodeBox2 {-0.122825, -0.315951, -0.374616, 0.122825, 0.371166, 0.375},
}, },
}, },
on_punch = function(pos) on_punch = function(pos)
local timer = minetest.get_node_timer(pos)
local node = minetest.get_node(pos) local node = minetest.get_node(pos)
local timer = minetest.get_node_timer(pos)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
minetest.swap_node(pos, {name = 'mycoins:isp_on', param2 = node.param2}) minetest.swap_node(pos, {name = 'mycoins:isp_on', param2 = node.param2})
meta:set_string("formspec", default.isp_on_formspec(pos)) meta:set_string("formspec", default.isp_on_formspec(pos))
meta:set_string("infotext", "Internet Service Provider") meta:set_string("infotext", "Internet Service Provider (owner "..meta:get_string("owner")..")")
inv:set_size("main", 1*1)
timer:start(2)
end,
after_place_node = function(pos, placer)
local meta = minetest.get_meta(pos)
local timer = minetest.get_node_timer(pos)
local inv = meta:get_inventory() local inv = meta:get_inventory()
meta:set_string("formspec", default.isp_off_formspec(pos))
meta:set_string("owner", placer:get_player_name() or "")
meta:set_string("infotext", "Internet Service Provider (owner "..meta:get_string("owner")..")")
inv:set_size("main", 1*1) inv:set_size("main", 1*1)
timer:stop() timer:stop()
end, end,
on_construct = function(pos) on_construct = function(pos)
local node = minetest.get_node(pos) local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
meta:set_string("formspec", default.isp_off_formspec(pos)) meta:set_string("formspec", default.isp_off_formspec(pos))
meta:set_string("infotext", "Internet Service Provider") meta:set_string("infotext", "Internet Service Provider")
local inv = meta:get_inventory()
inv:set_size("main", 1*1) inv:set_size("main", 1*1)
end, end,
after_place_node = function(pos, placer) can_dig = function(pos, player)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos);
local timer = minetest.get_node_timer(pos)
meta:set_string("formspec", default.isp_on_formspec(pos))
meta:set_string("infotext", "Internet Service Provider")
local inv = meta:get_inventory() local inv = meta:get_inventory()
inv:set_size("main", 1*1) return inv:is_empty("main") and isp_owner(meta, player)
timer:start(60) end,
allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
local meta = minetest.get_meta(pos)
if not isp_owner(meta, player) then
return 0
end
return count
end,
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
if not isp_owner(meta, player) then
return 0
end
return stack:get_count()
end,
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
if not isp_owner(meta, player) then
return 0
end
return stack:get_count()
end, end,
}) })
@ -108,8 +149,8 @@ minetest.register_node("mycoins:isp_on", {
node_box = { node_box = {
type = "fixed", type = "fixed",
fixed = { fixed = {
{-0.153531, -0.5, -0.405738, 0.153531, -0.315951, 0.405738}, -- NodeBox1 {-0.153531, -0.5, -0.405738, 0.153531, -0.315951, 0.405738},
{-0.122825, -0.315951, -0.374616, 0.122825, 0.371166, 0.375}, -- NodeBox2 {-0.122825, -0.315951, -0.374616, 0.122825, 0.371166, 0.375},
}, },
}, },
on_punch = function(pos) on_punch = function(pos)
@ -118,19 +159,118 @@ minetest.register_node("mycoins:isp_on", {
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
minetest.swap_node(pos, {name = 'mycoins:isp', param2 = node.param2}) minetest.swap_node(pos, {name = 'mycoins:isp', param2 = node.param2})
meta:set_string("formspec", default.isp_off_formspec(pos)) meta:set_string("formspec", default.isp_off_formspec(pos))
meta:set_string("infotext", "Internet Service Provider") meta:set_string("infotext", "Internet Service Provider (owner "..meta:get_string("owner")..")")
local inv = meta:get_inventory() local inv = meta:get_inventory()
inv:set_size("main", 1*1) inv:set_size("main", 1*1)
timer:start(5) timer:stop()
end, end,
on_timer = function(pos)
on_timer = function(pos,from_list) local meta = minetest.get_meta(pos)
if ( minetest.get_player_by_name(meta:get_string("owner")) == nil ) then
local timer = minetest.get_node_timer(pos)
local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos)
minetest.swap_node(pos, {name = 'mycoins:isp', param2 = node.param2})
meta:set_string("formspec", default.isp_off_formspec(pos))
meta:set_string("infotext", "Internet Service Provider (owner "..meta:get_string("owner")..")")
local inv = meta:get_inventory()
inv:set_size("main", 1*1)
timer:stop()
else
local timer = minetest.get_node_timer(pos) local timer = minetest.get_node_timer(pos)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
minetest.get_meta(pos):get_inventory():add_item("main", "mycoins:bitcent") meta:set_string("formspec", default.isp_on_formspec(pos))
meta:set_string("infotext", "Internet Service Provider (owner "..meta:get_string("owner")..")")
local inv = meta:get_inventory()
inv:set_size("main", 1*1)
local payment = inv:get_stack("main", 1)
if payment:get_name()== "" then
local timer = minetest.get_node_timer(pos)
local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos)
minetest.swap_node(pos, {name = 'mycoins:isp', param2 = node.param2})
meta:set_string("formspec", default.isp_off_formspec(pos))
meta:set_string("infotext", "Internet Service Provider (owner "..meta:get_string("owner")..")")
local inv = meta:get_inventory()
inv:set_size("main", 1*1)
timer:stop()
else
if payment:get_name()=="mycoins:bitcoin" then
payment:take_item()
inv:set_stack("main",1,payment)
timer:start(payment_bitcoin)
else
if payment:get_name()=="mycoins:bitqu" then
payment:take_item()
inv:set_stack("main",1,payment)
timer:start(payment_bitqu)
else
if payment:get_name()=="mycoins:bitdi" then
payment:take_item()
inv:set_stack("main",1,payment)
timer:start(payment_bitdi)
else
if payment:get_name()=="mycoins:bitni" then
payment:take_item()
inv:set_stack("main",1,payment)
timer:start(payment_bitni)
else
if payment:get_name()=="mycoins:bitcent" then
payment:take_item()
inv:set_stack("main",1,payment)
timer:start(payment_bitcent)
else
local timer = minetest.get_node_timer(pos)
local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
minetest.swap_node(pos, {name = 'mycoins:isp', param2 = node.param2})
meta:set_string("formspec", default.isp_off_formspec(pos))
meta:set_string("infotext", "Internet Service Provider (owner "..meta:get_string("owner")..")")
inv:set_size("main", 1*1)
timer:stop()
end
end
end
end
end
end
end
timer:start(5)
end, end,
can_dig = function(pos, player)
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory()
return inv:is_empty("main") and isp_owner(meta, player)
end,
allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
local meta = minetest.get_meta(pos)
if not isp_owner(meta, player) then
return 0
end
return count
end,
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
if not isp_owner(meta, player) then
return 0
end
return stack:get_count()
end,
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
if not isp_owner(meta, player) then
return 0
end
return stack:get_count()
end,
}) })

220
isp.lua~
View File

@ -1,5 +1,33 @@
-- internet usage timer config
payment_bitcoin = 24000
payment_bitqu = 60000
payment_bitdi = 2400
payment_bitni = 1200
payment_bitcent = 600
function default.isp_on_formspec(pos)
local spos = pos.x .. "," .. pos.y .. "," ..pos.z
local formspec = "size[10,10]"..
"label[1,2;Powered On...]"..
"label[1,2.6;Payment:]"..
"list[nodemeta:".. spos .. ";main;1,3;1,1;]"..
"list[current_player;main;1,6;8,4;]"..
"button_exit[4,5;2,1;exit;Exit]"
return formspec
end
function default.isp_off_formspec(pos) function default.isp_off_formspec(pos)
local spos = pos.x .. "," .. pos.y .. "," ..pos.z
local formspec = "size[10,10]"..
"label[1,2;Powered Off...]"..
"list[nodemeta:".. spos .. ";main;1,3;1,1;]"..
"list[current_player;main;1,6;8,4;]"..
"button_exit[4,5;2,1;exit;Exit]"
return formspec
end
function default.isp_on(pos)
local spos = pos.x .. "," .. pos.y .. "," ..pos.z local spos = pos.x .. "," .. pos.y .. "," ..pos.z
local formspec = "size[10,10]".. local formspec = "size[10,10]"..
"label[2,2;Powered Off...]".. "label[2,2;Powered Off...]"..
@ -9,22 +37,16 @@ function default.isp_off_formspec(pos)
return formspec return formspec
end end
function default.isp_on_formspec(pos) local function isp_owner(meta, player)
local spos = pos.x .. "," .. pos.y .. "," ..pos.z if player:get_player_name() ~= meta:get_string("owner") then
local formspec = "size[10,10]".. return false
"label[2,2;Powered On...]".. end
"label[1,2.6;Payment:]".. return true
"list[nodemeta:".. spos .. ";main;1,3;1,1;]"..
"list[current_player;main;1,6;8,4;]"..
"button_exit[4,5;2,1;exit;Exit]"
return formspec
end end
-- ISP -- ISP
-- Alienware Computer
minetest.register_node("mycoins:isp", { minetest.register_node("mycoins:isp", {
drawtype = "nodebox",
description = "Internet Service Provider", description = "Internet Service Provider",
tiles = { tiles = {
"mycoins_isp_tp.png", "mycoins_isp_tp.png",
@ -36,8 +58,12 @@ minetest.register_node("mycoins:isp",{
}, },
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
walkable = false,
is_ground_content = true,
groups = {snappy=3},
sound = default.node_sound_wood_defaults(),
drop = "mycoins:isp", drop = "mycoins:isp",
groups = {cracky=2, oddly_breakable_by_hand=2}, drawtype = "nodebox",
node_box = { node_box = {
type = "fixed", type = "fixed",
fixed = { fixed = {
@ -45,69 +71,57 @@ minetest.register_node("mycoins:isp",{
{-0.122825, -0.315951, -0.374616, 0.122825, 0.371166, 0.375}, {-0.122825, -0.315951, -0.374616, 0.122825, 0.371166, 0.375},
}, },
}, },
sounds = default.node_sound_wood_defaults(), on_punch = function(pos)
after_place_node = function(pos) local node = minetest.get_node(pos)
local timer = minetest.get_node_timer(pos)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
minetest.swap_node(pos, {name = 'mycoins:isp_on', param2 = node.param2})
meta:set_string("formspec", default.isp_on_formspec(pos))
meta:set_string("infotext", "Internet Service Provider (owner "..meta:get_string("owner")..")")
inv:set_size("main", 1*1)
timer:start(2)
end,
after_place_node = function(pos, placer)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
local timer = minetest.get_node_timer(pos) local timer = minetest.get_node_timer(pos)
meta:set_string("formspec", default.isp_on_formspec(pos))
meta:set_string("infotext", "Internet Service Provider")
local inv = meta:get_inventory() local inv = meta:get_inventory()
meta:set_string("formspec", default.isp_off_formspec(pos))
meta:set_string("owner", placer:get_player_name() or "")
meta:set_string("infotext", "Internet Service Provider (owner "..meta:get_string("owner")..")")
inv:set_size("main", 1*1) inv:set_size("main", 1*1)
timer:start(60) timer:stop()
end, end,
on_construct = function(pos) on_construct = function(pos)
local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
meta:set_string("formspec", default.isp_on_formspec(pos))
meta:set_string("infotext", "Internet Service Provider")
local inv = meta:get_inventory() local inv = meta:get_inventory()
meta:set_string("formspec", default.isp_off_formspec(pos))
meta:set_string("infotext", "Internet Service Provider")
inv:set_size("main", 1*1) inv:set_size("main", 1*1)
end, end,
can_dig = function(pos, player) can_dig = function(pos, player)
local meta = minetest.get_meta(pos); local meta = minetest.get_meta(pos);
local inv = meta:get_inventory() local inv = meta:get_inventory()
return inv:is_empty("main") and computer_owner(meta, player) return inv:is_empty("main") and isp_owner(meta, player)
end,
on_timer = function(pos)
local timer = minetest.get_node_timer(pos)
local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos)
minetest.swap_node(pos, {name = 'mycoins:isp', param2 = node.param2})
meta:set_string("formspec", default.isp_off_formspec(pos))
meta:set_string("infotext", "Internet Service Provider")
local inv = meta:get_inventory()
inv:set_size("main", 1*1)
timer:stop()
end,
on_punch = function(pos)
local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos)
minetest.swap_node(pos, {name = 'mycoins:isp_on', param2 = node.param2})
meta:set_string("formspec", default.isp_on_formspec(pos))
meta:set_string("infotext", "Internet Service Provider")
local inv = meta:get_inventory()
inv:set_size("main", 1*1)
end, end,
allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
if not computer_owner(meta, player) then if not isp_owner(meta, player) then
minetest.log("action", player:get_player_name()..
" tried to access a Alienware computer belonging to "..
meta:get_string("owner").." at "..
minetest.pos_to_string(pos))
return 0 return 0
end end
return count return count
end, end,
allow_metadata_inventory_put = function(pos, listname, index, stack, player) allow_metadata_inventory_put = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
if not isp_owner(meta, player) then
return 0 return 0
end
return stack:get_count()
end, end,
allow_metadata_inventory_take = function(pos, listname, index, stack, player) allow_metadata_inventory_take = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
if not computer_owner(meta, player) then if not isp_owner(meta, player) then
minetest.log("action", player:get_player_name()..
" tried to access a Alienware computer belonging to "..
meta:get_string("owner").." at "..
minetest.pos_to_string(pos))
return 0 return 0
end end
return stack:get_count() return stack:get_count()
@ -115,7 +129,6 @@ minetest.register_node("mycoins:isp",{
}) })
minetest.register_node("mycoins:isp_on", { minetest.register_node("mycoins:isp_on", {
drawtype = "nodebox",
description = "Internet Service Provider", description = "Internet Service Provider",
tiles = { tiles = {
"mycoins_isp_tp.png", "mycoins_isp_tp.png",
@ -123,13 +136,16 @@ minetest.register_node("mycoins:isp_on",{
"mycoins_isp_rt.png", "mycoins_isp_rt.png",
"mycoins_isp_lt.png", "mycoins_isp_lt.png",
"mycoins_isp_bk.png", "mycoins_isp_bk.png",
"mycoins_isp_ft.png" {name="mycoins_isp_f_animated.png", animation={type="vertical_frames", aspect_w=32, aspect_h=32, length=1.0}},}, --"mycoins_isp_f.png"},
},
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
light_source = 8, walkable = false,
drop = "mycoins:alien_computer", is_ground_content = true,
groups = {cracky=2, not_in_creative_inventory=1, oddly_breakable_by_hand=2}, groups = {snappy=3, not_in_creative_inventory = 1},
sound = default.node_sound_wood_defaults(),
drop = "mycoins:isp",
drawtype = "nodebox",
light_source = 4,
node_box = { node_box = {
type = "fixed", type = "fixed",
fixed = { fixed = {
@ -137,47 +153,99 @@ minetest.register_node("mycoins:isp_on",{
{-0.122825, -0.315951, -0.374616, 0.122825, 0.371166, 0.375}, {-0.122825, -0.315951, -0.374616, 0.122825, 0.371166, 0.375},
}, },
}, },
sounds = default.node_sound_wood_defaults(),
can_dig = function(pos,player)
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory()
return inv:is_empty("main") and computer_owner(meta, player)
end,
on_timer = function(pos)
end,
on_punch = function(pos) on_punch = function(pos)
local timer = minetest.get_node_timer(pos) local timer = minetest.get_node_timer(pos)
local node = minetest.get_node(pos) local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
minetest.swap_node(pos, {name = 'mycoins:isp', param2 = node.param2}) minetest.swap_node(pos, {name = 'mycoins:isp', param2 = node.param2})
meta:set_string("formspec", default.isp_off_formspec(pos)) meta:set_string("formspec", default.isp_off_formspec(pos))
meta:set_string("infotext", "Internet Service Provider") meta:set_string("infotext", "Internet Service Provider (owner "..meta:get_string("owner")..")")
local inv = meta:get_inventory()
inv:set_size("main", 1*1)
timer:start(2)
end,
on_timer = function(pos)
local timer = minetest.get_node_timer(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec", default.isp_on_formspec(pos))
meta:set_string("infotext", "Internet Service Provider (owner "..meta:get_string("owner")..")")
local inv = meta:get_inventory()
inv:set_size("main", 1*1)
local payment = inv:get_stack("main", 1)
if payment:get_name()== "" then
local timer = minetest.get_node_timer(pos)
local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos)
minetest.swap_node(pos, {name = 'mycoins:isp', param2 = node.param2})
meta:set_string("formspec", default.isp_off_formspec(pos))
meta:set_string("infotext", "Internet Service Provider (owner "..meta:get_string("owner")..")")
local inv = meta:get_inventory() local inv = meta:get_inventory()
inv:set_size("main", 1*1) inv:set_size("main", 1*1)
timer:stop() timer:stop()
else
if payment:get_name()=="mycoins:bitcoin" then
payment:take_item()
inv:set_stack("main",1,payment)
timer:start(payment_bitcoin)
else
if payment:get_name()=="mycoins:bitqu" then
payment:take_item()
inv:set_stack("main",1,payment)
timer:start(payment_bitqu)
else
if payment:get_name()=="mycoins:bitdi" then
payment:take_item()
inv:set_stack("main",1,payment)
timer:start(payment_bitdi)
else
if payment:get_name()=="mycoins:bitni" then
payment:take_item()
inv:set_stack("main",1,payment)
timer:start(payment_bitni)
else
if payment:get_name()=="mycoins:bitcent" then
payment:take_item()
inv:set_stack("main",1,payment)
timer:start(payment_bitcent)
else
local timer = minetest.get_node_timer(pos)
local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
minetest.swap_node(pos, {name = 'mycoins:isp', param2 = node.param2})
meta:set_string("formspec", default.isp_off_formspec(pos))
meta:set_string("infotext", "Internet Service Provider (owner "..meta:get_string("owner")..")")
inv:set_size("main", 1*1)
timer:stop()
end
end
end
end
end
end
end,
can_dig = function(pos, player)
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory()
return inv:is_empty("main") and isp_owner(meta, player)
end, end,
allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
if not computer_owner(meta, player) then if not isp_owner(meta, player) then
minetest.log("action", player:get_player_name()..
" tried to access a Alienware computer belonging to "..
meta:get_string("owner").." at "..
minetest.pos_to_string(pos))
return 0 return 0
end end
return count return count
end, end,
allow_metadata_inventory_put = function(pos, listname, index, stack, player) allow_metadata_inventory_put = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
if not isp_owner(meta, player) then
return 0 return 0
end
return stack:get_count()
end, end,
allow_metadata_inventory_take = function(pos, listname, index, stack, player) allow_metadata_inventory_take = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
if not computer_owner(meta, player) then if not isp_owner(meta, player) then
minetest.log("action", player:get_player_name()..
" tried to access a Alienware computer belonging to "..
meta:get_string("owner").." at "..
minetest.pos_to_string(pos))
return 0 return 0
end end
return stack:get_count() return stack:get_count()

View File

@ -6,19 +6,18 @@ function default.router_off_formspec(pos)
end end
function default.router_formspec(pos) function default.router_formspec(pos)
local active_computers = minetest.find_nodes_in_area({x=pos.x-30, y=pos.y-30, z=pos.z-30}, {x=pos.x+30, y=pos.y+30, z=pos.z+30}, {"mycoins:home_computer_active","mycoins:game_computer_active","mycoins:alien_computer_active"})
local inactive_computers = minetest.find_nodes_in_area({x=pos.x-30, y=pos.y-30, z=pos.z-30}, {x=pos.x+30, y=pos.y+30, z=pos.z+30}, {"mycoins:home_computer","mycoins:game_computer","mycoins:alien_computer"})
local active_isp = minetest.find_nodes_in_area({x=pos.x-30, y=pos.y-30, z=pos.z-30}, {x=pos.x+30, y=pos.y+30, z=pos.z+30}, {"mycoins:isp_on"})
local inactive_isp = minetest.find_nodes_in_area({x=pos.x-30, y=pos.y-30, z=pos.z-30}, {x=pos.x+30, y=pos.y+30, z=pos.z+30}, {"mycoins:isp"})
local spos = pos.x .. "," .. pos.y .. "," ..pos.z local spos = pos.x .. "," .. pos.y .. "," ..pos.z
local formspec = "size[10,10]".. local formspec = "size[10,10]"..
"label[1,0;Powered On...]".. "label[1,0;Powered On...]"..
"label[2,0.6;Computers:]".. "label[2,0.5;Computers:]"..
"label[2,0.8;Active: "..#active_computers.."]".. "label[2,0.8;Active: "..#active_computers.."]"..
"label[2,1;Inactive: "..#inactive_computers.."]".. "label[2,1;Inactive: "..#inactive_computers.."]"..
"label[4,0.6;ISP:]".. "label[4,0.5;Routers:]"..
"label[4,0.8;Active: "..#active_isp.."]".. "label[4,0.8;Active: "..#active_routers.."]"..
"label[4,1;Inactive: "..#inactive_isp.."]".. "label[4,1;Inactive: "..#inactive_routers.."]"..
"label[6,0.5;ISP:]"..
"label[6,0.8;Active: "..#active_isp.."]"..
"label[6,1;Inactive: "..#inactive_isp.."]"..
"button_exit[4,7;2,1;exit;Exit]" "button_exit[4,7;2,1;exit;Exit]"
return formspec return formspec
end end
@ -30,7 +29,16 @@ function default.router_error_formspec(pos)
return formspec return formspec
end end
--WIFI Router (linksys look-a-like) function default.find_network(pos)
active_computers = minetest.find_nodes_in_area({x=pos.x-30, y=pos.y-30, z=pos.z-30}, {x=pos.x+30, y=pos.y+30, z=pos.z+30}, {"mycoins:home_computer_active","mycoins:game_computer_active","mycoins:alien_computer_active"})
inactive_computers = minetest.find_nodes_in_area({x=pos.x-30, y=pos.y-30, z=pos.z-30}, {x=pos.x+30, y=pos.y+30, z=pos.z+30}, {"mycoins:home_computer","mycoins:game_computer","mycoins:alien_computer"})
active_routers = minetest.find_nodes_in_area({x=pos.x-30, y=pos.y-30, z=pos.z-30}, {x=pos.x+30, y=pos.y+30, z=pos.z+30}, {"mycoins:router_on"})
inactive_routers = minetest.find_nodes_in_area({x=pos.x-30, y=pos.y-30, z=pos.z-30}, {x=pos.x+30, y=pos.y+30, z=pos.z+30}, {"mycoins:router"})
active_isp = minetest.find_nodes_in_area({x=pos.x-30, y=pos.y-30, z=pos.z-30}, {x=pos.x+30, y=pos.y+30, z=pos.z+30}, {"mycoins:isp_on"})
inactive_isp = minetest.find_nodes_in_area({x=pos.x-30, y=pos.y-30, z=pos.z-30}, {x=pos.x+30, y=pos.y+30, z=pos.z+30}, {"mycoins:isp"})
end
--WIFI Router
minetest.register_node("mycoins:router_on", { minetest.register_node("mycoins:router_on", {
description = "WIFI Router", description = "WIFI Router",
tiles = {"mycoins_router_t.png","mycoins_router_bt.png","mycoins_router_l.png","mycoins_router_r.png","mycoins_router_b.png", tiles = {"mycoins_router_t.png","mycoins_router_bt.png","mycoins_router_l.png","mycoins_router_r.png","mycoins_router_b.png",
@ -58,9 +66,10 @@ minetest.register_node("mycoins:router_on", {
minetest.swap_node(pos, {name = 'mycoins:router', param2 = node.param2}) minetest.swap_node(pos, {name = 'mycoins:router', param2 = node.param2})
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
meta:set_string("formspec", default.router_off_formspec(pos)) meta:set_string("formspec", default.router_off_formspec(pos))
meta:set_string("infotext", "Router") meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
end, end,
on_timer = function(pos) on_timer = function(pos)
default.find_network(pos)
local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"}) local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"})
if isp == nil then if isp == nil then
local timer = minetest.get_node_timer(pos) local timer = minetest.get_node_timer(pos)
@ -68,7 +77,7 @@ minetest.register_node("mycoins:router_on", {
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
minetest.swap_node(pos, {name = 'mycoins:router_error', param2 = node.param2}) minetest.swap_node(pos, {name = 'mycoins:router_error', param2 = node.param2})
meta:set_string("formspec", default.router_error_formspec(pos)) meta:set_string("formspec", default.router_error_formspec(pos))
meta:set_string("infotext", "Router") meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
timer:start(10) timer:start(10)
else else
local timer = minetest.get_node_timer(pos) local timer = minetest.get_node_timer(pos)
@ -76,33 +85,39 @@ minetest.register_node("mycoins:router_on", {
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
minetest.swap_node(pos, {name = 'mycoins:router_on', param2 = node.param2}) minetest.swap_node(pos, {name = 'mycoins:router_on', param2 = node.param2})
meta:set_string("formspec", default.router_formspec(pos)) meta:set_string("formspec", default.router_formspec(pos))
meta:set_string("infotext", "Router") meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
timer:start(10) timer:start(10)
end end
end, end,
after_place_node = function(pos) after_place_node = function(pos, placer)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
local timer = minetest.get_node_timer(pos) local timer = minetest.get_node_timer(pos)
meta:set_string("formspec", default.router_formspec(pos)) meta:set_string("formspec", default.router_formspec(pos))
meta:set_string("infotext", "Router") meta:set_string("owner", placer:get_player_name() or "")
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
timer:start(10) timer:start(10)
end, end,
on_construct = function(pos) on_construct = function(pos)
default.find_network(pos)
local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"}) local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"})
if isp == nil then if isp == nil then
local node = minetest.get_node(pos) local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
minetest.swap_node(pos, {name = 'mycoins:router_error', param2 = node.param2}) minetest.swap_node(pos, {name = 'mycoins:router_error', param2 = node.param2})
meta:set_string("formspec", default.router_error_formspec(pos)) meta:set_string("formspec", default.router_error_formspec(pos))
meta:set_string("infotext", "Router") meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
else else
local node = minetest.get_node(pos) local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
minetest.swap_node(pos, {name = 'mycoins:router_on', param2 = node.param2}) minetest.swap_node(pos, {name = 'mycoins:router_on', param2 = node.param2})
meta:set_string("formspec", default.router_formspec(pos)) meta:set_string("formspec", default.router_formspec(pos))
meta:set_string("infotext", "Router") meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
end end
end, end,
can_dig = function(pos, player)
local meta = minetest.get_meta(pos);
return isp_owner(meta, player)
end,
}) })
minetest.register_node("mycoins:router", { minetest.register_node("mycoins:router", {
@ -127,13 +142,14 @@ minetest.register_node("mycoins:router", {
}, },
on_punch = function(pos) on_punch = function(pos)
local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"}) local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"})
default.find_network(pos)
if isp == nil then if isp == nil then
local timer = minetest.get_node_timer(pos) local timer = minetest.get_node_timer(pos)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
local node = minetest.get_node(pos) local node = minetest.get_node(pos)
minetest.swap_node(pos, {name = 'mycoins:router_error', param2 = node.param2}) minetest.swap_node(pos, {name = 'mycoins:router_error', param2 = node.param2})
meta:set_string("formspec", default.router_error_formspec(pos)) meta:set_string("formspec", default.router_error_formspec(pos))
meta:set_string("infotext", "Router") meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
timer:start(10) timer:start(10)
else else
local timer = minetest.get_node_timer(pos) local timer = minetest.get_node_timer(pos)
@ -141,43 +157,50 @@ minetest.register_node("mycoins:router", {
local node = minetest.get_node(pos) local node = minetest.get_node(pos)
minetest.swap_node(pos, {name = 'mycoins:router_on', param2 = node.param2}) minetest.swap_node(pos, {name = 'mycoins:router_on', param2 = node.param2})
meta:set_string("formspec", default.router_formspec(pos)) meta:set_string("formspec", default.router_formspec(pos))
meta:set_string("infotext", "Router") meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
timer:start(10) timer:start(10)
end end
end, end,
on_timer = function(pos) on_timer = function(pos)
default.find_network(pos)
local timer = minetest.get_node_timer(pos) local timer = minetest.get_node_timer(pos)
local node = minetest.get_node(pos) local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
minetest.swap_node(pos, {name = 'mycoins:router', param2 = node.param2}) minetest.swap_node(pos, {name = 'mycoins:router', param2 = node.param2})
meta:set_string("formspec", default.router_off_formspec(pos)) meta:set_string("formspec", default.router_off_formspec(pos))
meta:set_string("infotext", "Router") meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
timer:stop() timer:stop()
end, end,
after_place_node = function(pos) after_place_node = function(pos, placer)
local timer = minetest.get_node_timer(pos) local timer = minetest.get_node_timer(pos)
local node = minetest.get_node(pos) local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
meta:set_string("formspec", default.router_formspec(pos)) meta:set_string("formspec", default.router_formspec(pos))
meta:set_string("infotext", "Router") meta:set_string("owner", placer:get_player_name() or "")
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
timer:start(10) timer:start(10)
end, end,
on_construct = function(pos) on_construct = function(pos)
default.find_network(pos)
local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"}) local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"})
if isp == nil then if isp == nil then
local node = minetest.get_node(pos) local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
minetest.swap_node(pos, {name = 'mycoins:router_error', param2 = node.param2}) minetest.swap_node(pos, {name = 'mycoins:router_error', param2 = node.param2})
meta:set_string("formspec", default.router_error_formspec(pos)) meta:set_string("formspec", default.router_error_formspec(pos))
meta:set_string("infotext", "Router") meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
else else
local node = minetest.get_node(pos) local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
minetest.swap_node(pos, {name = 'mycoins:router_on', param2 = node.param2}) minetest.swap_node(pos, {name = 'mycoins:router_on', param2 = node.param2})
meta:set_string("formspec", default.router_formspec(pos)) meta:set_string("formspec", default.router_formspec(pos))
meta:set_string("infotext", "Router") meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
end end
end, end,
can_dig = function(pos, player)
local meta = minetest.get_meta(pos);
return isp_owner(meta, player)
end,
}) })
minetest.register_node("mycoins:router_error", { minetest.register_node("mycoins:router_error", {
@ -207,9 +230,10 @@ minetest.register_node("mycoins:router_error", {
minetest.swap_node(pos, {name = 'mycoins:router', param2 = node.param2}) minetest.swap_node(pos, {name = 'mycoins:router', param2 = node.param2})
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
meta:set_string("formspec", default.router_off_formspec(pos)) meta:set_string("formspec", default.router_off_formspec(pos))
meta:set_string("infotext", "Router") meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
end, end,
on_timer = function(pos) on_timer = function(pos)
default.find_network(pos)
local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"}) local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"})
if isp == nil then if isp == nil then
local timer = minetest.get_node_timer(pos) local timer = minetest.get_node_timer(pos)
@ -217,7 +241,7 @@ minetest.register_node("mycoins:router_error", {
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
minetest.swap_node(pos, {name = 'mycoins:router_error', param2 = node.param2}) minetest.swap_node(pos, {name = 'mycoins:router_error', param2 = node.param2})
meta:set_string("formspec", default.router_error_formspec(pos)) meta:set_string("formspec", default.router_error_formspec(pos))
meta:set_string("infotext", "Router") meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
timer:start(10) timer:start(10)
else else
local timer = minetest.get_node_timer(pos) local timer = minetest.get_node_timer(pos)
@ -225,19 +249,11 @@ minetest.register_node("mycoins:router_error", {
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
minetest.swap_node(pos, {name = 'mycoins:router_on', param2 = node.param2}) minetest.swap_node(pos, {name = 'mycoins:router_on', param2 = node.param2})
meta:set_string("formspec", default.router_formspec(pos)) meta:set_string("formspec", default.router_formspec(pos))
meta:set_string("infotext", "Router") meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
timer:start(10) timer:start(10)
end end
end, end,
after_place_node = function(pos)
local timer = minetest.get_node_timer(pos)
local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec", default.router_error_formspec(pos))
meta:set_string("infotext", "Router")
timer:start(10)
end,
on_construct = function(pos) on_construct = function(pos)
local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"}) local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"})
if isp == nil then if isp == nil then
@ -245,15 +261,19 @@ minetest.register_node("mycoins:router_error", {
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
minetest.swap_node(pos, {name = 'mycoins:router_error', param2 = node.param2}) minetest.swap_node(pos, {name = 'mycoins:router_error', param2 = node.param2})
meta:set_string("formspec", default.router_error_formspec(pos)) meta:set_string("formspec", default.router_error_formspec(pos))
meta:set_string("infotext", "Router") meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
else else
local node = minetest.get_node(pos) local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
minetest.swap_node(pos, {name = 'mycoins:router_on', param2 = node.param2}) minetest.swap_node(pos, {name = 'mycoins:router_on', param2 = node.param2})
meta:set_string("formspec", default.router_formspec(pos)) meta:set_string("formspec", default.router_formspec(pos))
meta:set_string("infotext", "Router") meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
end end
end, end,
can_dig = function(pos, player)
local meta = minetest.get_meta(pos);
return isp_owner(meta, player)
end,
}) })

View File

@ -6,13 +6,18 @@ function default.router_off_formspec(pos)
end end
function default.router_formspec(pos) function default.router_formspec(pos)
local active_computers = minetest.find_nodes_in_area({x=pos.x-30, y=pos.y-30, z=pos.z-30}, {x=pos.x+30, y=pos.y+30, z=pos.z+30}, {"mycoins:home_computer_active","mycoins:game_computer_active","mycoins:alien_computer_active"})
local inactive_computers = minetest.find_nodes_in_area({x=pos.x-30, y=pos.y-30, z=pos.z-30}, {x=pos.x+30, y=pos.y+30, z=pos.z+30}, {"mycoins:home_computer","mycoins:game_computer","mycoins:alien_computer"})
local spos = pos.x .. "," .. pos.y .. "," ..pos.z local spos = pos.x .. "," .. pos.y .. "," ..pos.z
local formspec = "size[10,10]".. local formspec = "size[10,10]"..
"label[2,2;Powered On...]".. "label[1,0;Powered On...]"..
"label[2,2.5;Active: "..#active_computers.."]".. "label[2,0.5;Computers:]"..
"label[2,2.8;Inactive: "..#inactive_computers.."]".. "label[2,0.8;Active: "..#active_computers.."]"..
"label[2,1;Inactive: "..#inactive_computers.."]"..
"label[4,0.5;Routers:]"..
"label[4,0.8;Active: "..#active_routers.."]"..
"label[4,1;Inactive: "..#inactive_routers.."]"..
"label[6,0.5;ISP:]"..
"label[6,0.8;Active: "..#active_isp.."]"..
"label[6,1;Inactive: "..#inactive_isp.."]"..
"button_exit[4,7;2,1;exit;Exit]" "button_exit[4,7;2,1;exit;Exit]"
return formspec return formspec
end end
@ -24,7 +29,16 @@ function default.router_error_formspec(pos)
return formspec return formspec
end end
--WIFI Router (linksys look-a-like) function default.find_network(pos)
active_computers = minetest.find_nodes_in_area({x=pos.x-30, y=pos.y-30, z=pos.z-30}, {x=pos.x+30, y=pos.y+30, z=pos.z+30}, {"mycoins:home_computer_active","mycoins:game_computer_active","mycoins:alien_computer_active"})
inactive_computers = minetest.find_nodes_in_area({x=pos.x-30, y=pos.y-30, z=pos.z-30}, {x=pos.x+30, y=pos.y+30, z=pos.z+30}, {"mycoins:home_computer","mycoins:game_computer","mycoins:alien_computer"})
active_routers = minetest.find_nodes_in_area({x=pos.x-30, y=pos.y-30, z=pos.z-30}, {x=pos.x+30, y=pos.y+30, z=pos.z+30}, {"mycoins:router_on"})
inactive_routers = minetest.find_nodes_in_area({x=pos.x-30, y=pos.y-30, z=pos.z-30}, {x=pos.x+30, y=pos.y+30, z=pos.z+30}, {"mycoins:router"})
active_isp = minetest.find_nodes_in_area({x=pos.x-30, y=pos.y-30, z=pos.z-30}, {x=pos.x+30, y=pos.y+30, z=pos.z+30}, {"mycoins:isp_on"})
inactive_isp = minetest.find_nodes_in_area({x=pos.x-30, y=pos.y-30, z=pos.z-30}, {x=pos.x+30, y=pos.y+30, z=pos.z+30}, {"mycoins:isp"})
end
--WIFI Router
minetest.register_node("mycoins:router_on", { minetest.register_node("mycoins:router_on", {
description = "WIFI Router", description = "WIFI Router",
tiles = {"mycoins_router_t.png","mycoins_router_bt.png","mycoins_router_l.png","mycoins_router_r.png","mycoins_router_b.png", tiles = {"mycoins_router_t.png","mycoins_router_bt.png","mycoins_router_l.png","mycoins_router_r.png","mycoins_router_b.png",
@ -52,9 +66,10 @@ minetest.register_node("mycoins:router_on", {
minetest.swap_node(pos, {name = 'mycoins:router', param2 = node.param2}) minetest.swap_node(pos, {name = 'mycoins:router', param2 = node.param2})
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
meta:set_string("formspec", default.router_off_formspec(pos)) meta:set_string("formspec", default.router_off_formspec(pos))
meta:set_string("infotext", "Router") meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
end, end,
on_timer = function(pos) on_timer = function(pos)
default.find_network(pos)
local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"}) local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"})
if isp == nil then if isp == nil then
local timer = minetest.get_node_timer(pos) local timer = minetest.get_node_timer(pos)
@ -62,7 +77,7 @@ minetest.register_node("mycoins:router_on", {
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
minetest.swap_node(pos, {name = 'mycoins:router_error', param2 = node.param2}) minetest.swap_node(pos, {name = 'mycoins:router_error', param2 = node.param2})
meta:set_string("formspec", default.router_error_formspec(pos)) meta:set_string("formspec", default.router_error_formspec(pos))
meta:set_string("infotext", "Router") meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
timer:start(10) timer:start(10)
else else
local timer = minetest.get_node_timer(pos) local timer = minetest.get_node_timer(pos)
@ -70,33 +85,39 @@ minetest.register_node("mycoins:router_on", {
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
minetest.swap_node(pos, {name = 'mycoins:router_on', param2 = node.param2}) minetest.swap_node(pos, {name = 'mycoins:router_on', param2 = node.param2})
meta:set_string("formspec", default.router_formspec(pos)) meta:set_string("formspec", default.router_formspec(pos))
meta:set_string("infotext", "Router") meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
timer:start(10) timer:start(10)
end end
end, end,
after_place_node = function(pos) after_place_node = function(pos, placer)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
local timer = minetest.get_node_timer(pos) local timer = minetest.get_node_timer(pos)
meta:set_string("formspec", default.router_formspec(pos)) meta:set_string("formspec", default.router_formspec(pos))
meta:set_string("infotext", "Router") meta:set_string("owner", placer:get_player_name() or "")
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
timer:start(10) timer:start(10)
end, end,
on_construct = function(pos) on_construct = function(pos)
default.find_network(pos)
local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"}) local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"})
if isp == nil then if isp == nil then
local node = minetest.get_node(pos) local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
minetest.swap_node(pos, {name = 'mycoins:router_error', param2 = node.param2}) minetest.swap_node(pos, {name = 'mycoins:router_error', param2 = node.param2})
meta:set_string("formspec", default.router_error_formspec(pos)) meta:set_string("formspec", default.router_error_formspec(pos))
meta:set_string("infotext", "Router") meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
else else
local node = minetest.get_node(pos) local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
minetest.swap_node(pos, {name = 'mycoins:router_on', param2 = node.param2}) minetest.swap_node(pos, {name = 'mycoins:router_on', param2 = node.param2})
meta:set_string("formspec", default.router_formspec(pos)) meta:set_string("formspec", default.router_formspec(pos))
meta:set_string("infotext", "Router") meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
end end
end, end,
can_dig = function(pos, player)
local meta = minetest.get_meta(pos);
return isp_owner(meta, player)
end,
}) })
minetest.register_node("mycoins:router", { minetest.register_node("mycoins:router", {
@ -121,6 +142,7 @@ minetest.register_node("mycoins:router", {
}, },
on_punch = function(pos) on_punch = function(pos)
local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"}) local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"})
default.find_network(pos)
if isp == nil then if isp == nil then
local timer = minetest.get_node_timer(pos) local timer = minetest.get_node_timer(pos)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
@ -140,6 +162,7 @@ minetest.register_node("mycoins:router", {
end end
end, end,
on_timer = function(pos) on_timer = function(pos)
default.find_network(pos)
local timer = minetest.get_node_timer(pos) local timer = minetest.get_node_timer(pos)
local node = minetest.get_node(pos) local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
@ -157,6 +180,7 @@ minetest.register_node("mycoins:router", {
timer:start(10) timer:start(10)
end, end,
on_construct = function(pos) on_construct = function(pos)
default.find_network(pos)
local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"}) local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"})
if isp == nil then if isp == nil then
local node = minetest.get_node(pos) local node = minetest.get_node(pos)
@ -204,6 +228,7 @@ minetest.register_node("mycoins:router_error", {
meta:set_string("infotext", "Router") meta:set_string("infotext", "Router")
end, end,
on_timer = function(pos) on_timer = function(pos)
default.find_network(pos)
local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"}) local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"})
if isp == nil then if isp == nil then
local timer = minetest.get_node_timer(pos) local timer = minetest.get_node_timer(pos)