From 96e2d0f799034c5fa2fd6e73816c7ef1377f267c Mon Sep 17 00:00:00 2001 From: echoes91 Date: Tue, 24 Mar 2015 12:38:44 +0100 Subject: [PATCH] 1.0rc2, fixed nil value comparison --- bows.lua | 81 +++++++++++++++++++++++++++++++++- build_arrow.lua | 4 +- diamond_arrow.lua | 6 +-- dig_arrow.lua | 4 +- obsidian_arrow.lua | 4 +- sounds/throwing_bow_sound.ogg | Bin 6217 -> 6224 bytes steel_arrow.lua | 4 +- stone_arrow.lua | 4 +- torch_arrow.lua | 43 ++---------------- 9 files changed, 96 insertions(+), 54 deletions(-) diff --git a/bows.lua b/bows.lua index 0f9857d..36c38d1 100644 --- a/bows.lua +++ b/bows.lua @@ -36,7 +36,6 @@ local throwing_shoot_arrow = function(itemstack, player) end obj:get_luaentity().stack = player:get_inventory():get_stack("main", player:get_wield_index()+2) obj:get_luaentity().inventory = player:get_inventory() - obj:get_luaentity().breaks = math.random() return true end end @@ -228,3 +227,83 @@ if not DISABLE_STEEL_BOW then } }) end + +if not DISABLE_ROYAL_BOW then + minetest.register_tool("throwing:bow_royal", { + description = "Royal Bow", + inventory_image = "throwing_bow_royal.png", + wield_scale = {x=1, y=1.4, z=0.5}, + stack_max = 1, + on_use = function(itemstack, user, pointed_thing) + stiffness = 16 + reload = 1.6 + if throwing_shoot_arrow(itemstack, user, pointed_thing) then + reloading(user) + if not minetest.setting_getbool("creative_mode") then + itemstack:add_wear(65535/1000) + end + end + return itemstack + end, + }) + + minetest.register_craft({ + output = 'throwing:bow_royal', + recipe = { + {'farming:string', 'group:wood', 'default:diamond'}, + {'farming:string', '', 'default:gold_ingot'}, + {'farming:string', 'group:wood', 'default:diamond'}, + } + }) + + minetest.register_craft({ + output = 'throwing:bow_royal', + recipe = { + {'default:diamond', 'group:wood', 'farming:string'}, + {'default:gold_ingot', '', 'farming:string'}, + {'default:diamond', 'group:wood', 'farming:string'}, + } + }) +end + +if not DISABLE_CROSSBOW then + minetest.register_tool("throwing:crossbow", { + description = "Crossbow", + inventory_image = "throwing_crossbow.png", + wield_scale = {x=1, y=1, z=1}, + stack_max = 1, + on_use = function(itemstack, user, pointed_thing) + minetest.sound_play("throwing_crossbow_sound", {pos=playerpos}) + stiffness = 27 + reload = 8 + if throwing_shoot_arrow(itemstack, user, pointed_thing) then + if not minetest.setting_getbool("creative_mode") then + itemstack:add_wear(65535/100) + end + end + return itemstack + end, + on_place = function(itemstack, placer, pointed_thing) + reloading(placer) + return itemstack + end, + }) + + minetest.register_craft({ + output = 'throwing:crossbow', + recipe = { + {'group:wood', 'farming:string', ''}, + {'default:steel_ingot', 'farming:string', 'group:wood'}, + {'group:wood', 'farming:string', ''}, + } + }) + + minetest.register_craft({ + output = 'throwing:crossbow', + recipe = { + {'', 'farming:string', 'group:wood'}, + {'group:wood', 'farming:string', 'default:steel_ingot'}, + {'', 'farming:string', 'group:wood'}, + } + }) +end diff --git a/build_arrow.lua b/build_arrow.lua index 37a5051..0f3b173 100644 --- a/build_arrow.lua +++ b/build_arrow.lua @@ -46,7 +46,7 @@ THROWING_ARROW_ENTITY.on_step = function(self, dtime) local node = minetest.get_node(pos) if self.timer>0.2 then - local objs = minetest.env:get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 1) + local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 1) for k, obj in pairs(objs) do if obj:get_luaentity() ~= nil then if obj:get_luaentity().name ~= "throwing:arrow_build_entity" and obj:get_luaentity().name ~= "__builtin:item" then @@ -56,7 +56,7 @@ THROWING_ARROW_ENTITY.on_step = function(self, dtime) end minetest.add_item(self.lastpos, {name=self.stack:get_name()}) local toughness = 0.95 - if self.breaks < toughness then + if math.random() < toughness then minetest.add_item(self.lastpos, 'throwing:arrow_build') else minetest.add_item(self.lastpos, 'default:stick') diff --git a/diamond_arrow.lua b/diamond_arrow.lua index b931d28..358fd22 100644 --- a/diamond_arrow.lua +++ b/diamond_arrow.lua @@ -45,7 +45,7 @@ THROWING_ARROW_ENTITY.on_step = function(self, dtime) local node = minetest.get_node(pos) if self.timer>0.2 then - local objs = minetest.env:get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2) + local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2) for k, obj in pairs(objs) do if obj:get_luaentity() ~= nil then if obj:get_luaentity().name ~= "throwing:arrow_diamond_entity" and obj:get_luaentity().name ~= "__builtin:item" then @@ -57,7 +57,7 @@ THROWING_ARROW_ENTITY.on_step = function(self, dtime) }, nil) self.object:remove() local toughness = 0.97 - if self.breaks < toughness then + if math.random() < toughness then minetest.add_item(self.lastpos, 'throwing:arrow_diamond') else minetest.add_item(self.lastpos, 'default:stick') @@ -71,7 +71,7 @@ THROWING_ARROW_ENTITY.on_step = function(self, dtime) if node.name ~= "air" then self.object:remove() local toughness = 0.95 - if self.breaks < toughness then + if math.random() < toughness then minetest.add_item(self.lastpos, 'throwing:arrow_diamond') else minetest.add_item(self.lastpos, 'default:stick') diff --git a/dig_arrow.lua b/dig_arrow.lua index 8ad2e7e..4e7cf9b 100644 --- a/dig_arrow.lua +++ b/dig_arrow.lua @@ -56,7 +56,7 @@ THROWING_ARROW_ENTITY.on_step = function(self, dtime) }, nil) self.object:remove() local toughness = 0.9 - if self.breaks < toughness then + if math.random() < toughness then minetest.add_item(self.lastpos, 'throwing:arrow_dig') else minetest.add_item(self.lastpos, 'default:stick') @@ -73,7 +73,7 @@ THROWING_ARROW_ENTITY.on_step = function(self, dtime) minetest.dig_node(pos) end local toughness = 0.65 - if self.breaks < toughness then + if math.random() < toughness then minetest.add_item(self.lastpos, 'default:pick_steel') else minetest.add_item(self.lastpos, 'default:stick') diff --git a/obsidian_arrow.lua b/obsidian_arrow.lua index db26542..ea45eef 100644 --- a/obsidian_arrow.lua +++ b/obsidian_arrow.lua @@ -57,7 +57,7 @@ THROWING_ARROW_ENTITY.on_step = function(self, dtime) }, nil) self.object:remove() local toughness = 0.94 - if self.breaks < toughness then + if math.random() < toughness then minetest.add_item(self.lastpos, 'throwing:arrow_obsidian') else minetest.add_item(self.lastpos, 'default:stick') @@ -71,7 +71,7 @@ THROWING_ARROW_ENTITY.on_step = function(self, dtime) if node.name ~= "air" then self.object:remove() local toughness = 0.88 - if self.breaks < toughness then + if math.random() < toughness then minetest.add_item(self.lastpos, 'throwing:arrow_obsidian') else minetest.add_item(self.lastpos, 'default:stick') diff --git a/sounds/throwing_bow_sound.ogg b/sounds/throwing_bow_sound.ogg index de4e22b6daa643f2f885f8a3bc0647a3366926e4..411598c409817855317c1d3814e8502aaa6721be 100644 GIT binary patch delta 2324 zcmV+v3G4RBFwig>PiJRS00IC200000000Ig4FLcE0001a9z2m6E(``F4FLfF001&@ zH72oCEf0T79RL6T00006Bn<%q0002>jTOijE-N!OG4}rm{~!M${{jCdEiEoCD>gag z_1XcBXWB^AJZ$a+V3n})YHO=6Bih>}dm9@6IcrOu?KlU}4FB;LN9f)J01OiMO2z66f6t+hJRa-*WUE?~UHVWC5w4&z^q*z7KA30wg|{Mg9sA7x+6sm7+!f zM~t7Ha-V?KN2r_&6svr+Ew$M~ro+GU}+z`5pC}{`)OiEn^)`}0&irx+Yae-Bo z1+ctsZ1lA+o14nzW3pVDrzr<%uS$7$)vC-IA9yGRhBX=*4FF_9Wduf!!;GJ_UXYe1 zzgK@8RfUbm=Uy`3>#(}*&u4n2%>X%3x8~pbkFeT0!4+Bp`dCFUhK6XmyBQ+g{{R30 zj2l4g%k~pfd6o*{dh?9!YTke?wkc$7-VWW#e!Az2uUvxD*Ewr-J`JPI5m$aSeT|bH z^LEf5uVIaIIxe6i_2gQMlQmW|d^c8iC!~Kiq)31)2z*q<1@rcOlCq@#-xsFB?Pg*= zxSdW)ruVrr&>x2<9K8U*Hi^p-tOChJjK6l%(d_aM9My+?2iOJDKW@SvV9>y=lA8zt zpdupU-x4KrFE$Q@zFw#PuDzmo^=s^dMxw~Ay;Ti(sROp87A^&z?udCLoBn|zvZH^V z=K9jfFR&{tARYXQbn|g2fQJ7u&JnRJ9%&7%2*O_kQeNab}IWic<7!stUglXnkDZ{;iVTrpfOHOLL7<&S9f z*X^HCw^F+MvhjW@y%TCCi!hQTt?K39JvOl!eRO0d^oJCSQC z`VfWE~8s0kd;s@q`my`(kP=JtGJkX~6OO*Nlb4#b#?0bB^KLW)#= zQa(KLLw!B0n$%ikV@TM^uW5hJ5ZgZ5U{RL}cpPFfo$?`(QxrT#qZn6hBasNNU;g^( z4~}hRx^0%TWx79Z{JXFbQQ39QdB-pCW9inF078;LcDzFwbz@zhjS5{au5Oe~bH2s4 z^^2~j=gv5>MDILRpFdJ5M?nSL$~X?)GYGwIO>9~+Uog50O|sY-hxLEmvoVLZUFPdR zRM>Wn?g>Ej7Auhc9TNZm0F+;vhbhn_$0Il@qOgiT_Tfii#DAeUYTl%7wC#2N- zdpJWnL!NmJECW*PDC%D$JJkpLs)6CS>hB6LM8LR#&ZYnvfEB=WA<4@Ipa&h$S=llH zyk#i!G4)*Vj&Gtm(eHoq<>tC{p`~u*oBq?>NqP;5<*P;QlSa0F!Vz9CR5?F#w#O| zM0f94W%(H93^l5AWb63JmTC6@EO$;0001>_aE?ouwaE)?;d8l(w`#; zBU(@hRg&G3Ny!+>#dq-jA|A`PSQ7x0LP3TE?=`%i1}-Q5$j#;&Sc$(TQh|0ALBRIs750%Z<`!;SlB5;wKP1mk z;-NazkoZOLM0!c0a(HeRnqDhBM@6ltc+_&JVdDt{KVpBQIp*bIqFBh>ImVd`Um`tT z3N#8pT_av`V5^nei?RR!06>qZ0aY77ZLBU^e5!YppcT?Ktz#VD{d|}7vG~AtXksD& z#S9_}e}P^AB&|ZDBWa&dT0=6mJ4^9pmEW}=d7)yV0G61|+A%l;-A|)LjrD{60RVj6 zt07qk&j5cp6Ts4g*Z|T407$}j0007M02Azo!5~g|yA;6;&mGTEE*oW>y`^zu&m!)G zAd2oY!0BwRgGU13glvWPUZGIplhgL5UInVm*q_BpiD0z(L8Qw zf!VQfb_ddr59-X>;H0fzHu0zu4J=hC+lJLLncHUA1{Su|Zvlgu<@XECn7qqt>6+9m zW$v=bBr~w|xv?v07K_RN!XM(_s*wUyMPtdRB7PHv*W$uH%#i55_bZ^Iu285v*&h7S ztKfh37tGFXkzXGJ5Z(>Y1gt9ck+h0S7^!LDcLu;!ir2BxttbwWOWG~s^ef4 zJG61CQdi~jm!;1q*Om$*Io`Jn#odzMja!SAa9(VxhybTN-2hw`>1t0ZX*HyQ4g2bl u9{iw-N2jNg)6?6p&*Git<9RDBw{|PQID>O92^!0iM zZg;!rlVF%T0l47%Ro{R{EUL$(KCZu+Y-%ELlQ-|u(`&24o&Y2kTk~TvYhl1lq5up+ zKF1@8u2bqR=F^nY-5Imr)@JG-#+f&4Hatq(a3Ozq{-9la2S{i60J!>cSwvxOO}_RE zI}YBCb4+*r!G@lsViiF*#t+>rAw)DZPF(~O=7%IQYZLAO9T5Pm8Nkr+bx%8+@jIR7 zRnK~M_opf=>$t22iLl?T+0kP#)k+FB68dNbAcj&9&p^3o^iKc)5(tmkl_s8(^I8~s zfH{BAJ;wli@igDC>-~#)x}U~%;d`4`p59jDukkZqnR@YY{SIVdDjWXi$a4MM8m7ZW ztaUfvWl}Tp2Cao|4cECGl`xRyhLBy?OcQtF-E~ZVUymf5e)2NRRv8d?ZAh-JXf~zu zzb$ng2AadFt|ni~zAFP56q3h0H+kY`DR6&PW7K5;>fnE3QZSw5G*1KozVBAntr7KQ zrN9md^h|Gxfw|AD>u?zo5Sx1`{AyJx0aTk_v$1J+;FL^VVbKZu&LA)=g568B6{w=Z z+o4D06u?~q9$8fb4fsuK;`d;NR9EQ_0Kirx5U#Q0n6`2oB4#cC!fOQN%`TgOwYPt% zBU6dNdh2pDhY7#;%EN=F2BUO32wOUp(zMog`oXc2xK)L!%UMJ=8^}-s!EeqPBs?(@00h7WAoJsseLM{Yh$(%$ z$*3>AWF56+B>tEk9MItGApaexJNg3vuuv07Cw&=!*#nZUlUe`}PS|YfK-GT)`m9?G z{{PNyN*H0V?oG||bjftuZW%-7Z@Ic^DNHOkCwUx0Y%b-YiE9vbQSmA3sM{x(GX@*c zzA!`4h;pu$QFPDbeBbfp_Ii=!_wLv@uK<=YIQ$`M4?ecV@+Cy2quB<&#Rwk1^Ml^Y zS~$(%nLD8WqH0U*o`hXUC3SzHXEvi%cltMU95Wgi1fiWwU7J!XPPIU_i-+lzuB3&G ztl^_so$aiLCmKACGB5xD0POnh5X|>p5}TBtp4EA21eM3UV5i=D$wA<9wsfNB8qy>& z|LIKxm?Rt|$=i1o6R@SCvPc@XrQfw<``O*UP|TBn^#Hy}4J-+giKKu2-wK>k@0|^6 z*weLvtWIFu09JI!z&0`U`h2Mwz#IS}%98dQbw9}M3wIW=}n!N0#j4qQA;4TuZ&7` z6ewR|+6h63{J5t57QL^#9ftst*g*AC)j~fKj1QmG2A9BcC*F5}Z!Els|Ji*2V2@5} z+!R&;9uT{pC1F8c+Ltkm?`ekNRa6+8&XHN8`~K~Dd3PSb291B&=jU3a$r%P?EAyLb zHLsVy7gZDrs{##P$qjQZEeOQF24&)Y001P9Y1f9+Bm>ZRtr97h1M$uo`2W>Ar^Pwj z{Q1dXOlesWmF39?3jpx7d&0c$`=-i%U)a+wE|=%uu9YC>Vw%}@&l)-t4aTfq7m2v4 zU(%F}`_gkN&2N9N4nXGU6-x1|G)@(hP@GxnG57@)rSnzCfFaF;FGx#61hX#SP&4l^_f@`qf^d) zM(nu<=`eqmE)@}~$ZTtN%h{X}ij{ zFf@Q)-oYBKnY3EH-vK3Mf=FNMWNsg+b!E{_rbvHzhhJlg7!OcDk;;epT*sPc%m;=R z+{4fCjIaj)h!+Sr1&lT+rpQ6QyD1B=$ZSYQnO(sND){|Y_?_&0G{#v>1p=3ey~nhn z4P3c`-jM)AI(^DO5x+$u0ki{vK~|~>keus#TI((NOmPOKUgC_}LfgYGR^+IC*N%aE zv(SGNq&f)$jX0N)atALC0TE;bWNs!pVQh&%Ogn}rp|V8_YgP}(ETOKrs2HC%Voaw__j{AQVpW8a#$@cn3paPWgy8MAwglWD2I%Yi4 z<-5A$Kc3-(r-!?D@7}$8_wFzZ!!T31aq;i|{@?%mi%|0H&;IOnZi2