From 31e4dea2b6a25e46dcb52fd66efebf378c2559d1 Mon Sep 17 00:00:00 2001 From: echoes91 Date: Sun, 15 Mar 2015 00:37:10 +0100 Subject: [PATCH] 0.9.7 Reload! --- bows.lua | 125 ++++++++++++++++++---------- textures/throwing_bow_composite.png | Bin 594 -> 595 bytes textures/throwing_bow_steel.png | Bin 507 -> 510 bytes textures/throwing_bow_wood.png | Bin 576 -> 577 bytes 4 files changed, 79 insertions(+), 46 deletions(-) diff --git a/bows.lua b/bows.lua index 260255d..2bce3ab 100644 --- a/bows.lua +++ b/bows.lua @@ -1,10 +1,22 @@ -local stiffness=0 -local bow_idle=true -local reload=0 +local stiffness= 0 +local reload = 0 + +minetest.register_on_joinplayer(function(player) + local playername = player:get_player_name() + local privs = minetest.get_player_privs(playername) + privs.throw = true + minetest.set_player_privs(playername, privs) +end) local throwing_shoot_arrow = function(itemstack, player) - if bow_idle then - bow_idle=false + local playername = player:get_player_name() + if minetest.get_player_privs(playername).throw then + local privs = minetest.get_player_privs(playername) + privs.throw = nil + minetest.chat_send_player(playername, tostring(privs.throw)) + minetest.set_player_privs(playername, privs) + local privs = minetest.get_player_privs(playername) + minetest.chat_send_player(playername, tostring(privs.throw)) for _,arrow in ipairs(arrows) do if player:get_inventory():get_stack("main", player:get_wield_index()+1):get_name() == arrow[1] then if not minetest.setting_getbool("creative_mode") then @@ -30,11 +42,33 @@ local throwing_shoot_arrow = function(itemstack, player) return false end -local function reloading (user) - minetest.after(reload, function() - bow_idle=true - --~ minetest.chat_send_player(user:get_player_name(), "Reloaded!") +local function reloaded (player, id) + local playername = player:get_player_name() + local privs = minetest.get_player_privs(playername) + privs.throw = true + minetest.set_player_privs(playername, privs) + player:hud_change(id, "number", 0x00FF00) + player:hud_change(id, "text", "Ready!") + player:hud_change(id, "position", {x=0.6,y=0.515}) + minetest.after(0.5, function(player, id) + player:hud_remove(id) + end, player, id) +end + +local function reloading (player) + minetest.register_on_dieplayer(function(player) + local playername = player:get_player_name() + local privs = minetest.get_player_privs(playername) + privs.throw = true + minetest.set_player_privs(playername, privs) end) + local throwing_hud = player:hud_add({ + hud_elem_type = "text", + position = {x=0.6,y=0.5}, + text = "Reloading...", + number = 0xFF0000, + }) + minetest.after(reload, reloaded, player, throwing_hud) end if not disable_wooden_bow then @@ -45,11 +79,11 @@ if not disable_wooden_bow then stack_max = 1, on_use = function(itemstack, user, pointed_thing) stiffness = 13 - reload = 1.1 + reload = 1.2 if throwing_shoot_arrow(itemstack, user, pointed_thing) then reloading(user) if not minetest.setting_getbool("creative_mode") then - itemstack:add_wear(65535/80) + itemstack:add_wear(65535/50) end end return itemstack @@ -75,17 +109,17 @@ if not disable_wooden_bow then }) end -if not disable_steel_bow then - minetest.register_tool("throwing:bow_steel", { - description = "Steel Bow", - inventory_image = "throwing_bow_steel.png", +if not disable_golden_bow then -- To become longbow soon + minetest.register_tool("throwing:bow_gold", { + description = "Golden Bow", + inventory_image = "throwing_bow_gold.png", wield_scale = {x=1, y=1, z=0.5}, stack_max = 1, on_use = function(itemstack, user, pointed_thing) - stiffness = 19 + stiffness = 16 reload = 1.6 if throwing_shoot_arrow(itemstack, user, pointed_thing) then - reloading() + reloading(user) if not minetest.setting_getbool("creative_mode") then itemstack:add_wear(65535/400) end @@ -95,20 +129,20 @@ if not disable_steel_bow then }) minetest.register_craft({ - output = 'throwing:bow_steel', + output = 'throwing:bow_gold', recipe = { - {'farming:string', 'default:steel_ingot', ''}, - {'farming:string', '', 'default:steel_ingot'}, - {'farming:string', 'default:steel_ingot', ''}, + {'farming:string', 'default:gold_ingot', ''}, + {'farming:string', '', 'default:gold_ingot'}, + {'farming:string', 'default:gold_ingot', ''}, } }) - + minetest.register_craft({ - output = 'throwing:bow_steel', + output = 'throwing:bow_gold', recipe = { - {'', 'default:steel_ingot', 'farming:string'}, - {'default:steel_ingot', '', 'farming:string'}, - {'', 'default:steel_ingot', 'farming:string'}, + {'', 'default:gold_ingot', 'farming:string'}, + {'default:gold_ingot', '', 'farming:string'}, + {'', 'default:gold_ingot', 'farming:string'}, } }) end @@ -121,11 +155,11 @@ if not disable_composite_bow then stack_max = 1, on_use = function(itemstack, user, pointed_thing) stiffness = 18 - reload = 1.3 + reload = 1.4 if throwing_shoot_arrow(itemstack, user, pointed_thing) then - reloading() + reloading(user) if not minetest.setting_getbool("creative_mode") then - itemstack:add_wear(65535/150) + itemstack:add_wear(65535/100) end end return itemstack @@ -151,19 +185,19 @@ if not disable_composite_bow then }) end -if not disable_golden_bow then - minetest.register_tool("throwing:bow_gold", { - description = "Golden Bow", - inventory_image = "throwing_bow_gold.png", +if not disable_steel_bow then + minetest.register_tool("throwing:bow_steel", { + description = "Steel Bow", + inventory_image = "throwing_bow_steel.png", wield_scale = {x=1, y=1, z=0.5}, stack_max = 1, on_use = function(itemstack, user, pointed_thing) - stiffness = 16 + stiffness = 19 reload = 1.6 if throwing_shoot_arrow(itemstack, user, pointed_thing) then - reloading() + reloading(user) if not minetest.setting_getbool("creative_mode") then - itemstack:add_wear(65535/1000) + itemstack:add_wear(65535/200) end end return itemstack @@ -171,21 +205,20 @@ if not disable_golden_bow then }) minetest.register_craft({ - output = 'throwing:bow_gold', + output = 'throwing:bow_steel', recipe = { - {'farming:string', 'default:gold_ingot', ''}, - {'farming:string', '', 'default:gold_ingot'}, - {'farming:string', 'default:gold_ingot', ''}, + {'farming:string', 'default:steel_ingot', ''}, + {'farming:string', '', 'default:steel_ingot'}, + {'farming:string', 'default:steel_ingot', ''}, } }) - + minetest.register_craft({ - output = 'throwing:bow_gold', + output = 'throwing:bow_steel', recipe = { - {'', 'default:gold_ingot', 'farming:string'}, - {'default:gold_ingot', '', 'farming:string'}, - {'', 'default:gold_ingot', 'farming:string'}, + {'', 'default:steel_ingot', 'farming:string'}, + {'default:steel_ingot', '', 'farming:string'}, + {'', 'default:steel_ingot', 'farming:string'}, } }) end - diff --git a/textures/throwing_bow_composite.png b/textures/throwing_bow_composite.png index 6bcc7d245e2f4af8b452810e6ad11209a7c1b2fd..bf9658c06214d918f44812b95c61a49c37cc8792 100644 GIT binary patch delta 523 zcmV+m0`&dT1k(hNQ-2N@Bm?i`^W8SdRh*MAfEb4^j-epvu2`HLh; zu-3A7Hsj~+b9%iVpWb9}{LU5d`4#5;3bXq*CP@;5BqZUzM-tX%$_Mo-CoSZh)BYyX z1?V@72JrbqTRB$<%vUZl91fKviADp^1$4XJ5?m64RYT<_{MBleIF4a| z6SW)5ZUb3RZfZU&`BM^DYjvC3i{N~f8s%vl4Jbu)GMSVjV1kwbMQ-2K$BO{9KPo)3=0pCePK~y-)b&|nq6Hyq2zne}_5Ff#nSiE_H zL4?9s;|p|cN>L)Fd%NhOi!R)@7FThhxbX=B(M19-`T|aNm#l55v?L`YH}|-h&X`H- z50~N2o$vf}&wq?00BW@wgTa8qxXRP_-`UvM0N{AraPKafOn>3egrdIvvH(=_7ipSe zt!4jo&dIS z^c%)Q`23-zoGS#DD;F7!MoQCE<00rAdc9r=E(zo!JL}M@Ly{zN&Z$+026vdvW;bB( zefbY0(W=8%41aMP%UW9itMGh2M-tIuv0!a&jl;Og@wQ>$6J2q|#l;0r!oY+8Uq9~Z zNnj6vY=eoa#r%EB(T=%Hn&&75Mbis*DYEq%D!IbVMP!^z@C(0cvQ00000 MNkvXXt^-0~g0Kt)_5c6? diff --git a/textures/throwing_bow_steel.png b/textures/throwing_bow_steel.png index 682857299aca0cd58765d571221686eef9b92237..dea3744a6e9ff15a4c63e227766b853457ffded5 100644 GIT binary patch delta 437 zcmV;m0ZRV+1O5Y$Q-2N@Bph@@0i^%{0gFjQK~y-)b(6hn8&MF2zqMps`4Lhj4!N}& zky0_r3%ItN5aVL~2rm5sPK>KG33&&BuwYAfD%}ayK^PW<5W9Epak0L4|LlQf*`M#s zoSC^uLK36VNC4NveUc=>zrUHldcD?ixzu8@2$wNN#u$Yk2Y-Ws+9JO%x^O&(cnp7j z#gar2u-0}&>adB2E6@`pNz#BD0$$|%$4bPPJmG*W%Q~>NwpoEB z;xU{IOA%vC0NQY#=SZSo6a~FrkL%$+KhGi_?MP{!vfXa^>>eZM;NRV)PA_jGZ?h;0 zthMy}eYly>>3_B{Mn6799789wa}H}Q&N-ZObmkn7D_d;9lb0QTaT1Uw(?Bh}mog z-gkS$D&N(Jza7EZhf-)hpO@8mfzF0OxhOAD-xYtC1TMxHz1HnESdT^`zipdU^I+|E fJKA>Iuq2)VkK!u#@Kam=00000NkvXXu0mjfjbYY@ delta 434 zcmV;j0Zsn?1N#GzQ-2K$B@|=|O)LNa0f{(1)6?N;mcTC3G6Ud}l==M;ZT(|=Tbk#C=ea5jZ(3g5qE zl0+0Rvw=t();;JC>^2SD5eU&13Gi+Mx`#Z^J8(xJhX73M7$D z;cZ%rIOihJhYyDXk{DN2#b`9*Dm~`rJmJnJdf5I8S(p5IDcLXEtku>njkRPFsK*hU$l26+$Di?PAiXfyAQUblPGN4Zqq$j`~9B2 cojxpyzYbU`LfYnqaR2}S07*qoM6N<$g0iR4fdBvi diff --git a/textures/throwing_bow_wood.png b/textures/throwing_bow_wood.png index 34845081dcb4c10093376e0fceab5c0f9ee20d63..9b0e2263131c9fb4c27d26ee3da5fcd09fc9836a 100644 GIT binary patch delta 504 zcmVgp`6Q6fDx@Poq{zlOkAI9Gn(fX`dh#77@}N7&&v{xY?a& zG45n{?*^8c;m!Ac@BQ|Ps#0999$etz>yI=V4FEQmgvklCKYxIe{`tGZW4B8&L6&9I zYBita=iVcr40n47!2QKUpR8<)PmsgKO0L~A9)9r_A%*@Ky#L@}fG`Kb&>vA%F5fZa z@ano#{qp@YzYg|2Jko-Qusj2oZi2Ds^pq?4v~!Vn!@umkc~*k6EOTmk5>+Lchqw-L z9gXW~9^ctY{C`(1X-2=@UkAUxg;2i0t#^T1hE!&w^v4#(=>HeZ?s@?f|A>Z z$1wFrH!xLrI2?|E t#Z?l@r|tCUJdma-gTbKmu&SJY{{W(}YqNC-9{B(O002ovPDHLkV1ik}^56gf