mirror of
https://github.com/minetest-mods/3d_armor.git
synced 2025-12-31 14:15:18 +01:00
Compare commits
1 Commits
master
...
armor-dama
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fed2087238 |
@@ -48,7 +48,7 @@ done
|
|||||||
echo
|
echo
|
||||||
|
|
||||||
# generate new doc files
|
# generate new doc files
|
||||||
"${cmd_ldoc}" --unsafe_no_sandbox -c "${f_config}" -d "${d_export}" "${d_root}"; retval=$?
|
"${cmd_ldoc}" --UNSAFE_NO_SANDBOX -c "${f_config}" -d "${d_export}" "${d_root}"; retval=$?
|
||||||
|
|
||||||
# check exit status
|
# check exit status
|
||||||
if test ${retval} -ne 0; then
|
if test ${retval} -ne 0; then
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ read_globals = {
|
|||||||
"dump", "VoxelArea",
|
"dump", "VoxelArea",
|
||||||
|
|
||||||
-- deps
|
-- deps
|
||||||
"core",
|
|
||||||
"default",
|
"default",
|
||||||
"player_api",
|
"player_api",
|
||||||
"minetest",
|
"minetest",
|
||||||
|
|||||||
26
3d_armor/LICENSE.txt
Normal file
26
3d_armor/LICENSE.txt
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
[mod] 3d Armor [3d_armor]
|
||||||
|
=========================
|
||||||
|
|
||||||
|
License Source Code
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Copyright (C) 2012-2019 stujones11, Stuart Jones <stujones111@gmail.com>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License along
|
||||||
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
License Textures
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Copyright (C) 2017-2019 davidthecreator - CC-BY-SA 3.0
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
|-[Armor Configuration](#armor-configuration) |||- - [3d_Armor Item Storage](#3d_armor-item-storage)
|
|-[Armor Configuration](#armor-configuration) |||- - [3d_Armor Item Storage](#3d_armor-item-storage)
|
||||||
|- - [disable_specific_materials](#to-disable-individual-armor-materials) |||- - [Armor Registration](#armor-registration)
|
|- - [disable_specific_materials](#to-disable-individual-armor-materials) |||- - [Armor Registration](#armor-registration)
|
||||||
|- - [armor_init_delay](#initialization-glitches-when-a-player-first-joins) |||- - [Registering Armor Groups](#registering-armor-groups)
|
|- - [armor_init_delay](#initialization-glitches-when-a-player-first-joins) |||- - [Registering Armor Groups](#registering-armor-groups)
|
||||||
|- - [wieldview_update_time](#how-often-player-wield-items-are-updated) |||- - [Groups used by 3d_Armor](#groups-used-by-3d_armor)
|
|- - [armor_init_times](#number-of-initialization-attempts) |||- - [Groups used by 3d_Armor](#groups-used-by-3d_armor)
|
||||||
|- - [armor_bones_delay](#armor-not-in-bones-due-to-server-lag) |||- - - [Elements](#elements)
|
|- - [armor_bones_delay](#armor-not-in-bones-due-to-server-lag) |||- - - [Elements](#elements)
|
||||||
|- - [armor_update_time](#how-often-player-armor-items-are-updated) |||- - - [Attributes](#attributes)
|
|- - [armor_update_time](#how-often-player-armor-items-are-updated) |||- - - [Attributes](#attributes)
|
||||||
|- - [armor_drop](#drop-armor-when-a-player-dies) |||- - - [Physics](#physics)
|
|- - [armor_drop](#drop-armor-when-a-player-dies) |||- - - [Physics](#physics)
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
|- - [armor_fire_protect](#enable-fire-protection) |||- - - [armor:remove_all](#armor-remove_all)
|
|- - [armor_fire_protect](#enable-fire-protection) |||- - - [armor:remove_all](#armor-remove_all)
|
||||||
|- - [armor_punch_damage](#enable-punch-damage-effects) |||- - - [armor:equip](#armor-equip)
|
|- - [armor_punch_damage](#enable-punch-damage-effects) |||- - - [armor:equip](#armor-equip)
|
||||||
|- - [armor_migrate_old_inventory](#migration-of-old-armor-inventories) |||- - - [armor:unequip](#armor-unequip)
|
|- - [armor_migrate_old_inventory](#migration-of-old-armor-inventories) |||- - - [armor:unequip](#armor-unequip)
|
||||||
| |||- - - [armor:update_skin](#armor-update_skin)
|
|- - [wieldview_update_time](#how-often-player-wield-items-are-updated) |||- - - [armor:update_skin](#armor-update_skin)
|
||||||
|-[Credits](#credits) |||- - [Callbacks](#Callbacks)
|
|-[Credits](#credits) |||- - [Callbacks](#Callbacks)
|
||||||
| |||- - - [Item callbacks](#item-callbacks)
|
| |||- - - [Item callbacks](#item-callbacks)
|
||||||
| |||- - - [Global callbacks](#global-callbacks)
|
| |||- - - [Global callbacks](#global-callbacks)
|
||||||
@@ -60,6 +60,11 @@ Change the following default settings by going to Main Menu>>Settings(Tab)>>All
|
|||||||
|
|
||||||
armor_init_delay = 2
|
armor_init_delay = 2
|
||||||
|
|
||||||
|
### Number of initialization attempts
|
||||||
|
**Increase to prevent glitches - Use in conjunction with armor_init_delay if initialization problems persist.**
|
||||||
|
|
||||||
|
armor_init_times = 10
|
||||||
|
|
||||||
### Armor not in bones due to server lag
|
### Armor not in bones due to server lag
|
||||||
**Increase to help resolve**
|
**Increase to help resolve**
|
||||||
|
|
||||||
|
|||||||
@@ -108,16 +108,18 @@ local armor_textures = setmetatable({}, {
|
|||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
local armor_fields = {
|
armor = {
|
||||||
timer = 0,
|
timer = 0,
|
||||||
elements = {"head", "torso", "legs", "feet"},
|
elements = {"head", "torso", "legs", "feet"},
|
||||||
physics = {"jump", "speed", "gravity"},
|
physics = {"jump", "speed", "gravity"},
|
||||||
attributes = {"heal", "fire", "water", "feather"},
|
attributes = {"heal", "fire", "water", "feather"},
|
||||||
formspec = (
|
formspec = "image[2.5,0;2,4;armor_preview]"..
|
||||||
"image[2.5,0;2,4;armor_preview]" ..
|
default.gui_bg..
|
||||||
armor.add_formspec_list("current_player", "main", 0, 4.7, 8, 1) ..
|
default.gui_bg_img..
|
||||||
armor.add_formspec_list("current_player", "main", 0, 5.85, 8, 3, 8)
|
default.gui_slots..
|
||||||
),
|
default.get_hotbar_bg(0, 4.7)..
|
||||||
|
"list[current_player;main;0,4.7;8,1;]"..
|
||||||
|
"list[current_player;main;0,5.85;8,3;8]",
|
||||||
def = armor_def,
|
def = armor_def,
|
||||||
textures = armor_textures,
|
textures = armor_textures,
|
||||||
default_skin = "character",
|
default_skin = "character",
|
||||||
@@ -154,15 +156,13 @@ local armor_fields = {
|
|||||||
on_destroy = {},
|
on_destroy = {},
|
||||||
},
|
},
|
||||||
migrate_old_inventory = true,
|
migrate_old_inventory = true,
|
||||||
|
version = "0.4.13",
|
||||||
get_translator = S
|
get_translator = S
|
||||||
}
|
}
|
||||||
|
|
||||||
for k, v in pairs(armor_fields) do
|
|
||||||
armor[k] = v
|
|
||||||
end
|
|
||||||
|
|
||||||
armor.config = {
|
armor.config = {
|
||||||
init_delay = 2,
|
init_delay = 2,
|
||||||
|
init_times = 10,
|
||||||
bones_delay = 1,
|
bones_delay = 1,
|
||||||
update_time = 1,
|
update_time = 1,
|
||||||
drop = minetest.get_modpath("bones") ~= nil,
|
drop = minetest.get_modpath("bones") ~= nil,
|
||||||
@@ -353,7 +353,7 @@ armor.update_player_visuals = function(self, player)
|
|||||||
end
|
end
|
||||||
local name = player:get_player_name()
|
local name = player:get_player_name()
|
||||||
if self.textures[name] then
|
if self.textures[name] then
|
||||||
player_api.set_textures(player, {
|
default.player_set_textures(player, {
|
||||||
self.textures[name].skin,
|
self.textures[name].skin,
|
||||||
self.textures[name].armor,
|
self.textures[name].armor,
|
||||||
self.textures[name].wielditem,
|
self.textures[name].wielditem,
|
||||||
@@ -374,7 +374,7 @@ armor.set_player_armor = function(self, player)
|
|||||||
local state = 0
|
local state = 0
|
||||||
local count = 0
|
local count = 0
|
||||||
local preview = armor:get_preview(name)
|
local preview = armor:get_preview(name)
|
||||||
local texture = "blank.png"
|
local texture = "3d_armor_trans.png"
|
||||||
local physics = {}
|
local physics = {}
|
||||||
local attributes = {}
|
local attributes = {}
|
||||||
local levels = {}
|
local levels = {}
|
||||||
@@ -416,7 +416,7 @@ armor.set_player_armor = function(self, player)
|
|||||||
end
|
end
|
||||||
-- DEPRECATED, use armor_groups instead
|
-- DEPRECATED, use armor_groups instead
|
||||||
if def.groups["armor_radiation"] and levels["radiation"] then
|
if def.groups["armor_radiation"] and levels["radiation"] then
|
||||||
levels["radiation"] = levels["radiation"] + def.groups["armor_radiation"]
|
levels["radiation"] = def.groups["armor_radiation"]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
local item = stack:get_name()
|
local item = stack:get_name()
|
||||||
@@ -680,31 +680,26 @@ armor.equip = function(self, player, itemstack)
|
|||||||
local name, armor_inv = self:get_valid_player(player, "[equip]")
|
local name, armor_inv = self:get_valid_player(player, "[equip]")
|
||||||
local armor_element = self:get_element(itemstack:get_name())
|
local armor_element = self:get_element(itemstack:get_name())
|
||||||
if name and armor_element then
|
if name and armor_element then
|
||||||
local index, old_stack
|
local index
|
||||||
for i, stack in ipairs(armor_inv:get_list("armor")) do
|
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
|
if self:get_element(stack:get_name()) == armor_element then
|
||||||
-- prevents equiping an armor that would unequip a cursed armor.
|
--prevents equiping an armor that would unequip a cursed armor.
|
||||||
if minetest.get_item_group(stack:get_name(), "cursed") ~= 0 then
|
if minetest.get_item_group(stack:get_name(), "cursed") ~= 0 then
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
index = i
|
index = i
|
||||||
old_stack = stack
|
self:unequip(player, armor_element)
|
||||||
self:run_callbacks("on_unequip", player, i, stack)
|
|
||||||
break
|
break
|
||||||
elseif not index and stack:is_empty() then
|
elseif not index and stack:is_empty() then
|
||||||
index = i
|
index = i
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if not index then -- armor inventory is full with other armor elements
|
local stack = itemstack:take_item()
|
||||||
return itemstack
|
armor_inv:set_stack("armor", index, stack)
|
||||||
end
|
self:run_callbacks("on_equip", player, index, stack)
|
||||||
-- Swap the stack at 'index' with 'itemstack'
|
|
||||||
armor_inv:set_stack("armor", index, itemstack)
|
|
||||||
self:run_callbacks("on_equip", player, index, itemstack)
|
|
||||||
self:set_player_armor(player)
|
self:set_player_armor(player)
|
||||||
self:save_armor_inventory(player)
|
self:save_armor_inventory(player)
|
||||||
-- Remainder: the previous slot content
|
|
||||||
return old_stack or ItemStack()
|
|
||||||
end
|
end
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
@@ -725,14 +720,11 @@ armor.unequip = function(self, player, armor_element)
|
|||||||
if self:get_element(stack:get_name()) == armor_element then
|
if self:get_element(stack:get_name()) == armor_element then
|
||||||
armor_inv:set_stack("armor", i, "")
|
armor_inv:set_stack("armor", i, "")
|
||||||
minetest.after(0, function()
|
minetest.after(0, function()
|
||||||
local pplayer = minetest.get_player_by_name(name)
|
local inv = player:get_inventory()
|
||||||
if pplayer then -- player is still online
|
if inv:room_for_item("main", stack) then
|
||||||
local inv = pplayer:get_inventory()
|
inv:add_item("main", stack)
|
||||||
if inv:room_for_item("main", stack) then
|
else
|
||||||
inv:add_item("main", stack)
|
minetest.add_item(player:get_pos(), stack)
|
||||||
else
|
|
||||||
minetest.add_item(pplayer:get_pos(), stack)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
self:run_callbacks("on_unequip", player, i, stack)
|
self:run_callbacks("on_unequip", player, i, stack)
|
||||||
@@ -817,6 +809,9 @@ end
|
|||||||
-- @tparam[opt] bool listring Use `listring` formspec element (default: `false`).
|
-- @tparam[opt] bool listring Use `listring` formspec element (default: `false`).
|
||||||
-- @treturn string Formspec formatted string.
|
-- @treturn string Formspec formatted string.
|
||||||
armor.get_armor_formspec = function(self, name, listring)
|
armor.get_armor_formspec = function(self, name, listring)
|
||||||
|
if armor.def[name].init_time == 0 then
|
||||||
|
return "label[0,0;Armor not initialized!]"
|
||||||
|
end
|
||||||
local formspec = armor.formspec..
|
local formspec = armor.formspec..
|
||||||
"list[detached:"..name.."_armor;armor;0,0.5;2,3;]"
|
"list[detached:"..name.."_armor;armor;0,0.5;2,3;]"
|
||||||
if listring == true then
|
if listring == true then
|
||||||
|
|||||||
@@ -35,6 +35,10 @@ ARMOR_FIRE_NODES = {
|
|||||||
-- Increase this if you get initialization glitches when a player first joins.
|
-- Increase this if you get initialization glitches when a player first joins.
|
||||||
ARMOR_INIT_DELAY = 1
|
ARMOR_INIT_DELAY = 1
|
||||||
|
|
||||||
|
-- Number of initialization attempts.
|
||||||
|
-- Use in conjunction with ARMOR_INIT_DELAY if initialization problems persist.
|
||||||
|
ARMOR_INIT_TIMES = 1
|
||||||
|
|
||||||
-- Increase this if armor is not getting into bones due to server lag.
|
-- Increase this if armor is not getting into bones due to server lag.
|
||||||
ARMOR_BONES_DELAY = 1
|
ARMOR_BONES_DELAY = 1
|
||||||
|
|
||||||
|
|||||||
@@ -1,41 +0,0 @@
|
|||||||
-- 3d_armor defaults to support unknown games
|
|
||||||
local sounds = {
|
|
||||||
wood = {
|
|
||||||
footstep = { name = "armor_wood_walk", gain = 0.5 },
|
|
||||||
dig = { name = "armor_wood_dig", gain = 0.5 },
|
|
||||||
dug = { name = "armor_wood_walk", gain = 0.5 }
|
|
||||||
},
|
|
||||||
metal = {
|
|
||||||
dig = { name = "armor_metal_dig", gain = 0.5 },
|
|
||||||
dug = { name = "armor_metal_break", gain = 0.5 },
|
|
||||||
},
|
|
||||||
glass = {
|
|
||||||
dig = { name = "armor_glass_hit", gain = 0.5 },
|
|
||||||
dug = { name = "armor_glass_break", gain = 0.5 },
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
local formspec_list_template = "list[%s;%s;%f,%f;%f,%f;%s]"
|
|
||||||
-- Allow custom slot styling
|
|
||||||
armor.add_formspec_list = function(location, listname, x, y, w, h, offset)
|
|
||||||
return formspec_list_template:format(location, listname, x, y, w, h, tostring(offset) or "")
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
if core.get_modpath("default") then
|
|
||||||
sounds = {
|
|
||||||
wood = default.node_sound_wood_defaults(),
|
|
||||||
metal = default.node_sound_metal_defaults(),
|
|
||||||
glass = default.node_sound_glass_defaults(),
|
|
||||||
}
|
|
||||||
-- armor.add_formspec_list : use formspec prepends for styling
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
-- Sanity checks
|
|
||||||
for name, def in pairs(sounds) do
|
|
||||||
assert(type(def) == "table", "Incorrect registration of sound " .. name)
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
armor.sounds = sounds
|
|
||||||
@@ -1,18 +1,10 @@
|
|||||||
if not core.features.use_texture_alpha_string_modes then
|
|
||||||
error("3d_armor requires Luanti/Minetest 5.4.0 or newer. Please update.")
|
|
||||||
end
|
|
||||||
|
|
||||||
local modname = minetest.get_current_modname()
|
local modname = minetest.get_current_modname()
|
||||||
local modpath = minetest.get_modpath(modname)
|
local modpath = minetest.get_modpath(modname)
|
||||||
local worldpath = minetest.get_worldpath()
|
local worldpath = minetest.get_worldpath()
|
||||||
local last_punch_time = {}
|
local last_punch_time = {}
|
||||||
|
local pending_players = {}
|
||||||
local timer = 0
|
local timer = 0
|
||||||
|
|
||||||
armor = {
|
|
||||||
version = "0.4.13"
|
|
||||||
}
|
|
||||||
|
|
||||||
dofile(modpath.."/gamecompat.lua")
|
|
||||||
dofile(modpath.."/api.lua")
|
dofile(modpath.."/api.lua")
|
||||||
|
|
||||||
-- local functions
|
-- local functions
|
||||||
@@ -189,7 +181,11 @@ local function validate_armor_inventory(player)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local function init_player_armor(initplayer)
|
local function init_player_armor(initplayer)
|
||||||
local name = assert(initplayer:get_player_name())
|
local name = initplayer:get_player_name()
|
||||||
|
local pos = initplayer:get_pos()
|
||||||
|
if not name or not pos then
|
||||||
|
return false
|
||||||
|
end
|
||||||
local armor_inv = minetest.create_detached_inventory(name.."_armor", {
|
local armor_inv = minetest.create_detached_inventory(name.."_armor", {
|
||||||
on_put = function(inv, listname, index, stack, player)
|
on_put = function(inv, listname, index, stack, player)
|
||||||
validate_armor_inventory(player)
|
validate_armor_inventory(player)
|
||||||
@@ -260,6 +256,7 @@ local function init_player_armor(initplayer)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
armor.def[name] = {
|
armor.def[name] = {
|
||||||
|
init_time = minetest.get_gametime(),
|
||||||
level = 0,
|
level = 0,
|
||||||
state = 0,
|
state = 0,
|
||||||
count = 0,
|
count = 0,
|
||||||
@@ -277,8 +274,8 @@ local function init_player_armor(initplayer)
|
|||||||
local skin = armor:get_player_skin(name)
|
local skin = armor:get_player_skin(name)
|
||||||
armor.textures[name] = {
|
armor.textures[name] = {
|
||||||
skin = skin,
|
skin = skin,
|
||||||
armor = "blank.png",
|
armor = "3d_armor_trans.png",
|
||||||
wielditem = "blank.png",
|
wielditem = "3d_armor_trans.png",
|
||||||
preview = armor.default_skin.."_preview.png",
|
preview = armor.default_skin.."_preview.png",
|
||||||
}
|
}
|
||||||
local texture_path = minetest.get_modpath("player_textures")
|
local texture_path = minetest.get_modpath("player_textures")
|
||||||
@@ -292,6 +289,7 @@ local function init_player_armor(initplayer)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
armor:set_player_armor(initplayer)
|
armor:set_player_armor(initplayer)
|
||||||
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Armor Player Model
|
-- Armor Player Model
|
||||||
@@ -300,26 +298,21 @@ player_api.register_model("3d_armor_character.b3d", {
|
|||||||
animation_speed = 30,
|
animation_speed = 30,
|
||||||
textures = {
|
textures = {
|
||||||
armor.default_skin..".png",
|
armor.default_skin..".png",
|
||||||
"blank.png",
|
"3d_armor_trans.png",
|
||||||
"blank.png",
|
"3d_armor_trans.png",
|
||||||
},
|
},
|
||||||
animations = {
|
animations = {
|
||||||
stand = {x=0, y=79},
|
stand = {x=0, y=79},
|
||||||
lay = {x=162, y=166, eye_height = 0.3, override_local = true,
|
lay = {x=162, y=166},
|
||||||
collisionbox = {-0.6, 0.0, -0.6, 0.6, 0.3, 0.6}},
|
|
||||||
walk = {x=168, y=187},
|
walk = {x=168, y=187},
|
||||||
mine = {x=189, y=198},
|
mine = {x=189, y=198},
|
||||||
walk_mine = {x=200, y=219},
|
walk_mine = {x=200, y=219},
|
||||||
sit = {x=81, y=160, eye_height = 0.8, override_local = true,
|
sit = {x=81, y=160},
|
||||||
collisionbox = {-0.3, 0.0, -0.3, 0.3, 1.0, 0.3}},
|
|
||||||
-- compatibility w/ the emote mod
|
-- compatibility w/ the emote mod
|
||||||
wave = {x = 192, y = 196, override_local = true},
|
wave = {x = 192, y = 196, override_local = true},
|
||||||
point = {x = 196, y = 196, override_local = true},
|
point = {x = 196, y = 196, override_local = true},
|
||||||
freeze = {x = 205, y = 205, override_local = true},
|
freeze = {x = 205, y = 205, override_local = true},
|
||||||
},
|
},
|
||||||
collisionbox = {-0.3, 0.0, -0.3, 0.3, 1.7, 0.3},
|
|
||||||
-- stepheight: use default
|
|
||||||
eye_height = 1.47,
|
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_on_player_receive_fields(function(player, formname, fields)
|
minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||||
@@ -336,8 +329,16 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
minetest.register_on_joinplayer(function(player)
|
minetest.register_on_joinplayer(function(player)
|
||||||
player_api.set_model(player, "3d_armor_character.b3d")
|
default.player_set_model(player, "3d_armor_character.b3d")
|
||||||
init_player_armor(player)
|
local player_name = player:get_player_name()
|
||||||
|
|
||||||
|
minetest.after(0, function()
|
||||||
|
-- TODO: Added in 7566ecc - What's the prupose?
|
||||||
|
local pplayer = minetest.get_player_by_name(player_name)
|
||||||
|
if pplayer and init_player_armor(pplayer) == false then
|
||||||
|
pending_players[pplayer] = 0
|
||||||
|
end
|
||||||
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
minetest.register_on_leaveplayer(function(player)
|
minetest.register_on_leaveplayer(function(player)
|
||||||
@@ -346,6 +347,7 @@ minetest.register_on_leaveplayer(function(player)
|
|||||||
armor.def[name] = nil
|
armor.def[name] = nil
|
||||||
armor.textures[name] = nil
|
armor.textures[name] = nil
|
||||||
end
|
end
|
||||||
|
pending_players[player] = nil
|
||||||
end)
|
end)
|
||||||
|
|
||||||
if armor.config.drop == true or armor.config.destroy == true then
|
if armor.config.drop == true or armor.config.destroy == true then
|
||||||
@@ -409,14 +411,10 @@ if armor.config.punch_damage == true then
|
|||||||
minetest.register_on_punchplayer(function(player, hitter,
|
minetest.register_on_punchplayer(function(player, hitter,
|
||||||
time_from_last_punch, tool_capabilities)
|
time_from_last_punch, tool_capabilities)
|
||||||
local name = player:get_player_name()
|
local name = player:get_player_name()
|
||||||
if hitter then
|
local hit_ip = hitter:is_player()
|
||||||
local hit_ip = hitter:is_player()
|
if name and hit_ip and minetest.is_protected(player:get_pos(), "") then
|
||||||
if name and hit_ip and minetest.is_protected(player:get_pos(), "") then
|
return
|
||||||
return
|
elseif name then
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if name then
|
|
||||||
armor:punch(player, hitter, time_from_last_punch, tool_capabilities)
|
armor:punch(player, hitter, time_from_last_punch, tool_capabilities)
|
||||||
last_punch_time[name] = minetest.get_gametime()
|
last_punch_time[name] = minetest.get_gametime()
|
||||||
end
|
end
|
||||||
@@ -458,7 +456,7 @@ minetest.register_globalstep(function(dtime)
|
|||||||
local name = player:get_player_name()
|
local name = player:get_player_name()
|
||||||
if armor.def[name].feather > 0 then
|
if armor.def[name].feather > 0 then
|
||||||
local vel_y = player:get_velocity().y
|
local vel_y = player:get_velocity().y
|
||||||
if vel_y < -0.5 then
|
if vel_y < 0 and vel_y < 3 then
|
||||||
vel_y = -(vel_y * 0.05)
|
vel_y = -(vel_y * 0.05)
|
||||||
player:add_velocity({x = 0, y = vel_y, z = 0})
|
player:add_velocity({x = 0, y = vel_y, z = 0})
|
||||||
end
|
end
|
||||||
@@ -471,6 +469,18 @@ minetest.register_globalstep(function(dtime)
|
|||||||
end
|
end
|
||||||
timer = 0
|
timer = 0
|
||||||
|
|
||||||
|
for player, count in pairs(pending_players) do
|
||||||
|
local remove = init_player_armor(player) == true
|
||||||
|
pending_players[player] = count + 1
|
||||||
|
if remove == false and count > armor.config.init_times then
|
||||||
|
minetest.log("warning", "3d_armor: Failed to initialize player")
|
||||||
|
remove = true
|
||||||
|
end
|
||||||
|
if remove == true then
|
||||||
|
pending_players[player] = nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- water breathing protection, added by TenPlus1
|
-- water breathing protection, added by TenPlus1
|
||||||
if armor.config.water_protect == true then
|
if armor.config.water_protect == true then
|
||||||
for _,player in pairs(minetest.get_connected_players()) do
|
for _,player in pairs(minetest.get_connected_players()) do
|
||||||
@@ -485,12 +495,10 @@ end)
|
|||||||
|
|
||||||
if armor.config.fire_protect == true then
|
if armor.config.fire_protect == true then
|
||||||
|
|
||||||
if core.get_modpath("default") then
|
-- make torches hurt
|
||||||
-- make torches hurt
|
minetest.override_item("default:torch", {damage_per_second = 1})
|
||||||
minetest.override_item("default:torch", {damage_per_second = 1})
|
minetest.override_item("default:torch_wall", {damage_per_second = 1})
|
||||||
minetest.override_item("default:torch_wall", {damage_per_second = 1})
|
minetest.override_item("default:torch_ceiling", {damage_per_second = 1})
|
||||||
minetest.override_item("default:torch_ceiling", {damage_per_second = 1})
|
|
||||||
end
|
|
||||||
|
|
||||||
-- check player damage for any hot nodes we may be protected against
|
-- check player damage for any hot nodes we may be protected against
|
||||||
minetest.register_on_player_hpchange(function(player, hp_change, reason)
|
minetest.register_on_player_hpchange(function(player, hp_change, reason)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# textdomain: 3d_armor
|
# textdomain: 3d_armor
|
||||||
Radiation=Strahlung
|
Radiation=Strahlen
|
||||||
Level=Stufe
|
Level=Stufe
|
||||||
Heal=Heilung
|
Heal=Heilen
|
||||||
Fire=Feuer
|
Fire=Feuer
|
||||||
Your @1 is almost broken!=@1 ist fast kaputt!
|
Your @1 is almost broken!=Deine @1 ist fast kaputt!
|
||||||
Your @1 got destroyed!=@1 wurde zerstört!
|
Your @1 got destroyed!=Deine @1 wurde zerstört!
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# textdomain: 3d_armor
|
# textdomain: 3d_armor
|
||||||
Radiation=Radiado
|
Radiation=Radiado
|
||||||
Level=Nivelo
|
Level=Nivelo
|
||||||
Heal=Blokŝanco
|
Heal=Sanigi
|
||||||
Fire=Fajro
|
Fire=Fajro
|
||||||
Your @1 is almost broken!=Via @1 estas preskaŭ rompita!
|
Your @1 is almost broken!=Via @1 estas preskaŭ rompita!
|
||||||
Your @1 got destroyed!=Via @1 detruiĝis!
|
Your @1 got destroyed!=Via @1 detruiĝis!
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
# textdomain: 3d_armor
|
|
||||||
Radiation=Promieniowanie
|
|
||||||
Level=Poziom
|
|
||||||
Heal=Uzdrawianie
|
|
||||||
Fire=Ogień
|
|
||||||
Your @1 is almost broken!=Twój @1 jest prawie zepsuty!
|
|
||||||
Your @1 got destroyed!=Twój @1 został zniszczony!
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
# textdomain: 3d_armor
|
# textdomain: 3d_armor
|
||||||
Radiation=Излучение
|
Radiation=излучение
|
||||||
Level=Уровень
|
Level=уровень
|
||||||
Heal=Исцеление
|
Heal=исцеление
|
||||||
Fire=Пламя
|
Fire=огонь
|
||||||
Your @1 is almost broken!=Ваш предмет «@1» почти сломан!
|
Your @1 is almost broken!=
|
||||||
Your @1 got destroyed!=Ваш предмет «@1» был уничтожен!
|
Your @1 got destroyed!=твой(и) @1 был(и) разрушен(ы)!
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
# textdomain: 3d_armor
|
|
||||||
Radiation=Радіація
|
|
||||||
Level=Рівень
|
|
||||||
Heal=Зцілення
|
|
||||||
Fire=Вогонь
|
|
||||||
Your @1 is almost broken!=Ваш @1 майже зламаний!
|
|
||||||
Your @1 got destroyed!=Ваш(і) @1 був(ли) зламаний(і)!
|
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
name = 3d_armor
|
name = 3d_armor
|
||||||
depends = player_api
|
depends = default, player_api
|
||||||
optional_depends = default, player_monoids, armor_monoid, pova, moreores
|
optional_depends = player_monoids, armor_monoid, pova, moreores
|
||||||
description = Adds craftable armor that is visible to other players.
|
description = Adds craftable armor that is visible to other players.
|
||||||
min_minetest_version = 5.4
|
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
3d_armor/textures/3d_armor_trans.png
Normal file
BIN
3d_armor/textures/3d_armor_trans.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 274 B |
18
3d_armor_ip/LICENSE.txt
Normal file
18
3d_armor_ip/LICENSE.txt
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
[mod] 3d Armor integration to inventory plus [3d_armor_ip]
|
||||||
|
==========================================================
|
||||||
|
|
||||||
|
Copyright (C) 2012-2019 stujones11, Stuart Jones <stujones111@gmail.com>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License along
|
||||||
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
# textdomain: 3d_armor_ip
|
|
||||||
Back=Zurück
|
|
||||||
Armor=Rüstung
|
|
||||||
@@ -1,3 +1,3 @@
|
|||||||
# textdomain: 3d_armor_ip
|
# textdomain: 3d_armor_ip
|
||||||
Back=Dorso
|
Back=Dorso
|
||||||
Armor=Armaĵo
|
Armor=Kiraso
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
# textdomain: 3d_armor_ip
|
|
||||||
Back=Назад
|
|
||||||
Armor=Броня
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
# textdomain: 3d_armor_ip
|
|
||||||
Back=Назад
|
|
||||||
Armor=Броня
|
|
||||||
18
3d_armor_sfinv/LICENSE.txt
Normal file
18
3d_armor_sfinv/LICENSE.txt
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
[mod] 3d Armor sfinv integration [3d_armor_sfinv]
|
||||||
|
=================================================
|
||||||
|
|
||||||
|
Copyright (C) 2012-2019 stujones11, Stuart Jones <stujones111@gmail.com>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License along
|
||||||
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
@@ -15,7 +15,7 @@ sfinv.register_page("3d_armor:armor", {
|
|||||||
end
|
end
|
||||||
})
|
})
|
||||||
armor:register_on_update(function(player)
|
armor:register_on_update(function(player)
|
||||||
if sfinv.enabled and sfinv.get_page(player) == "3d_armor:armor" then
|
if sfinv.enabled then
|
||||||
sfinv.set_player_inventory_formspec(player)
|
sfinv.set_player_inventory_formspec(player)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
# textdomain: 3d_armor_sfinv
|
|
||||||
Armor=Rüstung
|
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
# textdomain: 3d_armor_sfinv
|
# textdomain: 3d_armor_sfinv
|
||||||
Armor=Armaĵoj
|
Armor=Kiraso
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
# textdomain: 3d_armor_sfinv
|
|
||||||
Armor=Броня
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
# textdomain: 3d_armor_sfinv
|
|
||||||
Armor=Броня
|
|
||||||
43
3d_armor_stand/LICENSE.txt
Normal file
43
3d_armor_stand/LICENSE.txt
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
[mod] 3d Armor Stand [3d_armor_stand]
|
||||||
|
=====================================
|
||||||
|
|
||||||
|
License Source Code
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Copyright (C) 2012-2019 stujones11, Stuart Jones <stujones111@gmail.com>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License along
|
||||||
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
Lecense Models
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Copyright (C) 2016-2019 Stuart Jones - CC BY-SA 3.0
|
||||||
|
|
||||||
|
UV model mapping by tobyplowy(aka toby109tt)
|
||||||
|
|
||||||
|
License Textures
|
||||||
|
----------------
|
||||||
|
|
||||||
|
3d_armor_stand.png
|
||||||
|
3d_armor_stand_locked.png
|
||||||
|
|
||||||
|
Copyright (C) 2017-2019 tobyplowy - CC BY-SA 3.0
|
||||||
|
|
||||||
|
3d_armor_stand_feet.png
|
||||||
|
3d_armor_stand_head.png
|
||||||
|
3d_armor_stand_legs.png
|
||||||
|
3d_armor_stand_torso.png
|
||||||
|
|
||||||
|
Copyright (C) 2016-2019 Stuart Jones - CC BY-SA 3.0
|
||||||
@@ -2,27 +2,31 @@
|
|||||||
local S = minetest.get_translator(minetest.get_current_modname())
|
local S = minetest.get_translator(minetest.get_current_modname())
|
||||||
|
|
||||||
local armor_stand_formspec = "size[8,7]" ..
|
local armor_stand_formspec = "size[8,7]" ..
|
||||||
armor.add_formspec_list("current_name", "main", 3, 0.5, 2, 1) ..
|
default.gui_bg ..
|
||||||
armor.add_formspec_list("current_name", "main", 3, 1.5, 2, 1, 2) ..
|
default.gui_bg_img ..
|
||||||
|
default.gui_slots ..
|
||||||
|
default.get_hotbar_bg(0,3) ..
|
||||||
|
"list[current_name;armor_head;3,0.5;1,1;]" ..
|
||||||
|
"list[current_name;armor_torso;4,0.5;1,1;]" ..
|
||||||
|
"list[current_name;armor_legs;3,1.5;1,1;]" ..
|
||||||
|
"list[current_name;armor_feet;4,1.5;1,1;]" ..
|
||||||
"image[3,0.5;1,1;3d_armor_stand_head.png]" ..
|
"image[3,0.5;1,1;3d_armor_stand_head.png]" ..
|
||||||
"image[4,0.5;1,1;3d_armor_stand_torso.png]" ..
|
"image[4,0.5;1,1;3d_armor_stand_torso.png]" ..
|
||||||
"image[3,1.5;1,1;3d_armor_stand_legs.png]" ..
|
"image[3,1.5;1,1;3d_armor_stand_legs.png]" ..
|
||||||
"image[4,1.5;1,1;3d_armor_stand_feet.png]" ..
|
"image[4,1.5;1,1;3d_armor_stand_feet.png]" ..
|
||||||
"list[current_player;main;0,3;8,1;]" ..
|
"list[current_player;main;0,3;8,1;]" ..
|
||||||
"list[current_player;main;0,4.25;8,3;8]" ..
|
"list[current_player;main;0,4.25;8,3;8]"
|
||||||
"listring[current_name;main]" ..
|
|
||||||
"listring[current_player;main]"
|
|
||||||
|
|
||||||
local elements = {"head", "torso", "legs", "feet"}
|
local elements = {"head", "torso", "legs", "feet"}
|
||||||
|
|
||||||
local function drop_armor(pos)
|
local function drop_armor(pos)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
for i = 1, 4 do
|
for _, element in pairs(elements) do
|
||||||
local stack = inv:get_stack("main", i)
|
local stack = inv:get_stack("armor_"..element, 1)
|
||||||
if stack and stack:get_count() > 0 then
|
if stack and stack:get_count() > 0 then
|
||||||
armor.drop_armor(pos, stack)
|
armor.drop_armor(pos, stack)
|
||||||
inv:set_stack("main", i, nil)
|
inv:set_stack("armor_"..element, 1, nil)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -58,14 +62,14 @@ local function update_entity(pos)
|
|||||||
object = minetest.add_entity(pos, "3d_armor_stand:armor_entity")
|
object = minetest.add_entity(pos, "3d_armor_stand:armor_entity")
|
||||||
end
|
end
|
||||||
if object then
|
if object then
|
||||||
local texture = "blank.png"
|
local texture = "3d_armor_trans.png"
|
||||||
local textures = {}
|
local textures = {}
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
local yaw = 0
|
local yaw = 0
|
||||||
if inv then
|
if inv then
|
||||||
for i, element in ipairs(elements) do
|
for _, element in pairs(elements) do
|
||||||
local stack = inv:get_stack("main", i)
|
local stack = inv:get_stack("armor_"..element, 1)
|
||||||
if stack:get_count() == 1 then
|
if stack:get_count() == 1 then
|
||||||
local item = stack:get_name() or ""
|
local item = stack:get_name() or ""
|
||||||
local def = stack:get_definition() or {}
|
local def = stack:get_definition() or {}
|
||||||
@@ -140,168 +144,182 @@ minetest.register_node("3d_armor_stand:top", {
|
|||||||
buildable_to = false,
|
buildable_to = false,
|
||||||
drop = "",
|
drop = "",
|
||||||
groups = {not_in_creative_inventory = 1},
|
groups = {not_in_creative_inventory = 1},
|
||||||
is_ground_content = false,
|
|
||||||
on_blast = function() end,
|
on_blast = function() end,
|
||||||
tiles = {"blank.png"},
|
tiles = {"3d_armor_trans.png"},
|
||||||
})
|
})
|
||||||
|
|
||||||
local function register_armor_stand(def)
|
minetest.register_node("3d_armor_stand:armor_stand", {
|
||||||
local function owns_armor_stand(pos, meta, player)
|
description = S("Armor Stand"),
|
||||||
if def.name == "locked_armor_stand" and not has_locked_armor_stand_privilege(meta, player) then
|
drawtype = "mesh",
|
||||||
return false
|
mesh = "3d_armor_stand.obj",
|
||||||
end
|
tiles = {"3d_armor_stand.png"},
|
||||||
local has_access = minetest.is_player(player) and not minetest.is_protected(pos, player:get_player_name())
|
use_texture_alpha = "clip",
|
||||||
if def.name == "shared_armor_stand" and not has_access then
|
paramtype = "light",
|
||||||
return false
|
paramtype2 = "facedir",
|
||||||
end
|
walkable = false,
|
||||||
return true
|
selection_box = {
|
||||||
end
|
type = "fixed",
|
||||||
|
fixed = {
|
||||||
minetest.register_node("3d_armor_stand:" .. def.name, {
|
{-0.25, -0.4375, -0.25, 0.25, 1.4, 0.25},
|
||||||
description = def.description,
|
{-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5},
|
||||||
drawtype = "mesh",
|
|
||||||
mesh = "3d_armor_stand.obj",
|
|
||||||
tiles = {def.texture},
|
|
||||||
use_texture_alpha = "clip",
|
|
||||||
paramtype = "light",
|
|
||||||
paramtype2 = "facedir",
|
|
||||||
walkable = false,
|
|
||||||
selection_box = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {
|
|
||||||
{-0.25, -0.4375, -0.25, 0.25, 1.4, 0.25},
|
|
||||||
{-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5},
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
groups = {choppy=2, oddly_breakable_by_hand=2},
|
},
|
||||||
is_ground_content = false,
|
groups = {choppy=2, oddly_breakable_by_hand=2},
|
||||||
sounds = armor.sounds.wood,
|
sounds = default.node_sound_wood_defaults(),
|
||||||
on_construct = function(pos)
|
on_construct = function(pos)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
meta:set_string("formspec", armor_stand_formspec)
|
meta:set_string("formspec", armor_stand_formspec)
|
||||||
meta:set_string("infotext", def.description)
|
meta:set_string("infotext", S("Armor Stand"))
|
||||||
if def.name == "locked_armor_stand" then
|
local inv = meta:get_inventory()
|
||||||
meta:set_string("owner", "")
|
for _, element in pairs(elements) do
|
||||||
end
|
inv:set_size("armor_"..element, 1)
|
||||||
local inv = meta:get_inventory()
|
end
|
||||||
inv:set_size("main", 4)
|
end,
|
||||||
end,
|
can_dig = function(pos, player)
|
||||||
can_dig = function(pos, player)
|
local meta = minetest.get_meta(pos)
|
||||||
local meta = minetest.get_meta(pos)
|
local inv = meta:get_inventory()
|
||||||
local inv = meta:get_inventory()
|
for _, element in pairs(elements) do
|
||||||
if not inv:is_empty("main") then
|
if not inv:is_empty("armor_"..element) then
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
return true
|
end
|
||||||
end,
|
return true
|
||||||
after_place_node = function(pos, placer)
|
end,
|
||||||
local meta = minetest.get_meta(pos)
|
after_place_node = function(pos, placer)
|
||||||
minetest.add_entity(pos, "3d_armor_stand:armor_entity")
|
minetest.add_entity(pos, "3d_armor_stand:armor_entity")
|
||||||
if def.name == "locked_armor_stand" then
|
add_hidden_node(pos, placer)
|
||||||
meta:set_string("owner", placer:get_player_name() or "")
|
end,
|
||||||
meta:set_string("infotext", S("Armor Stand (owned by @1)", meta:get_string("owner")))
|
allow_metadata_inventory_put = function(pos, listname, index, stack)
|
||||||
elseif def.name == "shared_armor_stand" then
|
local def = stack:get_definition() or {}
|
||||||
meta:set_string("infotext", def.description)
|
local groups = def.groups or {}
|
||||||
end
|
if groups[listname] then
|
||||||
add_hidden_node(pos, placer)
|
|
||||||
end,
|
|
||||||
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
|
|
||||||
local meta = minetest.get_meta(pos)
|
|
||||||
if not owns_armor_stand(pos, meta, player) then
|
|
||||||
return 0
|
|
||||||
end
|
|
||||||
local inv = meta:get_inventory()
|
|
||||||
local stack_def = stack:get_definition() or {}
|
|
||||||
local groups = stack_def.groups or {}
|
|
||||||
for i, element in ipairs(elements) do
|
|
||||||
if groups["armor_"..element] and inv:get_stack(listname, i):is_empty() then
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return 0
|
|
||||||
end,
|
|
||||||
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
|
|
||||||
local meta = minetest.get_meta(pos)
|
|
||||||
if not owns_armor_stand(pos, meta, player) then
|
|
||||||
return 0
|
|
||||||
end
|
|
||||||
return 1
|
return 1
|
||||||
end,
|
end
|
||||||
allow_metadata_inventory_move = function(pos)
|
return 0
|
||||||
return 0
|
end,
|
||||||
end,
|
allow_metadata_inventory_move = function(pos)
|
||||||
on_metadata_inventory_put = function(pos, listname, index, stack)
|
return 0
|
||||||
local meta = minetest.get_meta(pos)
|
end,
|
||||||
local inv = meta:get_inventory()
|
on_metadata_inventory_put = function(pos)
|
||||||
local stack_def = stack:get_definition() or {}
|
update_entity(pos)
|
||||||
local groups = stack_def.groups or {}
|
end,
|
||||||
for i, element in ipairs(elements) do
|
on_metadata_inventory_take = function(pos)
|
||||||
if groups["armor_"..element] then
|
update_entity(pos)
|
||||||
inv:set_stack(listname, i, stack)
|
end,
|
||||||
if index ~= i then
|
after_destruct = function(pos)
|
||||||
inv:set_stack(listname, index, nil)
|
update_entity(pos)
|
||||||
end
|
remove_hidden_node(pos)
|
||||||
break
|
end,
|
||||||
end
|
|
||||||
end
|
|
||||||
update_entity(pos)
|
|
||||||
end,
|
|
||||||
on_metadata_inventory_take = function(pos)
|
|
||||||
update_entity(pos)
|
|
||||||
end,
|
|
||||||
after_destruct = function(pos)
|
|
||||||
update_entity(pos)
|
|
||||||
remove_hidden_node(pos)
|
|
||||||
end,
|
|
||||||
on_blast = def.on_blast
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
register_armor_stand({
|
|
||||||
name = "armor_stand",
|
|
||||||
description = S("Armor Stand"),
|
|
||||||
texture = "3d_armor_stand.png",
|
|
||||||
on_blast = function(pos)
|
on_blast = function(pos)
|
||||||
drop_armor(pos)
|
drop_armor(pos)
|
||||||
armor.drop_armor(pos, "3d_armor_stand:armor_stand")
|
armor.drop_armor(pos, "3d_armor_stand:armor_stand")
|
||||||
minetest.remove_node(pos)
|
minetest.remove_node(pos)
|
||||||
end
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
register_armor_stand({
|
minetest.register_node("3d_armor_stand:locked_armor_stand", {
|
||||||
name = "locked_armor_stand",
|
|
||||||
description = S("Locked Armor Stand"),
|
description = S("Locked Armor Stand"),
|
||||||
texture = "3d_armor_stand_locked.png"
|
drawtype = "mesh",
|
||||||
})
|
mesh = "3d_armor_stand.obj",
|
||||||
|
tiles = {"3d_armor_stand_locked.png"},
|
||||||
register_armor_stand({
|
use_texture_alpha = "clip",
|
||||||
name = "shared_armor_stand",
|
paramtype = "light",
|
||||||
description = S("Shared Armor Stand"),
|
paramtype2 = "facedir",
|
||||||
texture = "3d_armor_stand_shared.png"
|
walkable = false,
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {
|
||||||
|
{-0.25, -0.4375, -0.25, 0.25, 1.4, 0.25},
|
||||||
|
{-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
groups = {choppy=2, oddly_breakable_by_hand=2},
|
||||||
|
sounds = default.node_sound_wood_defaults(),
|
||||||
|
on_construct = function(pos)
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
meta:set_string("formspec", armor_stand_formspec)
|
||||||
|
meta:set_string("infotext", S("Armor Stand"))
|
||||||
|
meta:set_string("owner", "")
|
||||||
|
local inv = meta:get_inventory()
|
||||||
|
for _, element in pairs(elements) do
|
||||||
|
inv:set_size("armor_"..element, 1)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
can_dig = function(pos, player)
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
local inv = meta:get_inventory()
|
||||||
|
for _, element in pairs(elements) do
|
||||||
|
if not inv:is_empty("armor_"..element) then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return true
|
||||||
|
end,
|
||||||
|
after_place_node = function(pos, placer)
|
||||||
|
minetest.add_entity(pos, "3d_armor_stand:armor_entity")
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
meta:set_string("owner", placer:get_player_name() or "")
|
||||||
|
meta:set_string("infotext", S("Armor Stand (owned by @1)", meta:get_string("owner")))
|
||||||
|
add_hidden_node(pos, placer)
|
||||||
|
end,
|
||||||
|
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
if not has_locked_armor_stand_privilege(meta, player) then
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
local def = stack:get_definition() or {}
|
||||||
|
local groups = def.groups or {}
|
||||||
|
if groups[listname] then
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
return 0
|
||||||
|
end,
|
||||||
|
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
if not has_locked_armor_stand_privilege(meta, player) then
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
return stack:get_count()
|
||||||
|
end,
|
||||||
|
allow_metadata_inventory_move = function(pos)
|
||||||
|
return 0
|
||||||
|
end,
|
||||||
|
on_metadata_inventory_put = function(pos)
|
||||||
|
update_entity(pos)
|
||||||
|
end,
|
||||||
|
on_metadata_inventory_take = function(pos)
|
||||||
|
update_entity(pos)
|
||||||
|
end,
|
||||||
|
after_destruct = function(pos)
|
||||||
|
update_entity(pos)
|
||||||
|
remove_hidden_node(pos)
|
||||||
|
end,
|
||||||
|
on_blast = function(pos)
|
||||||
|
-- Not affected by TNT
|
||||||
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_entity("3d_armor_stand:armor_entity", {
|
minetest.register_entity("3d_armor_stand:armor_entity", {
|
||||||
initial_properties = {
|
physical = true,
|
||||||
physical = true,
|
visual = "mesh",
|
||||||
visual = "mesh",
|
mesh = "3d_armor_entity.obj",
|
||||||
mesh = "3d_armor_entity.obj",
|
visual_size = {x=1, y=1},
|
||||||
visual_size = {x=1, y=1},
|
collisionbox = {0,0,0,0,0,0},
|
||||||
collisionbox = {0,0,0,0,0,0},
|
textures = {"3d_armor_trans.png"},
|
||||||
textures = {"blank.png"},
|
pos = nil,
|
||||||
},
|
timer = 0,
|
||||||
_pos = nil,
|
|
||||||
on_activate = function(self)
|
on_activate = function(self)
|
||||||
local pos = self.object:get_pos()
|
local pos = self.object:get_pos()
|
||||||
if pos then
|
if pos then
|
||||||
self._pos = vector.round(pos)
|
self.pos = vector.round(pos)
|
||||||
update_entity(pos)
|
update_entity(pos)
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
on_blast = function(self, damage)
|
on_blast = function(self, damage)
|
||||||
local drops = {}
|
local drops = {}
|
||||||
local node = minetest.get_node(self._pos)
|
local node = minetest.get_node(self.pos)
|
||||||
if node.name == "3d_armor_stand:armor_stand" then
|
if node.name == "3d_armor_stand:armor_stand" then
|
||||||
drop_armor(self._pos)
|
drop_armor(self.pos)
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
end
|
end
|
||||||
return false, false, drops
|
return false, false, drops
|
||||||
@@ -309,7 +327,7 @@ minetest.register_entity("3d_armor_stand:armor_entity", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
nodenames = {"3d_armor_stand:locked_armor_stand", "3d_armor_stand:shared_armor_stand", "3d_armor_stand:armor_stand"},
|
nodenames = {"3d_armor_stand:locked_armor_stand", "3d_armor_stand:armor_stand"},
|
||||||
interval = 15,
|
interval = 15,
|
||||||
chance = 1,
|
chance = 1,
|
||||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||||
@@ -320,32 +338,6 @@ minetest.register_abm({
|
|||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_lbm({
|
|
||||||
label = "Update armor stand inventories",
|
|
||||||
name = "3d_armor_stand:update_inventories",
|
|
||||||
nodenames = {"3d_armor_stand:locked_armor_stand", "3d_armor_stand:shared_armor_stand", "3d_armor_stand:armor_stand"},
|
|
||||||
run_at_every_load = false,
|
|
||||||
action = function(pos, node)
|
|
||||||
local meta = minetest.get_meta(pos)
|
|
||||||
local inv = meta:get_inventory()
|
|
||||||
local lists = inv:get_lists()
|
|
||||||
for _, element in pairs(elements) do
|
|
||||||
if not lists["armor_"..element] then
|
|
||||||
-- Abort to avoid item loss in case env_meta.txt is corrupted/deleted
|
|
||||||
return
|
|
||||||
end
|
|
||||||
end
|
|
||||||
inv:set_lists({main = {
|
|
||||||
lists.armor_head[1],
|
|
||||||
lists.armor_torso[1],
|
|
||||||
lists.armor_legs[1],
|
|
||||||
lists.armor_feet[1]
|
|
||||||
}})
|
|
||||||
meta:set_string("formspec", armor_stand_formspec)
|
|
||||||
update_entity(pos)
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "3d_armor_stand:armor_stand",
|
output = "3d_armor_stand:armor_stand",
|
||||||
recipe = {
|
recipe = {
|
||||||
@@ -361,10 +353,3 @@ minetest.register_craft({
|
|||||||
{"3d_armor_stand:armor_stand", "default:steel_ingot"},
|
{"3d_armor_stand:armor_stand", "default:steel_ingot"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "3d_armor_stand:shared_armor_stand",
|
|
||||||
recipe = {
|
|
||||||
{"3d_armor_stand:armor_stand", "default:copper_ingot"},
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
# textdomain: 3d_armor_stand
|
|
||||||
Armor Stand Top=Rüstungsständeroberseite
|
|
||||||
Armor Stand=Rüstungsständer
|
|
||||||
Locked Armor Stand=Abgeschlossener Rüstungsständer
|
|
||||||
Armor Stand (owned by @1)=Rüstungsständer (Eigentum von @1)
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
# textdomain: 3d_armor_stand
|
# textdomain: 3d_armor_stand
|
||||||
Armor Stand Top=Armaĵtenila Supro
|
Armor Stand Top=Kirasstando Supro
|
||||||
Armor Stand=Armaĵtenilo
|
Armor Stand=Kirasstando
|
||||||
Locked Armor Stand=Ŝlosita Armaĵtenilo
|
Locked Armor Stand=Ŝlosita Kirasstando
|
||||||
Armor Stand (owned by @1)=Ŝlosita Armaĵtenilo (posedata de @1)
|
Armor Stand (owned by @1)=Kirasstando (posedata de @1)
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
# textdomain: 3d_armor_stand
|
|
||||||
Armor Stand Top=
|
|
||||||
Armor Stand=Soporte de armadura
|
|
||||||
Locked Armor Stand=Soporte de armadura privado
|
|
||||||
Shared Armor Stand=Soporte de armadura compartido
|
|
||||||
Armor Stand (owned by @1)=Soporte de armadura (de @1)
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
# textdomain: 3d_armor_stand
|
|
||||||
Armor Stand Top=Верх Стойки для Брони
|
|
||||||
Armor Stand=Стойка для Брони
|
|
||||||
Locked Armor Stand=Заблокированная Стойка для Брони
|
|
||||||
Shared Armor Stand=Публичная Стойка для Брони
|
|
||||||
Armor Stand (owned by @1)=Стойка для Брони (владалец: @1)
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
# textdomain: 3d_armor_stand
|
|
||||||
Armor Stand Top=Верх Стійки для Броні
|
|
||||||
Armor Stand=Стійка для Броні
|
|
||||||
Locked Armor Stand=Закрита Стійка для Броні
|
|
||||||
Armor Stand (owned by @1)=Стійка для Броні (власник @1)
|
|
||||||
@@ -2,5 +2,4 @@
|
|||||||
Armor Stand Top=
|
Armor Stand Top=
|
||||||
Armor Stand=
|
Armor Stand=
|
||||||
Locked Armor Stand=
|
Locked Armor Stand=
|
||||||
Shared Armor Stand=
|
|
||||||
Armor Stand (owned by @1)=
|
Armor Stand (owned by @1)=
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 1011 B |
Binary file not shown.
Binary file not shown.
18
3d_armor_ui/LICENSE.txt
Normal file
18
3d_armor_ui/LICENSE.txt
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
[mod] 3d Armor integration to unified inventory [3d_armor_ui]
|
||||||
|
=============================================================
|
||||||
|
|
||||||
|
Copyright (C) 2012-2019 stujones11, Stuart Jones <stujones111@gmail.com>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License along
|
||||||
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
@@ -33,6 +33,9 @@ unified_inventory.register_page("armor", {
|
|||||||
local gridy = 0.6
|
local gridy = 0.6
|
||||||
|
|
||||||
local name = player:get_player_name()
|
local name = player:get_player_name()
|
||||||
|
if armor.def[name].init_time == 0 then
|
||||||
|
return {formspec="label[0,0;"..F(S("Armor not initialized!")).."]"}
|
||||||
|
end
|
||||||
local formspec = perplayer_formspec.standard_inv_bg..
|
local formspec = perplayer_formspec.standard_inv_bg..
|
||||||
perplayer_formspec.standard_inv..
|
perplayer_formspec.standard_inv..
|
||||||
ui.make_inv_img_grid(gridx, gridy, 2, 3)..
|
ui.make_inv_img_grid(gridx, gridy, 2, 3)..
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
# textdomain: 3d_armor_ui
|
|
||||||
3D Armor=3D-Rüstung
|
|
||||||
Armor not initialized!=Rüstung ist nicht initialisiert!
|
|
||||||
Armor=Rüstung
|
|
||||||
Level=Stufe
|
|
||||||
Heal=Heilung
|
|
||||||
Fire=Feuer
|
|
||||||
Radiation=Strahlung
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
# textdomain: 3d_armor_ui
|
# textdomain: 3d_armor_ui
|
||||||
3D Armor=3D Armaĵoj
|
3D Armor=3D Kiraso
|
||||||
Armor not initialized!=Armaĵoj ne pretigitaj!
|
Armor not initialized!=Kiraso ne pravigita!
|
||||||
Armor=Armaĵo
|
Armor=Kiraso
|
||||||
Level=Nivelo
|
Level=Nivelo
|
||||||
Heal=Sanigi
|
Heal=Sanigi
|
||||||
Fire=Fajro
|
Fire=Fajro
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
# textdomain: 3d_armor_ui
|
|
||||||
3D Armor=3D Броня
|
|
||||||
Armor not initialized!=Броня не инициализирована!
|
|
||||||
Armor=Броня
|
|
||||||
Level=Уровень
|
|
||||||
Heal=Исцеление
|
|
||||||
Fire=Пламя
|
|
||||||
Radiation=Излучение
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
# textdomain: 3d_armor_ui
|
|
||||||
3D Armor=3D Броня
|
|
||||||
Armor not initialized!=Броня не ініціалізована!
|
|
||||||
Armor=Броня
|
|
||||||
Level=Рівень
|
|
||||||
Heal=Зцілення
|
|
||||||
Fire=Вогонь
|
|
||||||
Radiation=Радіація
|
|
||||||
@@ -8,9 +8,3 @@ Armor Textures: Copyright (C) 2017-2023 davidthecreator - CC-BY-SA 3.0
|
|||||||
Special credit to Jordach and MirceaKitsune for providing the default 3d character model.
|
Special credit to Jordach and MirceaKitsune for providing the default 3d character model.
|
||||||
|
|
||||||
New armor/shield textures CC-BY-SA 3.0 / davidthecreator / https://forum.minetest.net/viewtopic.php?f=11&t=4654&start=800#p356448
|
New armor/shield textures CC-BY-SA 3.0 / davidthecreator / https://forum.minetest.net/viewtopic.php?f=11&t=4654&start=800#p356448
|
||||||
|
|
||||||
Wood armor sounds / CC0 / TinyWorlds / https://opengameart.org/content/different-steps-on-wood-stone-leaves-gravel-and-mud
|
|
||||||
|
|
||||||
Metal armor sounds / CC0 / Ogrebane / https://opengameart.org/content/wood-and-metal-sound-effects-volume-2
|
|
||||||
|
|
||||||
Glass armor sounds / CC0 / rubberduck / https://opengameart.org/content/75-cc0-breaking-falling-hit-sfx
|
|
||||||
54
README.md
54
README.md
@@ -22,53 +22,39 @@ Modpack - 3d Armor
|
|||||||
[mod] Visible Player Armor [3d_armor]
|
[mod] Visible Player Armor [3d_armor]
|
||||||
-------------------------------------
|
-------------------------------------
|
||||||
|
|
||||||
|
Minetest Version: 5.0.0 and newer
|
||||||
|
|
||||||
|
Game: minetest_game and many derivatives
|
||||||
|
|
||||||
|
Depends: default
|
||||||
|
|
||||||
Adds craftable armor that is visible to other players. Each armor item worn contributes to
|
Adds craftable armor that is visible to other players. Each armor item worn contributes to
|
||||||
a player's armor group level making them less vulnerable to attack.
|
a player's armor group level making them less vulnerable to attack.
|
||||||
|
|
||||||
Armor takes damage when a player is hurt, however, many armor items offer a 'stackable'
|
Armor takes damage when a player is hurt, however, many armor items offer a 'stackable'
|
||||||
percentage chance of restoring the lost health points. Overall armor level is boosted by 10%
|
percentage chance of restoring the lost health points. Overall armor level is boosted by 10%
|
||||||
when wearing a full matching set (helmet, chestplate, leggings and boots of the same material).
|
when wearing a full matching set (helmet, chestplate, leggings and boots of the same material)
|
||||||
|
|
||||||
Overview of all items, API and settings: **[3d_armor reference](https://minetest-mods.github.io/3d_armor/reference/)**
|
Fire protection has been added by TenPlus1 and in use when ethereal mod is found and crystal
|
||||||
|
armor has been enabled. each piece of armor offers 1 fire protection, level 1 protects
|
||||||
|
against torches, level 2 against crystal spikes, 3 for fire and 5 protects when in lava.
|
||||||
|
|
||||||
**Dependencies:**
|
Compatible with sfinv, inventory plus or unified inventory by enabling the appropriate
|
||||||
|
inventory module, [3d_armor_sfinv], [3d_armor_ip] and [3d_armor_ui] respectively.
|
||||||
|
Also compatible with [smart_inventory] without the need for additional modules.
|
||||||
|
|
||||||
* Luanti/Minetest: 5.4.0 or newer
|
built in support player skins [skins] by Zeg9 and Player Textures [player_textures] by PilzAdam
|
||||||
* Mods `default` and `player_api`
|
and [simple_skins] by TenPlus1.
|
||||||
* Provided by [minetest_game](https://github.com/luanti-org/minetest_game)
|
|
||||||
and many derivatives
|
|
||||||
|
|
||||||
**Features:** (optional)
|
|
||||||
|
|
||||||
* Fire protection (added by TenPlus1):
|
|
||||||
* Depends on the mod `ethereal` and the (provided) `armor_crystal` mod.
|
|
||||||
* Each piece of armor increases fire protection by 1 (one).
|
|
||||||
* level 1: protects against torches
|
|
||||||
* level 2: protects against crystal spikes
|
|
||||||
* level 3: protects against fire
|
|
||||||
* level 5: protects against lava
|
|
||||||
* Inventory mod compatibility:
|
|
||||||
* `3d_armor_sfinv` for `sfinv` (minetest_game and derivatives)
|
|
||||||
* `3d_armor_ip` for `inventory_plus`
|
|
||||||
* `3d_armor_ui` for `unified_inventory`
|
|
||||||
* Compatible with `smart_inventory` without any mod dependency.
|
|
||||||
* Supported skin mods:
|
|
||||||
* `skins` by Zeg9
|
|
||||||
* `player_textures` by PilzAdam
|
|
||||||
* `simple_skins` by TenPlus1
|
|
||||||
* Supported by `skinsdb`
|
|
||||||
* Supported physics mods:
|
|
||||||
* `player_monoids`
|
|
||||||
* `armor_monoid`
|
|
||||||
* `pova`
|
|
||||||
|
|
||||||
Armor can be configured by adding a file called armor.conf in 3d_armor mod or world directory.
|
Armor can be configured by adding a file called armor.conf in 3d_armor mod or world directory.
|
||||||
see armor.conf.example for all available options.
|
see armor.conf.example for all available options.
|
||||||
|
|
||||||
**Types of armor:**
|
For **mod installation** instructions, please visit: http://wiki.minetest.com/wiki/Installing_Mods
|
||||||
|
|
||||||
The specific "armors as modpack" refactorization allows anyone to enable/disable any armors they want as mods rather than obscure settings of the past. (See [#78](https://github.com/minetest-mods/3d_armor/commit/9444afd7222a71fc17d40c9793506812d715dcc3) for further explanation.)
|
The specific "armors as modpack" refactorization allows anyone to enable/disable any armors they want as mods rather than obscure settings of the past. (See [#78](https://github.com/minetest-mods/3d_armor/commit/9444afd7222a71fc17d40c9793506812d715dcc3) for further explanation.)
|
||||||
|
|
||||||
|
Currently, the modpack includes:
|
||||||
|
|
||||||
- armor_admin
|
- armor_admin
|
||||||
- armor_bronze
|
- armor_bronze
|
||||||
- armor_cactus
|
- armor_cactus
|
||||||
@@ -80,7 +66,9 @@ The specific "armors as modpack" refactorization allows anyone to enable/disable
|
|||||||
- armor_steel
|
- armor_steel
|
||||||
- armor_wood
|
- armor_wood
|
||||||
|
|
||||||
All these mods depend on 3d_armor.
|
as separate armor mods intentionally. All these mods depend on 3d_armor.
|
||||||
|
|
||||||
|
[API Reference](https://minetest-mods.github.io/3d_armor/reference/)
|
||||||
|
|
||||||
[mod] Visible Wielded Items [wieldview]
|
[mod] Visible Wielded Items [wieldview]
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|||||||
26
armor_admin/LICENSE.txt
Normal file
26
armor_admin/LICENSE.txt
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
[mod] 3d Armor [3d_armor]
|
||||||
|
=========================
|
||||||
|
|
||||||
|
License Source Code
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Copyright (C) 2012-2019 stujones11, Stuart Jones <stujones111@gmail.com>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License along
|
||||||
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
License Textures
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Copyright (C) 2017-2019 davidthecreator - CC-BY-SA 3.0
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
|
|
||||||
-- support for i18n
|
-- support for i18n
|
||||||
local S = minetest.get_translator(minetest.get_current_modname())
|
local S = armor.get_translator
|
||||||
|
|
||||||
--- Admin Helmet
|
--- Admin Helmet
|
||||||
--
|
--
|
||||||
@@ -41,7 +41,7 @@ armor:register_armor(":3d_armor:chestplate_admin", {
|
|||||||
description = S("Admin Chestplate"),
|
description = S("Admin Chestplate"),
|
||||||
inventory_image = "3d_armor_inv_chestplate_admin.png",
|
inventory_image = "3d_armor_inv_chestplate_admin.png",
|
||||||
armor_groups = {fleshy=100},
|
armor_groups = {fleshy=100},
|
||||||
groups = {armor_torso=1, armor_heal=100, armor_use=0, armor_water=1,
|
groups = {armor_torso=1, armor_heal=100, armor_use=0,
|
||||||
not_in_creative_inventory=1},
|
not_in_creative_inventory=1},
|
||||||
on_drop = function(itemstack, dropper, pos)
|
on_drop = function(itemstack, dropper, pos)
|
||||||
return
|
return
|
||||||
@@ -61,7 +61,7 @@ armor:register_armor(":3d_armor:leggings_admin", {
|
|||||||
description = S("Admin Leggings"),
|
description = S("Admin Leggings"),
|
||||||
inventory_image = "3d_armor_inv_leggings_admin.png",
|
inventory_image = "3d_armor_inv_leggings_admin.png",
|
||||||
armor_groups = {fleshy=100},
|
armor_groups = {fleshy=100},
|
||||||
groups = {armor_legs=1, armor_heal=100, armor_use=0, armor_water=1,
|
groups = {armor_legs=1, armor_heal=100, armor_use=0,
|
||||||
not_in_creative_inventory=1},
|
not_in_creative_inventory=1},
|
||||||
on_drop = function(itemstack, dropper, pos)
|
on_drop = function(itemstack, dropper, pos)
|
||||||
return
|
return
|
||||||
@@ -81,8 +81,8 @@ armor:register_armor(":3d_armor:boots_admin", {
|
|||||||
description = S("Admin Boots"),
|
description = S("Admin Boots"),
|
||||||
inventory_image = "3d_armor_inv_boots_admin.png",
|
inventory_image = "3d_armor_inv_boots_admin.png",
|
||||||
armor_groups = {fleshy=100},
|
armor_groups = {fleshy=100},
|
||||||
groups = {armor_feet=1, armor_heal=100, armor_use=0, physics_speed=1,
|
groups = {armor_feet=1, armor_heal=100, armor_use=0,
|
||||||
armor_water=1, not_in_creative_inventory=1},
|
not_in_creative_inventory=1},
|
||||||
on_drop = function(itemstack, dropper, pos)
|
on_drop = function(itemstack, dropper, pos)
|
||||||
return
|
return
|
||||||
end,
|
end,
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# textdomain: armor_admin
|
# textdomain: armor_admin
|
||||||
Admin Helmet=Administra Kasko
|
Admin Helmet=Administra Kasko
|
||||||
Admin Chestplate=Administra Kiraso
|
Admin Chestplate=Administra Brustkiraso
|
||||||
Admin Leggings=Administra Pantalono
|
Admin Leggings=Administra Pantalono
|
||||||
Admin Boots=Administraj Botoj
|
Admin Boots=Administra Botoj
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# textdomain: armor_admin
|
# textdomain: armor_admin
|
||||||
Admin Helmet=Шлем Админа
|
Admin Helmet=шлем админа
|
||||||
Admin Chestplate=Нагрудник Админа
|
Admin Chestplate=бронежилет админа
|
||||||
Admin Leggings=Поножи Админа
|
Admin Leggings=гамаши админа
|
||||||
Admin Boots=Ботинки Админа
|
Admin Boots=ботинки админа
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
# textdomain: armor_admin
|
|
||||||
Admin Helmet=Шолом адміна
|
|
||||||
Admin Chestplate=Броня адміна
|
|
||||||
Admin Leggings=Штани адміна
|
|
||||||
Admin Boots=Взуття адміна
|
|
||||||
26
armor_bronze/LICENSE.txt
Normal file
26
armor_bronze/LICENSE.txt
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
[mod] 3d Armor [3d_armor]
|
||||||
|
=========================
|
||||||
|
|
||||||
|
License Source Code
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Copyright (C) 2012-2019 stujones11, Stuart Jones <stujones111@gmail.com>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License along
|
||||||
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
License Textures
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Copyright (C) 2017-2019 davidthecreator - CC-BY-SA 3.0
|
||||||
@@ -5,7 +5,8 @@
|
|||||||
|
|
||||||
|
|
||||||
-- support for i18n
|
-- support for i18n
|
||||||
local S = minetest.get_translator(minetest.get_current_modname())
|
local S = armor.get_translator
|
||||||
|
|
||||||
--- Bronze
|
--- Bronze
|
||||||
--
|
--
|
||||||
-- Requires setting `armor_material_bronze`.
|
-- Requires setting `armor_material_bronze`.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# textdomain: armor_bronze
|
# textdomain: armor_bronze
|
||||||
Bronze Helmet=Bronza Kasko
|
Bronze Helmet=Bronza Kasko
|
||||||
Bronze Chestplate=Bronza Kiraso
|
Bronze Chestplate=Bronza Brustkiraso
|
||||||
Bronze Leggings=Bronza Pantalono
|
Bronze Leggings=Bronza Pantalono
|
||||||
Bronze Boots=Bronzaj Botoj
|
Bronze Boots=Bronza Botoj
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# textdomain: armor_bronze
|
# textdomain: armor_bronze
|
||||||
Bronze Helmet=Бронзовый Шлем
|
Bronze Helmet=бронзовый шлем
|
||||||
Bronze Chestplate=Бронзовый Нагрудник
|
Bronze Chestplate=бронзовый бронежилет
|
||||||
Bronze Leggings=Бронзовые Поножи
|
Bronze Leggings=бронзовые гамаши
|
||||||
Bronze Boots=Бронзовые Ботинки
|
Bronze Boots=бронзовые ботинки
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
# textdomain: armor_bronze
|
|
||||||
Bronze Helmet=Бронзовий шолом
|
|
||||||
Bronze Chestplate=Бронзова броня
|
|
||||||
Bronze Leggings=Бронзові штани
|
|
||||||
Bronze Boots=Бронзове взуття
|
|
||||||
26
armor_cactus/LICENSE.txt
Normal file
26
armor_cactus/LICENSE.txt
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
[mod] 3d Armor [3d_armor]
|
||||||
|
=========================
|
||||||
|
|
||||||
|
License Source Code
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Copyright (C) 2012-2019 stujones11, Stuart Jones <stujones111@gmail.com>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License along
|
||||||
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
License Textures
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Copyright (C) 2017-2019 davidthecreator - CC-BY-SA 3.0
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
|
|
||||||
-- support for i18n
|
-- support for i18n
|
||||||
local S = minetest.get_translator(minetest.get_current_modname())
|
local S = armor.get_translator
|
||||||
|
|
||||||
--- Cactus
|
--- Cactus
|
||||||
--
|
--
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# textdomain: armor_cactus
|
# textdomain: armor_cactus
|
||||||
Cactus Helmet=Kakta Kasko
|
Cactus Helmet=Kakta Kasko
|
||||||
Cactus Chestplate=Kakta Kiraso
|
Cactus Chestplate=Kakta Brustkiraso
|
||||||
Cactus Leggings=Kakta Pantalono
|
Cactus Leggings=Kakta Pantalono
|
||||||
Cactus Boots=Kaktaj Botoj
|
Cactus Boots=Kakta Botoj
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# textdomain: armor_cactus
|
# textdomain: armor_cactus
|
||||||
Cactus Helmet=Кактусовый Шлем
|
Cactus Helmet=кактусовый шлем
|
||||||
Cactus Chestplate=Кактусовый Нагрудник
|
Cactus Chestplate=кактусовый бронежилет
|
||||||
Cactus Leggings=Кактусовые Поножи
|
Cactus Leggings=кактусовые гамаши
|
||||||
Cactus Boots=Кактусовые Ботинки
|
Cactus Boots=кактусовые ботинки
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
# textdomain: armor_cactus
|
|
||||||
Cactus Helmet=Кактусовий шолом
|
|
||||||
Cactus Chestplate=Кактусова броня
|
|
||||||
Cactus Leggings=Кактусові штани
|
|
||||||
Cactus Boots=Кактусове взуття
|
|
||||||
26
armor_crystal/LICENSE.txt
Normal file
26
armor_crystal/LICENSE.txt
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
[mod] 3d Armor [3d_armor]
|
||||||
|
=========================
|
||||||
|
|
||||||
|
License Source Code
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Copyright (C) 2012-2019 stujones11, Stuart Jones <stujones111@gmail.com>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License along
|
||||||
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
License Textures
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Copyright (C) 2017-2019 davidthecreator - CC-BY-SA 3.0
|
||||||
@@ -5,7 +5,8 @@
|
|||||||
|
|
||||||
|
|
||||||
-- support for i18n
|
-- support for i18n
|
||||||
local S = minetest.get_translator(minetest.get_current_modname())
|
local S = armor.get_translator
|
||||||
|
|
||||||
|
|
||||||
--- Crystal
|
--- Crystal
|
||||||
--
|
--
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# textdomain: armor_crystal
|
# textdomain: armor_crystal
|
||||||
Crystal Helmet=Kristala Kasko
|
Crystal Helmet=Kristala Kasko
|
||||||
Crystal Chestplate=Kristala Kiraso
|
Crystal Chestplate=Kristala Brustkiraso
|
||||||
Crystal Leggings=Kristala Pantalono
|
Crystal Leggings=Kristala Pantalono
|
||||||
Crystal Boots=Kristalaj Botoj
|
Crystal Boots=Kristala Botoj
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# textdomain: armor_crystal
|
# textdomain: armor_crystal
|
||||||
Crystal Helmet=Кристальный Шлем
|
Crystal Helmet=кристалловый шлем
|
||||||
Crystal Chestplate=Кристальный Нагрудник
|
Crystal Chestplate=кристалловый бронежилет
|
||||||
Crystal Leggings=Кристальные Поножи
|
Crystal Leggings=кристалловые гамаши
|
||||||
Crystal Boots=Кристальные Ботинки
|
Crystal Boots=кристалловые ботинки
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
# textdomain: armor_crystal
|
|
||||||
Crystal Helmet=Кришталевий шолом
|
|
||||||
Crystal Chestplate=Кришталева броня
|
|
||||||
Crystal Leggings=Кришталеві штани
|
|
||||||
Crystal Boots=Кришталеве взуття
|
|
||||||
26
armor_diamond/LICENSE.txt
Normal file
26
armor_diamond/LICENSE.txt
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
[mod] 3d Armor [3d_armor]
|
||||||
|
=========================
|
||||||
|
|
||||||
|
License Source Code
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Copyright (C) 2012-2019 stujones11, Stuart Jones <stujones111@gmail.com>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License along
|
||||||
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
License Textures
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Copyright (C) 2017-2019 davidthecreator - CC-BY-SA 3.0
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
|
|
||||||
-- support for i18n
|
-- support for i18n
|
||||||
local S = minetest.get_translator(minetest.get_current_modname())
|
local S = armor.get_translator
|
||||||
|
|
||||||
--- Diamond
|
--- Diamond
|
||||||
--
|
--
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# textdomain: armor_diamond
|
# textdomain: armor_diamond
|
||||||
Diamond Helmet=Diamanta Kasko
|
Diamond Helmet=Diamanta Kasko
|
||||||
Diamond Chestplate=Diamanta Kiraso
|
Diamond Chestplate=Diamanta Brustkiraso
|
||||||
Diamond Leggings=Diamanta Pantalono
|
Diamond Leggings=Diamanta Pantalono
|
||||||
Diamond Boots=Diamantaj Botoj
|
Diamond Boots=Diamanta Botoj
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# textdomain: armor_diamond
|
# textdomain: armor_diamond
|
||||||
Diamond Helmet=Алмазный Шлем
|
Diamond Helmet=алмазный шлем
|
||||||
Diamond Chestplate=Алмазный Нагрудник
|
Diamond Chestplate=алмазный бронежилет
|
||||||
Diamond Leggings=Алмазные Поножи
|
Diamond Leggings=алмазные гамаши
|
||||||
Diamond Boots=Алмазные Ботинки
|
Diamond Boots=алмазные ботинки
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
# textdomain: armor_diamond
|
|
||||||
Diamond Helmet=Діамантовий шолом
|
|
||||||
Diamond Chestplate=Діамантова броня
|
|
||||||
Diamond Leggings=Діамантові штани
|
|
||||||
Diamond Boots=Діамантове взуття
|
|
||||||
26
armor_gold/LICENSE.txt
Normal file
26
armor_gold/LICENSE.txt
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
[mod] 3d Armor [3d_armor]
|
||||||
|
=========================
|
||||||
|
|
||||||
|
License Source Code
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Copyright (C) 2012-2019 stujones11, Stuart Jones <stujones111@gmail.com>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License along
|
||||||
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
License Textures
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Copyright (C) 2017-2019 davidthecreator - CC-BY-SA 3.0
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
|
|
||||||
-- support for i18n
|
-- support for i18n
|
||||||
local S = minetest.get_translator(minetest.get_current_modname())
|
local S = armor.get_translator
|
||||||
|
|
||||||
|
|
||||||
--- Gold
|
--- Gold
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# textdomain: armor_gold
|
# textdomain: armor_gold
|
||||||
Gold Helmet=Ora Kasko
|
Gold Helmet=Ora Kasko
|
||||||
Gold Chestplate=Ora Kiraso
|
Gold Chestplate=Ora Brustkiraso
|
||||||
Gold Leggings=Ora Pantalono
|
Gold Leggings=Ora Pantalono
|
||||||
Gold Boots=Oraj Botoj
|
Gold Boots=Ora Botoj
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# textdomain: armor_gold
|
# textdomain: armor_gold
|
||||||
Gold Helmet=Золотой Шлем
|
Gold Helmet=золотой шлем
|
||||||
Gold Chestplate=Золотой Нагрудник
|
Gold Chestplate=золотой бронежилет
|
||||||
Gold Leggings=Золотые Поножи
|
Gold Leggings=золотые гамаши
|
||||||
Gold Boots=Золотые Ботинки
|
Gold Boots=золотые ботинки
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
# textdomain: armor_gold
|
|
||||||
Gold Helmet=Золотий шолом
|
|
||||||
Gold Chestplate=Золота броня
|
|
||||||
Gold Leggings=Золоті штани
|
|
||||||
Gold Boots=Золоте взуття
|
|
||||||
26
armor_mithril/LICENSE.txt
Normal file
26
armor_mithril/LICENSE.txt
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
[mod] 3d Armor [3d_armor]
|
||||||
|
=========================
|
||||||
|
|
||||||
|
License Source Code
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Copyright (C) 2012-2019 stujones11, Stuart Jones <stujones111@gmail.com>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License along
|
||||||
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
License Textures
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Copyright (C) 2017-2019 davidthecreator - CC-BY-SA 3.0
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
|
|
||||||
-- support for i18n
|
-- support for i18n
|
||||||
local S = minetest.get_translator(minetest.get_current_modname())
|
local S = armor.get_translator
|
||||||
|
|
||||||
--- Mithril
|
--- Mithril
|
||||||
--
|
--
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# textdomain: armor_mithril
|
# textdomain: armor_mithril
|
||||||
Mithril Helmet=Mitrila Kasko
|
Mithril Helmet=Mitrila Kasko
|
||||||
Mithril Chestplate=Mitrila Kiraso
|
Mithril Chestplate=Mitrila Brustkiraso
|
||||||
Mithril Leggings=Mitrila Pantalono
|
Mithril Leggings=Mitrila Pantalono
|
||||||
Mithril Boots=Mitrilaj Botoj
|
Mithril Boots=Mitrila Botoj
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# textdomain: armor_mithril
|
# textdomain: armor_mithril
|
||||||
Mithril Helmet=Мифриловый Шлем
|
Mithril Helmet=мифриловый шлем
|
||||||
Mithril Chestplate=Мифриловый Нагрудник
|
Mithril Chestplate=мифриловый бронежилет
|
||||||
Mithril Leggings=Мифриловые Поножи
|
Mithril Leggings=мифриловые гамаши
|
||||||
Mithril Boots=Мифриловые Ботинки
|
Mithril Boots=мифриловые ботинки
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
# textdomain: armor_mithril
|
|
||||||
Mithril Helmet=Міфріловий шолом
|
|
||||||
Mithril Chestplate=Міфрілова броня
|
|
||||||
Mithril Leggings=Міфрілові штани
|
|
||||||
Mithril Boots=Міфрілове взуття
|
|
||||||
26
armor_nether/LICENSE.txt
Normal file
26
armor_nether/LICENSE.txt
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
[mod] 3d Armor [3d_armor]
|
||||||
|
=========================
|
||||||
|
|
||||||
|
License Source Code
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Copyright (C) 2012-2019 stujones11, Stuart Jones <stujones111@gmail.com>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License along
|
||||||
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
License Textures
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Copyright (C) 2017-2019 davidthecreator - CC-BY-SA 3.0
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
|
|
||||||
-- support for i18n
|
-- support for i18n
|
||||||
local S = minetest.get_translator(minetest.get_current_modname())
|
local S = armor.get_translator
|
||||||
|
|
||||||
|
|
||||||
--- Nether
|
--- Nether
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# textdomain: armor_nether
|
# textdomain: armor_nether
|
||||||
Nether Helmet=Inferna Kasko
|
Nether Helmet=Inferna Kasko
|
||||||
Nether Chestplate=Inferna Kiraso
|
Nether Chestplate=Inferna Brustkiraso
|
||||||
Nether Leggings=Inferna Pantalono
|
Nether Leggings=Inferna Pantalono
|
||||||
Nether Boots=Infernaj Botoj
|
Nether Boots=Inferna Botoj
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# textdomain: armor_nether
|
# textdomain: armor_nether
|
||||||
Nether Helmet=Незерский Шлем
|
Nether Helmet=адский шлем
|
||||||
Nether Chestplate=Незерский Нагрудник
|
Nether Chestplate=адский бронежилет
|
||||||
Nether Leggings=Незерские Поножи
|
Nether Leggings=адские гамаши
|
||||||
Nether Boots=Незерские Ботинки
|
Nether Boots=адские ботинки
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
# textdomain: armor_nether
|
|
||||||
Nether Helmet=Пекельний шолом
|
|
||||||
Nether Chestplate=Пекельна броня
|
|
||||||
Nether Leggings=Пекельні штани
|
|
||||||
Nether Boots=Пекельне взуття
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
name = armor_nether
|
name = armor_nether
|
||||||
depends = 3d_armor
|
depends = 3d_armor
|
||||||
optional_depends = nether
|
optional_depends = nether
|
||||||
description = Adds craftable nether armor.
|
description = Adds craftable wood armor.
|
||||||
|
|||||||
26
armor_steel/LICENSE.txt
Normal file
26
armor_steel/LICENSE.txt
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
[mod] 3d Armor [3d_armor]
|
||||||
|
=========================
|
||||||
|
|
||||||
|
License Source Code
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Copyright (C) 2012-2019 stujones11, Stuart Jones <stujones111@gmail.com>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License along
|
||||||
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
License Textures
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Copyright (C) 2017-2019 davidthecreator - CC-BY-SA 3.0
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
|
|
||||||
-- support for i18n
|
-- support for i18n
|
||||||
local S = minetest.get_translator(minetest.get_current_modname())
|
local S = armor.get_translator
|
||||||
|
|
||||||
--- Steel
|
--- Steel
|
||||||
--
|
--
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# textdomain: armor_steel
|
# textdomain: armor_steel
|
||||||
Steel Helmet=Ŝtala Kasko
|
Steel Helmet=Ŝtala Kasko
|
||||||
Steel Chestplate=Ŝtala Kiraso
|
Steel Chestplate=Ŝtala Brustkiraso
|
||||||
Steel Leggings=Ŝtala Pantalono
|
Steel Leggings=Ŝtala Pantalono
|
||||||
Steel Boots=Ŝtalaj Botoj
|
Steel Boots=Ŝtala Botoj
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# textdomain: armor_steel
|
# textdomain: armor_steel
|
||||||
Steel Helmet=Стальной Шлем
|
Steel Helmet=стальной шлем
|
||||||
Steel Chestplate=Стальной Нагрудник
|
Steel Chestplate=стальной бронежилет
|
||||||
Steel Leggings=Стальные Поножи
|
Steel Leggings=стальные гамаши
|
||||||
Steel Boots=Стальные Ботинки
|
Steel Boots=стальные ботинки
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
# textdomain: armor_steel
|
|
||||||
Steel Helmet=Сталевий шолом
|
|
||||||
Steel Chestplate=Сталева броня
|
|
||||||
Steel Leggings=Сталеві штани
|
|
||||||
Steel Boots=Сталеве взуття
|
|
||||||
26
armor_wood/LICENSE.txt
Normal file
26
armor_wood/LICENSE.txt
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
[mod] 3d Armor [3d_armor]
|
||||||
|
=========================
|
||||||
|
|
||||||
|
License Source Code
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Copyright (C) 2012-2019 stujones11, Stuart Jones <stujones111@gmail.com>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License along
|
||||||
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
License Textures
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Copyright (C) 2017-2019 davidthecreator - CC-BY-SA 3.0
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
|
|
||||||
-- support for i18n
|
-- support for i18n
|
||||||
local S = minetest.get_translator(minetest.get_current_modname())
|
local S = armor.get_translator
|
||||||
|
|
||||||
--- Wood
|
--- Wood
|
||||||
--
|
--
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# textdomain: armor_wood
|
# textdomain: armor_wood
|
||||||
Wood Helmet=Ligna Kasko
|
Wood Helmet=Ligna Kasko
|
||||||
Wood Chestplate=Ligna Kiraso
|
Wood Chestplate=Ligna Brustkiraso
|
||||||
Wood Leggings=Ligna Pantalono
|
Wood Leggings=Ligna Pantalono
|
||||||
Wood Boots=Lignaj Botoj
|
Wood Boots=Ligna Botoj
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# textdomain: armor_wood
|
# textdomain: armor_wood
|
||||||
Wood Helmet=Деревянный Шлем
|
Wood Helmet=деревянный шлем
|
||||||
Wood Chestplate=Деревянный Нагрудник
|
Wood Chestplate=деревянный бронежилет
|
||||||
Wood Leggings=Деревянные Поножи
|
Wood Leggings=деревянные гамаши
|
||||||
Wood Boots=Деревянные Ботинки
|
Wood Boots=деревянные ботинки
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user