Compare commits
5 Commits
0fd742760b
...
f24360f769
Author | SHA1 | Date |
---|---|---|
morpheus | f24360f769 | |
morpheus | 95bfddfadb | |
DonBatman | a0b27fc43b | |
DonBatman | 0e290cc0e5 | |
DonBatman | f0ea30d3d6 |
31
ReadMe.txt
31
ReadMe.txt
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
})
|
||||
|
||||
|
||||
|
12
crafts.lua
12
crafts.lua
|
@ -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", },
|
||||
};
|
||||
});
|
||||
|
|
12
crafts.lua~
12
crafts.lua~
|
@ -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", },
|
||||
};
|
||||
});
|
||||
|
|
|
@ -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,
|
||||
})
|
||||
|
||||
|
||||
|
|
@ -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,
|
||||
})
|
||||
|
||||
|
||||
|
9
init.lua
9
init.lua
|
@ -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
246
isp.lua
|
@ -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~
185
isp.lua~
|
@ -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,
|
||||
})
|
312
items.lua~
312
items.lua~
|
@ -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
114
nodes.lua
|
@ -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()
|
||||
|
|
116
nodes.lua~
116
nodes.lua~
|
@ -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()
|
||||
|
|
163
router.lua
163
router.lua
|
@ -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,
|
||||
})
|
||||
|
||||
|
||||
|
|
103
router.lua~
103
router.lua~
|
@ -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 |
Loading…
Reference in New Issue