Compare commits

...

5 Commits

Author SHA1 Message Date
morpheus f24360f769 fixed the rest of the descriptions for the home and game pc. 2015-05-09 23:08:04 -04:00
morpheus 95bfddfadb fixed some timers and descriptions 2015-05-09 22:43:51 -04:00
DonBatman a0b27fc43b code cleanup 2015-05-06 10:19:15 -07:00
DonBatman 0e290cc0e5 ISP and router now owned 2015-05-02 08:59:15 -07:00
DonBatman f0ea30d3d6 Added isp coin slot 2015-05-01 14:48:23 -07:00
18 changed files with 1578 additions and 824 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.
@ -28,14 +36,21 @@ My first mod for minetest, I plan to expand this mod a bit more as time permits.
12/01/13 changed recipes for all pomputer components
12/02/13 created all new images for all computers
26th March 2014, Removed Homedecor, Mesecons and Moreores dependencies (TenPlus1), reduced abm's to only 2
April 2015, Updates by DonBatman and Nathan.S Removed all ABMs, updated the mod to work with current versions
of Minetest, improved code and added more visual feedback.
April 2015, Updates by DonBatman and Nathan.S Removed all ABMs, updated the mod to work with current versions
of Minetest, improved code and added more visual feedback.
04/25/15 added on punch functionality to all computers and computers now turn off when player is logged out,
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
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.
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
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

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
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.
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

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(250,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(350,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", "Game 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", "Game 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", "Game Computer (owner "..
meta:get_string("owner")..")")
inv:set_size("main", 1*1)
timer:start(game_boot)
end
-- Game Computer
minetest.register_node("mycoins:game_computer",{
drawtype = "nodebox",
description = "Game 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", "Game 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", "Game 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", "Game 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 = "Game 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(450,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", "Home 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", "Home 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", "Home Computer (owner "..
meta:get_string("owner")..")")
inv:set_size("main", 1*1)
timer:start(home_boot)
end
-- Home Computer
minetest.register_node("mycoins:home_computer",{
drawtype = "nodebox",
description = "Home 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", "Home 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", "Home 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", "Home 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 = "Home 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!")

246
isp.lua
View File

@ -1,5 +1,33 @@
-- internet usage timer config
payment_bitcoin = 24000
payment_bitqu = 6000
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)
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 formspec = "size[10,10]"..
"label[2,2;Powered Off...]"..
@ -9,25 +37,11 @@ function default.isp_off_formspec(pos)
return formspec
end
function default.isp_on_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_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"})
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"})
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
local function isp_owner(meta, player)
if player:get_player_name() ~= meta:get_string("owner") then
return false
end
return true
end
-- ISP
@ -53,37 +67,64 @@ minetest.register_node("mycoins:isp", {
node_box = {
type = "fixed",
fixed = {
{-0.153531, -0.5, -0.405738, 0.153531, -0.315951, 0.405738}, -- NodeBox1
{-0.122825, -0.315951, -0.374616, 0.122825, 0.371166, 0.375}, -- NodeBox2
},
{-0.153531, -0.5, -0.405738, 0.153531, -0.315951, 0.405738},
{-0.122825, -0.315951, -0.374616, 0.122825, 0.371166, 0.375},
},
},
on_punch = function(pos)
local timer = minetest.get_node_timer(pos)
local node = minetest.get_node(pos)
local meta = minetest.get_meta(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")
local inv = meta:get_inventory()
meta:set_string("infotext", "Internet Service Provider (owner "..meta:get_string("owner")..")")
inv:set_size("main", 1*1)
timer:stop()
end,
on_construct = function(pos)
local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos)
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:start(2)
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.isp_on_formspec(pos))
meta:set_string("infotext", "Internet Service Provider")
local timer = minetest.get_node_timer(pos)
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)
timer:start(60)
timer:stop()
end,
on_construct = function(pos)
local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos)
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)
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,
})
@ -108,29 +149,130 @@ minetest.register_node("mycoins:isp_on", {
node_box = {
type = "fixed",
fixed = {
{-0.153531, -0.5, -0.405738, 0.153531, -0.315951, 0.405738}, -- NodeBox1
{-0.122825, -0.315951, -0.374616, 0.122825, 0.371166, 0.375}, -- NodeBox2
},
{-0.153531, -0.5, -0.405738, 0.153531, -0.315951, 0.405738},
{-0.122825, -0.315951, -0.374616, 0.122825, 0.371166, 0.375},
},
},
on_punch = 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")
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(5)
end,
timer:stop()
on_timer = function(pos,from_list)
local timer = minetest.get_node_timer(pos)
end,
on_timer = function(pos)
local meta = minetest.get_meta(pos)
minetest.get_meta(pos):get_inventory():add_item("main", "mycoins:bitcent")
timer:start(5)
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 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()
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
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,
})

185
isp.lua~
View File

