577 lines
20 KiB
Lua
577 lines
20 KiB
Lua
--[[
|
|
Workers Mod
|
|
By LocaL_ALchemisT (prof_awang@yahoo.com)
|
|
License: WTFPL
|
|
Version: 2.0
|
|
--]]
|
|
|
|
dofile(minetest.get_modpath("workers").."/abm.lua")
|
|
dofile(minetest.get_modpath("workers").."/fungsi.lua")
|
|
dofile(minetest.get_modpath("workers").."/craft.lua")
|
|
|
|
-- HARVEY THE HARVESTER
|
|
|
|
minetest.register_node("workers:harvester", {
|
|
description = "Harvey The Harvester",
|
|
tile_images = worker_images("harvey"),
|
|
stack_max = 1,
|
|
paramtype2 = "facedir",
|
|
groups = {oddly_breakable_by_hand=2,flammable=1,worker=1},
|
|
legacy_facedir_simple = true,
|
|
after_place_node = function(pos,player)
|
|
local meta = minetest.env:get_meta(pos)
|
|
meta:set_string("formspec", "hack:sign_text_input")
|
|
meta:set_string("infotext", "What should I harvest, Master?")
|
|
meta:set_string("text","mod:node")
|
|
meta:set_string("master",player:get_player_name())
|
|
meta:set_string("material","")
|
|
meta:set_int("quantity",0)
|
|
meta:set_int("status",0)
|
|
meta:set_int("start_work",0)
|
|
if minetest.env:get_node(pos).param2 < 2 then meta:set_int("previousdir",(minetest.env:get_node(pos).param2+2))
|
|
else meta:set_int("previousdir",(minetest.env:get_node(pos).param2-2)) end
|
|
minetest.chat_send_player(player:get_player_name(), "Harvey: Hello, Master.")
|
|
end,
|
|
on_receive_fields = function(pos, formname, fields, player)
|
|
local meta = minetest.env:get_meta(pos)
|
|
local master = meta:get_string("master")
|
|
local name = player:get_player_name()
|
|
if name ~= master then
|
|
defend(player,master,"Harvey")
|
|
return
|
|
end
|
|
fields.text = fields.text or ""
|
|
local itemstack = ItemStack(fields.text)
|
|
local nodename = itemstack:get_name()
|
|
if itemstack:is_empty() then minetest.chat_send_player(name, "Harvey: What do you want me to harvest, Master?")
|
|
elseif not itemstack:is_known() then minetest.chat_send_player(name, "Harvey: What is that, Master?")
|
|
elseif nodename == "default:lava_flowing" or nodename == "default:lava_source" or nodename == "default:water_flowing" or nodename == "default:water_source" or nodename == "air" then minetest.chat_send_player(name, "Harvey: That is forbidden, Master.")
|
|
elseif nodename == "workers:assassin" or nodename == "workers:thief" then minetest.chat_send_player(name, "Harvey: No, Master.")
|
|
else
|
|
minetest.chat_send_player(name, "Harvey: "..nodename..", as you wish, Master.")
|
|
meta:set_string("infotext", "I will harvest "..nodename..", Master.")
|
|
meta:set_string("text",nodename)
|
|
meta:set_string("material",nodename)
|
|
meta:set_int("status",1)
|
|
end
|
|
end,
|
|
on_punch = function(pos, node, player)
|
|
local meta = minetest.env:get_meta(pos)
|
|
local master = meta:get_string("master")
|
|
if player:get_player_name() ~= master then
|
|
defend(player,master,"Harvey")
|
|
return
|
|
end
|
|
if meta:get_int("status") == 0 then return end
|
|
|
|
if meta:get_int("start_work") == 0 then --if Harvey hasn't moved yet
|
|
meta:set_int("start_work",1)
|
|
minetest.chat_send_player(master, "Harvey: I will go now, Master.")
|
|
else --if Harvey has moved
|
|
player:get_inventory():add_item("main", "workers:harvester")
|
|
print(meta:get_string("material")..": "..meta:get_int("quantity"))
|
|
if meta:get_int("quantity") > 0 then
|
|
player:get_inventory():add_item("main", "\""..meta:get_string("material").."\" "..meta:get_int("quantity"))
|
|
minetest.chat_send_player(master, "Harvey: I have collected "..meta:get_int("quantity").." "..meta:get_string("material")..", Master.")
|
|
end
|
|
minetest.chat_send_player(master, "Harvey: Pleasure to work for you, Master.")
|
|
minetest.env:remove_node(pos)
|
|
end
|
|
print (meta:get_int("start_work"))
|
|
end,
|
|
})
|
|
|
|
-- MORDEC THE MINER
|
|
|
|
minetest.register_node("workers:miner", {
|
|
description = "Mordec The Miner",
|
|
tile_images = worker_images("mordec"),
|
|
stack_max = 1,
|
|
paramtype = "light",
|
|
light_source = 13,
|
|
paramtype2 = "facedir",
|
|
groups = {oddly_breakable_by_hand=2,flammable=1,worker=1},
|
|
legacy_facedir_simple = true,
|
|
|
|
after_place_node = function(pos,player)
|
|
local meta = minetest.env:get_meta(pos)
|
|
meta:set_string("formspec",
|
|
"invsize[8,7;]"..
|
|
"list[current_player;main;0,3;8,4;]"..
|
|
"list[current_name;wood;0,0;1,1;]"..
|
|
"image[0,1;1,1;default_wood.png]"..
|
|
"list[current_name;ores;2,0;6,2;]")
|
|
local inv = meta:get_inventory()
|
|
inv:set_size("wood", 1)
|
|
inv:set_size("ores", 12)
|
|
meta:set_string("infotext", "Give me wood and i'll start digging, Master")
|
|
meta:set_string("master",player:get_player_name())
|
|
meta:set_int("status",0)
|
|
meta:set_int("start_work",0)
|
|
minetest.chat_send_player(player:get_player_name(), "Mordec: *bzzt* Hello, Master.")
|
|
end,
|
|
|
|
on_punch = function(pos, node, player)
|
|
local meta = minetest.env:get_meta(pos)
|
|
local inv = meta:get_inventory()
|
|
local master = meta:get_string("master")
|
|
if player:get_player_name() ~= master then
|
|
defend(player,master,"Mordec")
|
|
return
|
|
end
|
|
|
|
if inv:get_stack("wood",1):to_table() == nil then return
|
|
elseif inv:get_stack("wood",1):to_table().name ~= "default:wood" then return end
|
|
|
|
if meta:get_int("start_work") == 0 then --if Mordec hasn't moved yet
|
|
meta:set_int("start_work",1)
|
|
minetest.chat_send_player(master, "Mordec: I will go now, Master.")
|
|
else --if Mordec has moved
|
|
meta:set_int("status",0)
|
|
meta:set_int("start_work",0)
|
|
end
|
|
end,
|
|
|
|
can_dig = function(pos,player)
|
|
local meta = minetest.env:get_meta(pos)
|
|
local master = meta:get_string("master")
|
|
local inv = meta:get_inventory()
|
|
if not (inv:is_empty("wood") and inv:is_empty("ores")) then
|
|
minetest.chat_send_player(master, "Mordec: *error* I cannot leave yet, Master. There are items in my inventory.")
|
|
return false
|
|
end
|
|
minetest.chat_send_player(master, "Mordec: Pleasure to work for you, Master. *shutdown*")
|
|
return true
|
|
end,
|
|
})
|
|
|
|
-- GARREN THE GARDENER
|
|
|
|
minetest.register_node("workers:gardener", {
|
|
description = "Garren The Gardener",
|
|
tile_images = worker_images("garren"),
|
|
stack_max = 1,
|
|
paramtype2 = "facedir",
|
|
groups = {oddly_breakable_by_hand=2,flammable=1,worker=1},
|
|
legacy_facedir_simple = true,
|
|
|
|
after_place_node = function(pos,player)
|
|
local meta = minetest.env:get_meta(pos)
|
|
meta:set_string("formspec",
|
|
"invsize[8,6;]"..
|
|
"list[current_player;main;0,2;8,4;]"..
|
|
"list[current_name;plant;2,0;1,1;]"..
|
|
"list[current_name;sapling;5,0;1,1;]"..
|
|
"image[6,0;1,1;default_sapling.png]")
|
|
local inv = meta:get_inventory()
|
|
inv:set_size("plant", 1)
|
|
inv:set_size("sapling", 1)
|
|
meta:set_string("infotext", "Can I have a plant sample and some saplings, Master?")
|
|
meta:set_string("master",player:get_player_name())
|
|
meta:set_int("status",0)
|
|
meta:set_int("start_work",0)
|
|
if minetest.env:get_node(pos).param2 < 2 then meta:set_int("previousdir",(minetest.env:get_node(pos).param2+2))
|
|
else meta:set_int("previousdir",(minetest.env:get_node(pos).param2-2)) end
|
|
meta:set_int("clockwise",0)
|
|
minetest.chat_send_player(player:get_player_name(), "Garren: Hello, Master.")
|
|
end,
|
|
|
|
on_punch = function(pos, node, player)
|
|
local meta = minetest.env:get_meta(pos)
|
|
local inv = meta:get_inventory()
|
|
local master = meta:get_string("master")
|
|
if player:get_player_name() ~= master then
|
|
defend(player,master,"Garren")
|
|
return
|
|
end
|
|
|
|
if inv:get_stack("sapling",1):to_table() == nil then return
|
|
elseif inv:get_stack("sapling",1):to_table().name ~= "default:sapling" then return end
|
|
|
|
if meta:get_int("start_work") == 0 then --if Garren hasn't moved yet
|
|
meta:set_int("start_work",1)
|
|
minetest.chat_send_player(master, "Garren: I will go now, Master.")
|
|
else --if Garren has moved
|
|
meta:set_int("status",0)
|
|
meta:set_int("start_work",0)
|
|
end
|
|
end,
|
|
|
|
can_dig = function(pos,player)
|
|
local meta = minetest.env:get_meta(pos)
|
|
local master = meta:get_string("master")
|
|
local inv = meta:get_inventory()
|
|
if not (inv:is_empty("plant") and inv:is_empty("sapling")) then
|
|
minetest.chat_send_player(master, "Garren: I cannot leave yet, Master. There are items in my inventory.")
|
|
return false
|
|
end
|
|
minetest.chat_send_player(master, "Garren: Pleasure to work for you, Master.")
|
|
return true
|
|
end,
|
|
})
|
|
|
|
-- BENJO THE BUILDER
|
|
|
|
minetest.register_node("workers:builder", {
|
|
description = "Benjo The Builder",
|
|
tile_images = worker_images("benjo"),
|
|
stack_max = 1,
|
|
paramtype2 = "facedir",
|
|
groups = {oddly_breakable_by_hand=2,flammable=1,worker=1},
|
|
legacy_facedir_simple = true,
|
|
|
|
after_place_node = function(pos,player)
|
|
local meta = minetest.env:get_meta(pos)
|
|
meta:set_string("formspec",
|
|
"invsize[8,6;]"..
|
|
"list[current_player;main;0,2;8,4;]"..
|
|
"list[current_name;plan;2,0;1,1;]"..
|
|
"list[current_name;material;5,0;1,1;]"..
|
|
"image[6,0;1,1;default_brick.png]")
|
|
local inv = meta:get_inventory()
|
|
inv:set_size("plan", 1)
|
|
inv:set_size("material", 1)
|
|
meta:set_string("infotext", "I can build simple structures, Master")
|
|
meta:set_string("master",player:get_player_name())
|
|
meta:set_int("start_work",0)
|
|
minetest.chat_send_player(player:get_player_name(), "Benjo: Hello, Master.")
|
|
end,
|
|
|
|
on_punch = function(pos, node, player)
|
|
local meta = minetest.env:get_meta(pos)
|
|
local inv = meta:get_inventory()
|
|
local master = meta:get_string("master")
|
|
if player:get_player_name() ~= master then
|
|
defend(player,master,"Benjo")
|
|
return
|
|
end
|
|
|
|
if inv:is_empty("plan") or inv:is_empty("material") then return end
|
|
|
|
if meta:get_int("start_work") == 0 then --if Benjo hasn't moved yet
|
|
meta:set_int("start_work",1)
|
|
minetest.chat_send_player(master, "Benjo: Right away, Master.")
|
|
end
|
|
end,
|
|
|
|
can_dig = function(pos,player)
|
|
local meta = minetest.env:get_meta(pos)
|
|
local master = meta:get_string("master")
|
|
local inv = meta:get_inventory()
|
|
if not (inv:is_empty("plan")) and not (inv:is_empty("material")) then
|
|
minetest.chat_send_player(master, "Benjo: I cannot leave yet, Master. There are items in my inventory.")
|
|
return false
|
|
end
|
|
minetest.chat_send_player(master, "Benjo: Pleasure to work for you, Master.")
|
|
return true
|
|
end,
|
|
})
|
|
|
|
-- GREDO THE GUARD
|
|
|
|
minetest.register_node("workers:guard", {
|
|
description = "Gredo The Guard",
|
|
tile_images = worker_images("gredo"),
|
|
stack_max = 1,
|
|
paramtype2 = "facedir",
|
|
groups = {oddly_breakable_by_hand=2,flammable=1},
|
|
legacy_facedir_simple = true,
|
|
|
|
after_place_node = function(pos,player)
|
|
local meta = minetest.env:get_meta(pos)
|
|
meta:set_string("formspec",
|
|
"invsize[8,6;]"..
|
|
"list[current_name;catch;0,0;8,1;]"..
|
|
"list[current_player;main;0,2;8,4;]")
|
|
local inv = meta:get_inventory()
|
|
inv:set_size("catch", 8)
|
|
meta:set_string("infotext", "I catch'em when I see'em, Boss.")
|
|
meta:set_string("master",player:get_player_name())
|
|
meta:set_int("status",0)
|
|
minetest.chat_send_player(player:get_player_name(), "Gredo: Hello, Boss.")
|
|
end,
|
|
|
|
on_punch = function(pos, node, player)
|
|
local meta = minetest.env:get_meta(pos)
|
|
local inv = meta:get_inventory()
|
|
local master = meta:get_string("master")
|
|
if player:get_player_name() ~= master then
|
|
minetest.chat_send_player(player:get_player_name(), "Gredo: Hands off!")
|
|
minetest.chat_send_player(master, "Gredo: "..player:get_player_name().."'s picking up a fight, Boss.")
|
|
player:set_hp(player:get_hp()-8)
|
|
end
|
|
end,
|
|
|
|
on_metadata_inventory_take = function(pos, listname, index, count, player)
|
|
local meta = minetest.env:get_meta(pos)
|
|
local master = meta:get_string("master")
|
|
if player:get_player_name() ~= master then
|
|
player:set_hp(player:get_hp()-8)
|
|
minetest.chat_send_player(master, "Gredo: Hands off!")
|
|
return
|
|
end
|
|
return minetest.node_metadata_inventory_take_allow_all(pos, listname, index, count, player)
|
|
end,
|
|
|
|
can_dig = function(pos,player)
|
|
local meta = minetest.env:get_meta(pos)
|
|
local master = meta:get_string("master")
|
|
local inv = meta:get_inventory()
|
|
if not (inv:is_empty("catch")) then
|
|
minetest.chat_send_player(master, "Gredo: Better take these intruders first, Boss.")
|
|
return false
|
|
end
|
|
minetest.chat_send_player(master, "Gredo: Pleasure to work for you, Boss.")
|
|
return true
|
|
end,
|
|
})
|
|
|
|
-- ASVARD THE ASSASSIN
|
|
|
|
minetest.register_node("workers:assassin", {
|
|
description = "Asvard The Assassin",
|
|
tile_images = worker_images("asvard"),
|
|
stack_max = 1,
|
|
paramtype2 = "facedir",
|
|
groups = {oddly_breakable_by_hand=2,flammable=1,badguy=1},
|
|
legacy_facedir_simple = true,
|
|
after_place_node = function(pos,player)
|
|
local meta = minetest.env:get_meta(pos)
|
|
meta:set_string("formspec", "hack:sign_text_input")
|
|
meta:set_string("infotext", "Give me name, Master")
|
|
meta:set_string("text","")
|
|
meta:set_string("master",player:get_player_name())
|
|
meta:set_string("target","")
|
|
meta:set_int("status",0)
|
|
meta:set_int("start_work",0)
|
|
minetest.chat_send_player(player:get_player_name(), "Asvard: ...Master.")
|
|
minetest.sound_play("asvard_00", {pos = pos, gain = 1.0, max_hear_distance = 10,})
|
|
end,
|
|
on_receive_fields = function(pos, formname, fields, player)
|
|
local meta = minetest.env:get_meta(pos)
|
|
local master = meta:get_string("master")
|
|
local name = player:get_player_name()
|
|
if name ~= master then
|
|
player:set_hp(0)
|
|
return
|
|
end
|
|
fields.text = fields.text or ""
|
|
meta:set_string("target",fields.text)
|
|
if meta:get_string("target") == "" then minetest.chat_send_player(name, "Asvard: Name your target, Master.")
|
|
else
|
|
if meta:get_string("target") == name then minetest.chat_send_player(name, "Asvard: Are you sure, Master?")
|
|
else minetest.chat_send_player(name, "Asvard: "..meta:get_string("target")..", as you wish, Master.") end
|
|
|
|
meta:set_string("infotext", "..."..meta:get_string("target"))
|
|
meta:set_string("text",meta:get_string("target"))
|
|
meta:set_int("status",1)
|
|
end
|
|
end,
|
|
on_punch = function(pos, node, player)
|
|
local meta = minetest.env:get_meta(pos)
|
|
local master = meta:get_string("master")
|
|
if player:get_player_name() ~= master then
|
|
player:set_hp(0)
|
|
return
|
|
end
|
|
if meta:get_int("status") == 0 then return end
|
|
|
|
if meta:get_int("start_work") == 0 then
|
|
meta:set_int("start_work",1)
|
|
else
|
|
minetest.sound_play("asvard_00", {pos = pos, gain = 1.0, max_hear_distance = 10,})
|
|
minetest.env:remove_node(pos)
|
|
minetest.env:add_item(pos,"default:sword_steel")
|
|
end
|
|
end,
|
|
})
|
|
|
|
-- TOCO THE THIEF
|
|
|
|
minetest.register_node("workers:thief", {
|
|
description = "Toco The Thief",
|
|
--drawtype = "glasslike",
|
|
tile_images = worker_images("toco"),
|
|
stack_max = 1,
|
|
paramtype2 = "facedir",
|
|
groups = {oddly_breakable_by_hand=2,flammable=1,badguy=1},
|
|
legacy_facedir_simple = true,
|
|
|
|
after_place_node = function(pos,player)
|
|
local meta = minetest.env:get_meta(pos)
|
|
meta:set_string("formspec",
|
|
"invsize[8,9;]"..
|
|
"list[current_name;loot;0,0;8,4;]"..
|
|
"list[current_player;main;0,5;8,4;]")
|
|
local inv = meta:get_inventory()
|
|
inv:set_size("loot", 32)
|
|
meta:set_string("master",player:get_player_name())
|
|
meta:set_int("status",0)
|
|
minetest.chat_send_player(player:get_player_name(), "Toco: Hey, Boss.")
|
|
end,
|
|
|
|
on_punch = function(pos, node, player)
|
|
local meta = minetest.env:get_meta(pos)
|
|
local inv = meta:get_inventory()
|
|
local master = meta:get_string("master")
|
|
if player:get_player_name() ~= master then
|
|
minetest.chat_send_player(player:get_player_name(), "Toco: Ouch!")
|
|
for i = 1,32 do
|
|
if not inv:get_stack("loot",i):is_empty() then
|
|
print("not nil")
|
|
minetest.env:add_item({x = pos.x + (math.random(1,5)-3), y = pos.y, z = pos.z + (math.random(1,5)-3)},inv:get_stack("loot", i))
|
|
inv:set_stack("loot", i, inv:remove_item("loot", i))
|
|
return
|
|
end
|
|
end
|
|
end
|
|
end,
|
|
|
|
on_metadata_inventory_take = function(pos, listname, index, count, player)
|
|
local meta = minetest.env:get_meta(pos)
|
|
local master = meta:get_string("master")
|
|
if player:get_player_name() ~= master then
|
|
player:set_hp(player:get_hp()-3)
|
|
minetest.chat_send_player(master, "Toco: Hands off!")
|
|
return
|
|
end
|
|
return minetest.node_metadata_inventory_take_allow_all(pos, listname, index, count, player)
|
|
end,
|
|
|
|
can_dig = function(pos,player)
|
|
local meta = minetest.env:get_meta(pos)
|
|
local master = meta:get_string("master")
|
|
local inv = meta:get_inventory()
|
|
if not (inv:is_empty("loot")) then
|
|
minetest.chat_send_player(master, "Toco: You sure you don't wanna have these loots, Boss?")
|
|
return false
|
|
end
|
|
if player:get_player_name() ~= master then
|
|
minetest.chat_send_player(player:get_player_name(), "Toco: You're not gonna take me anywhere!")
|
|
minetest.env:remove_node(pos)
|
|
return false
|
|
end
|
|
minetest.chat_send_player(master, "Toco: Pleasure to work for you, Boss.")
|
|
return true
|
|
end,
|
|
})
|
|
|
|
-- CARDON THE COP
|
|
|
|
minetest.register_node("workers:cop", {
|
|
description = "Cardon The Cop",
|
|
tile_images = worker_images("cardon"),
|
|
stack_max = 1,
|
|
paramtype2 = "facedir",
|
|
groups = {oddly_breakable_by_hand=2,flammable=1,goodguy=1},
|
|
legacy_facedir_simple = true,
|
|
|
|
after_place_node = function(pos,player)
|
|
local meta = minetest.env:get_meta(pos)
|
|
meta:set_string("infotext", "I won't let them get away, Boss")
|
|
meta:set_string("master",player:get_player_name())
|
|
meta:set_string("criminal","")
|
|
meta:set_int("status",0)
|
|
minetest.chat_send_player(player:get_player_name(), "Cardon: Officer Cardon at your service.")
|
|
end,
|
|
|
|
on_punch = function(pos, node, player)
|
|
local meta = minetest.env:get_meta(pos)
|
|
local inv = meta:get_inventory()
|
|
local master = meta:get_string("master")
|
|
if player:get_player_name() ~= master then
|
|
defend(player,master,"Cardon")
|
|
return
|
|
end
|
|
end,
|
|
|
|
can_dig = function(pos,player)
|
|
local meta = minetest.env:get_meta(pos)
|
|
local master = meta:get_string("master")
|
|
local inv = meta:get_inventory()
|
|
minetest.chat_send_player(master, "Cardon: Pleasure to work for you, Boss.")
|
|
return true
|
|
end,
|
|
})
|
|
|
|
-- BENJO'S PLANS
|
|
|
|
minetest.register_craftitem("workers:plan_house", {
|
|
description = "House Plan",
|
|
inventory_image = "plan_house.png",
|
|
stack_max = 1,
|
|
})
|
|
|
|
minetest.register_craftitem("workers:plan_hut", {
|
|
description = "Hut Plan",
|
|
inventory_image = "plan_hut.png",
|
|
stack_max = 1,
|
|
})
|
|
|
|
minetest.register_craftitem("workers:plan_pool", {
|
|
description = "Pool Plan",
|
|
inventory_image = "plan_pool.png",
|
|
stack_max = 1,
|
|
})
|
|
|
|
minetest.register_craftitem("workers:plan_moat", {
|
|
description = "Moat Plan",
|
|
inventory_image = "plan_moat.png",
|
|
stack_max = 1,
|
|
})
|
|
|
|
minetest.register_craftitem("workers:plan_tower", {
|
|
description = "Tower Plan",
|
|
inventory_image = "plan_tower.png",
|
|
stack_max = 1,
|
|
})
|
|
|
|
minetest.register_craftitem("workers:plan_ubunker", {
|
|
description = "Underground Bunker Plan",
|
|
inventory_image = "plan_ubunker.png",
|
|
stack_max = 1,
|
|
})
|
|
|
|
minetest.register_craftitem("workers:plan_wall", {
|
|
description = "9x9 Wall Plan",
|
|
inventory_image = "plan_wall.png",
|
|
stack_max = 1,
|
|
})
|
|
|
|
minetest.register_craftitem("workers:plan_lavapool", {
|
|
description = "Lava Pool Plan",
|
|
inventory_image = "plan_lavapool.png",
|
|
stack_max = 1,
|
|
})
|
|
|
|
minetest.register_craftitem("workers:plan_lavamoat", {
|
|
description = "Lava Moat Plan",
|
|
inventory_image = "plan_lavamoat.png",
|
|
stack_max = 1,
|
|
})
|
|
|
|
-- ALIASES
|
|
|
|
minetest.register_alias("harvey","workers:harvester")
|
|
minetest.register_alias("harvester","workers:harvester")
|
|
|
|
minetest.register_alias("garren","workers:gardener")
|
|
minetest.register_alias("gardener","workers:gardener")
|
|
|
|
minetest.register_alias("mordec","workers:miner")
|
|
minetest.register_alias("miner","workers:miner")
|
|
|
|
minetest.register_alias("benjo","workers:builder")
|
|
minetest.register_alias("builder","workers:builder")
|
|
|
|
minetest.register_alias("gredo","workers:guard")
|
|
minetest.register_alias("guard","workers:guard")
|
|
|
|
minetest.register_alias("asvard","workers:assassin")
|
|
minetest.register_alias("assassin","workers:assassin")
|
|
|
|
minetest.register_alias("toco","workers:thief")
|
|
minetest.register_alias("thief","workers:thief")
|
|
|
|
minetest.register_alias("cardon","workers:cop")
|
|
minetest.register_alias("cop","workers:cop") |