forked from mtcontrib/3d_armor
		
	init-cleanup (#115)
Co-authored-by: BuckarooBanzay <BuckarooBanzay@users.noreply.github.com>
This commit is contained in:
		| @@ -6,7 +6,7 @@ | ||||
| |-[Armor Configuration](#armor-configuration)                               |||- - [3d_Armor Item Storage](#3d_armor-item-storage) | ||||
| |- - [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_times](#number-of-initialization-attempts)                 |||- - [Groups used by 3d_Armor](#groups-used-by-3d_armor) | ||||
| |- - [wieldview_update_time](#how-often-player-wield-items-are-updated)     |||- - [Groups used by 3d_Armor](#groups-used-by-3d_armor) | ||||
| |- - [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_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_punch_damage](#enable-punch-damage-effects)                     |||- - - [armor:equip](#armor-equip) | ||||
| |- - [armor_migrate_old_inventory](#migration-of-old-armor-inventories)     |||- - - [armor:unequip](#armor-unequip) | ||||
| |- - [wieldview_update_time](#how-often-player-wield-items-are-updated)     |||- - - [armor:update_skin](#armor-update_skin) | ||||
| |                                                                           |||- - - [armor:update_skin](#armor-update_skin) | ||||
| |-[Credits](#credits)                                                       |||- - [Callbacks](#Callbacks) | ||||
| |                                                                           |||- - - [Item callbacks](#item-callbacks) | ||||
| |                                                                           |||- - - [Global callbacks](#global-callbacks) | ||||
| @@ -60,11 +60,6 @@ Change the following default settings by going to Main Menu>>Settings(Tab)>>All | ||||
|   | ||||
|     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 | ||||
|  **Increase to help resolve** | ||||
|   | ||||
|   | ||||
| @@ -162,7 +162,6 @@ armor = { | ||||
|  | ||||
| armor.config = { | ||||
| 	init_delay = 2, | ||||
| 	init_times = 10, | ||||
| 	bones_delay = 1, | ||||
| 	update_time = 1, | ||||
| 	drop = minetest.get_modpath("bones") ~= nil, | ||||
| @@ -809,9 +808,6 @@ end | ||||
| --  @tparam[opt] bool listring Use `listring` formspec element (default: `false`). | ||||
| --  @treturn string Formspec formatted string. | ||||
| 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.. | ||||
| 		"list[detached:"..name.."_armor;armor;0,0.5;2,3;]" | ||||
| 	if listring == true then | ||||
|   | ||||
| @@ -35,10 +35,6 @@ ARMOR_FIRE_NODES = { | ||||
| -- Increase this if you get initialization glitches when a player first joins. | ||||
| 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. | ||||
| ARMOR_BONES_DELAY = 1 | ||||
|  | ||||
|   | ||||
| @@ -2,7 +2,6 @@ local modname = minetest.get_current_modname() | ||||
| local modpath = minetest.get_modpath(modname) | ||||
| local worldpath = minetest.get_worldpath() | ||||
| local last_punch_time = {} | ||||
| local pending_players = {} | ||||
| local timer = 0 | ||||
|  | ||||
| dofile(modpath.."/api.lua") | ||||
| @@ -181,11 +180,7 @@ local function validate_armor_inventory(player) | ||||
| end | ||||
|  | ||||
| local function init_player_armor(initplayer) | ||||
| 	local name = initplayer:get_player_name() | ||||
| 	local pos = initplayer:get_pos() | ||||
| 	if not name or not pos then | ||||
| 		return false | ||||
| 	end | ||||
| 	local name = assert(initplayer:get_player_name()) | ||||
| 	local armor_inv = minetest.create_detached_inventory(name.."_armor", { | ||||
| 		on_put = function(inv, listname, index, stack, player) | ||||
| 			validate_armor_inventory(player) | ||||
| @@ -256,7 +251,6 @@ local function init_player_armor(initplayer) | ||||
| 		end | ||||
| 	end | ||||
| 	armor.def[name] = { | ||||
| 		init_time = minetest.get_gametime(), | ||||
| 		level = 0, | ||||
| 		state = 0, | ||||
| 		count = 0, | ||||
| @@ -289,7 +283,6 @@ local function init_player_armor(initplayer) | ||||
| 		end | ||||
| 	end | ||||
| 	armor:set_player_armor(initplayer) | ||||
| 	return true | ||||
| end | ||||
|  | ||||
| -- Armor Player Model | ||||
| @@ -330,15 +323,7 @@ end) | ||||
|  | ||||
| minetest.register_on_joinplayer(function(player) | ||||
| 	default.player_set_model(player, "3d_armor_character.b3d") | ||||
| 	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) | ||||
| 	init_player_armor(player) | ||||
| end) | ||||
|  | ||||
| minetest.register_on_leaveplayer(function(player) | ||||
| @@ -347,7 +332,6 @@ minetest.register_on_leaveplayer(function(player) | ||||
| 		armor.def[name] = nil | ||||
| 		armor.textures[name] = nil | ||||
| 	end | ||||
| 	pending_players[player] = nil | ||||
| end) | ||||
|  | ||||
| if armor.config.drop == true or armor.config.destroy == true then | ||||
| @@ -469,18 +453,6 @@ minetest.register_globalstep(function(dtime) | ||||
| 	end | ||||
| 	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 | ||||
| 	if armor.config.water_protect == true then | ||||
| 		for _,player in pairs(minetest.get_connected_players()) do | ||||
|   | ||||
| @@ -2,3 +2,4 @@ name = 3d_armor | ||||
| depends = default, player_api | ||||
| optional_depends = player_monoids, armor_monoid, pova, moreores | ||||
| description = Adds craftable armor that is visible to other players. | ||||
| min_minetest_version = 5.0 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user