@ -1,185 +0,0 @@
function default.isp_off_formspec(pos)
local spos = pos.x .. "," .. pos.y .. "," ..pos.z
local formspec = "size[10,10]"..
"label[2,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_formspec(pos)
local spos = pos.x .. "," .. pos.y .. "," ..pos.z
local formspec = "size[10,10]"..
"label[2,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
-- ISP
-- Alienware Computer
minetest.register_node("mycoins:isp",{
drawtype = "nodebox",
description = "Internet Service Provider",
tiles = {
"mycoins_isp_tp.png",
"mycoins_isp_bt.png",
"mycoins_isp_rt.png",
"mycoins_isp_lt.png",
"mycoins_isp_bk.png",
"mycoins_isp_ft_off.png"
},
paramtype = "light",
paramtype2 = "facedir",
drop = "mycoins:isp",
groups = {cracky=2, oddly_breakable_by_hand=2},
node_box = {
type = "fixed",
fixed = {
{-0.153531, -0.5, -0.405738, 0.153531, -0.315951, 0.405738},
{-0.122825, -0.315951, -0.374616, 0.122825, 0.371166, 0.375},
},
},
sounds = default.node_sound_wood_defaults(),
after_place_node = function(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()
inv:set_size("main", 1*1)
timer:start(60)
end,
on_construct = function(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()
inv:set_size("main", 1*1)
end,
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)
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,
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
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
end
return count
end,
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
return 0
end,
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
if not computer_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
end
return stack:get_count()
end,
})
minetest.register_node("mycoins:isp_on",{
drawtype = "nodebox",
description = "Internet Service Provider",
tiles = {
"mycoins_isp_tp.png",
"mycoins_isp_bt.png",
"mycoins_isp_rt.png",
"mycoins_isp_lt.png",
"mycoins_isp_bk.png",
"mycoins_isp_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.153531, -0.5, -0.405738, 0.153531, -0.315951, 0.405738},
{-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)
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,
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
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
end
return count
end,
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
return 0
end,
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
if not computer_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
end
return stack:get_count()
end,
})

View File

@ -1,312 +0,0 @@
-- mycoins
minetest.register_craftitem( "mycoins:bitcent", {
description = "Bitcent",
stack_max = 30000,
inventory_image = "mycoins_bitce.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_craftitem( "mycoins:bitni", {
description = "Bitnickel",
stack_max = 6000,
inventory_image = "mycoins_bitni.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_craftitem( "mycoins:bitdi", {
description = "Bitdime",
stack_max = 3000,
inventory_image = "mycoins_bitdi.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_craftitem( "mycoins:bitqu", {
description = "Bitquarter",
stack_max = 1200,
inventory_image = "mycoins_bitqu.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_craftitem( "mycoins:bitcoin", {
description = "Bitcoin",
stack_max = 999,
inventory_image = "mycoins_bitcoin.png",
on_place_on_ground = minetest.craftitem_place_item,
})
-- Home Computer
minetest.register_craftitem( "mycoins:home_computer_video", {
description = "Home Computer Video Card",
stack_max = 1,
inventory_image = "mycoins_home_computer_video.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_node("mycoins:home_computer_motherboard", {
description = "Home Computer Motherboard",
paramtype = "light",
paramtype2 = "facedir",
drop = "mycoins:home_computer_motherboard",
groups = {cracky=2, oddly_breakable_by_hand=2},
stack_max = 1,
inventory_image = "mycoins_home_computer_motherboard.png",
tiles = {
"mycoins_home_computer_motherboard.png",
"grn.png",
"grn.png",
"grn.png",
"grn.png",
"grn.png"
},
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{-0.4375, -0.5, -0.4375, 0.4375, -0.4375, 0.4375}, -- NodeBox1
}
}
})
minetest.register_craftitem( "mycoins:home_computer_powersupply", {
description = "Home Computer Power Supply",
stack_max = 1,
inventory_image = "mycoins_home_computer_powersupply.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_craftitem( "mycoins:home_computer_cpu", {
description = "Home Computer CPU",
stack_max = 1,
inventory_image = "mycoins_home_computer_cpu.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_craftitem( "mycoins:home_computer_soundcard", {
description = "Home Computer Soundcard",
stack_max = 1,
inventory_image = "mycoins_home_computer_soundcard.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_craftitem( "mycoins:home_computer_fan", {
description = "Home Computer Fan",
stack_max = 1,
inventory_image = "mycoins_home_computer_fan.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_craftitem( "mycoins:home_computer_harddrive", {
description = "Home Computer Hard Drive",
stack_max = 1,
inventory_image = "mycoins_home_computer_harddrive.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_craftitem( "mycoins:home_computer_cdrom", {
description = "Home Computer CD Rom Drive",
stack_max = 1,
inventory_image = "mycoins_home_computer_cdrom.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_craftitem( "mycoins:home_computer_ram", {
description = "Home Computer Memory",
stack_max = 1,
inventory_image = "mycoins_home_computer_ram.png",
on_place_on_ground = minetest.craftitem_place_item,
})
-- Game Computer
minetest.register_craftitem( "mycoins:game_computer_video", {
description = "Gaming Computer Video Card",
stack_max = 1,
inventory_image = "mycoins_game_computer_video.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_node("mycoins:game_computer_motherboard", {
description = "Gaming Computer Motherboard",
paramtype = "light",
paramtype2 = "facedir",
drop = "mycoins:game_computer_motherboard",
groups = {cracky=2, oddly_breakable_by_hand=2},
stack_max = 1,
inventory_image = "mycoins_game_computer_motherboard.png",
tiles = {
"mycoins_game_computer_motherboard.png",
"grn.png",
"grn.png",
"grn.png",
"grn.png",
"grn.png"
},
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5}, -- NodeBox1
}
}
})
minetest.register_craftitem( "mycoins:game_computer_powersupply", {
description = "Gaming Computer Power Supply",
stack_max = 1,
inventory_image = "mycoins_game_computer_powersupply.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_craftitem( "mycoins:game_computer_cpu", {
description = "Gaming Computer CPU",
stack_max = 1,
inventory_image = "mycoins_game_computer_cpu.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_craftitem( "mycoins:game_computer_soundcard", {
description = "Gaming Computer Soundcard",
stack_max = 1,
inventory_image = "mycoins_game_computer_soundcard.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_craftitem( "mycoins:game_computer_harddrive", {
description = "Gaming Computer Hard Drive",
stack_max = 1,
inventory_image = "mycoins_game_computer_harddrive.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_craftitem( "mycoins:game_computer_dvdrom", {
description = "Gaming Computer DVD Rom Drive",
stack_max = 1,
inventory_image = "mycoins_game_computer_dvdrom.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_craftitem( "mycoins:game_computer_ram", {
description = "Gaming Computer Memory",
stack_max = 1,
inventory_image = "mycoins_game_computer_ram.png",
on_place_on_ground = minetest.craftitem_place_item,
})
-- Alineware Computer
minetest.register_craftitem( "mycoins:alien_computer_video", {
description = "Alienware Video Card",
stack_max = 1,
inventory_image = "mycoins_alien_computer_video.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_node("mycoins:alien_computer_motherboard", {
description = "Alienware Motherboard",
paramtype = "light",
paramtype2 = "facedir",
drop = "mycoins:alien_computer_motherboard",
groups = {cracky=2, oddly_breakable_by_hand=2},
stack_max = 1,
inventory_image = "mycoins_alien_computer_motherboard.png",
tiles = {
"mycoins_alien_computer_motherboard.png",
"blk.png",
"blk.png",
"blk.png",
"blk.png",
"blk.png"
},
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5}, -- NodeBox1
}
}
})
minetest.register_craftitem( "mycoins:alien_computer_powersupply", {
description = "Alienware Power Supply",
stack_max = 1,
inventory_image = "mycoins_alien_computer_powersupply.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_craftitem( "mycoins:alien_computer_cpu", {
description = "Alienware CPU",
stack_max = 1,
inventory_image = "mycoins_alien_computer_cpu.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_craftitem( "mycoins:alien_computer_soundcard", {
description = "Alienware Soundcard",
stack_max = 1,
inventory_image = "mycoins_alien_computer_soundcard.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_craftitem( "mycoins:alien_computer_harddrive", {
description = "Alienware Solid State Drive",
stack_max = 1,
inventory_image = "mycoins_alien_computer_harddrive.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_craftitem( "mycoins:alien_computer_ram", {
description = "Alienware Memory",
stack_max = 1,
inventory_image = "mycoins_alien_computer_ram.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_craftitem( "mycoins:alien_computer_cooler", {
description = "Alienware Water Cooler",
stack_max = 1,
inventory_image = "mycoins_alien_computer_watercooler.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_craftitem( "mycoins:copper_ribbonwire", {
description = "Bare Copper Ribbon Wire",
stack_max = 1,
inventory_image = "mycoins_copper_ribbonwire.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_craftitem( "mycoins:ribbonwire", {
description = "Insulated Ribbon Wire",
stack_max = 1,
inventory_image = "mycoins_ribbonwire.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.override_item("default:stone",{
drop = {
min_items = 1,
max_items = 2,
items = {
{
items = {"default:cobble 1"},
rarity = 1,
},
{
items = {"mycoins:bitcent 1"},
rarity = 25,
},
}
}
})

