From a127136c6065a13a3125b35e5e448c5a817a365f Mon Sep 17 00:00:00 2001 From: kay27 Date: Mon, 19 Oct 2020 16:38:21 +0400 Subject: [PATCH] Add Enchanting from Crafter-minetest by Oil_boi --- mods/ENTITIES/mcl_item_entity/init.lua | 11 + mods/ENTITIES/mcl_mobs/api.lua | 4 + mods/HUD/hudbars/init.lua | 5 + mods/HUD/mcl_experience/README.md | 6 + mods/HUD/mcl_experience/init.lua | 547 ++++++++++++++++++ .../locale/mcl_experience.ru.tr | 5 + mods/HUD/mcl_experience/locale/template.txt | 5 + mods/HUD/mcl_experience/sounds/attributes.txt | 2 + mods/HUD/mcl_experience/sounds/experience.ogg | Bin 0 -> 24760 bytes mods/HUD/mcl_experience/sounds/level_up.ogg | Bin 0 -> 43940 bytes .../mcl_experience/textures/attributes.txt | 1 + .../textures/experience_bar.png | Bin 0 -> 3745 bytes .../textures/experience_bar_background.png | Bin 0 -> 2861 bytes .../textures/experience_orb.png | Bin 0 -> 891 bytes mods/ITEMS/mcl_core/nodes_base.lua | 12 +- mods/ITEMS/mcl_fishing/init.lua | 3 + mods/ITEMS/mcl_furnaces/init.lua | 5 + mods/ITEMS/mcl_nether/init.lua | 2 +- mods/ITEMS/mcl_tools/enchanting.lua | 102 ++++ mods/ITEMS/mcl_tools/init.lua | 1 + mods/ITEMS/mcl_tools/locale/mcl_tools.de.tr | 2 + mods/ITEMS/mcl_tools/locale/mcl_tools.es.tr | 2 + mods/ITEMS/mcl_tools/locale/mcl_tools.fr.tr | 2 + mods/ITEMS/mcl_tools/locale/mcl_tools.ru.tr | 2 + mods/ITEMS/mcl_tools/locale/template.txt | 2 + 25 files changed, 714 insertions(+), 7 deletions(-) create mode 100644 mods/HUD/mcl_experience/README.md create mode 100644 mods/HUD/mcl_experience/init.lua create mode 100644 mods/HUD/mcl_experience/locale/mcl_experience.ru.tr create mode 100644 mods/HUD/mcl_experience/locale/template.txt create mode 100644 mods/HUD/mcl_experience/sounds/attributes.txt create mode 100644 mods/HUD/mcl_experience/sounds/experience.ogg create mode 100644 mods/HUD/mcl_experience/sounds/level_up.ogg create mode 100644 mods/HUD/mcl_experience/textures/attributes.txt create mode 100644 mods/HUD/mcl_experience/textures/experience_bar.png create mode 100644 mods/HUD/mcl_experience/textures/experience_bar_background.png create mode 100644 mods/HUD/mcl_experience/textures/experience_orb.png create mode 100644 mods/ITEMS/mcl_tools/enchanting.lua diff --git a/mods/ENTITIES/mcl_item_entity/init.lua b/mods/ENTITIES/mcl_item_entity/init.lua index d7c76f199..f971d0f35 100644 --- a/mods/ENTITIES/mcl_item_entity/init.lua +++ b/mods/ENTITIES/mcl_item_entity/init.lua @@ -152,6 +152,11 @@ minetest.register_globalstep(function(dtime) end end + elseif not object:is_player() and object:get_luaentity() and object:get_luaentity().name == "mcl_experience:orb" then + local entity = object:get_luaentity() + entity.collector = player:get_player_name() + entity.collected = true + end end @@ -221,6 +226,12 @@ function minetest.handle_node_drops(pos, drops, digger) local dug_node = minetest.get_node(pos) local toolcaps if digger ~= nil then + if mcl_experience.throw_experience then + local experience_amount = minetest.get_item_group(dug_node.name,"experience") + if experience_amount > 0 then + mcl_experience.throw_experience(pos, experience_amount) + end + end local tool = digger:get_wielded_item() toolcaps = tool:get_tool_capabilities() diff --git a/mods/ENTITIES/mcl_mobs/api.lua b/mods/ENTITIES/mcl_mobs/api.lua index ab2480f9d..a4e87341f 100644 --- a/mods/ENTITIES/mcl_mobs/api.lua +++ b/mods/ENTITIES/mcl_mobs/api.lua @@ -640,6 +640,10 @@ local check_for_death = function(self, cause, cmi_cause) local pos = self.object:get_pos() + if mcl_experience.throw_experience and self.hp_min and self.hp_max then + mcl_experience.throw_experience(pos, math.ceil( math.random(self.hp_min,self.hp_max+5) / 5) ) + end + -- execute custom death function if self.on_die then diff --git a/mods/HUD/hudbars/init.lua b/mods/HUD/hudbars/init.lua index 6ddd4a03b..44c826656 100644 --- a/mods/HUD/hudbars/init.lua +++ b/mods/HUD/hudbars/init.lua @@ -46,6 +46,11 @@ end -- Load default settings dofile(minetest.get_modpath("hudbars").."/default_settings.lua") +if minetest.get_modpath("mcl_experience") then + -- reserve some space for experience bar: + hb.settings.start_offset_left.y = hb.settings.start_offset_left.y - 20 + hb.settings.start_offset_right.y = hb.settings.start_offset_right.y - 20 +end local function player_exists(player) return player ~= nil and player:is_player() diff --git a/mods/HUD/mcl_experience/README.md b/mods/HUD/mcl_experience/README.md new file mode 100644 index 000000000..2ab0e1b6f --- /dev/null +++ b/mods/HUD/mcl_experience/README.md @@ -0,0 +1,6 @@ +-- eXPerience mod +-- This mod has adopted from oil_boi's Crafter-minetest +-- ( https://www.patreon.com/oil_boi ) by kay27@bk.ru +-- for MineClone 2 under GNU GENERAL PUBLIC LICENSE. +-- Copyright (c) Oil_boi, Wuzzy, kay27, +-- experience_orb texture by github.com/Gerold55 diff --git a/mods/HUD/mcl_experience/init.lua b/mods/HUD/mcl_experience/init.lua new file mode 100644 index 000000000..7c291b7b8 --- /dev/null +++ b/mods/HUD/mcl_experience/init.lua @@ -0,0 +1,547 @@ +local S = minetest.get_translator("mcl_experience") +mcl_experience = {} + +local +minetest,math,vector,os,pairs,type += +minetest,math,vector,os,pairs,type + +local storage = minetest.get_mod_storage() + +local registered_nodes +minetest.register_on_mods_loaded(function() + registered_nodes = minetest.registered_nodes +end) + +local pool = {} +-- loads data from mod storage +local name +local temp_pool +local load_data = function(player) + name = player:get_player_name() + pool[name] = {} + temp_pool = pool[name] + if storage:get_int(name.."xp_save") > 0 then + temp_pool.xp_level = storage:get_int(name.."xp_level") + temp_pool.xp_bar = storage:get_int(name.."xp_bar" ) + temp_pool.last_time= minetest.get_us_time()/1000000 + else + temp_pool.xp_level = 0 + temp_pool.xp_bar = 0 + temp_pool.last_time= minetest.get_us_time()/1000000 + end +end + +-- saves data to be utilized on next login +local name +local temp_pool +local save_data = function(name) + if type(name) ~= "string" and name:is_player() then + name = name:get_player_name() + end + temp_pool = pool[name] + + storage:set_int(name.."xp_level",temp_pool.xp_level) + storage:set_int(name.."xp_bar", temp_pool.xp_bar ) + + storage:set_int(name.."xp_save",1) + + pool[name] = nil +end + +-------hud manager +local minetest = minetest + +local player_huds = {} -- the list of players hud lists (3d array) +hud_manager = {} -- hud manager class + +-- terminate the player's list on leave +minetest.register_on_leaveplayer(function(player) + local name = player:get_player_name() + player_huds[name] = nil +end) + +-- create instance of new hud +hud_manager.add_hud = function(player,hud_name,def) + local name = player:get_player_name() + local local_hud = player:hud_add({ + hud_elem_type = def.hud_elem_type, + position = def.position, + text = def.text, + number = def.number, + direction = def.direction, + size = def.size, + offset = def.offset, + }) + -- create new 3d array here + -- depends.txt is not needed + -- with it here + if not player_huds[name] then + player_huds[name] = {} + end + + player_huds[name][hud_name] = local_hud +end + +-- delete instance of hud +hud_manager.remove_hud = function(player,hud_name) + local name = player:get_player_name() + if player_huds[name] and player_huds[name][hud_name] then + player:hud_remove(player_huds[name][hud_name]) + player_huds[name][hud_name] = nil + end +end + +-- change element of hud +hud_manager.change_hud = function(data) + local name = data.player:get_player_name() + if player_huds[name] and player_huds[name][data.hud_name] then + data.player:hud_change(player_huds[name][data.hud_name], data.element, data.data) + end +end + +-- gets if hud exists +hud_manager.hud_exists = function(player,hud_name) + local name = player:get_player_name() + if player_huds[name] and player_huds[name][hud_name] then + return(true) + else + return(false) + end +end +------------------- + +-- saves specific users data for when they relog +minetest.register_on_leaveplayer(function(player) + save_data(player) +end) + +-- is used for shutdowns to save all data +local save_all = function() + for name,_ in pairs(pool) do + save_data(name) + end +end + +-- save all data to mod storage on shutdown +minetest.register_on_shutdown(function() + save_all() +end) + + +local name +function mcl_experience.get_player_xp_level(player) + name = player:get_player_name() + return(pool[name].xp_level) +end + +local name +local temp_pool +function mcl_experience.set_player_xp_level(player,level) + name = player:get_player_name() + pool[name].xp_level = level + hud_manager.change_hud({ + player = player, + hud_name = "xp_level_fg", + element = "text", + data = tostring(level) + }) + hud_manager.change_hud({ + player = player, + hud_name = "xp_level_bg", + element = "text", + data = tostring(level) + }) +end + +minetest.hud_replace_builtin("health",{ + hud_elem_type = "statbar", + position = {x = 0.5, y = 1}, + text = "heart.png", + number = core.PLAYER_MAX_HP_DEFAULT, + direction = 0, + size = {x = 24, y = 24}, + offset = {x = (-10 * 24) - 25, y = -(48 + 24 + 38)}, +}) + +local name +local temp_pool +minetest.register_on_joinplayer(function(player) + + load_data(player) + + name = player:get_player_name() + temp_pool = pool[name] + + hud_manager.add_hud(player,"experience_bar_background",{ + hud_elem_type = "statbar", + position = {x=0.5, y=1}, + name = "experience bar background", + text = "experience_bar_background.png", + number = 36, + direction = 0, + offset = {x = (-8 * 28) - 29, y = -(48 + 24 + 16)}, + size = { x=28, y=28 }, + z_index = 0, + }) + + hud_manager.add_hud(player,"experience_bar",{ + hud_elem_type = "statbar", + position = {x=0.5, y=1}, + name = "experience bar", + text = "experience_bar.png", + number = temp_pool.xp_bar, + direction = 0, + offset = {x = (-8 * 28) - 29, y = -(48 + 24 + 16)}, + size = { x=28, y=28 }, + z_index = 0, + }) + + hud_manager.add_hud(player,"xp_level_bg",{ + hud_elem_type = "text", + position = {x=0.5, y=1}, + name = "xp_level_bg", + text = tostring(temp_pool.xp_level), + number = 0x000000, + offset = {x = 0, y = -(48 + 24 + 24)}, + z_index = 0, + }) + hud_manager.add_hud(player,"xp_level_fg",{ + hud_elem_type = "text", + position = {x=0.5, y=1}, + name = "xp_level_fg", + text = tostring(temp_pool.xp_level), + number = 0xFFFFFF, + offset = {x = -1, y = -(48 + 24 + 25)}, + z_index = 0, + }) +end) + + +local name +local temp_pool +local function level_up_experience(player) + name = player:get_player_name() + temp_pool = pool[name] + + temp_pool.xp_level = temp_pool.xp_level + 1 + + hud_manager.change_hud({ + player = player, + hud_name = "xp_level_fg", + element = "text", + data = tostring(temp_pool.xp_level) + }) + hud_manager.change_hud({ + player = player, + hud_name = "xp_level_bg", + element = "text", + data = tostring(temp_pool.xp_level) + }) +end + + +local name +local temp_pool +function mcl_experience.add_experience(player,experience) + name = player:get_player_name() + temp_pool = pool[name] + + temp_pool.xp_bar = temp_pool.xp_bar + experience + + if temp_pool.xp_bar > 36 then + if minetest.get_us_time()/1000000 - temp_pool.last_time > 0.04 then + minetest.sound_play("level_up",{gain=0.2,to_player = name}) + temp_pool.last_time = minetest.get_us_time()/1000000 + end + temp_pool.xp_bar = temp_pool.xp_bar - 36 + level_up_experience(player) + else + if minetest.get_us_time()/1000000 - temp_pool.last_time > 0.01 then + temp_pool.last_time = minetest.get_us_time()/1000000 + minetest.sound_play("experience",{gain=0.1,to_player = name,pitch=math.random(75,99)/100}) + end + end + hud_manager.change_hud({ + player = player, + hud_name = "experience_bar", + element = "number", + data = temp_pool.xp_bar + }) +end + +--reset player level +local name +local temp_pool +local xp_amount +minetest.register_on_dieplayer(function(player) + name = player:get_player_name() + temp_pool = pool[name] + xp_amount = temp_pool.xp_level + + temp_pool.xp_bar = 0 + temp_pool.xp_level = 0 + + + hud_manager.change_hud({ + player = player, + hud_name = "xp_level_fg", + element = "text", + data = tostring(temp_pool.xp_level) + }) + hud_manager.change_hud({ + player = player, + hud_name = "xp_level_bg", + element = "text", + data = tostring(temp_pool.xp_level) + }) + + hud_manager.change_hud({ + player = player, + hud_name = "experience_bar", + element = "number", + data = temp_pool.xp_bar + }) + + mcl_experience.throw_experience(player:get_pos(), xp_amount) +end) + + +local name +local collector, pos, pos2 +local direction, distance, player_velocity, goal +local currentvel, acceleration, multiplier, velocity +local node, vel, def +local is_moving, is_slippery, slippery, slip_factor +local size, data +local function xp_step(self, dtime) + --if item set to be collected then only execute go to player + if self.collected == true then + if not self.collector then + self.collected = false + return + end + collector = minetest.get_player_by_name(self.collector) + if collector and collector:get_hp() > 0 and vector.distance(self.object:get_pos(),collector:get_pos()) < 5 then + self.object:set_acceleration(vector.new(0,0,0)) + self.disable_physics(self) + --get the variables + pos = self.object:get_pos() + pos2 = collector:get_pos() + + player_velocity = collector:get_player_velocity() + + pos2.y = pos2.y + 0.8 + + direction = vector.direction(pos,pos2) + distance = vector.distance(pos2,pos) + multiplier = distance + if multiplier < 1 then + multiplier = 1 + end + goal = vector.multiply(direction,multiplier) + currentvel = self.object:get_velocity() + + if distance > 1 then + multiplier = 20 - distance + velocity = vector.multiply(direction,multiplier) + goal = velocity + acceleration = vector.new(goal.x-currentvel.x,goal.y-currentvel.y,goal.z-currentvel.z) + self.object:add_velocity(vector.add(acceleration,player_velocity)) + elseif distance < 0.4 then + mcl_experience.add_experience(collector,2) + self.object:remove() + end + return + else + self.collector = nil + self.enable_physics(self) + end + end + + + self.age = self.age + dtime + if self.age > 300 then + self.object:remove() + return + end + + pos = self.object:get_pos() + + if pos then + node = minetest.get_node_or_nil({ + x = pos.x, + y = pos.y -0.25, + z = pos.z + }) + else + return + end + + -- Remove nodes in 'ignore' + if node and node.name == "ignore" then + self.object:remove() + return + end + + if not self.physical_state then + return -- Don't do anything + end + + -- Slide on slippery nodes + vel = self.object:get_velocity() + def = node and registered_nodes[node.name] + is_moving = (def and not def.walkable) or + vel.x ~= 0 or vel.y ~= 0 or vel.z ~= 0 + is_slippery = false + + if def and def.walkable then + slippery = minetest.get_item_group(node.name, "slippery") + is_slippery = slippery ~= 0 + if is_slippery and (math.abs(vel.x) > 0.2 or math.abs(vel.z) > 0.2) then + -- Horizontal deceleration + slip_factor = 4.0 / (slippery + 4) + self.object:set_acceleration({ + x = -vel.x * slip_factor, + y = 0, + z = -vel.z * slip_factor + }) + elseif vel.y == 0 then + is_moving = false + end + end + + if self.moving_state == is_moving and self.slippery_state == is_slippery then + -- Do not update anything until the moving state changes + return + end + + self.moving_state = is_moving + self.slippery_state = is_slippery + + if is_moving then + self.object:set_acceleration({x = 0, y = -9.81, z = 0}) + else + self.object:set_acceleration({x = 0, y = 0, z = 0}) + self.object:set_velocity({x = 0, y = 0, z = 0}) + end +end + +minetest.register_entity("mcl_experience:orb", { + initial_properties = { + hp_max = 1, + physical = true, + collide_with_objects = false, + collisionbox = {-0.2, -0.2, -0.2, 0.2, 0.2, 0.2}, + visual = "sprite", + visual_size = {x = 0.4, y = 0.4}, + textures = {name="experience_orb.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.0}}, + spritediv = {x = 1, y = 14}, + initial_sprite_basepos = {x = 0, y = 0}, + is_visible = true, + pointable = false, + static_save = false, + }, + moving_state = true, + slippery_state = false, + physical_state = true, + -- Item expiry + age = 0, + -- Pushing item out of solid nodes + force_out = nil, + force_out_start = nil, + --Collection Variables + collectable = false, + try_timer = 0, + collected = false, + delete_timer = 0, + radius = 4, + + + on_activate = function(self, staticdata, dtime_s) + self.object:set_velocity(vector.new( + math.random(-2,2)*math.random(), + math.random(2,5), + math.random(-2,2)*math.random() + )) + self.object:set_armor_groups({immortal = 1}) + self.object:set_velocity({x = 0, y = 2, z = 0}) + self.object:set_acceleration({x = 0, y = -9.81, z = 0}) + size = math.random(20,36)/100 + self.object:set_properties({ + visual_size = {x = size, y = size}, + glow = 14, + }) + self.object:set_sprite({x=1,y=math.random(1,14)}, 14, 0.05, false) + end, + + enable_physics = function(self) + if not self.physical_state then + self.physical_state = true + self.object:set_properties({physical = true}) + self.object:set_velocity({x=0, y=0, z=0}) + self.object:set_acceleration({x=0, y=-9.81, z=0}) + end + end, + + disable_physics = function(self) + if self.physical_state then + self.physical_state = false + self.object:set_properties({physical = false}) + self.object:set_velocity({x=0, y=0, z=0}) + self.object:set_acceleration({x=0, y=0, z=0}) + end + end, + on_step = function(self, dtime) + xp_step(self, dtime) + end, +}) + + +minetest.register_chatcommand("xp", { + params = S("[] []"), + description = S("Gives [player ] [] XP"), + privs = {server=true}, + func = function(name, params) + local player, xp = nil, 1000 + local P, i = {}, 0 + for str in string.gmatch(params, "([^ ]+)") do + i = i + 1 + P[i] = str + end + if i > 2 then + return false, S("Error: Too many parameters!") + end + if i > 0 then + xp = tonumber(P[i]) + end + if i < 2 then + player = minetest.get_player_by_name(name) + end + if i == 2 then + player = minetest.get_player_by_name(P[1]) + end + if (not xp) or (xp < 1) then + return false, S("Error: Incorrect number of XP") + end + if not player then + return false, S("Error: Player not found") + end + local pos = player:get_pos() + pos.y = pos.y + 1.2 + mcl_experience.throw_experience(pos, xp) + end, +}) + +function mcl_experience.throw_experience(pos, amount) + for i = 1,amount do + object = minetest.add_entity(pos, "mcl_experience:orb") + if object then + object:set_velocity({ + x=math.random(-2,2)*math.random(), + y=math.random(2,5), + z=math.random(-2,2)*math.random() + }) + end + end +end diff --git a/mods/HUD/mcl_experience/locale/mcl_experience.ru.tr b/mods/HUD/mcl_experience/locale/mcl_experience.ru.tr new file mode 100644 index 000000000..b4c6e5aac --- /dev/null +++ b/mods/HUD/mcl_experience/locale/mcl_experience.ru.tr @@ -0,0 +1,5 @@ +[] []=[<игрок>] [] +Gives [player ] [] XP=Даёт [игроку <игрок>] [] +Error: Too many parameters!=Ошибка: слишком много параметров! +Error: Incorrect number of XP=Ошибка: Неправильное число XP +Error: Player not found=Ошибка: Игрок не найден diff --git a/mods/HUD/mcl_experience/locale/template.txt b/mods/HUD/mcl_experience/locale/template.txt new file mode 100644 index 000000000..5d2c67636 --- /dev/null +++ b/mods/HUD/mcl_experience/locale/template.txt @@ -0,0 +1,5 @@ +[] []= +Gives [player ] [] XP= +Error: Too many parameters!= +Error: Incorrect number of XP= +Error: Player not found= diff --git a/mods/HUD/mcl_experience/sounds/attributes.txt b/mods/HUD/mcl_experience/sounds/attributes.txt new file mode 100644 index 000000000..26200b934 --- /dev/null +++ b/mods/HUD/mcl_experience/sounds/attributes.txt @@ -0,0 +1,2 @@ + +experience/level_up - https://freesound.org/people/geraldfiebig/sounds/323123/ diff --git a/mods/HUD/mcl_experience/sounds/experience.ogg b/mods/HUD/mcl_experience/sounds/experience.ogg new file mode 100644 index 0000000000000000000000000000000000000000..ed050d739f2c1819955845fc3bae762c6bf9b02d GIT binary patch literal 24760 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
N?RsGdVUT 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 Ef42xXga7~l literal 0 HcmV?d00001 diff --git a/mods/HUD/mcl_experience/sounds/level_up.ogg b/mods/HUD/mcl_experience/sounds/level_up.ogg new file mode 100644 index 0000000000000000000000000000000000000000..9f0a9754bfff0bfe0c77698cc402dee48a5c1c75 GIT binary patch literal 43940 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 literal 0 HcmV?d00001 diff --git a/mods/HUD/mcl_experience/textures/attributes.txt b/mods/HUD/mcl_experience/textures/attributes.txt new file mode 100644 index 000000000..892455baa --- /dev/null +++ b/mods/HUD/mcl_experience/textures/attributes.txt @@ -0,0 +1 @@ +experience_orb - https://github.com/Gerold55/Experience-Mod/blob/master/textures/orb.png \ No newline at end of file diff --git a/mods/HUD/mcl_experience/textures/experience_bar.png b/mods/HUD/mcl_experience/textures/experience_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..d43a03d641f48a750d8971a6724f8d9f645df5ff GIT binary patch literal 3745 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 LNkvXXu0mjfx{v&= literal 0 HcmV?d00001 diff --git a/mods/HUD/mcl_experience/textures/experience_bar_background.png b/mods/HUD/mcl_experience/textures/experience_bar_background.png new file mode 100644 index 0000000000000000000000000000000000000000..0e6b5976316c4b41eb0fe7604bc3ab4eff6b5ee3 GIT binary patch literal 2861 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 LNkvXXu0mjf3w%`< literal 0 HcmV?d00001 diff --git a/mods/HUD/mcl_experience/textures/experience_orb.png b/mods/HUD/mcl_experience/textures/experience_orb.png new file mode 100644 index 0000000000000000000000000000000000000000..4d553833cef97f17a5fc353c1ca775a4e2c51140 GIT binary patch literal 891 zcmeAS@N?(olHy`uVBq!ia0y~yVBlw9V7SD=#=yWZwQSaI1_lPk;vjb?hIQv;UNSH+ zu%tWsIx;Y9?C1WI$jZRLz**oCSR|DNig)Whh9@ z%q!8$OD$0_(KFOD`|HQ~f`NhQji-xaNQU#M?hl&zKRfDIR%vS4hbXzwz54y3k7sV&n{#_xarNdrzIWmu zfA4K)cB%QZHNqmngGXsWT-~o~&g=e`C;Ox-vkq-2Xi#>U$jHU_PW)%Gw$+aKBfEbe zJ;bQ=FN6KaK}P2!0miSN=9~3NuA5&pN!Ik!m6pVZ4DKCD%px*(^gr#MomyP5zhl0< zjf}#h?e6^SJe`g#S5Di{*L(O&Q~hS3vcIo{7+*n)hLOX;gMWXsRou2)4{}khb+Cnn z!x8`ewlW4PY=Qy$^||?)hrb5!9~yTN|&y{*g6-cfP) zTp%Bxgitfbis|+_uUTX4pQ>1AJz2?l_z+{CfGeAZ#g6zV;%~LD9Q>=aFK74D2MmJi zZ!s1Y9GD>C;;{G6uD|`K3jR)+{AR_(=sTUk_#R@_*eV*=h5lk?07Ei&);(B zR@v!;j7oZM8!Vu~6?fYrZAsm!sFEuuf`!{!nPn8a{`_Iuoiw4Y?&9x1X*=SN+?%O< zm{IB5xkyQ<+m`P$?9)JVSp9v5z41FG--&Ph{@V(qyzXW?)P{M#;!9o7LrdxVI@VN> z;h`&d*gJ0Q{x|hugQ8(aLsjLgSC0i#-Ft0J6C*4R2rfFoz{>vp`U#CMWyT<5`2yOQ z+m0wOy?VOxqs<~TuhvbhHa9fBqo4HtTV@-x%bUA9&O!snru6oo4)oyv&U>Nyiu&Qd zO5fy+P8BqC>^(l)2pVJlwlQT`+$`5|wqSq9UiU&{8HJ?xiVt|8Ng}vEK|Zhy5rRAc f1%KY(pH{#BeWK5qa;|+03=9mOu6{1-oD!M 3 then enchants_available = 3 end + local stock_name = minetest.registered_tools[stack:get_name()].name + local description = minetest.registered_tools[stack:get_name()].description + for i = 1,enchants_available do + local new_enchant = enchantment_list[math.random(1,table.getn(enchantment_list))] + local level = math.random(1,max_enchant_level) + if meta:get_int(new_enchant) == 0 then + player_level = player_level - 5 + meta:set_int(new_enchant, level) + description = description.."\n"..new_enchant:gsub("^%l", string.upper)..": "..tostring(level) + if new_enchant == "swiftness" then + for index,table in pairs(groupcaps) do + for index2,time in pairs(table.times) do + tool_caps["groupcaps"][index]["times"][index2] = time/(level+1) + end + end + end + if new_enchant == "durable" then + for index,table in pairs(groupcaps) do + tool_caps["groupcaps"][index]["uses"] = table.uses*(level+1) + end + end + + if new_enchant == "sharpness" then + for index,data in pairs(tool_caps.damage_groups) do + tool_caps.damage_groups[index] = data*(level+1) + end + end + end + end + + meta:set_string("description", S("Enchanted @1", description)) + meta:set_string("enchanted", "true") + meta:set_tool_capabilities(tool_caps) + + mcl_experience.set_player_xp_level(clicker,player_level) + + + --create truly random hex + local colorstring = "#" + for i = 1,6 do + colorstring = colorstring..hexer[math.random(1,16)] + end + stack = minetest.itemstring_with_color(stack, colorstring) + clicker:set_wielded_item(stack) + end,clicker) + end +}) + +minetest.register_craft({ + output = "mcl_tools:enchantingtable", + recipe = { + {"mcl_core:obsidian", "mcl_core:obsidian", "mcl_core:obsidian"}, + {"mcl_core:obsidian", "mcl_core:diamond", "mcl_core:obsidian"}, + {"mcl_core:obsidian", "mcl_core:obsidian", "mcl_core:obsidian"}, + }, +}) diff --git a/mods/ITEMS/mcl_tools/init.lua b/mods/ITEMS/mcl_tools/init.lua index f88ea8fa1..f0cea989a 100644 --- a/mods/ITEMS/mcl_tools/init.lua +++ b/mods/ITEMS/mcl_tools/init.lua @@ -592,3 +592,4 @@ minetest.register_tool("mcl_tools:shears", { dofile(minetest.get_modpath("mcl_tools").."/crafting.lua") dofile(minetest.get_modpath("mcl_tools").."/aliases.lua") +dofile(minetest.get_modpath("mcl_tools").."/enchanting.lua") diff --git a/mods/ITEMS/mcl_tools/locale/mcl_tools.de.tr b/mods/ITEMS/mcl_tools/locale/mcl_tools.de.tr index 6c061dd00..96bf565f7 100644 --- a/mods/ITEMS/mcl_tools/locale/mcl_tools.de.tr +++ b/mods/ITEMS/mcl_tools/locale/mcl_tools.de.tr @@ -30,3 +30,5 @@ Iron Sword=Eisenschwert Golden Sword=Goldschwert Diamond Sword=Diamantschwert Shears=Schere +Enchanted @1= +Enchanting Table= diff --git a/mods/ITEMS/mcl_tools/locale/mcl_tools.es.tr b/mods/ITEMS/mcl_tools/locale/mcl_tools.es.tr index 40b1d709b..da16cbd29 100644 --- a/mods/ITEMS/mcl_tools/locale/mcl_tools.es.tr +++ b/mods/ITEMS/mcl_tools/locale/mcl_tools.es.tr @@ -30,3 +30,5 @@ Iron Sword=Espada de hierro Golden Sword=Espada de oro Diamond Sword=Espada de diamante Shears=Tijeras +Enchanted @1= +Enchanting Table= diff --git a/mods/ITEMS/mcl_tools/locale/mcl_tools.fr.tr b/mods/ITEMS/mcl_tools/locale/mcl_tools.fr.tr index 02cd7f2bd..f5fb7a948 100644 --- a/mods/ITEMS/mcl_tools/locale/mcl_tools.fr.tr +++ b/mods/ITEMS/mcl_tools/locale/mcl_tools.fr.tr @@ -30,3 +30,5 @@ Iron Sword=Épée en Fer Golden Sword=Épée en Or Diamond Sword=Épée en Diamant Shears=Cisailles +Enchanted @1= +Enchanting Table= diff --git a/mods/ITEMS/mcl_tools/locale/mcl_tools.ru.tr b/mods/ITEMS/mcl_tools/locale/mcl_tools.ru.tr index e82fa15ef..4eb721d6c 100644 --- a/mods/ITEMS/mcl_tools/locale/mcl_tools.ru.tr +++ b/mods/ITEMS/mcl_tools/locale/mcl_tools.ru.tr @@ -30,3 +30,5 @@ Iron Sword=Железный меч Golden Sword=Золотой меч Diamond Sword=Алмазный меч Shears=Ножницы +Enchanted @1=@1 зачарованный(ая) +Enchanting Table=Волшебный стол diff --git a/mods/ITEMS/mcl_tools/locale/template.txt b/mods/ITEMS/mcl_tools/locale/template.txt index ecb94105f..e08381324 100644 --- a/mods/ITEMS/mcl_tools/locale/template.txt +++ b/mods/ITEMS/mcl_tools/locale/template.txt @@ -30,3 +30,5 @@ Iron Sword= Golden Sword= Diamond Sword= Shears= +Enchanted @1= +Enchanting Table=