code cleanup

master
DonBatman 2015-05-06 10:19:15 -07:00
parent 0e290cc0e5
commit a0b27fc43b
11 changed files with 1166 additions and 47 deletions

View File

@ -1,19 +1,27 @@
--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- +
--bitcoins v2.0 by MilesDyson@DistroGeeks.com +
--bitcoins v2.5 by MilesDyson@zoho.com +
-- +
--LICENSE: WTFPL DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE; applies to all parts. +
-- +
--Have ideas on ways to make this mod better? email me at milesdyson@distrogeeks.com +
--Have ideas on ways to make this mod better? email me at milesdyson@zoho.com +
-- +
--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
This mod will add bitcoins to your map, (NOT REAL BITCOINS) but the basic idea of bitcoins..
My first mod for minetest, I plan to expand this mod a bit more as time permits..
Bitcoins Mod:
create a network containing at least one isp and one computer within a radius of 3 nodes to connect to the internet and mine coins,
add a router to increase its radius to 30 nodes for larger networks.. all computers must have internet access to mine, with
3 levels of craft able computers, home computer, gaming computer and alienware computer, each with two more levels of upgrades,
each level increasing the speed of the mining process, the isp box requires payment for your internet access,
place bitcoins into the payment slot and turn it on.. then boot your computers.. all computers will shutdown after the player
logs out or the isp box shuts down due to none payment...
3/9/13 Added denominations of bitcoin Bitcent,Bitnickel,Bitdime,Bitquarter.
3/9/13 Added corresponding ors for the new coins.
@ -40,8 +48,9 @@ My first mod for minetest, I plan to expand this mod a bit more as time permits.
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
05/05/15 condensed a lot of code, computers are now upgradeable by adding video cards to the form spec, separated computers into dif
files changed some crafting recipes, added video card type check to timer, if not compatible card then computer crashes ..
added random numbers to the miner timers of all computers to better simulate luck in the mining process
Enjoy!! :D

365
alien_pc.lua Normal file
View File