114
nodes.lua
View File

@ -1,3 +1,10 @@
home_boot = 60
home_miner = 500
game_boot = 45
game_miner = 400
alien_boot = 30
alien_miner = 300
local function computer_owner(meta, player)
if player:get_player_name() ~= meta:get_string("owner") then
@ -16,8 +23,8 @@ function default.computer_formspec(pos)
"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[nodemeta:".. spos .. ";main;1,3;8,1;]"..
"list[current_player;main;1,6;8,4;]"
"list[nodemeta:".. spos .. ";main;1,3;1,1;]"..
"list[current_player;main;3,9.5;4,1;]"
return formspec
end
@ -25,14 +32,15 @@ function default.computer_off_formspec(pos)
local spos = pos.x .. "," .. pos.y .. "," ..pos.z
local formspec = "size[10,10]"..
"label[2,2;Powered Off...]" ..
"list[nodemeta:".. spos .. ";main;1,3;8,1;]"..
"list[current_player;main;1,6;8,4;]"
"list[nodemeta:".. spos .. ";main;1,3;1,1;]"..
"list[current_player;main;3,9.5;4,1;]"
return formspec
end
function default.active_computer_formspec(pos)
local spos = pos.x .. "," .. pos.y .. "," ..pos.z
local formspec = "size[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]" ..
@ -40,8 +48,8 @@ function default.active_computer_formspec(pos)
"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[nodemeta:".. spos .. ";main;1,3;8,1;]"..
"list[current_player;main;1,6;8,4;]"
"list[nodemeta:".. spos .. ";main;1,3;1,1;]"..
"list[current_player;main;3,9.5;4,1;]"
return formspec
end
@ -50,8 +58,8 @@ function default.computer_wifi_formspec(pos)
local formspec = "size[10,10]"..
"label[2,2;No Internet Connection.]" ..
"label[2,2.5;Contact Your Network Administrator For More Information.]" ..
"list[nodemeta:".. spos .. ";main;1,3;8,1;]"..
"list[current_player;main;1,6;8,4;]"
"list[nodemeta:".. spos .. ";main;1,3;1,1;]"..
"list[current_player;main;3,9.5;4,1;]"
return formspec
end
@ -79,7 +87,7 @@ minetest.register_node("mycoins:home_computer",{
meta:set_string("owner", placer:get_player_name() or "")
meta:set_string("infotext", "Home Computer (owner "..
meta:get_string("owner")..")")
timer:start(60)
timer:start(home_boot)
end,
on_timer = function(pos)
local isp = minetest.find_node_near(pos, 3, {"mycoins:isp_on"})
@ -119,7 +127,7 @@ minetest.register_node("mycoins:home_computer",{
meta:get_string("owner")..")")
local inv = meta:get_inventory()
inv:set_size("main", 4*2)
timer:start(500)
timer:start(home_miner)
end
end
else
@ -145,7 +153,7 @@ minetest.register_node("mycoins:home_computer",{
meta:get_string("owner")..")")
local inv = meta:get_inventory()
inv:set_size("main", 4*2)
timer:start(500)
timer:start(home_miner)
end
end
@ -174,7 +182,7 @@ minetest.register_node("mycoins:home_computer",{
meta:get_string("owner")..")")
local inv = meta:get_inventory()
inv:set_size("main", 4*2)
timer:start(60)
timer:start(home_boot)
end
else
local timer = minetest.get_node_timer(pos)
@ -185,7 +193,7 @@ minetest.register_node("mycoins:home_computer",{
meta:get_string("owner")..")")
local inv = meta:get_inventory()
inv:set_size("main", 4*2)
timer:start(60)
timer:start(home_boot)
end
end,
on_construct = function(pos)
@ -203,10 +211,6 @@ minetest.register_node("mycoins:home_computer",{
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
minetest.log("action", player:get_player_name()..
" tried to access a home computer belonging to "..
meta:get_string("owner").." at "..
minetest.pos_to_string(pos))
return 0
end
return count
@ -217,10 +221,6 @@ minetest.register_node("mycoins:home_computer",{
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
if not computer_owner(meta, player) then
minetest.log("action", player:get_player_name()..
" tried to access a home computer belonging to "..
meta:get_string("owner").." at "..
minetest.pos_to_string(pos))
return 0
end
return stack:get_count()
@ -276,7 +276,7 @@ minetest.register_node("mycoins:home_computer_active",{
else
local timer = minetest.get_node_timer(pos)
minetest.get_meta(pos):get_inventory():add_item("main", "mycoins:bitcent")
timer:start(500)
timer:start(home_miner)
end
end
else
@ -295,7 +295,7 @@ minetest.register_node("mycoins:home_computer_active",{
else
local timer = minetest.get_node_timer(pos)
minetest.get_meta(pos):get_inventory():add_item("main", "mycoins:bitcent")
timer:start(500)
timer:start(home_miner)
end
end
end,
@ -319,10 +319,6 @@ minetest.register_node("mycoins:home_computer_active",{
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
minetest.log("action", player:get_player_name()..
" tried to access a home computer belonging to "..
meta:get_string("owner").." at "..
minetest.pos_to_string(pos))
return 0
end
return count
@ -333,10 +329,6 @@ minetest.register_node("mycoins:home_computer_active",{
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
if not computer_owner(meta, player) then
minetest.log("action", player:get_player_name()..
" tried to access a home computer belonging to "..
meta:get_string("owner").." at "..
minetest.pos_to_string(pos))
return 0
end
return stack:get_count()
@ -367,7 +359,7 @@ minetest.register_node("mycoins:game_computer",{
meta:set_string("owner", placer:get_player_name() or "")
meta:set_string("infotext", "Gaming Computer (owner "..
meta:get_string("owner")..")")
timer:start(45)
timer:start(game_boot)
end,
on_construct = function(pos)
local meta = minetest.get_meta(pos)
@ -420,7 +412,7 @@ minetest.register_node("mycoins:game_computer",{
meta:get_string("owner")..")")
local inv = meta:get_inventory()
inv:set_size("main", 4*2)
timer:start(400)
timer:start(game_miner)
end
end
else
@ -446,7 +438,7 @@ minetest.register_node("mycoins:game_computer",{
meta:get_string("owner")..")")
local inv = meta:get_inventory()
inv:set_size("main", 4*2)
timer:start(400)
timer:start(game_miner)
end
end
end,
@ -474,7 +466,7 @@ minetest.register_node("mycoins:game_computer",{
meta:get_string("owner")..")")
local inv = meta:get_inventory()
inv:set_size("main", 4*2)
timer:start(45)
timer:start(game_boot)
end
else
local timer = minetest.get_node_timer(pos)
@ -485,16 +477,12 @@ minetest.register_node("mycoins:game_computer",{
meta:get_string("owner")..")")
local inv = meta:get_inventory()
inv:set_size("main", 4*2)
timer:start(45)
timer:start(game_boot)
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
minetest.log("action", player:get_player_name()..
" tried to access a gaming computer belonging to "..
meta:get_string("owner").." at "..
minetest.pos_to_string(pos))
return 0
end
return count
@ -505,10 +493,6 @@ minetest.register_node("mycoins:game_computer",{
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
if not computer_owner(meta, player) then
minetest.log("action", player:get_player_name()..
" tried to access a gaming computer belonging to "..
meta:get_string("owner").." at "..
minetest.pos_to_string(pos))
return 0
end
return stack:get_count()
@ -569,7 +553,7 @@ minetest.register_node("mycoins:game_computer_active",{
else
local timer = minetest.get_node_timer(pos)
minetest.get_meta(pos):get_inventory():add_item("main", "mycoins:bitcent")
timer:start(400)
timer:start(game_miner)
end
end
else
@ -588,7 +572,7 @@ minetest.register_node("mycoins:game_computer_active",{
else
local timer = minetest.get_node_timer(pos)
minetest.get_meta(pos):get_inventory():add_item("main", "mycoins:bitcent")
timer:start(400)
timer:start(game_miner)
end
end
end,
@ -607,10 +591,6 @@ minetest.register_node("mycoins:game_computer_active",{
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
minetest.log("action", player:get_player_name()..
" tried to access a gaming computer belonging to "..
meta:get_string("owner").." at "..
minetest.pos_to_string(pos))
return 0
end
return count
@ -621,10 +601,6 @@ minetest.register_node("mycoins:game_computer_active",{
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
if not computer_owner(meta, player) then
minetest.log("action", player:get_player_name()..
" tried to access a gaming computer belonging to "..
meta:get_string("owner").." at "..
minetest.pos_to_string(pos))
return 0
end
return stack:get_count()
@ -656,7 +632,7 @@ minetest.register_node("mycoins:alien_computer",{
meta:set_string("owner", placer:get_player_name() or "")
meta:set_string("infotext", "Alienware Computer (owner "..
meta:get_string("owner")..")")
timer:start(30)
timer:start(alien_boot)
end,
on_construct = function(pos)
local meta = minetest.get_meta(pos)
@ -709,7 +685,7 @@ minetest.register_node("mycoins:alien_computer",{
meta:get_string("owner")..")")
local inv = meta:get_inventory()
inv:set_size("main", 4*2)
timer:start(300)
timer:start(alien_miner)
end
end
else
@ -735,7 +711,7 @@ minetest.register_node("mycoins:alien_computer",{
meta:get_string("owner")..")")
local inv = meta:get_inventory()
inv:set_size("main", 4*2)
timer:start(300)
timer:start(alien_miner)
end
end
end,
@ -763,7 +739,7 @@ minetest.register_node("mycoins:alien_computer",{
meta:get_string("owner")..")")
local inv = meta:get_inventory()
inv:set_size("main", 4*2)
timer:start(30)
timer:start(alien_boot)
end
else
local timer = minetest.get_node_timer(pos)
@ -774,16 +750,12 @@ minetest.register_node("mycoins:alien_computer",{
meta:get_string("owner")..")")
local inv = meta:get_inventory()
inv:set_size("main", 4*2)
timer:start(30)
timer:start(alien_boot)
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
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
end
return count
@ -794,10 +766,6 @@ minetest.register_node("mycoins:alien_computer",{
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
if not computer_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
end
return stack:get_count()
@ -858,7 +826,7 @@ minetest.register_node("mycoins:alien_computer_active",{
else
local timer = minetest.get_node_timer(pos)
minetest.get_meta(pos):get_inventory():add_item("main", "mycoins:bitcent")
timer:start(300)
timer:start(alien_miner)
end
end
else
@ -877,7 +845,7 @@ minetest.register_node("mycoins:alien_computer_active",{
else
local timer = minetest.get_node_timer(pos)
minetest.get_meta(pos):get_inventory():add_item("main", "mycoins:bitcent")
timer:start(300)
timer:start(alien_miner)
end
end
end,
@ -896,10 +864,6 @@ minetest.register_node("mycoins:alien_computer_active",{
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
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
end
return count
@ -910,10 +874,6 @@ minetest.register_node("mycoins:alien_computer_active",{
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
if not computer_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
end
return stack:get_count()

View File

@ -1,3 +1,10 @@
home_boot = 60
home_miner = 500
game_boot = 45
game_miner = 400
alien_boot = 30
alien_miner = 300
local function computer_owner(meta, player)
if player:get_player_name() ~= meta:get_string("owner") then
@ -16,8 +23,8 @@ function default.computer_formspec(pos)
"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[nodemeta:".. spos .. ";main;1,3;8,1;]"..
"list[current_player;main;1,6;8,4;]"
"list[nodemeta:".. spos .. ";main;1,3;1,1;]"..
"list[current_player;main;3,9.5;4,1;]"
return formspec
end
@ -25,14 +32,15 @@ function default.computer_off_formspec(pos)
local spos = pos.x .. "," .. pos.y .. "," ..pos.z
local formspec = "size[10,10]"..
"label[2,2;Powered Off...]" ..
"list[nodemeta:".. spos .. ";main;1,3;8,1;]"..
"list[current_player;main;1,6;8,4;]"
"list[nodemeta:".. spos .. ";main;1,3;1,1;]"..
"list[current_player;main;3,9.5;4,1;]"
return formspec
end
function default.active_computer_formspec(pos)
local spos = pos.x .. "," .. pos.y .. "," ..pos.z
local formspec = "size[10,10]"..
"background[1,2.5;8,7.8;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]" ..
@ -40,8 +48,8 @@ function default.active_computer_formspec(pos)
"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[nodemeta:".. spos .. ";main;1,3;8,1;]"..
"list[current_player;main;1,6;8,4;]"
"list[nodemeta:".. spos .. ";main;1,3;1,1;]"..
"list[current_player;main;3,9.5;4,1;]"
return formspec
end
@ -50,8 +58,8 @@ function default.computer_wifi_formspec(pos)
local formspec = "size[10,10]"..
"label[2,2;No Internet Connection.]" ..
"label[2,2.5;Contact Your Network Administrator For More Information.]" ..
"list[nodemeta:".. spos .. ";main;1,3;8,1;]"..
"list[current_player;main;1,6;8,4;]"
"list[nodemeta:".. spos .. ";main;1,3;1,1;]"..
"list[current_player;main;3,9.5;4,1;]"
return formspec
end
@ -79,7 +87,7 @@ minetest.register_node("mycoins:home_computer",{
meta:set_string("owner", placer:get_player_name() or "")
meta:set_string("infotext", "Home Computer (owner "..
meta:get_string("owner")..")")
timer:start(60)
timer:start(home_boot)
end,
on_timer = function(pos)
local isp = minetest.find_node_near(pos, 3, {"mycoins:isp_on"})
@ -119,7 +127,7 @@ minetest.register_node("mycoins:home_computer",{
meta:get_string("owner")..")")
local inv = meta:get_inventory()
inv:set_size("main", 4*2)
timer:start(500)
timer:start(home_miner)
end
end
else
@ -145,7 +153,7 @@ minetest.register_node("mycoins:home_computer",{
meta:get_string("owner")..")")
local inv = meta:get_inventory()
inv:set_size("main", 4*2)
timer:start(500)
timer:start(home_miner)
end
end
@ -174,7 +182,7 @@ minetest.register_node("mycoins:home_computer",{
meta:get_string("owner")..")")
local inv = meta:get_inventory()
inv:set_size("main", 4*2)
timer:start(60)
timer:start(home_boot)
end
else
local timer = minetest.get_node_timer(pos)
@ -185,7 +193,7 @@ minetest.register_node("mycoins:home_computer",{
meta:get_string("owner")..")")
local inv = meta:get_inventory()
inv:set_size("main", 4*2)
timer:start(60)
timer:start(home_boot)
end
end,
on_construct = function(pos)
@ -203,10 +211,6 @@ minetest.register_node("mycoins:home_computer",{
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
minetest.log("action", player:get_player_name()..
" tried to access a home computer belonging to "..
meta:get_string("owner").." at "..
minetest.pos_to_string(pos))
return 0
end
return count
@ -217,10 +221,6 @@ minetest.register_node("mycoins:home_computer",{
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
if not computer_owner(meta, player) then
minetest.log("action", player:get_player_name()..
" tried to access a home computer belonging to "..
meta:get_string("owner").." at "..
minetest.pos_to_string(pos))
return 0
end
return stack:get_count()
@ -276,7 +276,7 @@ minetest.register_node("mycoins:home_computer_active",{
else
local timer = minetest.get_node_timer(pos)
minetest.get_meta(pos):get_inventory():add_item("main", "mycoins:bitcent")
timer:start(500)
timer:start(home_miner)
end
end
else
@ -295,7 +295,7 @@ minetest.register_node("mycoins:home_computer_active",{
else
local timer = minetest.get_node_timer(pos)
minetest.get_meta(pos):get_inventory():add_item("main", "mycoins:bitcent")
timer:start(500)
timer:start(home_miner)
end
end
end,
@ -319,10 +319,6 @@ minetest.register_node("mycoins:home_computer_active",{
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
minetest.log("action", player:get_player_name()..
" tried to access a home computer belonging to "..
meta:get_string("owner").." at "..
minetest.pos_to_string(pos))
return 0
end
return count
@ -333,10 +329,6 @@ minetest.register_node("mycoins:home_computer_active",{
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
if not computer_owner(meta, player) then
minetest.log("action", player:get_player_name()..
" tried to access a home computer belonging to "..
meta:get_string("owner").." at "..
minetest.pos_to_string(pos))
return 0
end
return stack:get_count()
@ -367,7 +359,7 @@ minetest.register_node("mycoins:game_computer",{
meta:set_string("owner", placer:get_player_name() or "")
meta:set_string("infotext", "Gaming Computer (owner "..
meta:get_string("owner")..")")
timer:start(45)
timer:start(game_boot)
end,
on_construct = function(pos)
local meta = minetest.get_meta(pos)
@ -420,7 +412,7 @@ minetest.register_node("mycoins:game_computer",{
meta:get_string("owner")..")")
local inv = meta:get_inventory()
inv:set_size("main", 4*2)
timer:start(400)
timer:start(game_miner)
end
end
else
@ -446,7 +438,7 @@ minetest.register_node("mycoins:game_computer",{
meta:get_string("owner")..")")
local inv = meta:get_inventory()
inv:set_size("main", 4*2)
timer:start(400)
timer:start(game_miner)
end
end
end,
@ -474,7 +466,7 @@ minetest.register_node("mycoins:game_computer",{
meta:get_string("owner")..")")
local inv = meta:get_inventory()
inv:set_size("main", 4*2)
timer:start(45)
timer:start(game_boot)
end
else
local timer = minetest.get_node_timer(pos)
@ -485,16 +477,12 @@ minetest.register_node("mycoins:game_computer",{
meta:get_string("owner")..")")
local inv = meta:get_inventory()
inv:set_size("main", 4*2)
timer:start(45)
timer:start(game_boot)
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
minetest.log("action", player:get_player_name()..
" tried to access a gaming computer belonging to "..
meta:get_string("owner").." at "..
minetest.pos_to_string(pos))
return 0
end
return count
@ -505,10 +493,6 @@ minetest.register_node("mycoins:game_computer",{
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
if not computer_owner(meta, player) then
minetest.log("action", player:get_player_name()..
" tried to access a gaming computer belonging to "..
meta:get_string("owner").." at "..
minetest.pos_to_string(pos))
return 0
end
return stack:get_count()
@ -569,7 +553,7 @@ minetest.register_node("mycoins:game_computer_active",{
else
local timer = minetest.get_node_timer(pos)
minetest.get_meta(pos):get_inventory():add_item("main", "mycoins:bitcent")
timer:start(400)
timer:start(game_miner)
end
end
else
@ -588,7 +572,7 @@ minetest.register_node("mycoins:game_computer_active",{
else
local timer = minetest.get_node_timer(pos)
minetest.get_meta(pos):get_inventory():add_item("main", "mycoins:bitcent")
timer:start(400)
timer:start(game_miner)
end
end
end,
@ -607,10 +591,6 @@ minetest.register_node("mycoins:game_computer_active",{
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
minetest.log("action", player:get_player_name()..
" tried to access a gaming computer belonging to "..
meta:get_string("owner").." at "..
minetest.pos_to_string(pos))
return 0
end
return count
@ -621,17 +601,13 @@ minetest.register_node("mycoins:game_computer_active",{
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
if not computer_owner(meta, player) then
minetest.log("action", player:get_player_name()..
" tried to access a gaming computer belonging to "..
meta:get_string("owner").." at "..
minetest.pos_to_string(pos))
return 0
end
return stack:get_count()
end,
})
-- Alienware Computer
-- Alienware Computer
minetest.register_node("mycoins:alien_computer",{
drawtype = "nodebox",
@ -656,7 +632,7 @@ minetest.register_node("mycoins:alien_computer",{
meta:set_string("owner", placer:get_player_name() or "")
meta:set_string("infotext", "Alienware Computer (owner "..
meta:get_string("owner")..")")
timer:start(30)
timer:start(alien_boot)
end,
on_construct = function(pos)
local meta = minetest.get_meta(pos)
@ -709,7 +685,7 @@ minetest.register_node("mycoins:alien_computer",{
meta:get_string("owner")..")")
local inv = meta:get_inventory()
inv:set_size("main", 4*2)
timer:start(300)
timer:start(alien_miner)
end
end
else
@ -735,7 +711,7 @@ minetest.register_node("mycoins:alien_computer",{
meta:get_string("owner")..")")
local inv = meta:get_inventory()
inv:set_size("main", 4*2)
timer:start(300)
timer:start(alien_miner)
end
end
end,
@ -763,7 +739,7 @@ minetest.register_node("mycoins:alien_computer",{
meta:get_string("owner")..")")
local inv = meta:get_inventory()
inv:set_size("main", 4*2)
timer:start(30)
timer:start(alien_boot)
end
else
local timer = minetest.get_node_timer(pos)
@ -774,16 +750,12 @@ minetest.register_node("mycoins:alien_computer",{
meta:get_string("owner")..")")
local inv = meta:get_inventory()
inv:set_size("main", 4*2)
timer:start(30)
timer:start(alien_boot)
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
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
end
return count
@ -794,10 +766,6 @@ minetest.register_node("mycoins:alien_computer",{
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
if not computer_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
end
return stack:get_count()
@ -858,7 +826,7 @@ minetest.register_node("mycoins:alien_computer_active",{
else
local timer = minetest.get_node_timer(pos)
minetest.get_meta(pos):get_inventory():add_item("main", "mycoins:bitcent")
timer:start(300)
timer:start(alien_miner)
end
end
else
@ -877,7 +845,7 @@ minetest.register_node("mycoins:alien_computer_active",{
else
local timer = minetest.get_node_timer(pos)
minetest.get_meta(pos):get_inventory():add_item("main", "mycoins:bitcent")
timer:start(300)
timer:start(alien_miner)
end
end
end,
@ -896,10 +864,6 @@ minetest.register_node("mycoins:alien_computer_active",{
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
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
end
return count
@ -910,10 +874,6 @@ minetest.register_node("mycoins:alien_computer_active",{
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
if not computer_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
end
return stack:get_count()

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,20 +9,22 @@ function default.router_off_formspec(pos)
return formspec
end
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"})
function default.router_on_formspec(pos)
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.5;Computers:]"..
"label[2,0.8;Active: "..#active_computers.."]"..
"label[2,1;Inactive: "..#inactive_computers.."]"..
"label[4,0.6;ISP:]"..
"label[4,0.8;Active: "..#active_isp.."]"..
"label[4,1;Inactive: "..#inactive_isp.."]"..
"label[4,0.5;Routers:]"..
"label[4,0.8;Active: "..#active_routers.."]"..
"label[4,1;Inactive: "..#inactive_routers.."]"..
"label[6,0.5;Available Networks:]"..
"label[6,0.8;Active: "..#active_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,7 +36,29 @@ function default.router_error_formspec(pos)
return formspec
end
--WIFI Router (linksys look-a-like)
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"})
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
local function router_owner(meta, player)
if player:get_player_name() ~= meta:get_string("owner") then
return false
end
return true
end
-- 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",
@ -58,51 +86,59 @@ minetest.register_node("mycoins:router_on", {
minetest.swap_node(pos, {name = 'mycoins:router', param2 = node.param2})
local meta = minetest.get_meta(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,
on_timer = function(pos)
local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"})
default.find_network(pos)
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)
local meta = minetest.get_meta(pos)
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")
timer:start(10)
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
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("infotext", "Router")
timer:start(10)
meta:set_string("formspec", default.router_on_formspec(pos))
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
timer:start(router_cycle)
end
end,
after_place_node = function(pos)
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("infotext", "Router")
timer:start(10)
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(router_cycle)
end,
on_construct = function(pos)
local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"})
on_construct = function(pos)
default.find_network(pos)
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)
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")
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
else
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("infotext", "Router")
meta:set_string("formspec", default.router_on_formspec(pos))
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
end
end,
can_dig = function(pos, player)
local meta = minetest.get_meta(pos);
return router_owner(meta, player)
end,
})
minetest.register_node("mycoins:router", {
@ -126,58 +162,66 @@ 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)
local meta = minetest.get_meta(pos)
local node = minetest.get_node(pos)
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")
timer:start(10)
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
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("infotext", "Router")
timer:start(10)
meta:set_string("formspec", default.router_on_formspec(pos))
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
timer:start(router_cycle)
end
end,
on_timer = function(pos)
default.find_network(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:router', param2 = node.param2})
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()
end,
after_place_node = function(pos)
after_place_node = function(pos, placer)
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("infotext", "Router")
timer:start(10)
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(router_cycle)
end,
on_construct = function(pos)
local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"})
on_construct = function(pos)
default.find_network(pos)
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)
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")
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
else
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("infotext", "Router")
meta:set_string("formspec", default.router_on_formspec(pos))
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
end
end,
can_dig = function(pos, player)
local meta = minetest.get_meta(pos);
return router_owner(meta, player)
end,
})
minetest.register_node("mycoins:router_error", {
@ -207,53 +251,50 @@ minetest.register_node("mycoins:router_error", {
minetest.swap_node(pos, {name = 'mycoins:router', param2 = node.param2})
local meta = minetest.get_meta(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,
on_timer = function(pos)
local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"})
default.find_network(pos)
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)
local meta = minetest.get_meta(pos)
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")
timer:start(10)
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
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("infotext", "Router")
timer:start(10)
meta:set_string("formspec", default.router_on_formspec(pos))
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
timer:start(router_cycle)
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)
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)
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")
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
else
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("infotext", "Router")
meta:set_string("formspec", default.router_on_formspec(pos))
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
end
end,
can_dig = function(pos, player)
local meta = minetest.get_meta(pos);
return router_owner(meta, player)
end,
})

View File

@ -6,13 +6,18 @@ function default.router_off_formspec(pos)
end
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 formspec = "size[10,10]"..
"label[2,2;Powered On...]"..
"label[2,2.5;Active: "..#active_computers.."]"..
"label[2,2.8;Inactive: "..#inactive_computers.."]"..
"label[1,0;Powered On...]"..
"label[2,0.5;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]"
return formspec
end
@ -24,7 +29,23 @@ function default.router_error_formspec(pos)
return formspec
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
local function router_owner(meta, player)
if player:get_player_name() ~= meta:get_string("owner") then
return false
end
return true
end
--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",
@ -52,9 +73,10 @@ minetest.register_node("mycoins:router_on", {
minetest.swap_node(pos, {name = 'mycoins:router', param2 = node.param2})
local meta = minetest.get_meta(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,
on_timer = function(pos)
default.find_network(pos)
local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"})
if isp == nil then
local timer = minetest.get_node_timer(pos)
@ -62,7 +84,7 @@ minetest.register_node("mycoins:router_on", {
local meta = minetest.get_meta(pos)
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")
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
timer:start(10)
else
local timer = minetest.get_node_timer(pos)
@ -70,33 +92,39 @@ minetest.register_node("mycoins:router_on", {
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("infotext", "Router")
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
timer:start(10)
end
end,
after_place_node = function(pos)
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("infotext", "Router")
meta:set_string("owner", placer:get_player_name() or "")
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
timer:start(10)
end,
on_construct = function(pos)
on_construct = function(pos)
default.find_network(pos)
local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"})
if isp == nil then
local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos)
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")
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
else
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("infotext", "Router")
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
end
end,
can_dig = function(pos, player)
local meta = minetest.get_meta(pos);
return router_owner(meta, player)
end,
})
minetest.register_node("mycoins:router", {
@ -121,13 +149,14 @@ minetest.register_node("mycoins:router", {
},
on_punch = function(pos)
local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"})
default.find_network(pos)
if isp == nil then
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_error', param2 = node.param2})
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)
else
local timer = minetest.get_node_timer(pos)
@ -135,43 +164,50 @@ minetest.register_node("mycoins:router", {
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("infotext", "Router")
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
timer:start(10)
end
end,
on_timer = function(pos)
default.find_network(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:router', param2 = node.param2})
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()
end,
after_place_node = function(pos)
after_place_node = function(pos, placer)
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("infotext", "Router")
meta:set_string("owner", placer:get_player_name() or "")
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
timer:start(10)
end,
on_construct = function(pos)
on_construct = function(pos)
default.find_network(pos)
local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"})
if isp == nil then
local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos)
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")
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
else
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("infotext", "Router")
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
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", {
@ -201,9 +237,10 @@ minetest.register_node("mycoins:router_error", {
minetest.swap_node(pos, {name = 'mycoins:router', param2 = node.param2})
local meta = minetest.get_meta(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,
on_timer = function(pos)
default.find_network(pos)
local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"})
if isp == nil then
local timer = minetest.get_node_timer(pos)
@ -211,7 +248,7 @@ minetest.register_node("mycoins:router_error", {
local meta = minetest.get_meta(pos)
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")
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
timer:start(10)
else
local timer = minetest.get_node_timer(pos)
@ -219,19 +256,11 @@ minetest.register_node("mycoins:router_error", {
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("infotext", "Router")
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
timer:start(10)
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)
local isp = minetest.find_node_near(pos, 30, {"mycoins:isp_on"})
if isp == nil then
@ -239,15 +268,19 @@ minetest.register_node("mycoins:router_error", {
local meta = minetest.get_meta(pos)
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")
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
else
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("infotext", "Router")
meta:set_string("infotext", "Router (owner "..meta:get_string("owner")..")")
end
end,
can_dig = function(pos, player)
local meta = minetest.get_meta(pos);
return isp_owner(meta, player)
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