Compare commits
	
		
			16 Commits
		
	
	
		
			5da2f3060a
			...
			imgbot
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					8c35451f12 | ||
| 
						 | 
					f3ad7ec6f1 | ||
| 
						 | 
					fccd4d8b15 | ||
| 
						 | 
					e5b2cf3a34 | ||
| 
						 | 
					d2608351f6 | ||
| 
						 | 
					a05eae3782 | ||
| 
						 | 
					2ac90f8d19 | ||
| 
						 | 
					47ecef46f7 | ||
| 
						 | 
					1d22612664 | ||
| 
						 | 
					3fe7dd2249 | ||
| 
						 | 
					be9579a365 | ||
| 
						 | 
					18320e96b9 | ||
| 
						 | 
					99471d3aa0 | ||
| 
						 | 
					b6283f3f0f | ||
| 
						 | 
					7e2d9426d1 | ||
| 
						 | 
					813a88f3a1 | 
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						@@ -4,6 +4,7 @@
 | 
			
		||||
*bak*
 | 
			
		||||
tags
 | 
			
		||||
*.vim
 | 
			
		||||
armor.conf
 | 
			
		||||
 | 
			
		||||
## Eclipse project files & directories
 | 
			
		||||
.project
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,26 @@
 | 
			
		||||
[mod] 3d Armor [3d_armor]
 | 
			
		||||
=========================
 | 
			
		||||
 | 
			
		||||
License Source Code: (C) 2012-2017 Stuart Jones - LGPL v2.1
 | 
			
		||||
License Source Code
 | 
			
		||||
-------------------
 | 
			
		||||
 | 
			
		||||
License Textures: Copyright (C) 2017 davidthecreator - CC-BY-SA 3.0
 | 
			
		||||
Copyright (C) 2012-2019 stujones11, Stuart Jones <stujones111@gmail.com>
 | 
			
		||||
 | 
			
		||||
https://github.com/daviddoesminetest/3d-armors-new-textures
 | 
			
		||||
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
 | 
			
		||||
 
 | 
			
		||||
@@ -32,11 +32,11 @@ armor_material_mithril = true
 | 
			
		||||
armor_material_crystal = true
 | 
			
		||||
 | 
			
		||||
-- Increase this if you get initialization glitches when a player first joins.
 | 
			
		||||
armor_init_delay = 1
 | 
			
		||||
armor_init_delay = 2
 | 
			
		||||
 | 
			
		||||
-- Number of initialization attempts.
 | 
			
		||||
-- Use in conjunction with armor_init_delay if initialization problems persist.
 | 
			
		||||
armor_init_times = 1
 | 
			
		||||
armor_init_times = 10
 | 
			
		||||
 | 
			
		||||
-- Increase this if armor is not getting into bones due to server lag.
 | 
			
		||||
armor_bones_delay = 1
 | 
			
		||||