@ -0,0 +1,365 @@
math.randomseed(os.time())
alien_boot = 30 -- seconds it takes to boot the computer
alien_miner = math.random(275,325) -- seconds it takes to mine one bitcent
alien_upgrade_step = 45 -- seconds to subtract from alien_miner per upgrade
local function computer_owner(meta, player)
if player:get_player_name() ~= meta:get_string("owner") then
return false
end
return true
end
local function upgrade_timer(pos)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
local expansion1 = inv:get_stack("exp1", 1)
local expansion2 = inv:get_stack("exp2", 1)
local expansion3 = inv:get_stack("exp3", 1)
local upgraded_miner = alien_miner
if expansion1:get_name()== "mycoins:alien_computer_video" then
upgraded_miner = upgraded_miner - alien_upgrade_step
else
if expansion1:get_name()== "" then
upgraded_miner = upgraded_miner
else
upgraded_miner = upgraded_miner + 99999
end
end
if expansion2:get_name()=="mycoins:alien_computer_video" then
upgraded_miner = upgraded_miner - alien_upgrade_step
else
if expansion2:get_name()== "" then
upgraded_miner = upgraded_miner
else
upgraded_miner = upgraded_miner + 99999
end
end
if expansion3:get_name()== "mycoins:alien_computer_video" then
upgraded_miner = upgraded_miner - alien_upgrade_step
else
if expansion3:get_name()== "" then
upgraded_miner = upgraded_miner
else
upgraded_miner = upgraded_miner + 99999
end
end
return upgraded_miner
end
function default.alien_boot_formspec(pos)
local formspec = "invsize[10,10]"..
"image[1,0.5;1.2,1.2;tux.png]"..
"label[2,0.8;Initializing basic system settings ... OK]" ..
"label[2,1.1;Mounting local filesystems ... OK]" ..
"label[2,1.4;Enabling swap space ... OK]" ..
"label[2,1.7;Setting up console ... OK]" ..
"label[2,2;Operaing System Loaded ... OK]" ..
"label[2,2.3;Starting cgminer 3.7.2 ]" ..
"list[current_name;main;1,3;1,1;]"..
"list[current_player;main;3,9.5;4,1;]"
return formspec
end
function default.alien_off_formspec(pos)
local formspec = "invsize[10,10]"..
"background[1,2.5;8,7;mycoins_game_computer_motherboard.png]"..
"label[2,2;Powered Off...]"..
"list[current_name;main;1,3;1,1;]"..
"list[current_name;exp1;2,5.94;1,1;]"..
"list[current_name;exp2;3,7.11;1,1;]"..
"list[current_name;exp3;2,8.29;1,1;]"..
"list[current_player;main;3,9.5;4,1;]"
return formspec
end
function default.alien_active_formspec(pos)
local formspec = "invsize[10,10]"..
"background[1,2.5;8,7;mycoins_game_computer_motherboard.png]"..
"label[2,0.0;cgminer version 3.7.2 - Started]" ..
"label[2,0.2;----------------------------------------------------------------------------------]" ..
"label[2,0.4;5s:468.9K avg:468.8Kh/s : A:2304 R:0 HW:0 WU:394.4/m]" ..
"label[2,0.7;ST: 2 SS: 0 NB: 1909 LW: 34901 GF: 14 RF: 7]" ..
"label[2,1;Connected to stratum.max.bitcoin.com diff 1.02k with stratum.]" ..
"label[2,1.3;Block: 31dca6d... Diff:104 Started: 09:24:05 Best share: 618K.]" ..
"label[2,1.5;----------------------------------------------------------------------------------]" ..
"list[current_name;main;1,3;1,1;]"..
"list[current_name;exp1;2,5.94;1,1;]"..
"list[current_name;exp2;3,7.11;1,1;]"..
"list[current_name;exp3;2,8.29;1,1;]"..
"list[current_player;main;3,9.5;4,1;]"
return formspec
end
function default.alien_wifi_formspec(pos)
local formspec = "invsize[10,10]"..
"label[2,2;No Internet Connection.]" ..
"label[2,2.5;Contact Your Network Administrator For More Information.]" ..
"list[current_name;main;1,3;1,1;]"..
"list[current_player;main;3,9.5;4,1;]"
return formspec
end
function default.alien_off(pos)
local timer = minetest.get_node_timer(pos)
local meta = minetest.get_meta(pos)
local node = minetest.get_node(pos)
local inv = meta:get_inventory()
minetest.swap_node(pos, {name = 'mycoins:alien_computer', param2 = node.param2})
meta:set_string("formspec", default.alien_off_formspec(pos))
meta:set_string("infotext", "Alienware Computer (owner "..
meta:get_string("owner")..")")
inv:set_size("main", 1*1)
timer:stop()
end
function default.alien_wifi(pos)
local timer = minetest.get_node_timer(pos)
local meta = minetest.get_meta(pos)
local node = minetest.get_node(pos)
local inv = meta:get_inventory()
minetest.swap_node(pos, {name = 'mycoins:alien_computer', param2 = node.param2})
meta:set_string("formspec", default.alien_wifi_formspec(pos))
meta:set_string("infotext", "Alienware Computer (owner "..
meta:get_string("owner")..")")
inv:set_size("main", 1*1)
timer:stop()
end
function default.alien_boot(pos)
local timer = minetest.get_node_timer(pos)
local meta = minetest.get_meta(pos)
local node = minetest.get_node(pos)
local inv = meta:get_inventory()
meta:set_string("formspec", default.alien_boot_formspec(pos))
meta:set_string("infotext", "Alienware Computer (owner "..
meta:get_string("owner")..")")
inv:set_size("main", 1*1)
timer:start(alien_boot)
end
-- Alienware Computer
minetest.register_node("mycoins:alien_computer",{
drawtype = "nodebox",
description = "Alienware Computer",
tiles = {"mycoins_alien_computer_tp.png","mycoins_alien_computer_bt.png","mycoins_alien_computer_rt.png","mycoins_alien_computer_lt.png","mycoins_alien_computer_bk.png","mycoins_alien_computer_ft_off.png"},
paramtype = "light",
paramtype2 = "facedir",
drop = "mycoins:alien_computer",
groups = {cracky=2, oddly_breakable_by_hand=2},
node_box = {
type = "fixed",
fixed = {
{-0.500000,-0.500000,0.03125,0.500000,0.500000,0.40625},
{-0.40625,-0.40625,0.40625,0.40625,0.40625,0.50000},
{-0.500000,-0.500000,-0.500000,0.500000,-0.375,-0.03125},
},
},
sounds = default.node_sound_wood_defaults(),
after_place_node = function(pos, placer)
local meta = minetest.get_meta(pos)
local timer = minetest.get_node_timer(pos)
meta:set_string("owner", placer:get_player_name() or "")
default.alien_off(pos)
end,
on_construct = function(pos)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
meta:set_string("formspec", default.alien_boot_formspec(pos))
meta:set_string("infotext", "Alienware Computer (owner "..
meta:get_string("owner")..")")
inv:set_size("main", 1*1)
inv:set_size("exp1", 1*1)
inv:set_size("exp2", 1*1)
inv:set_size("exp3", 1*1)
end,
on_timer = function(pos)
local isp = minetest.find_node_near(pos, 3, {"mycoins:isp_on"})
if isp == nil then
local wifi = minetest.find_node_near(pos, 30, {"mycoins:router_on"})
if wifi == nil then
default.alien_wifi(pos)
else
local meta = minetest.get_meta(pos)
if ( minetest.get_player_by_name(meta:get_string("owner")) == nil ) then
default.alien_off(pos)
else
local timer = minetest.get_node_timer(pos)
local meta = minetest.get_meta(pos)
local node = minetest.get_node(pos)
local inv = meta:get_inventory()
minetest.swap_node(pos, {name = 'mycoins:alien_computer_active', param2 = node.param2})
meta:set_string("formspec", default.alien_active_formspec(pos))
meta:set_string("infotext", "Alienware Computer (owner "..
meta:get_string("owner")..")")
inv:set_size("main", 1*1)
if ( upgrade_timer(pos) < alien_miner ) then
timer:start(upgrade_timer(pos))
else
default.alien_off(pos)
end
end
end
else
local meta = minetest.get_meta(pos)
if ( minetest.get_player_by_name(meta:get_string("owner")) == nil ) then
default.alien_off(pos)
else
local timer = minetest.get_node_timer(pos)
local meta = minetest.get_meta(pos)
local node = minetest.get_node(pos)
local inv = meta:get_inventory()
minetest.swap_node(pos, {name = 'mycoins:alien_computer_active', param2 = node.param2})
meta:set_string("formspec", default.alien_active_formspec(pos))
meta:set_string("infotext", "Alienware Computer (owner "..
meta:get_string("owner")..")")
inv:set_size("main", 1*1)
if ( upgrade_timer(pos) < alien_miner ) then
timer:start(upgrade_timer(pos))
else
default.alien_off(pos)
end
end
end
end,
on_punch = function(pos)
local isp = minetest.find_node_near(pos, 3, {"mycoins:isp_on"})
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
if upgrade_timer(pos) < alien_miner then
if isp == nil then
local wifi = minetest.find_node_near(pos, 30, {"mycoins:router_on"})
if wifi == nil then
default.alien_wifi(pos)
else
if ( upgrade_timer(pos) < alien_miner ) then
default.alien_boot(pos)
else
default.alien_off(pos)
end
end
else
default.alien_boot(pos)
end
else
default.alien_off(pos)
end
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 computer_owner(meta, player) then
return 0
end
return count
end,
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
local meta = minetest.env:get_meta(pos)
if not computer_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 computer_owner(meta, player) then
return 0
end
return stack:get_count()
end,
can_dig = function(pos,player)
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory()
return inv:is_empty("main") and inv:is_empty("exp1") and inv:is_empty("exp2") and inv:is_empty("exp3") and computer_owner(meta, player)
end,
})
minetest.register_node("mycoins:alien_computer_active",{
drawtype = "nodebox",
description = "Alienware Computer",
tiles = {"mycoins_alien_computer_tp.png","mycoins_alien_computer_bt.png","mycoins_alien_computer_rt.png","mycoins_alien_computer_lt.png","mycoins_alien_computer_bk.png","mycoins_alien_computer_ft.png"},
paramtype = "light",
paramtype2 = "facedir",
light_source = 8,
drop = "mycoins:alien_computer",
groups = {cracky=2, not_in_creative_inventory=1, oddly_breakable_by_hand=2},
node_box = {
type = "fixed",
fixed = {
{-0.500000,-0.500000,0.03125,0.500000,0.500000,0.40625},
{-0.40625,-0.40625,0.40625,0.40625,0.40625,0.50000},
{-0.500000,-0.500000,-0.500000,0.500000,-0.375,-0.03125},
},
},
sounds = default.node_sound_wood_defaults(),
on_timer = function(pos)
local timer = minetest.get_node_timer(pos)
local meta = minetest.get_meta(pos)
local node = minetest.get_node(pos)
local inv = meta:get_inventory()
local isp = minetest.find_node_near(pos, 3, {"mycoins:isp_on"})
if isp == nil then
local wifi = minetest.find_node_near(pos, 30, {"mycoins:router_on"})
if wifi == nil then
default.alien_off(pos)
else
local meta = minetest.get_meta(pos)
if ( minetest.get_player_by_name(meta:get_string("owner")) == nil ) then
default.alien_off(pos)
else
if ( upgrade_timer(pos) < alien_miner ) then
timer:start(upgrade_timer(pos))
minetest.get_meta(pos):get_inventory():add_item("main", "mycoins:bitcent")
else
default.alien_off(pos)
end
end
end
else
local meta = minetest.get_meta(pos)
if ( minetest.get_player_by_name(meta:get_string("owner")) == nil ) then
default.alien_off(pos)
else
if ( upgrade_timer(pos) < alien_miner ) then
minetest.get_meta(pos):get_inventory():add_item("main", "mycoins:bitcent")
timer:start(upgrade_timer(pos))
else
default.alien_off(pos)
end
end
end
end,
on_punch = function(pos)
default.alien_off(pos)
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 computer_owner(meta, player) then
return 0
end
return count
end,
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
local meta = minetest.env:get_meta(pos)
if not computer_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 computer_owner(meta, player) then
return 0
end
return stack:get_count()
end,
can_dig = function(pos,player)
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory()
return inv:is_empty("main") and inv:is_empty("exp1") and inv:is_empty("exp2") and inv:is_empty("exp3") and computer_owner(meta, player)
end,
})

