forked from mff/3d_armor_classes
		
	Compare commits
	
		
			1 Commits
		
	
	
		
			nalc-1.0
			...
			8fe61c0bb6
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 8fe61c0bb6 | 
| @@ -1,2 +1,4 @@ | |||||||
| 3d_armor | 3d_armor | ||||||
| shields | shields | ||||||
|  | hudbars? | ||||||
|  | hbsprint? | ||||||
|   | |||||||
							
								
								
									
										134
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						
									
										134
									
								
								init.lua
									
									
									
									
									
								
							| @@ -26,6 +26,35 @@ for material, _ in pairs(armor.materials) do | |||||||
| 	end | 	end | ||||||
| end | end | ||||||
|  |  | ||||||
|  | -- Function to change max stamina if hbsprint is present | ||||||
|  | local mod_hbsprint = minetest.get_modpath("hbsprint") ~= nil | ||||||
|  | local function change_stamina_max(player, value) | ||||||
|  | 	if mod_hbsprint then | ||||||
|  | 		local new_max = value + hb.get_hudtable("stamina").hudstate[player:get_player_name()].max | ||||||
|  | 		local val = player:get_meta():get_float("hbsprint:stamina") | ||||||
|  | 		if val > new_max then | ||||||
|  | 			player:get_meta():set_float("hbsprint:stamina", new_max) | ||||||
|  | 			hb.change_hudbar(player, "stamina", new_max, new_max) | ||||||
|  | 		elseif val < new_max then | ||||||
|  | 			hb.unhide_hudbar(player, "stamina") | ||||||
|  | 			hb.change_hudbar(player, "stamina", nil, new_max) | ||||||
|  | 		end | ||||||
|  | 	end | ||||||
|  | end | ||||||
|  |  | ||||||
|  | local mod_hb = minetest.get_modpath("hudbars") ~= nil | ||||||
|  | local function change_hp_max(player, value) | ||||||
|  | 	local hp_max = player:get_properties().hp_max | ||||||
|  | 	local hp = player:get_hp() | ||||||
|  | 	local new_max = hp_max + value | ||||||
|  | 	if hp > new_max then | ||||||
|  | 		player:set_hp(new_max, {type="set_hp", from="mod"}) | ||||||
|  | 		if mod_hb then | ||||||
|  | 			hb.change_hudbar(player, "health", new_max, new_max) | ||||||
|  | 		end | ||||||
|  | 	end | ||||||
|  | 	player:set_properties({hp_max = new_max}) | ||||||
|  | end | ||||||
|  |  | ||||||
| -- Reinforced Leather | -- Reinforced Leather | ||||||
| minetest.register_craftitem(":3d_armor:reinforcedleather", { | minetest.register_craftitem(":3d_armor:reinforcedleather", { | ||||||
| @@ -50,7 +79,13 @@ if armor.materials.reinforcedleather then | |||||||
| 			inventory_image = "3d_armor_inv_helmet_reinforcedleather.png", | 			inventory_image = "3d_armor_inv_helmet_reinforcedleather.png", | ||||||
| 			groups = {armor_head=1, armor_use=40, physics_speed=0.02, physics_gravity=-0.02}, | 			groups = {armor_head=1, armor_use=40, physics_speed=0.02, physics_gravity=-0.02}, | ||||||
| 			armor_groups = {fleshy=6}, | 			armor_groups = {fleshy=6}, | ||||||
| 			damage_groups = {cracky=2, snappy=1, choppy=1, level=2} | 			damage_groups = {cracky=2, snappy=1, choppy=1, level=2}, | ||||||
|  | 			on_equip = function(player, index, stack) | ||||||
|  | 				change_stamina_max(player, 2) | ||||||
|  | 			end, | ||||||
|  | 			on_unequip = function(player, index, stack) | ||||||
|  | 				change_stamina_max(player, -2) | ||||||
|  | 			end, | ||||||
| 	}) | 	}) | ||||||
| 	 | 	 | ||||||
| 	-- Register chestplates : | 	-- Register chestplates : | ||||||
| @@ -59,7 +94,14 @@ if armor.materials.reinforcedleather then | |||||||
| 		inventory_image = "3d_armor_inv_chestplate_reinforcedleather.png", | 		inventory_image = "3d_armor_inv_chestplate_reinforcedleather.png", | ||||||
| 		groups = {armor_torso = 1, armor_use = 40, physics_speed=0.08, physics_gravity=-0.08}, | 		groups = {armor_torso = 1, armor_use = 40, physics_speed=0.08, physics_gravity=-0.08}, | ||||||
| 		armor_groups = {fleshy=11}, | 		armor_groups = {fleshy=11}, | ||||||
| 		damage_groups = {cracky=2, snappy=1, choppy=1, level=2} | 		damage_groups = {cracky=2, snappy=1, choppy=1, level=2}, | ||||||
|  | 		on_equip = function(player, index, stack) | ||||||
|  | 			change_stamina_max(player, 8) | ||||||
|  | 		end, | ||||||
|  | 		on_unequip = function(player, index, stack) | ||||||
|  | 			change_stamina_max(player, -8) | ||||||
|  | 		end, | ||||||
|  |  | ||||||
| 	}) | 	}) | ||||||
|  |  | ||||||
| 	-- Register leggings : | 	-- Register leggings : | ||||||
| @@ -68,7 +110,13 @@ if armor.materials.reinforcedleather then | |||||||
| 		inventory_image = "3d_armor_inv_leggings_reinforcedleather.png", | 		inventory_image = "3d_armor_inv_leggings_reinforcedleather.png", | ||||||
| 		groups = {armor_legs = 1, armor_use = 40, physics_speed=0.06, physics_gravity=-0.06}, | 		groups = {armor_legs = 1, armor_use = 40, physics_speed=0.06, physics_gravity=-0.06}, | ||||||
| 		armor_groups = {fleshy=11}, | 		armor_groups = {fleshy=11}, | ||||||
| 		damage_groups = {cracky=2, snappy=1, choppy=1, level=2} | 		damage_groups = {cracky=2, snappy=1, choppy=1, level=2}, | ||||||
|  | 		on_equip = function(player, index, stack) | ||||||
|  | 			change_stamina_max(player, 6) | ||||||
|  | 		end, | ||||||
|  | 		on_unequip = function(player, index, stack) | ||||||
|  | 			change_stamina_max(player, -6) | ||||||
|  | 		end, | ||||||
| 	}) | 	}) | ||||||
|  |  | ||||||
| 	-- Register boots : | 	-- Register boots : | ||||||
| @@ -77,7 +125,13 @@ if armor.materials.reinforcedleather then | |||||||
| 		inventory_image = "3d_armor_inv_boots_reinforcedleather.png", | 		inventory_image = "3d_armor_inv_boots_reinforcedleather.png", | ||||||
| 		groups = {armor_feet = 1, armor_use = 40, physics_speed=0.02, physics_gravity=-0.02}, | 		groups = {armor_feet = 1, armor_use = 40, physics_speed=0.02, physics_gravity=-0.02}, | ||||||
| 		armor_groups = {fleshy=6}, | 		armor_groups = {fleshy=6}, | ||||||
| 		damage_groups = {cracky=2, snappy=1, choppy=1, level=3} | 		damage_groups = {cracky=2, snappy=1, choppy=1, level=3}, | ||||||
|  | 		on_equip = function(player, index, stack) | ||||||
|  | 			change_stamina_max(player, 2) | ||||||
|  | 		end, | ||||||
|  | 		on_unequip = function(player, index, stack) | ||||||
|  | 			change_stamina_max(player, -2) | ||||||
|  | 		end, | ||||||
| 	}) | 	}) | ||||||
| end | end | ||||||
|  |  | ||||||
| @@ -105,7 +159,13 @@ if armor.materials.hardenedleather then | |||||||
| 		inventory_image = "3d_armor_inv_helmet_hardenedleather.png", | 		inventory_image = "3d_armor_inv_helmet_hardenedleather.png", | ||||||
| 		groups = {armor_head = 1, armor_use = 250, physics_speed=0.01, physics_gravity=-0.01}, | 		groups = {armor_head = 1, armor_use = 250, physics_speed=0.01, physics_gravity=-0.01}, | ||||||
| 		armor_groups = {fleshy=5}, | 		armor_groups = {fleshy=5}, | ||||||
| 		damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2} | 		damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2}, | ||||||
|  | 		on_equip = function(player, index, stack) | ||||||
|  | 			change_stamina_max(player, 1) | ||||||
|  | 		end, | ||||||
|  | 		on_unequip = function(player, index, stack) | ||||||
|  | 			change_stamina_max(player, -1) | ||||||
|  | 		end, | ||||||
| 	}) | 	}) | ||||||
|  |  | ||||||
| 	-- Register chestplates : | 	-- Register chestplates : | ||||||
| @@ -114,7 +174,13 @@ if armor.materials.hardenedleather then | |||||||
| 		inventory_image = "3d_armor_inv_chestplate_hardenedleather.png", | 		inventory_image = "3d_armor_inv_chestplate_hardenedleather.png", | ||||||
| 		groups = {armor_torso = 1, armor_use = 250, physics_speed=0.04, physics_gravity=-0.04}, | 		groups = {armor_torso = 1, armor_use = 250, physics_speed=0.04, physics_gravity=-0.04}, | ||||||
| 		armor_groups = {fleshy=8}, | 		armor_groups = {fleshy=8}, | ||||||
| 		damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2} | 		damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2}, | ||||||
|  | 		on_equip = function(player, index, stack) | ||||||
|  | 			change_stamina_max(player, 4) | ||||||
|  | 		end, | ||||||
|  | 		on_unequip = function(player, index, stack) | ||||||
|  | 			change_stamina_max(player, -4) | ||||||
|  | 		end, | ||||||
| 	}) | 	}) | ||||||
|  |  | ||||||
| 	-- Register leggings : | 	-- Register leggings : | ||||||
| @@ -123,7 +189,13 @@ if armor.materials.hardenedleather then | |||||||
| 		inventory_image = "3d_armor_inv_leggings_hardenedleather.png", | 		inventory_image = "3d_armor_inv_leggings_hardenedleather.png", | ||||||
| 		groups = {armor_legs = 1, armor_use = 250, physics_speed=0.03, physics_gravity=-0.03}, | 		groups = {armor_legs = 1, armor_use = 250, physics_speed=0.03, physics_gravity=-0.03}, | ||||||
| 		armor_groups = {fleshy=8}, | 		armor_groups = {fleshy=8}, | ||||||
| 		damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2} | 		damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2}, | ||||||
|  | 		on_equip = function(player, index, stack) | ||||||
|  | 			change_stamina_max(player, 3) | ||||||
|  | 		end, | ||||||
|  | 		on_unequip = function(player, index, stack) | ||||||
|  | 			change_stamina_max(player, -3) | ||||||
|  | 		end, | ||||||
| 	}) | 	}) | ||||||
|  |  | ||||||
| 	-- Register boots : | 	-- Register boots : | ||||||
| @@ -132,7 +204,13 @@ if armor.materials.hardenedleather then | |||||||
| 		inventory_image = "3d_armor_inv_boots_hardenedleather.png", | 		inventory_image = "3d_armor_inv_boots_hardenedleather.png", | ||||||
| 		groups = {armor_feet = 1, armor_use = 250, physics_speed=0.01, physics_gravity=-0.01}, | 		groups = {armor_feet = 1, armor_use = 250, physics_speed=0.01, physics_gravity=-0.01}, | ||||||
| 		armor_groups = {fleshy=5}, | 		armor_groups = {fleshy=5}, | ||||||
| 		damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2} | 		damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2}, | ||||||
|  | 		on_equip = function(player, index, stack) | ||||||
|  | 			change_stamina_max(player, 1) | ||||||
|  | 		end, | ||||||
|  | 		on_unequip = function(player, index, stack) | ||||||
|  | 			change_stamina_max(player, -1) | ||||||
|  | 		end, | ||||||
| 	}) | 	}) | ||||||
| end | end | ||||||
|  |  | ||||||
| @@ -160,7 +238,13 @@ if armor.materials.blackmithril then | |||||||
| 		inventory_image = "3d_armor_inv_helmet_blackmithril.png", | 		inventory_image = "3d_armor_inv_helmet_blackmithril.png", | ||||||
| 		groups = {armor_head = 1, armor_heal = 15, armor_use = 40}, | 		groups = {armor_head = 1, armor_heal = 15, armor_use = 40}, | ||||||
| 		armor_groups = {fleshy=16}, | 		armor_groups = {fleshy=16}, | ||||||
| 		damage_groups = {cracky=2, snappy=1, level=3} | 		damage_groups = {cracky=2, snappy=1, level=3}, | ||||||
|  | 		on_equip = function(player, index, stack) | ||||||
|  | 			change_hp_max(player, 1) | ||||||
|  | 		end, | ||||||
|  | 		on_unequip = function(player, index, stack) | ||||||
|  | 			change_hp_max(player, -1) | ||||||
|  | 		end, | ||||||
| 	}) | 	}) | ||||||
|  |  | ||||||
| 	-- Register chestplates : | 	-- Register chestplates : | ||||||
| @@ -169,7 +253,13 @@ if armor.materials.blackmithril then | |||||||
| 		inventory_image = "3d_armor_inv_chestplate_blackmithril.png", | 		inventory_image = "3d_armor_inv_chestplate_blackmithril.png", | ||||||
| 		groups = {armor_torso = 1, armor_heal = 15, armor_use = 40}, | 		groups = {armor_torso = 1, armor_heal = 15, armor_use = 40}, | ||||||
| 		armor_groups = {fleshy=22}, | 		armor_groups = {fleshy=22}, | ||||||
| 		damage_groups = {cracky=2, snappy=1, level=3} | 		damage_groups = {cracky=2, snappy=1, level=3}, | ||||||
|  | 		on_equip = function(player, index, stack) | ||||||
|  | 			change_hp_max(player, 5) | ||||||
|  | 		end, | ||||||
|  | 		on_unequip = function(player, index, stack) | ||||||
|  | 			change_hp_max(player, -5) | ||||||
|  | 		end, | ||||||
| 	}) | 	}) | ||||||
|  |  | ||||||
| 	-- Register leggings : | 	-- Register leggings : | ||||||
| @@ -178,7 +268,13 @@ if armor.materials.blackmithril then | |||||||
| 		inventory_image = "3d_armor_inv_leggings_blackmithril.png", | 		inventory_image = "3d_armor_inv_leggings_blackmithril.png", | ||||||
| 		groups = {armor_legs = 1, armor_heal = 15, armor_use = 40}, | 		groups = {armor_legs = 1, armor_heal = 15, armor_use = 40}, | ||||||
| 		armor_groups = {fleshy=22}, | 		armor_groups = {fleshy=22}, | ||||||
| 		damage_groups = {cracky=2, snappy=1, level=3} | 		damage_groups = {cracky=2, snappy=1, level=3}, | ||||||
|  | 		on_equip = function(player, index, stack) | ||||||
|  | 			change_hp_max(player, 3) | ||||||
|  | 		end, | ||||||
|  | 		on_unequip = function(player, index, stack) | ||||||
|  | 			change_hp_max(player, -3) | ||||||
|  | 		end, | ||||||
| 	}) | 	}) | ||||||
|  |  | ||||||
| 	-- Register boots : | 	-- Register boots : | ||||||
| @@ -187,7 +283,13 @@ if armor.materials.blackmithril then | |||||||
| 		inventory_image = "3d_armor_inv_boots_blackmithril.png", | 		inventory_image = "3d_armor_inv_boots_blackmithril.png", | ||||||
| 		groups = {armor_feet = 1, armor_heal = 15, armor_use = 40}, | 		groups = {armor_feet = 1, armor_heal = 15, armor_use = 40}, | ||||||
| 		armor_groups = {fleshy=16}, | 		armor_groups = {fleshy=16}, | ||||||
| 		damage_groups = {cracky=2, snappy=1, level=3} | 		damage_groups = {cracky=2, snappy=1, level=3}, | ||||||
|  | 		on_equip = function(player, index, stack) | ||||||
|  | 			change_hp_max(player, 1) | ||||||
|  | 		end, | ||||||
|  | 		on_unequip = function(player, index, stack) | ||||||
|  | 			change_hp_max(player, -1) | ||||||
|  | 		end, | ||||||
| 	})	 | 	})	 | ||||||
|  |  | ||||||
| 	-- Register shield : | 	-- Register shield : | ||||||
| @@ -198,7 +300,13 @@ if armor.materials.blackmithril then | |||||||
| 		armor_groups = {fleshy=16}, | 		armor_groups = {fleshy=16}, | ||||||
| 		damage_groups = {cracky=2, snappy=1, level=3}, | 		damage_groups = {cracky=2, snappy=1, level=3}, | ||||||
| 		reciprocate_damage = true, | 		reciprocate_damage = true, | ||||||
| }) | 		on_equip = function(player, index, stack) | ||||||
|  | 			change_hp_max(player, 5) | ||||||
|  | 		end, | ||||||
|  | 		on_unequip = function(player, index, stack) | ||||||
|  | 			change_hp_max(player, -5) | ||||||
|  | 		end, | ||||||
|  | 	}) | ||||||
| end | end | ||||||
|  |  | ||||||
| for k, v in pairs(armor.materials) do | for k, v in pairs(armor.materials) do | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user