forked from mtcontrib/3d_armor
Compare commits
3 Commits
19b8ea4028
...
armor-dama
Author | SHA1 | Date | |
---|---|---|---|
fed2087238 | |||
dfa19cce98 | |||
1d8509e75b |
6
.github/workflows/reference.yml
vendored
6
.github/workflows/reference.yml
vendored
@ -11,15 +11,15 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
- name: Setup Lua
|
||||
uses: leafo/gh-actions-lua@v8
|
||||
uses: leafo/gh-actions-lua@v10.0.0
|
||||
with:
|
||||
luaVersion: 5.4
|
||||
- name: Setup Lua Rocks
|
||||
uses: leafo/gh-actions-luarocks@v4
|
||||
- name: Setup LDoc dependencies
|
||||
run: luarocks install --only-deps https://raw.githubusercontent.com/lunarmodules/LDoc/master/ldoc-scm-3.rockspec
|
||||
run: luarocks install --only-deps https://raw.githubusercontent.com/lunarmodules/ldoc/master/rockspecs/ldoc-1.5.0-1.rockspec
|
||||
- name: Setup LDoc
|
||||
run: git clone --single-branch --branch=custom https://github.com/AntumDeluge/ldoc.git .ldoc/ldoc && chmod +x .ldoc/ldoc/ldoc.lua
|
||||
- name: Generate docs
|
||||
|
@ -631,6 +631,9 @@ end
|
||||
armor.damage = function(self, player, index, stack, use)
|
||||
local old_stack = ItemStack(stack)
|
||||
local worn_armor = armor:get_weared_armor_elements(player)
|
||||
if not worn_armor then
|
||||
return
|
||||
end
|
||||
local armor_worn_cnt = 0
|
||||
for k,v in pairs(worn_armor) do
|
||||
armor_worn_cnt = armor_worn_cnt + 1
|
||||
@ -681,6 +684,10 @@ armor.equip = function(self, player, itemstack)
|
||||
for i=1, armor_inv:get_size("armor") do
|
||||
local stack = armor_inv:get_stack("armor", i)
|
||||
if self:get_element(stack:get_name()) == armor_element then
|
||||
--prevents equiping an armor that would unequip a cursed armor.
|
||||
if minetest.get_item_group(stack:get_name(), "cursed") ~= 0 then
|
||||
return itemstack
|
||||
end
|
||||
index = i
|
||||
self:unequip(player, armor_element)
|
||||
break
|
||||
|
@ -224,6 +224,11 @@ local function init_player_armor(initplayer)
|
||||
if player:get_player_name() ~= name then
|
||||
return 0
|
||||
end
|
||||
--cursed items cannot be unequiped by the player
|
||||
local is_cursed = minetest.get_item_group(stack:get_name(), "cursed") ~= 0
|
||||
if not minetest.is_creative_enabled(player) and is_cursed then
|
||||
return 0
|
||||
end
|
||||
return stack:get_count()
|
||||
end,
|
||||
allow_move = function(inv, from_list, from_index, to_list, to_index, count, player)
|
||||
@ -355,9 +360,12 @@ if armor.config.drop == true or armor.config.destroy == true then
|
||||
for i=1, armor_inv:get_size("armor") do
|
||||
local stack = armor_inv:get_stack("armor", i)
|
||||
if stack:get_count() > 0 then
|
||||
table.insert(drop, stack)
|
||||
armor:run_callbacks("on_unequip", player, i, stack)
|
||||
armor_inv:set_stack("armor", i, nil)
|
||||
--soulbound armors remain equipped after death
|
||||
if minetest.get_item_group(stack:get_name(), "soulbound") == 0 then
|
||||
table.insert(drop, stack)
|
||||
armor:run_callbacks("on_unequip", player, i, stack)
|
||||
armor_inv:set_stack("armor", i, nil)
|
||||
end
|
||||
end
|
||||
end
|
||||
armor:save_armor_inventory(player)
|
||||
@ -393,8 +401,8 @@ if armor.config.drop == true or armor.config.destroy == true then
|
||||
end)
|
||||
end
|
||||
end)
|
||||
else -- reset un-dropped armor and it's effects
|
||||
minetest.register_on_respawnplayer(function(player)
|
||||
-- reset un-dropped armor and it's effects
|
||||
armor:set_player_armor(player)
|
||||
end)
|
||||
end
|
||||
|
Reference in New Issue
Block a user