View File

@ -6,8 +6,8 @@
minetest.register_craft({
output = "mycoins:home_computer";
recipe = {
{ "mycoins:home_computer_powersupply", "mycoins:home_computer_ram", "mycoins:home_computer_cdrom", },
{ "mycoins:home_computer_video", "mycoins:home_computer_cpu", "mycoins:home_computer_fan", },
{ "mycoins:home_computer_powersupply", "mycoins:ribbonwire", "mycoins:home_computer_cdrom", },
{ "mycoins:home_computer_ram", "mycoins:home_computer_cpu", "mycoins:home_computer_fan", },
{ "mycoins:home_computer_soundcard", "mycoins:home_computer_motherboard", "mycoins:home_computer_harddrive", },
};
});
@ -101,8 +101,8 @@ minetest.register_craft({
minetest.register_craft({
output = "mycoins:game_computer";
recipe = {
{ "mycoins:game_computer_powersupply", "mycoins:game_computer_ram", "mycoins:game_computer_dvdrom", },
{ "mycoins:game_computer_video", "mycoins:game_computer_cpu", "mycoins:home_computer", },
{ "mycoins:game_computer_powersupply", "mycoins:ribbonwire", "mycoins:game_computer_dvdrom", },
{ "mycoins:game_computer_ram", "mycoins:game_computer_cpu", "mycoins:home_computer", },
{ "mycoins:game_computer_soundcard", "mycoins:game_computer_motherboard", "mycoins:game_computer_harddrive", },
};
});
@ -183,8 +183,8 @@ minetest.register_craft({
minetest.register_craft({
output = "mycoins:alien_computer";
recipe = {
{ "mycoins:alien_computer_powersupply", "mycoins:alien_computer_ram", "mycoins:alien_computer_cooler", },
{ "mycoins:alien_computer_video", "mycoins:alien_computer_cpu", "mycoins:game_computer", },
{ "mycoins:alien_computer_powersupply", "mycoins:ribbonwire", "mycoins:alien_computer_cooler", },
{ "mycoins:alien_computer_ram", "mycoins:alien_computer_cpu", "mycoins:game_computer", },
{ "mycoins:alien_computer_soundcard", "mycoins:alien_computer_motherboard", "mycoins:alien_computer_harddrive", },
};
});

View File

@ -35,7 +35,7 @@ minetest.register_craft({
minetest.register_craft({
output = "mycoins:home_computer_powersupply";
recipe = {
{ "mycoins:copper_ribbonwire", "mycoins:copper_ribbonwire", "mycoins:copper_ribbonwire", },
{ "mycoins:ribbonwire", "mycoins:ribbonwire", "mycoins:ribbonwire", },
{ "default:steel_ingot", "default:steelblock", "default:steel_ingot", },
{ "homedecor:ic", "homedecor:ic", "homedecor:ic", },
};
@ -411,7 +411,7 @@ minetest.register_craft({
recipe = {
{ "default:steel_ingot", "homedecor:ic", "default:steel_ingot", },
{ "homedecor:ic", "default:mese", "homedecor:ic", },
{ "homedecor:plastic_sheet", "homedecor:plastic_sheet", "homedecor:plastic_sheet", },
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", },
};
});
@ -419,7 +419,7 @@ minetest.register_craft({
-- copper wire
minetest.register_craft({
output = "mycoins:copper_ribbonwire 12";
output = "mycoins:copper_ribbonwire 9";
recipe = {
{ "default:copper_ingot", "default:copper_ingot", "default:copper_ingot", },
};
@ -430,7 +430,7 @@ minetest.register_craft({
recipe = {
{ "dye:red", "dye:green", "dye:yellow", },
{ "mycoins:copper_ribbonwire", "mycoins:copper_ribbonwire", "mycoins:copper_ribbonwire", },
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", },
{ "dye:blue", "homedecor:plastic_sheeting", "dye:violet", },
};
});
@ -439,8 +439,8 @@ minetest.register_craft({
minetest.register_craft({
output = "mycoins:isp";
recipe = {
{ "default:gold_ingot", "mycoins:bitcoin", "default:silver_ingot", },
{ "mycoins:ribbonwire", "default:steelblock", "mycoins:ribbonwire", },
{ "mycoins:copper_ribbonwire", "homedecor:ic", "default:clay_lump", },
{ "mycoins:ribbonwire", "homedecor:ic", "mycoins:ribbonwire", },
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", },
};
});

364
game_pc.lua Normal file
View File

@ -0,0 +1,364 @@
math.randomseed(os.time())
game_boot = 45 -- seconds it takes to boot the computer
game_miner = math.random(375,425) -- seconds it takes to mine one bitcent default 400
game_upgrade_step = 30 -- seconds to subtract from game_miner per upgrade
local function computer_owner(meta, player)
if player:get_player_name() ~= meta:get_string("owner") then
return false
end
return true
end
local function upgrade_timer(pos)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
local expansion1 = inv:get_stack("exp1", 1)
local expansion2 = inv:get_stack("exp2", 1)
local expansion3 = inv:get_stack("exp3", 1)
local upgraded_miner = game_miner
if expansion1:get_name()== "mycoins:game_computer_video" then
upgraded_miner = upgraded_miner - game_upgrade_step
else
if expansion1:get_name()== "" then
upgraded_miner = upgraded_miner
else
upgraded_miner = upgraded_miner + 99999
end
end
if expansion2:get_name()=="mycoins:game_computer_video" then
upgraded_miner = upgraded_miner - game_upgrade_step
else
if expansion2:get_name()== "" then
upgraded_miner = upgraded_miner
else
upgraded_miner = upgraded_miner + 99999
end
end
if expansion3:get_name()== "mycoins:game_computer_video" then
upgraded_miner = upgraded_miner - game_upgrade_step
else
if expansion3:get_name()== "" then
upgraded_miner = upgraded_miner
else
upgraded_miner = upgraded_miner + 99999
end
end
return upgraded_miner
end
function default.game_boot_formspec(pos)
local formspec = "invsize[10,10]"..
"image[1,0.5;1.2,1.2;tux.png]"..
"label[2,0.8;Initializing basic system settings ... OK]" ..
"label[2,1.1;Mounting local filesystems ... OK]" ..
"label[2,1.4;Enabling swap space ... OK]" ..
"label[2,1.7;Setting up console ... OK]" ..
"label[2,2;Operaing System Loaded ... OK]" ..
"label[2,2.3;Starting cgminer 3.7.2 ]" ..
"list[current_name;main;1,3;1,1;]"..
"list[current_player;main;3,9.5;4,1;]"
return formspec
end
function default.game_off_formspec(pos)
local formspec = "invsize[10,10]"..
"background[1,2.5;8,7;mycoins_game_computer_motherboard.png]"..
"label[2,2;Powered Off...]"..
"list[current_name;main;1,3;1,1;]"..
"list[current_name;exp1;2,5.94;1,1;]"..
"list[current_name;exp2;3,7.11;1,1;]"..
"list[current_name;exp3;2,8.29;1,1;]"..
"list[current_player;main;3,9.5;4,1;]"
return formspec
end
function default.game_active_formspec(pos)
local formspec = "invsize[10,10]"..
"background[1,2.5;8,7;mycoins_game_computer_motherboard.png]"..
"label[2,0.0;cgminer version 3.7.2 - Started]" ..
"label[2,0.2;----------------------------------------------------------------------------------]" ..
"label[2,0.4;5s:468.9K avg:468.8Kh/s : A:2304 R:0 HW:0 WU:394.4/m]" ..
"label[2,0.7;ST: 2 SS: 0 NB: 1909 LW: 34901 GF: 14 RF: 7]" ..
"label[2,1;Connected to stratum.max.bitcoin.com diff 1.02k with stratum.]" ..
"label[2,1.3;Block: 31dca6d... Diff:104 Started: 09:24:05 Best share: 618K.]" ..
"label[2,1.5;----------------------------------------------------------------------------------]" ..
"list[current_name;main;1,3;1,1;]"..
"list[current_name;exp1;2,5.94;1,1;]"..
"list[current_name;exp2;3,7.11;1,1;]"..
"list[current_name;exp3;2,8.29;1,1;]"..
"list[current_player;main;3,9.5;4,1;]"
return formspec
end
function default.game_wifi_formspec(pos)
local formspec = "invsize[10,10]"..
"label[2,2;No Internet Connection.]" ..
"label[2,2.5;Contact Your Network Administrator For More Information.]" ..
"list[current_name;main;1,3;1,1;]"..
"list[current_player;main;3,9.5;4,1;]"
return formspec
end
function default.game_off(pos)
local timer = minetest.get_node_timer(pos)
local meta = minetest.get_meta(pos)
local node = minetest.get_node(pos)
local inv = meta:get_inventory()
minetest.swap_node(pos, {name = 'mycoins:game_computer', param2 = node.param2})
meta:set_string("formspec", default.game_off_formspec(pos))
meta:set_string("infotext", "Alienware Computer (owner "..
meta:get_string("owner")..")")
inv:set_size("main", 1*1)
timer:stop()
end
function default.game_wifi(pos)
local timer = minetest.get_node_timer(pos)
local meta = minetest.get_meta(pos)
local node = minetest.get_node(pos)
local inv = meta:get_inventory()
minetest.swap_node(pos, {name = 'mycoins:game_computer', param2 = node.param2})
meta:set_string("formspec", default.game_wifi_formspec(pos))
meta:set_string("infotext", "Alienware Computer (owner "..
meta:get_string("owner")..")")
inv:set_size("main", 1*1)
timer:stop()
end
function default.game_boot(pos)
local timer = minetest.get_node_timer(pos)
local meta = minetest.get_meta(pos)
local node = minetest.get_node(pos)
local inv = meta:get_inventory()
meta:set_string("formspec", default.game_boot_formspec(pos))
meta:set_string("infotext", "Alienware Computer (owner "..
meta:get_string("owner")..")")
inv:set_size("main", 1*1)
timer:start(game_boot)
end
-- Alienware Computer
minetest.register_node("mycoins:game_computer",{
drawtype = "nodebox",
description = "Alienware Computer",
tiles = {"mycoins_game_computer_tp.png","mycoins_game_computer_bt.png","mycoins_game_computer_rt.png","mycoins_game_computer_lt.png","mycoins_game_computer_bk.png","mycoins_game_computer_ft_off.png"},
paramtype = "light",
paramtype2 = "facedir",
drop = "mycoins:game_computer",
groups = {cracky=2, oddly_breakable_by_hand=2},
node_box = {
type = "fixed",
fixed = {
{-0.500000,-0.500000,0.03125,0.500000,0.500000,0.40625},
{-0.40625,-0.40625,0.40625,0.40625,0.40625,0.50000},
{-0.500000,-0.500000,-0.500000,0.500000,-0.375,-0.03125},
},
},
sounds = default.node_sound_wood_defaults(),
after_place_node = function(pos, placer)
local meta = minetest.get_meta(pos)
local timer = minetest.get_node_timer(pos)
meta:set_string("owner", placer:get_player_name() or "")
default.game_off(pos)
end,
on_construct = function(pos)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
meta:set_string("formspec", default.game_boot_formspec(pos))
meta:set_string("infotext", "Alienware Computer (owner "..
meta:get_string("owner")..")")
inv:set_size("main", 1*1)
inv:set_size("exp1", 1*1)
inv:set_size("exp2", 1*1)
inv:set_size("exp3", 1*1)
end,
on_timer = function(pos)
local isp = minetest.find_node_near(pos, 3, {"mycoins:isp_on"})
if isp == nil then
local wifi = minetest.find_node_near(pos, 30, {"mycoins:router_on"})
if wifi == nil then
default.game_wifi(pos)
else
local meta = minetest.get_meta(pos)
if ( minetest.get_player_by_name(meta:get_string("owner")) == nil ) then
default.game_off(pos)
else
local timer = minetest.get_node_timer(pos)
local meta = minetest.get_meta(pos)
local node = minetest.get_node(pos)
local inv = meta:get_inventory()
minetest.swap_node(pos, {name = 'mycoins:game_computer_active', param2 = node.param2})
meta:set_string("formspec", default.game_active_formspec(pos))
meta:set_string("infotext", "Alienware Computer (owner "..
meta:get_string("owner")..")")
inv:set_size("main", 1*1)
if ( upgrade_timer(pos) < game_miner ) then
timer:start(upgrade_timer(pos))
else
default.game_off(pos)
end
end
end
else
local meta = minetest.get_meta(pos)
if ( minetest.get_player_by_name(meta:get_string("owner")) == nil ) then
default.game_off(pos)
else
local timer = minetest.get_node_timer(pos)
local meta = minetest.get_meta(pos)
local node = minetest.get_node(pos)
local inv = meta:get_inventory()
minetest.swap_node(pos, {name = 'mycoins:game_computer_active', param2 = node.param2})
meta:set_string("formspec", default.game_active_formspec(pos))
meta:set_string("infotext", "Alienware Computer (owner "..
meta:get_string("owner")..")")
inv:set_size("main", 1*1)
if ( upgrade_timer(pos) < game_miner ) then
timer:start(upgrade_timer(pos))
else
default.game_off(pos)
end
end
end
end,
on_punch = function(pos)
local isp = minetest.find_node_near(pos, 3, {"mycoins:isp_on"})
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
if upgrade_timer(pos) < game_miner then
if isp == nil then
local wifi = minetest.find_node_near(pos, 30, {"mycoins:router_on"})
if wifi == nil then
default.game_wifi(pos)
else
if ( upgrade_timer(pos) < game_miner ) then
default.game_boot(pos)
else
default.game_off(pos)
end
end
else
default.game_boot(pos)
end
else
default.game_off(pos)
end
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 computer_owner(meta, player) then
return 0
end
return count
end,
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
local meta = minetest.env:get_meta(pos)
if not computer_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 computer_owner(meta, player) then
return 0
end
return stack:get_count()
end,
can_dig = function(pos,player)
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory()
return inv:is_empty("main") and inv:is_empty("exp1") and inv:is_empty("exp2") and inv:is_empty("exp3") and computer_owner(meta, player)
end,
})
minetest.register_node("mycoins:game_computer_active",{
drawtype = "nodebox",
description = "Alienware Computer",
tiles = {"mycoins_game_computer_tp.png","mycoins_game_computer_bt.png","mycoins_game_computer_rt.png","mycoins_game_computer_lt.png","mycoins_game_computer_bk.png","mycoins_game_computer_ft.png"},
paramtype = "light",
paramtype2 = "facedir",
light_source = 8,
drop = "mycoins:game_computer",
groups = {cracky=2, not_in_creative_inventory=1, oddly_breakable_by_hand=2},
node_box = {
type = "fixed",
fixed = {
{-0.500000,-0.500000,0.03125,0.500000,0.500000,0.40625},
{-0.40625,-0.40625,0.40625,0.40625,0.40625,0.50000},
{-0.500000,-0.500000,-0.500000,0.500000,-0.375,-0.03125},
},
},
sounds = default.node_sound_wood_defaults(),
on_timer = function(pos)
local timer = minetest.get_node_timer(pos)
local meta = minetest.get_meta(pos)
local node = minetest.get_node(pos)
local inv = meta:get_inventory()
local isp = minetest.find_node_near(pos, 3, {"mycoins:isp_on"})
if isp == nil then
local wifi = minetest.find_node_near(pos, 30, {"mycoins:router_on"})
if wifi == nil then
default.game_off(pos)
else
local meta = minetest.get_meta(pos)
if ( minetest.get_player_by_name(meta:get_string("owner")) == nil ) then
default.game_off(pos)
else
if ( upgrade_timer(pos) < game_miner ) then
timer:start(upgrade_timer(pos))
minetest.get_meta(pos):get_inventory():add_item("main", "mycoins:bitcent")
else
default.game_off(pos)
end
end
end
else
local meta = minetest.get_meta(pos)
if ( minetest.get_player_by_name(meta:get_string("owner")) == nil ) then
default.game_off(pos)
else
if ( upgrade_timer(pos) < game_miner ) then
minetest.get_meta(pos):get_inventory():add_item("main", "mycoins:bitcent")
timer:start(upgrade_timer(pos))
else
default.game_off(pos)
end
end
end
end,
on_punch = function(pos)
default.game_off(pos)
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 computer_owner(meta, player) then
return 0
end
return count
end,
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
local meta = minetest.env:get_meta(pos)
if not computer_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 computer_owner(meta, player) then
return 0
end
return stack:get_count()
end,
can_dig = function(pos,player)
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory()
return inv:is_empty("main") and inv:is_empty("exp1") and inv:is_empty("exp2") and inv:is_empty("exp3") and computer_owner(meta, player)
end,
})

364
home_pc.lua Normal file
View File

@ -0,0 +1,364 @@
math.randomseed(os.time())
home_boot = 60 -- seconds it takes to boot the computer
home_miner = math.random(475,525) -- seconds it takes to mine one bitcent
home_upgrade_step = 15 -- seconds to subtract from home_miner per upgrade
local function computer_owner(meta, player)
if player:get_player_name() ~= meta:get_string("owner") then
return false
end
return true
end
local function upgrade_timer(pos)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
local expansion1 = inv:get_stack("exp1", 1)
local expansion2 = inv:get_stack("exp2", 1)
local expansion3 = inv:get_stack("exp3", 1)
local upgraded_miner = home_miner
if expansion1:get_name()== "mycoins:home_computer_video" then
upgraded_miner = upgraded_miner - home_upgrade_step
else
if expansion1:get_name()== "" then
upgraded_miner = upgraded_miner
else
upgraded_miner = upgraded_miner + 99999
end
end
if expansion2:get_name()=="mycoins:home_computer_video" then
upgraded_miner = upgraded_miner - home_upgrade_step
else
if expansion2:get_name()== "" then
upgraded_miner = upgraded_miner
else
upgraded_miner = upgraded_miner + 99999
end
end
if expansion3:get_name()== "mycoins:home_computer_video" then
upgraded_miner = upgraded_miner - home_upgrade_step
else
if expansion3:get_name()== "" then
upgraded_miner = upgraded_miner
else
upgraded_miner = upgraded_miner + 99999
end
end
return upgraded_miner
end
function default.home_boot_formspec(pos)
local formspec = "invsize[10,10]"..
"image[1,0.5;1.2,1.2;tux.png]"..
"label[2,0.8;Initializing basic system settings ... OK]" ..
"label[2,1.1;Mounting local filesystems ... OK]" ..
"label[2,1.4;Enabling swap space ... OK]" ..
"label[2,1.7;Setting up console ... OK]" ..
"label[2,2;Operaing System Loaded ... OK]" ..
"label[2,2.3;Starting cgminer 3.7.2 ]" ..
"list[current_name;main;1,3;1,1;]"..
"list[current_player;main;3,9.5;4,1;]"
return formspec
end
function default.home_off_formspec(pos)
local formspec = "invsize[10,10]"..
"background[1,2.5;8,7;mycoins_game_computer_motherboard.png]"..
"label[2,2;Powered Off...]"..
"list[current_name;main;1,3;1,1;]"..
"list[current_name;exp1;2,5.94;1,1;]"..
"list[current_name;exp2;3,7.11;1,1;]"..
"list[current_name;exp3;2,8.29;1,1;]"..
"list[current_player;main;3,9.5;4,1;]"
return formspec
end
function default.home_active_formspec(pos)
local formspec = "invsize[10,10]"..
"background[1,2.5;8,7;mycoins_game_computer_motherboard.png]"..
"label[2,0.0;cgminer version 3.7.2 - Started]" ..
"label[2,0.2;----------------------------------------------------------------------------------]" ..
"label[2,0.4;5s:468.9K avg:468.8Kh/s : A:2304 R:0 HW:0 WU:394.4/m]" ..
"label[2,0.7;ST: 2 SS: 0 NB: 1909 LW: 34901 GF: 14 RF: 7]" ..
"label[2,1;Connected to stratum.max.bitcoin.com diff 1.02k with stratum.]" ..
"label[2,1.3;Block: 31dca6d... Diff:104 Started: 09:24:05 Best share: 618K.]" ..
"label[2,1.5;----------------------------------------------------------------------------------]" ..
"list[current_name;main;1,3;1,1;]"..
"list[current_name;exp1;2,5.94;1,1;]"..
"list[current_name;exp2;3,7.11;1,1;]"..
"list[current_name;exp3;2,8.29;1,1;]"..
"list[current_player;main;3,9.5;4,1;]"
return formspec
end
function default.home_wifi_formspec(pos)
local formspec = "invsize[10,10]"..
"label[2,2;No Internet Connection.]" ..
"label[2,2.5;Contact Your Network Administrator For More Information.]" ..
"list[current_name;main;1,3;1,1;]"..
"list[current_player;main;3,9.5;4,1;]"
return formspec
end
function default.home_off(pos)
local timer = minetest.get_node_timer(pos)
local meta = minetest.get_meta(pos)
local node = minetest.get_node(pos)
local inv = meta:get_inventory()
minetest.swap_node(pos, {name = 'mycoins:home_computer', param2 = node.param2})
meta:set_string("formspec", default.home_off_formspec(pos))
meta:set_string("infotext", "Alienware Computer (owner "..
meta:get_string("owner")..")")
inv:set_size("main", 1*1)
timer:stop()
end
function default.home_wifi(pos)
local timer = minetest.get_node_timer(pos)
local meta = minetest.get_meta(pos)
local node = minetest.get_node(pos)
local inv = meta:get_inventory()
minetest.swap_node(pos, {name = 'mycoins:home_computer', param2 = node.param2})
meta:set_string("formspec", default.home_wifi_formspec(pos))
meta:set_string("infotext", "Alienware Computer (owner "..
meta:get_string("owner")..")")
inv:set_size("main", 1*1)
timer:stop()
end
function default.home_boot(pos)
local timer = minetest.get_node_timer(pos)
local meta = minetest.get_meta(pos)
local node = minetest.get_node(pos)
local inv = meta:get_inventory()
meta:set_string("formspec", default.home_boot_formspec(pos))
meta:set_string("infotext", "Alienware Computer (owner "..
meta:get_string("owner")..")")
inv:set_size("main", 1*1)
timer:start(home_boot)
end
-- Alienware Computer
minetest.register_node("mycoins:home_computer",{
drawtype = "nodebox",
description = "Alienware Computer",
tiles = {"mycoins_home_computer_tp.png","mycoins_home_computer_bt.png","mycoins_home_computer_rt.png","mycoins_home_computer_lt.png","mycoins_home_computer_bk.png","mycoins_home_computer_ft_off.png"},
paramtype = "light",
paramtype2 = "facedir",
drop = "mycoins:home_computer",
groups = {cracky=2, oddly_breakable_by_hand=2},
node_box = {
type = "fixed",
fixed = {
{-0.500000,-0.500000,0.03125,0.500000,0.500000,0.40625},
{-0.40625,-0.40625,0.40625,0.40625,0.40625,0.50000},
{-0.500000,-0.500000,-0.500000,0.500000,-0.375,-0.03125},
},
},
sounds = default.node_sound_wood_defaults(),
after_place_node = function(pos, placer)
local meta = minetest.get_meta(pos)
local timer = minetest.get_node_timer(pos)
meta:set_string("owner", placer:get_player_name() or "")
default.home_off(pos)
end,
on_construct = function(pos)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
meta:set_string("formspec", default.home_boot_formspec(pos))
meta:set_string("infotext", "Alienware Computer (owner "..
meta:get_string("owner")..")")
inv:set_size("main", 1*1)
inv:set_size("exp1", 1*1)
inv:set_size("exp2", 1*1)
inv:set_size("exp3", 1*1)
end,
on_timer = function(pos)
local isp = minetest.find_node_near(pos, 3, {"mycoins:isp_on"})
if isp == nil then
local wifi = minetest.find_node_near(pos, 30, {"mycoins:router_on"})
if wifi == nil then
default.home_wifi(pos)
else
local meta = minetest.get_meta(pos)
if ( minetest.get_player_by_name(meta:get_string("owner")) == nil ) then
default.home_off(pos)
else
local timer = minetest.get_node_timer(pos)
local meta = minetest.get_meta(pos)
local node = minetest.get_node(pos)
local inv = meta:get_inventory()
minetest.swap_node(pos, {name = 'mycoins:home_computer_active', param2 = node.param2})
meta:set_string("formspec", default.home_active_formspec(pos))
meta:set_string("infotext", "Alienware Computer (owner "..
meta:get_string("owner")..")")
inv:set_size("main", 1*1)
if ( upgrade_timer(pos) < home_miner ) then
timer:start(upgrade_timer(pos))
else
default.home_off(pos)
end
end
end
else
local meta = minetest.get_meta(pos)
if ( minetest.get_player_by_name(meta:get_string("owner")) == nil ) then
default.home_off(pos)
else
local timer = minetest.get_node_timer(pos)
local meta = minetest.get_meta(pos)
local node = minetest.get_node(pos)
local inv = meta:get_inventory()
minetest.swap_node(pos, {name = 'mycoins:home_computer_active', param2 = node.param2})
meta:set_string("formspec", default.home_active_formspec(pos))
meta:set_string("infotext", "Alienware Computer (owner "..
meta:get_string("owner")..")")
inv:set_size("main", 1*1)
if ( upgrade_timer(pos) < home_miner ) then
timer:start(upgrade_timer(pos))
else
default.home_off(pos)
end
end
end
end,
on_punch = function(pos)
local isp = minetest.find_node_near(pos, 3, {"mycoins:isp_on"})
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
if upgrade_timer(pos) < home_miner then
if isp == nil then
local wifi = minetest.find_node_near(pos, 30, {"mycoins:router_on"})
if wifi == nil then
default.home_wifi(pos)
else
if ( upgrade_timer(pos) < home_miner ) then
default.home_boot(pos)
else
default.home_off(pos)
end
end
else
default.home_boot(pos)
end
else
default.home_off(pos)
end
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 computer_owner(meta, player) then
return 0
end
return count
end,
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
local meta = minetest.env:get_meta(pos)
if not computer_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 computer_owner(meta, player) then
return 0
end
return stack:get_count()
end,
can_dig = function(pos,player)
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory()
return inv:is_empty("main") and inv:is_empty("exp1") and inv:is_empty("exp2") and inv:is_empty("exp3") and computer_owner(meta, player)
end,
})
minetest.register_node("mycoins:home_computer_active",{
drawtype = "nodebox",
description = "Alienware Computer",
tiles = {"mycoins_home_computer_tp.png","mycoins_home_computer_bt.png","mycoins_home_computer_rt.png","mycoins_home_computer_lt.png","mycoins_home_computer_bk.png","mycoins_home_computer_ft.png"},
paramtype = "light",
paramtype2 = "facedir",
light_source = 8,
drop = "mycoins:home_computer",
groups = {cracky=2, not_in_creative_inventory=1, oddly_breakable_by_hand=2},
node_box = {
type = "fixed",
fixed = {
{-0.500000,-0.500000,0.03125,0.500000,0.500000,0.40625},
{-0.40625,-0.40625,0.40625,0.40625,0.40625,0.50000},
{-0.500000,-0.500000,-0.500000,0.500000,-0.375,-0.03125},
},
},
sounds = default.node_sound_wood_defaults(),
on_timer = function(pos)
local timer = minetest.get_node_timer(pos)
local meta = minetest.get_meta(pos)
local node = minetest.get_node(pos)
local inv = meta:get_inventory()
local isp = minetest.find_node_near(pos, 3, {"mycoins:isp_on"})
if isp == nil then
local wifi = minetest.find_node_near(pos, 30, {"mycoins:router_on"})
if wifi == nil then
default.home_off(pos)
else
local meta = minetest.get_meta(pos)
if ( minetest.get_player_by_name(meta:get_string("owner")) == nil ) then
default.home_off(pos)
else
if ( upgrade_timer(pos) < home_miner ) then
timer:start(upgrade_timer(pos))
minetest.get_meta(pos):get_inventory():add_item("main", "mycoins:bitcent")
else
default.home_off(pos)
end
end
end
else
local meta = minetest.get_meta(pos)
if ( minetest.get_player_by_name(meta:get_string("owner")) == nil ) then
default.home_off(pos)
else
if ( upgrade_timer(pos) < home_miner ) then
minetest.get_meta(pos):get_inventory():add_item("main", "mycoins:bitcent")
timer:start(upgrade_timer(pos))
else
default.home_off(pos)
end
end
end
end,
on_punch = function(pos)
default.home_off(pos)
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 computer_owner(meta, player) then
return 0
end
return count
end,
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
local meta = minetest.env:get_meta(pos)
if not computer_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 computer_owner(meta, player) then
return 0
end
return stack:get_count()
end,
can_dig = function(pos,player)
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory()
return inv:is_empty("main") and inv:is_empty("exp1") and inv:is_empty("exp2") and inv:is_empty("exp3") and computer_owner(meta, player)
end,
})

View File

@ -9,11 +9,14 @@
--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
dofile(minetest.get_modpath("mycoins").."/nodes.lua")
dofile(minetest.get_modpath("mycoins").."/isp.lua")
dofile(minetest.get_modpath("mycoins").."/router.lua")
dofile(minetest.get_modpath("mycoins").."/home_pc.lua")
dofile(minetest.get_modpath("mycoins").."/game_pc.lua")
dofile(minetest.get_modpath("mycoins").."/alien_pc.lua")
dofile(minetest.get_modpath("mycoins").."/items.lua")
dofile(minetest.get_modpath("mycoins").."/crafts.lua")
dofile(minetest.get_modpath("mycoins").."/modrecipes.lua")
dofile(minetest.get_modpath("mycoins").."/router.lua")
dofile(minetest.get_modpath("mycoins").."/isp.lua")
-- dofile(minetest.get_modpath("mycoins").."/shop.lua")
print("mycoins mod loaded!")

View File

@ -1,3 +1,7 @@
router_cycle = 10
router_radius = 30
function default.router_off_formspec(pos)
local spos = pos.x .. "," .. pos.y .. "," ..pos.z
local formspec = "size[10,10]"..
@ -5,7 +9,7 @@ function default.router_off_formspec(pos)
return formspec
end
function default.router_formspec(pos)
function default.router_on_formspec(pos)
local spos = pos.x .. "," .. pos.y .. "," ..pos.z
local formspec = "size[10,10]"..
"label[1,0;Powered On...]"..
@ -15,9 +19,12 @@ function default.router_formspec(pos)
"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.5;Available Networks:]"..
"label[6,0.8;Active: "..#active_isp.."]"..
"label[6,1;Inactive: "..#inactive_isp.."]"..
"label[6,1;Inactive: "..#inactive_isp.."]"..
"label[3,2.5;Test:]"..
"label[3,2.8;Active: "..#active_isp.."]"..
"label[3,3;Inactive: "..#inactive_isp.."]"..
"button_exit[4,7;2,1;exit;Exit]"
return formspec
end
@ -30,6 +37,12 @@ function default.router_error_formspec(pos)
end
function default.find_network(pos)
-- need to do some owner checking and report isp networks accordingly using the router owner function or similar.....
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"})
@ -45,7 +58,7 @@ local function router_owner(meta, player)
return true
end
--WIFI Router
-- WIFI Router
minetest.register_node("mycoins:router_on", {
description = "WIFI Router",
tiles = {"mycoins_router_t.png","mycoins_router_bt.png","mycoins_router_l.png","mycoins_router_r.png","mycoins_router_b.png",
@ -77,7 +90,7 @@ minetest.register_node("mycoins:router_on", {
end,
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, router_radius, {"mycoins:isp_on"})
if isp == nil then
local timer = minetest.get_node_timer(pos)
local node = minetest.get_node(pos)
@ -85,28 +98,29 @@ minetest.register_node("mycoins:router_on", {
minetest.swap_node(pos, {name = 'mycoins:router_error', param2 = node.param2})
meta:set_string("formspec", default.router_error_formspec(pos))
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
timer:start(10)
timer:start(router_cycle)
else
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:router_on', param2 = node.param2})
meta:set_string("formspec", default.router_formspec(pos))
meta:set_string("formspec", default.router_on_formspec(pos))
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
timer:start(10)
timer:start(router_cycle)
end
end,
after_place_node = function(pos, placer)
local meta = minetest.get_meta(pos)
local timer = minetest.get_node_timer(pos)
meta:set_string("formspec", default.router_formspec(pos))
meta:set_string("formspec", default.router_on_formspec(pos))
meta:set_string("owner", placer:get_player_name() or "")
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
timer:start(10)
timer:start(router_cycle)
end,
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, router_radius, {"mycoins:isp_on"})
if isp == nil then
local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos)
@ -117,7 +131,7 @@ minetest.register_node("mycoins:router_on", {
local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos)
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_on_formspec(pos))
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
end
end,
@ -148,7 +162,7 @@ minetest.register_node("mycoins:router", {
},
},
on_punch = function(pos)
local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"})
local isp = minetest.find_node_near(pos, router_radius, {"mycoins:isp_on"})
default.find_network(pos)
if isp == nil then
local timer = minetest.get_node_timer(pos)
@ -157,15 +171,15 @@ minetest.register_node("mycoins:router", {
minetest.swap_node(pos, {name = 'mycoins:router_error', param2 = node.param2})
meta:set_string("formspec", default.router_error_formspec(pos))
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
timer:start(10)
timer:start(router_cycle)
else
local timer = minetest.get_node_timer(pos)
local meta = minetest.get_meta(pos)
local node = minetest.get_node(pos)
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_on_formspec(pos))
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
timer:start(10)
timer:start(router_cycle)
end
end,
on_timer = function(pos)
@ -182,14 +196,14 @@ minetest.register_node("mycoins:router", {
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_formspec(pos))
meta:set_string("formspec", default.router_on_formspec(pos))
meta:set_string("owner", placer:get_player_name() or "")
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
timer:start(10)
timer:start(router_cycle)
end,
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, router_radius, {"mycoins:isp_on"})
if isp == nil then
local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos)
@ -200,7 +214,7 @@ minetest.register_node("mycoins:router", {
local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos)
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_on_formspec(pos))
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
end
end,
@ -241,7 +255,7 @@ minetest.register_node("mycoins:router_error", {
end,
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, router_radius, {"mycoins:isp_on"})
if isp == nil then
local timer = minetest.get_node_timer(pos)
local node = minetest.get_node(pos)
@ -249,20 +263,20 @@ minetest.register_node("mycoins:router_error", {
minetest.swap_node(pos, {name = 'mycoins:router_error', param2 = node.param2})
meta:set_string("formspec", default.router_error_formspec(pos))
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
timer:start(10)
timer:start(router_cycle)
else
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:router_on', param2 = node.param2})
meta:set_string("formspec", default.router_formspec(pos))
meta:set_string("formspec", default.router_on_formspec(pos))
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
timer:start(10)
timer:start(router_cycle)
end
end,
on_construct = function(pos)
local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"})
local isp = minetest.find_node_near(pos, router_radius, {"mycoins:isp_on"})
if isp == nil then
local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos)
@ -273,7 +287,7 @@ minetest.register_node("mycoins:router_error", {
local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos)
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_on_formspec(pos))
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
end
end,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 494 B

After

Width:  |  Height:  |  Size: 238 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 873 B

After

Width:  |  Height:  |  Size: 419 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 543 B