@@ -111,7 +111,7 @@ armor:register_armor("mod_name:speed_boots", {
 | 
			
		||||
	damage_groups = {cracky=3, snappy=3, choppy=3, crumbly=3, level=1},
 | 
			
		||||
	reciprocate_damage = true,
 | 
			
		||||
	on_destroy = function(player, index, stack)
 | 
			
		||||
		local pos = player:getpos()
 | 
			
		||||
		local pos = player:get_pos()
 | 
			
		||||
		if pos then
 | 
			
		||||
			minetest.sound_play({
 | 
			
		||||
				name = "mod_name_break_sound",
 | 
			
		||||
 
 | 
			
		||||
@@ -74,7 +74,7 @@ armor = {
 | 
			
		||||
		on_destroy = {},
 | 
			
		||||
	},
 | 
			
		||||
	migrate_old_inventory = true,
 | 
			
		||||
	version = "0.4.12",
 | 
			
		||||
	version = "0.4.13",
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
armor.config = {
 | 
			
		||||
@@ -279,6 +279,11 @@ armor.set_player_armor = function(self, player)
 | 
			
		||||
	if use_armor_monoid then
 | 
			
		||||
		armor_monoid.monoid:add_change(player, change, "3d_armor:armor")
 | 
			
		||||
	else
 | 
			
		||||
		-- Preserve immortal group (damage disabled for player)
 | 
			
		||||
		local immortal = player:get_armor_groups().immortal
 | 
			
		||||
		if immortal and immortal ~= 0 then
 | 
			
		||||
			groups.immortal = 1
 | 
			
		||||
		end
 | 
			
		||||
		player:set_armor_groups(groups)
 | 
			
		||||
	end
 | 
			
		||||
	if use_player_monoids then
 | 
			
		||||
 
 | 
			
		||||
@@ -1,37 +0,0 @@
 | 
			
		||||
-- Armor Configuration (defaults)
 | 
			
		||||
 | 
			
		||||
-- Increase this if you get initialization glitches when a player first joins.
 | 
			
		||||
ARMOR_INIT_DELAY = 3
 | 
			
		||||
 | 
			
		||||
-- Number of initialization attempts.
 | 
			
		||||
-- Use in conjunction with ARMOR_INIT_DELAY if initialization problems persist.
 | 
			
		||||
ARMOR_INIT_TIMES = 3
 | 
			
		||||
 | 
			
		||||
-- Increase this if armor is not getting into bones due to server lag.
 | 
			
		||||
ARMOR_BONES_DELAY = 3
 | 
			
		||||
 | 
			
		||||
-- How often player armor/wield items are updated.
 | 
			
		||||
ARMOR_UPDATE_TIME = 1
 | 
			
		||||
 | 
			
		||||
-- Drop armor when a player dies.
 | 
			
		||||
-- Uses bones mod if present, otherwise items are dropped around the player.
 | 
			
		||||
ARMOR_DROP = true
 | 
			
		||||
 | 
			
		||||
-- Pulverise armor when a player dies, overrides ARMOR_DROP.
 | 
			
		||||
ARMOR_DESTROY = false
 | 
			
		||||
 | 
			
		||||
-- You can use this to increase or decrease overall armor effectiveness,
 | 
			
		||||
-- eg: ARMOR_LEVEL_MULTIPLIER = 0.5 will reduce armor level by half.
 | 
			
		||||
ARMOR_LEVEL_MULTIPLIER = 1
 | 
			
		||||
 | 
			
		||||
-- You can use this to increase or decrease overall armor healing,
 | 
			
		||||
-- eg: ARMOR_HEAL_MULTIPLIER = 0 will disable healing altogether.
 | 
			
		||||
ARMOR_HEAL_MULTIPLIER = 1
 | 
			
		||||
 | 
			
		||||
-- You can also use this file to execute arbitary lua code
 | 
			
		||||
-- eg: Dumb the armor down if using Simple Mobs
 | 
			
		||||
--if minetest.get_modpath("mobs") then
 | 
			
		||||
--	ARMOR_LEVEL_MULTIPLIER = 1
 | 
			
		||||
--	ARMOR_HEAL_MULTIPLIER = 0
 | 
			
		||||
--end
 | 
			
		||||
 | 
			
		||||
@@ -99,17 +99,27 @@ armor.formspec = armor.formspec..
 | 
			
		||||
if armor.config.fire_protect then
 | 
			
		||||
	armor.formspec = armor.formspec.."label[5,2;"..F(S("Fire"))..":  armor_attr_fire]"
 | 
			
		||||
end
 | 
			
		||||
armor:register_on_damage(function(player, index, stack)
 | 
			
		||||
	local name = player:get_player_name()
 | 
			
		||||
	local def = stack:get_definition()
 | 
			
		||||
	if name and def and def.description and stack:get_wear() > 60100 then
 | 
			
		||||
		minetest.chat_send_player(name, S("Your @1 is almost broken!", def.description))
 | 
			
		||||
		minetest.sound_play("default_tool_breaks", {to_player = name, gain = 2.0})
 | 
			
		||||
	end
 | 
			
		||||
end)
 | 
			
		||||
armor:register_on_destroy(function(player, index, stack)
 | 
			
		||||
	local name = player:get_player_name()
 | 
			
		||||
	local def = stack:get_definition()
 | 
			
		||||
	if name and def and def.description then
 | 
			
		||||
		minetest.chat_send_player(name, S("Your @1 got destroyed!", def.description))
 | 
			
		||||
		minetest.sound_play("default_tool_breaks", {to_player = name, gain = 2.0})
 | 
			
		||||
	end
 | 
			
		||||
end)
 | 
			
		||||
 | 
			
		||||
local function validate_armor_inventory(player)
 | 
			
		||||
	-- Workaround for detached inventory swap exploit
 | 
			
		||||
	local _, inv = armor:get_valid_player(player, "[validate_armor_inventory]")
 | 
			
		||||
	local pos = player:get_pos()
 | 
			
		||||
	if not inv then
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
@@ -140,6 +150,7 @@ local function validate_armor_inventory(player)
 | 
			
		||||
				elements[element] = true;
 | 
			
		||||
			else
 | 
			
		||||
				inv:remove_item("armor", stack)
 | 
			
		||||
				minetest.item_drop(stack, player, pos)
 | 
			
		||||
				-- The following code returns invalid items to the player's main
 | 
			
		||||
				-- inventory but could open up the possibity for a hacked client
 | 
			
		||||
				-- to receive items back they never really had. I am not certain
 | 
			
		||||
@@ -160,7 +171,7 @@ end
 | 
			
		||||
 | 
			
		||||
local function init_player_armor(player)
 | 
			
		||||
	local name = player:get_player_name()
 | 
			
		||||
	local pos = player:getpos()
 | 
			
		||||
	local pos = player:get_pos()
 | 
			
		||||
	if not name or not pos then
 | 
			
		||||
		return false
 | 
			
		||||
	end
 | 
			
		||||
@@ -326,12 +337,12 @@ if armor.config.drop == true or armor.config.destroy == true then
 | 
			
		||||
		end
 | 
			
		||||
		armor:save_armor_inventory(player)
 | 
			
		||||
		armor:set_player_armor(player)
 | 
			
		||||
		local pos = player:getpos()
 | 
			
		||||
		local pos = player:get_pos()
 | 
			
		||||
		if pos and armor.config.destroy == false then
 | 
			
		||||
			minetest.after(armor.config.bones_delay, function()
 | 
			
		||||
				local meta = nil
 | 
			
		||||
				local maxp = vector.add(pos, 8)
 | 
			
		||||
				local minp = vector.subtract(pos, 8)
 | 
			
		||||
				local maxp = vector.add(pos, 16)
 | 
			
		||||
				local minp = vector.subtract(pos, 16)
 | 
			
		||||
				local bones = minetest.find_nodes_in_area(minp, maxp, {"bones:bones"})
 | 
			
		||||
				for _, p in pairs(bones) do
 | 
			
		||||
					local m = minetest.get_meta(p)
 | 
			
		||||
@@ -427,7 +438,7 @@ if armor.config.water_protect == true or armor.config.fire_protect == true then
 | 
			
		||||
		end
 | 
			
		||||
		for _,player in pairs(minetest.get_connected_players()) do
 | 
			
		||||
			local name = player:get_player_name()
 | 
			
		||||
			local pos = player:getpos()
 | 
			
		||||
			local pos = player:get_pos()
 | 
			
		||||
			local hp = player:get_hp()
 | 
			
		||||
			if not name or not pos or not hp then
 | 
			
		||||
				return
 | 
			
		||||
@@ -467,5 +478,3 @@ if armor.config.water_protect == true or armor.config.fire_protect == true then
 | 
			
		||||
		armor.timer = 0
 | 
			
		||||
	end)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
minetest.log("action", "[3d_armor] loaded.")
 | 
			
		||||
 
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 408 B  | 
| 
		 Before Width: | Height: | Size: 548 B After Width: | Height: | Size: 383 B  | 
| 
		 Before Width: | Height: | Size: 937 B After Width: | Height: | Size: 399 B  | 
| 
		 Before Width: | Height: | Size: 602 B After Width: | Height: | Size: 369 B  | 
| 
		 Before Width: | Height: | Size: 903 B After Width: | Height: | Size: 404 B  | 
| 
		 Before Width: | Height: | Size: 821 B After Width: | Height: | Size: 376 B  | 
| 
		 Before Width: | Height: | Size: 236 B After Width: | Height: | Size: 408 B  | 
| 
		 Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 383 B  | 
| 
		 Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 408 B  | 
| 
		 Before Width: | Height: | Size: 872 B After Width: | Height: | Size: 383 B  | 
| 
		 Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 399 B  | 
| 
		 Before Width: | Height: | Size: 779 B After Width: | Height: | Size: 369 B  | 
| 
		 Before Width: | Height: | Size: 854 B After Width: | Height: | Size: 407 B  | 
| 
		 Before Width: | Height: | Size: 530 B After Width: | Height: | Size: 382 B  | 
| 
		 Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 393 B  | 
| 
		 Before Width: | Height: | Size: 783 B After Width: | Height: | Size: 369 B  | 
| 
		 Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 377 B  | 
| 
		 Before Width: | Height: | Size: 501 B After Width: | Height: | Size: 366 B  | 
| 
		 Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 516 B  | 
| 
		 Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 446 B  | 
| 
		 Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 500 B  | 
| 
		 Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 441 B  | 
| 
		 Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 504 B  | 
| 
		 Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 444 B  | 
| 
		 Before Width: | Height: | Size: 613 B After Width: | Height: | Size: 516 B  | 
| 
		 Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 446 B  | 
| 
		 Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 524 B  | 
| 
		 Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 446 B  | 
| 
		 Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 508 B  | 
| 
		 Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 444 B  | 
| 
		 Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 514 B  | 
| 
		 Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 446 B  | 
| 
		 Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 499 B  | 
| 
		 Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 440 B  | 
| 
		 Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 453 B  | 
| 
		 Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 437 B  | 
| 
		 Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 476 B  | 
| 
		 Before Width: | Height: | Size: 869 B After Width: | Height: | Size: 386 B  | 
| 
		 Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 468 B  | 
| 
		 Before Width: | Height: | Size: 796 B After Width: | Height: | Size: 382 B  | 
| 
		 Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 464 B  | 
| 
		 Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 358 B  | 
| 
		 Before Width: | Height: | Size: 494 B After Width: | Height: | Size: 476 B  | 
| 
		 Before Width: | Height: | Size: 834 B After Width: | Height: | Size: 386 B  | 
| 
		 Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 476 B  | 
| 
		 Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 386 B  | 
| 
		 Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 491 B  | 
| 
		 Before Width: | Height: | Size: 586 B After Width: | Height: | Size: 382 B  | 
| 
		 Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 474 B  | 
| 
		 Before Width: | Height: | Size: 732 B After Width: | Height: | Size: 382 B  | 
| 
		 Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 495 B  | 
| 
		 Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 386 B  | 
| 
		 Before Width: | Height: | Size: 932 B After Width: | Height: | Size: 462 B  | 
| 
		 Before Width: | Height: | Size: 471 B After Width: | Height: | Size: 368 B  | 
| 
		 Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 408 B  | 
| 
		 Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 406 B  | 
| 
		 Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 399 B  | 
| 
		 Before Width: | Height: | Size: 129 B After Width: | Height: | Size: 408 B  | 
| 
		 Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 408 B  | 
| 
		 Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 406 B  | 
| 
		 Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 415 B  | 
| 
		 Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 409 B  | 
| 
		 Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 410 B  | 
| 
		 Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 440 B  | 
| 
		 Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 438 B  | 
| 
		 Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 434 B  | 
| 
		 Before Width: | Height: | Size: 142 B After Width: | Height: | Size: 440 B  | 
| 
		 Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 440 B  | 
| 
		 Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 438 B  | 
| 
		 Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 433 B  | 
| 
		 Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 438 B  | 
| 
		 Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 426 B  | 
| 
		 Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 392 B  | 
| 
		 Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 389 B  | 
| 
		 Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 386 B  | 
| 
		 Before Width: | Height: | Size: 138 B After Width: | Height: | Size: 392 B  | 
| 
		 Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 392 B  | 
| 
		 Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 389 B  | 
| 
		 Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 389 B  | 
| 
		 Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 400 B  | 
| 
		 Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 373 B  | 
| 
		 Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 410 B  | 
| 
		 Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 420 B  | 
| 
		 Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 408 B  | 
| 
		 Before Width: | Height: | Size: 154 B After Width: | Height: | Size: 410 B  | 
| 
		 Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 410 B  | 
| 
		 Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 420 B  | 
| 
		 Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 423 B  | 
| 
		 Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 420 B  | 
| 
		 Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 415 B  | 
| 
		 Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 425 B  | 
| 
		 Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 394 B  |