1
0
mirror of https://github.com/minetest-mods/3d_armor.git synced 2025-12-31 14:15:18 +01:00

1 Commits

Author SHA1 Message Date
Buckaroo Banzai
fed2087238 add nil check in armor.damage 2023-08-04 07:28:58 +02:00
115 changed files with 904 additions and 1536 deletions

View File

@@ -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

View File

@@ -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
View 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

View File

@@ -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**

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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!

View File

@@ -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!

View File

@@ -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!

View File

@@ -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 был(и) разрушен(ы)!

View File

@@ -1,7 +0,0 @@
# textdomain: 3d_armor
Radiation=Радіація
Level=Рівень
Heal=Зцілення
Fire=Вогонь
Your @1 is almost broken!=Ваш @1 майже зламаний!
Your @1 got destroyed!=Ваш(і) @1 був(ли) зламаний(і)!

View File

@@ -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.

After

Width:  |  Height:  |  Size: 274 B

18
3d_armor_ip/LICENSE.txt Normal file
View 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.

View File

@@ -1,3 +0,0 @@
# textdomain: 3d_armor_ip
Back=Zurück
Armor=Rüstung

View File

@@ -1,3 +1,3 @@
# textdomain: 3d_armor_ip # textdomain: 3d_armor_ip
Back=Dorso Back=Dorso
Armor=Armaĵo Armor=Kiraso

View File

@@ -1,3 +0,0 @@
# textdomain: 3d_armor_ip
Back=Назад
Armor=Броня

View File

@@ -1,3 +0,0 @@
# textdomain: 3d_armor_ip
Back=Назад
Armor=Броня

View 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.

View File

@@ -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)

View File

@@ -1,2 +0,0 @@
# textdomain: 3d_armor_sfinv
Armor=Rüstung

View File

@@ -1,2 +1,2 @@
# textdomain: 3d_armor_sfinv # textdomain: 3d_armor_sfinv
Armor=Armaĵoj Armor=Kiraso

View File

@@ -1,2 +0,0 @@
# textdomain: 3d_armor_sfinv
Armor=Броня

View File

@@ -1,2 +0,0 @@
# textdomain: 3d_armor_sfinv
Armor=Броня

View 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

View File

@@ -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"},
}
})

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -1,5 +0,0 @@
# textdomain: 3d_armor_stand
Armor Stand Top=Верх Стійки для Броні
Armor Stand=Стійка для Броні
Locked Armor Stand=Закрита Стійка для Броні
Armor Stand (owned by @1)=Стійка для Броні (власник @1)

View File

@@ -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

18
3d_armor_ui/LICENSE.txt Normal file
View 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.

View File

@@ -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)..

View File

@@ -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

View File

@@ -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

View File

@@ -1,8 +0,0 @@
# textdomain: 3d_armor_ui
3D Armor=3D Броня
Armor not initialized!=Броня не инициализирована!
Armor=Броня
Level=Уровень
Heal=Исцеление
Fire=Пламя
Radiation=Излучение

View File

@@ -1,8 +0,0 @@
# textdomain: 3d_armor_ui
3D Armor=3D Броня
Armor not initialized!=Броня не ініціалізована!
Armor=Броня
Level=Рівень
Heal=Зцілення
Fire=Вогонь
Radiation=Радіація

View File

@@ -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

View File

@@ -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
View 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

View File

