diff --git a/menu/header.png b/menu/header.png new file mode 100644 index 0000000..037f1c0 Binary files /dev/null and b/menu/header.png differ diff --git a/mods/classes/init.lua b/mods/classes/init.lua index 87671ec..67cfbe8 100644 --- a/mods/classes/init.lua +++ b/mods/classes/init.lua @@ -1,19 +1,104 @@ classes = {} -classes.register_weapon = function(name,levels, def) - for i = 0, levels, 1 do +classes.all_classes = {} +classes.selected = {} +classes.classes_file = minetest.get_worldpath() .. "/classes" +classes.register_weapon = function(name,fromLevel,levels, def) + for i = fromLevel, levels, 1 do minetest.register_tool("classes:"..name .. "_lvl_" .. tostring(i), { - description = def.description.."\n Level: ".. tostring(i).. "\n Damage: " .. tostring(def.damage+ i) .." \n Class: " .. def.class, + description = def.description.."\n For Level: ".. tostring(i).. "\n Damage: " .. tostring(def.damage+ i-fromLevel) .." \n Class: " .. def.class, inventory_image = def.inventory_image, wield_scale = def.wield_scale, tool_capabilities = { max_drop_level=3, - damage_groups = {fleshy=def.damage+ i}, + damage_groups = {fleshy=def.damage+ i-fromLevel}, }, + class = def.class, + on_use = function(itemstack, user, pointed_thing) + if user == nil then return end + if minetest.registered_tools[itemstack:get_name()].class then print(minetest.registered_tools[itemstack:get_name()].class) end + if classes.selected[user:get_player_name()] == minetest.registered_tools[itemstack:get_name()].class then + return nil + else + minetest.chat_send_player(user:get_player_name(), "You cant use this item!") + itemstack:take_item() + return itemstack + end + end }) end end -classes.register_weapon("spear", 5, { +-- load save + +function classes.load_selected_classes() + local input = io.open(classes.classes_file, "r") + if input then + local str = input:read() + if str then + for k, v in str.gmatch(str,"(%w+)=(%w+)") do + classes.selected[k] = v + end + end + io.close(input) + end +end + +function classes.save_selected_classes() + if classes.selected then + local output = io.open(classes.classes_file, "w") + local str = "" + for k, v in pairs(classes.selected) do + str = str .. k .. "=" .. v .. "," + end + str = str:sub(1, #str - 1) + output:write(str) + io.close(output) + end +end + +-- cmd + +minetest.register_chatcommand("class", { + params = "", + description = "Set your class to ", + privs = {}, + func = function(name, text) + if classes.selected[name] then + return true, "Your class is : ".. classes.selected[name] .. "\nYou cant switch your class. If you want to player an other class, you should ask an admin :)" + end + if classes.all_classes[text] then + classes.selected[name] = text + minetest.chat_send_all(name .. " is now a " .. text) + classes.save_selected_classes() + return true, "Your class is now "..text + else + return true, "You cant be a "..text + end + end, +}) + +minetest.register_chatcommand("myclass", { + params = "", + description = "This command will show you your class", + privs = {}, + func = function(name, text) + if classes.selected[name] == nil then return true, "You havent coosen your class, yet!" end + return true, "Your class is "..classes.selected[name] + end, +}) + + +classes.register_class = function(name) + classes.all_classes[name] = true +end + + +classes.register_class("farmer") +classes.register_class("warrior") + +classes.load_selected_classes() + +classes.register_weapon("spear",0, 5, { description = "Spear", inventory_image = "classes_spear.png", wield_scale = {x = 2, y=2, z = 1}, @@ -21,7 +106,7 @@ classes.register_weapon("spear", 5, { class = "warrior", }) -classes.register_weapon("chemical_spear", 7, { +classes.register_weapon("chemical_spear",0, 7, { description = "Chemical Spear", inventory_image = "classes_chemical_spear.png", wield_scale = {x = 2, y=2, z = 1}, @@ -29,7 +114,16 @@ classes.register_weapon("chemical_spear", 7, { class = "warrior", }) -classes.register_weapon("hoe", 20, { +classes.register_weapon("sword",20, 30, { + description = "Sword", + inventory_image = "classes_sword.png", + wield_scale = {x = 1.5, y=1.5, z = 1}, + damage = 20, + class = "warrior", +}) + + +classes.register_weapon("hoe",0, 20, { description = "Hoe", inventory_image = "classes_hoe.png", wield_scale = {x = 1, y=1, z = 1}, @@ -37,3 +131,11 @@ classes.register_weapon("hoe", 20, { class = "farmer", }) +classes.register_weapon("pitchfork",20, 30, { + description = "Pitchfork", + inventory_image = "classes_pitchfork.png", + wield_scale = {x = 1, y=1, z = 1}, + damage = 20, + class = "farmer", +}) + diff --git a/mods/classes/init.lua~ b/mods/classes/init.lua~ index 87671ec..67cfbe8 100644 --- a/mods/classes/init.lua~ +++ b/mods/classes/init.lua~ @@ -1,19 +1,104 @@ classes = {} -classes.register_weapon = function(name,levels, def) - for i = 0, levels, 1 do +classes.all_classes = {} +classes.selected = {} +classes.classes_file = minetest.get_worldpath() .. "/classes" +classes.register_weapon = function(name,fromLevel,levels, def) + for i = fromLevel, levels, 1 do minetest.register_tool("classes:"..name .. "_lvl_" .. tostring(i), { - description = def.description.."\n Level: ".. tostring(i).. "\n Damage: " .. tostring(def.damage+ i) .." \n Class: " .. def.class, + description = def.description.."\n For Level: ".. tostring(i).. "\n Damage: " .. tostring(def.damage+ i-fromLevel) .." \n Class: " .. def.class, inventory_image = def.inventory_image, wield_scale = def.wield_scale, tool_capabilities = { max_drop_level=3, - damage_groups = {fleshy=def.damage+ i}, + damage_groups = {fleshy=def.damage+ i-fromLevel}, }, + class = def.class, + on_use = function(itemstack, user, pointed_thing) + if user == nil then return end + if minetest.registered_tools[itemstack:get_name()].class then print(minetest.registered_tools[itemstack:get_name()].class) end + if classes.selected[user:get_player_name()] == minetest.registered_tools[itemstack:get_name()].class then + return nil + else + minetest.chat_send_player(user:get_player_name(), "You cant use this item!") + itemstack:take_item() + return itemstack + end + end }) end end -classes.register_weapon("spear", 5, { +-- load save + +function classes.load_selected_classes() + local input = io.open(classes.classes_file, "r") + if input then + local str = input:read() + if str then + for k, v in str.gmatch(str,"(%w+)=(%w+)") do + classes.selected[k] = v + end + end + io.close(input) + end +end + +function classes.save_selected_classes() + if classes.selected then + local output = io.open(classes.classes_file, "w") + local str = "" + for k, v in pairs(classes.selected) do + str = str .. k .. "=" .. v .. "," + end + str = str:sub(1, #str - 1) + output:write(str) + io.close(output) + end +end + +-- cmd + +minetest.register_chatcommand("class", { + params = "", + description = "Set your class to ", + privs = {}, + func = function(name, text) + if classes.selected[name] then + return true, "Your class is : ".. classes.selected[name] .. "\nYou cant switch your class. If you want to player an other class, you should ask an admin :)" + end + if classes.all_classes[text] then + classes.selected[name] = text + minetest.chat_send_all(name .. " is now a " .. text) + classes.save_selected_classes() + return true, "Your class is now "..text + else + return true, "You cant be a "..text + end + end, +}) + +minetest.register_chatcommand("myclass", { + params = "", + description = "This command will show you your class", + privs = {}, + func = function(name, text) + if classes.selected[name] == nil then return true, "You havent coosen your class, yet!" end + return true, "Your class is "..classes.selected[name] + end, +}) + + +classes.register_class = function(name) + classes.all_classes[name] = true +end + + +classes.register_class("farmer") +classes.register_class("warrior") + +classes.load_selected_classes() + +classes.register_weapon("spear",0, 5, { description = "Spear", inventory_image = "classes_spear.png", wield_scale = {x = 2, y=2, z = 1}, @@ -21,7 +106,7 @@ classes.register_weapon("spear", 5, { class = "warrior", }) -classes.register_weapon("chemical_spear", 7, { +classes.register_weapon("chemical_spear",0, 7, { description = "Chemical Spear", inventory_image = "classes_chemical_spear.png", wield_scale = {x = 2, y=2, z = 1}, @@ -29,7 +114,16 @@ classes.register_weapon("chemical_spear", 7, { class = "warrior", }) -classes.register_weapon("hoe", 20, { +classes.register_weapon("sword",20, 30, { + description = "Sword", + inventory_image = "classes_sword.png", + wield_scale = {x = 1.5, y=1.5, z = 1}, + damage = 20, + class = "warrior", +}) + + +classes.register_weapon("hoe",0, 20, { description = "Hoe", inventory_image = "classes_hoe.png", wield_scale = {x = 1, y=1, z = 1}, @@ -37,3 +131,11 @@ classes.register_weapon("hoe", 20, { class = "farmer", }) +classes.register_weapon("pitchfork",20, 30, { + description = "Pitchfork", + inventory_image = "classes_pitchfork.png", + wield_scale = {x = 1, y=1, z = 1}, + damage = 20, + class = "farmer", +}) + diff --git a/mods/classes/textures/classes_pitchfork.png b/mods/classes/textures/classes_pitchfork.png new file mode 100644 index 0000000..1938b74 Binary files /dev/null and b/mods/classes/textures/classes_pitchfork.png differ diff --git a/mods/classes/textures/classes_sword.png b/mods/classes/textures/classes_sword.png new file mode 100644 index 0000000..c77295b Binary files /dev/null and b/mods/classes/textures/classes_sword.png differ diff --git a/mods/potions/init.lua b/mods/potions/init.lua index 1e68853..0e54582 100644 --- a/mods/potions/init.lua +++ b/mods/potions/init.lua @@ -112,3 +112,8 @@ minetest.register_craftitem("potions:running", { return itemstack end, }) + +minetest.register_craftitem("potions:upgrading", { + description = "Potion of Upgrading", + inventory_image = "potions_green.png", +}) diff --git a/mods/potions/init.lua~ b/mods/potions/init.lua~ index 1e68853..0e54582 100644 --- a/mods/potions/init.lua~ +++ b/mods/potions/init.lua~ @@ -112,3 +112,8 @@ minetest.register_craftitem("potions:running", { return itemstack end, }) + +minetest.register_craftitem("potions:upgrading", { + description = "Potion of Upgrading", + inventory_image = "potions_green.png", +})