Compare commits

..

8 Commits

10 changed files with 60 additions and 27 deletions

15
.gitattributes vendored Normal file
View File

@ -0,0 +1,15 @@
# Creating an archive
.* export-ignore
assets export-ignore
scripts export-ignore
bin export-ignore
docs export-ignore
types export-ignore
*.zip export-ignore
bitbucket-pipelines.yml export-ignore
package.json export-ignore
package-lock.json export-ignore
screenshot*.png export-ignore
i18n.py export-ignore
config.ld export-ignore

View File

@ -1,7 +1,7 @@
GNU LESSER GENERAL PUBLIC LICENSE GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999 Version 2.1, February 1999
Copyright (C) 2022 SaKeL <juraj.vajda@gmail.com> Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
Everyone is permitted to copy and distribute verbatim copies Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed. of this license document, but changing it is not allowed.

View File

@ -178,6 +178,7 @@ end
## Optional Dependencies ## Optional Dependencies
- xdecor (adjusts conflicting recipe) - xdecor (adjusts conflicting recipe)
- item_drop (make sure fortune will execute before item_drop mod overrides `handle_node_drops`)
## License: ## License:

23
api.lua
View File

@ -1,6 +1,6 @@
--[[ --[[
X Enchanting. Adds Enchanting Mechanics and API. X Enchanting. Adds Enchanting Mechanics and API.
Copyright (C) 2022 SaKeL <juraj.vajda@gmail.com> Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
This library is free software; you can redistribute it and/or This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public modify it under the terms of the GNU Lesser General Public
@ -306,6 +306,17 @@ local function get_table_length(table)
return length return length
end end
---Find element v of t satisfying f(v)
local function tableFind(t, f)
for _, v in ipairs(t) do
if f(v) then
return v
end
end
return nil
end
---@diagnostic disable-next-line: unused-local ---@diagnostic disable-next-line: unused-local
function XEnchanting.has_tool_group(self, name) function XEnchanting.has_tool_group(self, name)
if minetest.get_item_group(name, 'pickaxe') > 0 then if minetest.get_item_group(name, 'pickaxe') > 0 then
@ -767,11 +778,17 @@ function XEnchanting.get_enchantment_data(self, player, nr_of_bookshelfs, tool_d
table.remove(possible_enchantments, idx) table.remove(possible_enchantments, idx)
end end
end end
else else
local probability = (probability_level + 1) / 50 local probability = (probability_level + 1) / 50
table.insert(final_enchantments, rand_ench) local alreadyInTable = tableFind(final_enchantments, function(value)
return value.id == rand_ench.id
end)
if not alreadyInTable then
table.insert(final_enchantments, rand_ench)
end
table.remove(possible_enchantments, rand_ench_idx) table.remove(possible_enchantments, rand_ench_idx)
for idx, value in pairs(possible_enchantments) do for idx, value in pairs(possible_enchantments) do

View File

@ -43,24 +43,24 @@ pipelines:
- nvm install v17.2.0 - nvm install v17.2.0
- npm i -g npm@8 - npm i -g npm@8
- npm ci - npm ci
- parallel: # - parallel:
- step: - step:
name: Lua Check name: Lua Check
script: script:
- apt-get update - apt-get update
- apt-get -y install lua5.1 - apt-get -y install lua5.1
- apt-get -y install luarocks - apt-get -y install luarocks
- luarocks install luacheck - luarocks install luacheck
- luacheck . - luacheck .
- step: # - step:
name: Lua Diagnostics # name: Lua Diagnostics
caches: # caches:
- node-modules # - node-modules
- npm # - npm
- nvm # - nvm
script: # script:
- nvm use v17.2.0 # - nvm use v17.2.0
- npm run lua-diagnostics # - npm run lua-diagnostics
- step: - step:
name: Deploy to ContentDB name: Deploy to ContentDB
caches: caches:

View File

@ -1,6 +1,6 @@
--[[ --[[
X Enchanting. Adds Enchanting Mechanics and API. X Enchanting. Adds Enchanting Mechanics and API.
Copyright (C) 2022 SaKeL <juraj.vajda@gmail.com> Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
This library is free software; you can redistribute it and/or This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public modify it under the terms of the GNU Lesser General Public

View File

@ -1,6 +1,6 @@
name = x_enchanting name = x_enchanting
description = Adds Enchanting Mechanics and API. description = Adds Enchanting Mechanics and API.
depends = depends =
optional_depends = xdecor optional_depends = xdecor, item_drop
supported_games = minetest_game supported_games = minetest_game
min_minetest_version = 5.4 min_minetest_version = 5.4

View File

@ -1,6 +1,6 @@
/** /**
* Deploy code to CDB * Deploy code to CDB
* Copyright (C) 2022 SaKeL <juraj.vajda@gmail.com> * Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public

View File

@ -1,6 +1,6 @@
/** /**
* Run LUA diagnostics in continuous integration * Run LUA diagnostics in continuous integration
* Copyright (C) 2022 SaKeL <juraj.vajda@gmail.com> * Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public

View File

@ -1,6 +1,6 @@
--[[ --[[
X Enchanting. Adds Enchanting Mechanics and API. X Enchanting. Adds Enchanting Mechanics and API.
Copyright (C) 2022 SaKeL <juraj.vajda@gmail.com> Copyright (C) 2023 SaKeL <juraj.vajda@gmail.com>
This library is free software; you can redistribute it and/or This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public modify it under the terms of the GNU Lesser General Public