@@ -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,
@@ -91,4 +91,4 @@ armor:register_armor(":3d_armor:boots_admin", {
minetest.register_alias("adminboots", "3d_armor:boots_admin") minetest.register_alias("adminboots", "3d_armor:boots_admin")
minetest.register_alias("adminhelmet", "3d_armor:helmet_admin") minetest.register_alias("adminhelmet", "3d_armor:helmet_admin")
minetest.register_alias("adminchestplate", "3d_armor:chestplate_admin") minetest.register_alias("adminchestplate", "3d_armor:chestplate_admin")
minetest.register_alias("adminleggings", "3d_armor:leggings_admin") minetest.register_alias("adminleggings", "3d_armor:leggings_admin")

View File

@@ -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

View File

@@ -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=ботинки админа

View File

@@ -1,5 +0,0 @@
# textdomain: armor_admin
Admin Helmet=Шолом адміна
Admin Chestplate=Броня адміна
Admin Leggings=Штани адміна
Admin Boots=Взуття адміна

26
armor_bronze/LICENSE.txt Normal file
View 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

View File

@@ -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`.
@@ -177,4 +178,4 @@ if armor.materials.bronze then
{m, "", m}, {m, "", m},
}, },
}) })
end end

View File

@@ -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

View File

@@ -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=бронзовые ботинки

View File

@@ -1,5 +0,0 @@
# textdomain: armor_bronze
Bronze Helmet=Бронзовий шолом
Bronze Chestplate=Бронзова броня
Bronze Leggings=Бронзові штани
Bronze Boots=Бронзове взуття

26
armor_cactus/LICENSE.txt Normal file
View 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

View File

@@ -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
-- --
@@ -180,4 +180,4 @@ if armor.materials.cactus then
{m, "", m}, {m, "", m},
}, },
}) })
end end

View File

@@ -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

View File

@@ -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=кактусовые ботинки

View File

@@ -1,5 +0,0 @@
# textdomain: armor_cactus
Cactus Helmet=Кактусовий шолом
Cactus Chestplate=Кактусова броня
Cactus Leggings=Кактусові штани
Cactus Boots=Кактусове взуття

26
armor_crystal/LICENSE.txt Normal file
View 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

View File

@@ -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
-- --
@@ -166,4 +167,4 @@ if armor.materials.crystal then
{m, "", m}, {m, "", m},
}, },
}) })
end end

View File

@@ -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

View File

@@ -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=кристалловые ботинки

View File

@@ -1,5 +0,0 @@
# textdomain: armor_crystal
Crystal Helmet=Кришталевий шолом
Crystal Chestplate=Кришталева броня
Crystal Leggings=Кришталеві штани
Crystal Boots=Кришталеве взуття

26
armor_diamond/LICENSE.txt Normal file
View 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

View File

@@ -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
-- --
@@ -163,4 +163,4 @@ if armor.materials.diamond then
{m, "", m}, {m, "", m},
}, },
}) })
end end

View File

@@ -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

View File

@@ -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=алмазные ботинки

View File

@@ -1,5 +0,0 @@
# textdomain: armor_diamond
Diamond Helmet=Діамантовий шолом
Diamond Chestplate=Діамантова броня
Diamond Leggings=Діамантові штани
Diamond Boots=Діамантове взуття

26
armor_gold/LICENSE.txt Normal file
View 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

View File

@@ -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
@@ -180,4 +180,4 @@ if armor.materials.gold then
{m, "", m}, {m, "", m},
}, },
}) })
end end

View File

@@ -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

View File

@@ -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=золотые ботинки

View File

@@ -1,5 +0,0 @@
# textdomain: armor_gold
Gold Helmet=Золотий шолом
Gold Chestplate=Золота броня
Gold Leggings=Золоті штани
Gold Boots=Золоте взуття

26
armor_mithril/LICENSE.txt Normal file
View 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

View File

@@ -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
-- --
@@ -159,4 +159,4 @@ if armor.materials.mithril then
{m, "", m}, {m, "", m},
}, },
}) })
end end

View File

@@ -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

View File

@@ -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=мифриловые ботинки

View File

@@ -1,5 +0,0 @@
# textdomain: armor_mithril
Mithril Helmet=Міфріловий шолом
Mithril Chestplate=Міфрілова броня
Mithril Leggings=Міфрілові штани
Mithril Boots=Міфрілове взуття

26
armor_nether/LICENSE.txt Normal file
View 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

View File

@@ -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
@@ -165,4 +165,4 @@ if armor.materials.nether then
}, },
}) })
end end

View File

@@ -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

View File

@@ -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=адские ботинки

View File

@@ -1,5 +0,0 @@
# textdomain: armor_nether
Nether Helmet=Пекельний шолом
Nether Chestplate=Пекельна броня
Nether Leggings=Пекельні штани
Nether Boots=Пекельне взуття

View File

@@ -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
View 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

View File

@@ -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
-- --
@@ -178,4 +178,4 @@ if armor.materials.steel then
{m, "", m}, {m, "", m},
}, },
}) })
end end

View File

@@ -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

View File

@@ -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=стальные ботинки

View File

@@ -1,5 +0,0 @@
# textdomain: armor_steel
Steel Helmet=Сталевий шолом
Steel Chestplate=Сталева броня
Steel Leggings=Сталеві штани
Steel Boots=Сталеве взуття

26
armor_wood/LICENSE.txt Normal file
View 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

View File

@@ -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
-- --
@@ -183,4 +183,4 @@ if armor.materials.wood then
{m, "", m}, {m, "", m},
}, },
}) })
end end

View File

@@ -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

View File

@@ -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