From c572db92aad6d95cb719b4d9ca1e224d28a636a7 Mon Sep 17 00:00:00 2001 From: jordan4ibanez Date: Sat, 3 Apr 2021 20:39:08 -0400 Subject: [PATCH 01/18] Add sound buffer and different item collection sound --- mods/ENTITIES/mcl_item_entity/init.lua | 51 ++++++++++++++++-- .../mcl_item_entity/sounds/Attributes.txt | 1 + .../sounds/item_drop_pickup.1.ogg | Bin 5965 -> 0 bytes .../sounds/item_drop_pickup.2.ogg | Bin 6151 -> 0 bytes .../sounds/item_drop_pickup.3.ogg | Bin 5690 -> 0 bytes .../sounds/item_drop_pickup.4.ogg | Bin 5822 -> 0 bytes .../sounds/item_drop_pickup.ogg | Bin 0 -> 5625 bytes 7 files changed, 47 insertions(+), 5 deletions(-) create mode 100644 mods/ENTITIES/mcl_item_entity/sounds/Attributes.txt delete mode 100644 mods/ENTITIES/mcl_item_entity/sounds/item_drop_pickup.1.ogg delete mode 100644 mods/ENTITIES/mcl_item_entity/sounds/item_drop_pickup.2.ogg delete mode 100644 mods/ENTITIES/mcl_item_entity/sounds/item_drop_pickup.3.ogg delete mode 100644 mods/ENTITIES/mcl_item_entity/sounds/item_drop_pickup.4.ogg create mode 100644 mods/ENTITIES/mcl_item_entity/sounds/item_drop_pickup.ogg diff --git a/mods/ENTITIES/mcl_item_entity/init.lua b/mods/ENTITIES/mcl_item_entity/init.lua index 9184b50bd..4028f5a15 100644 --- a/mods/ENTITIES/mcl_item_entity/init.lua +++ b/mods/ENTITIES/mcl_item_entity/init.lua @@ -1,3 +1,24 @@ +--these are lua locals, used for higher performance +local minetest,math,vector,ipairs = minetest,math,vector,ipairs + +--this is used for the player pool in the sound buffer +local pool = {} + +local tick = false + +local name +minetest.register_on_joinplayer(function(player) + name = player:get_player_name() + pool[name] = 0 +end) + +local name +minetest.register_on_leaveplayer(function(player) + name = player:get_player_name() + pool[name] = nil +end) + + local has_awards = minetest.get_modpath("awards") local mcl_item_entity = {} @@ -77,8 +98,30 @@ end minetest.register_globalstep(function(dtime) + + tick = not tick + for _,player in pairs(minetest.get_connected_players()) do if player:get_hp() > 0 or not minetest.settings:get_bool("enable_damage") then + + + local name = player:get_player_name() + + if tick == true and pool[name] > 0 then + minetest.sound_play("item_drop_pickup", { + pos = pos, + gain = 1, + max_hear_distance = 16, + pitch = math.random(60,100)/100 + }) + if pool[name] > 6 then + pool[name] = 6 + else + pool[name] = pool[name] - 1 + end + end + + local pos = player:get_pos() local inv = player:get_inventory() local checkpos = {x=pos.x,y=pos.y + item_drop_settings.player_collect_height,z=pos.z} @@ -94,11 +137,7 @@ minetest.register_globalstep(function(dtime) -- Ignore if itemstring is not set yet if object:get_luaentity().itemstring ~= "" then inv:add_item("main", ItemStack(object:get_luaentity().itemstring)) - minetest.sound_play("item_drop_pickup", { - pos = pos, - max_hear_distance = 16, - gain = 1.0, - }, true) + check_pickup_achievements(object, player) -- Destroy entity @@ -111,6 +150,8 @@ minetest.register_globalstep(function(dtime) object:move_to(checkpos) + pool[name] = pool[name] + 1 + minetest.after(0.25, function() --safety check if object and object:get_luaentity() then diff --git a/mods/ENTITIES/mcl_item_entity/sounds/Attributes.txt b/mods/ENTITIES/mcl_item_entity/sounds/Attributes.txt new file mode 100644 index 000000000..781759352 --- /dev/null +++ b/mods/ENTITIES/mcl_item_entity/sounds/Attributes.txt @@ -0,0 +1 @@ + Item_Drop_Pickup - https://freesound.org/people/benniknop/sounds/317848/ (License: CC0) diff --git a/mods/ENTITIES/mcl_item_entity/sounds/item_drop_pickup.1.ogg b/mods/ENTITIES/mcl_item_entity/sounds/item_drop_pickup.1.ogg deleted file mode 100644 index 8010ff0a296be3df24018ee787d7663e31762245..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5965 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 A6aWAK diff --git a/mods/ENTITIES/mcl_item_entity/sounds/item_drop_pickup.3.ogg b/mods/ENTITIES/mcl_item_entity/sounds/item_drop_pickup.3.ogg deleted file mode 100644 index f234a482cff9830ff772e316207957d26d666b04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5690 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 z 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�f5#;*eaK)&O;QfH5bvjVb@WI!Ps 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 UjuChK@}jF_ji#EJ<#7Q14-TB@yZ`_I diff --git a/mods/ENTITIES/mcl_item_entity/sounds/item_drop_pickup.ogg b/mods/ENTITIES/mcl_item_entity/sounds/item_drop_pickup.ogg new file mode 100644 index 0000000000000000000000000000000000000000..6ca412d96cfa7037788371c0b70f39314d42b3a7 GIT binary patch literal 5625 zcmb_gdpML^+kd3Ykj;=ZB+bZVMpPsAHe_$6oy?O{kMqc`3>Bl28A`H~QwX7Po{BOw zN<~Jg-BE^eNYoH*iZbj@(m{t^z3X{~-oE{P*ZcnSJ=e0Xwbp&Fd#&}m@87+aaoe=X z1DXa+ep*_JM%IVG6H10kQQIN{LwM+rQrty_WT{vgYn)edLuY>b(3wi0CyOF{(z5;f zKfim*3QLQCf^SIp=EZIin@C|Hf!>&X5{qQ9ly0%qV(Bsx)oshxkno6LUhq~v4K=Pb zV{$5Ug|`xf2P1T6Qe#|4mKOvOAZWcYP2=E37EL55rA8MBoX}R|($oS$Y9o=8PM1zq zB+H=L5HuZ%qpD^e8)k*JGd2-TG9yYDA+FXHBwX5>hYZ#0Zx?d5me-bZx3<$L_#gac zKmZtfCvuVwf>wbk# zXZP4sWxc4W9&9=wq};qonZr@asujh2(qUeG;TMz3D7{yyCST7cy`@9 zmu>(BipYQd_G0k@4njV(F)uU@zbtD521^_;ODx5&P*F%O2d>kR>4(ry(tmK1gr@!DDHMIuEjTDurmCGG@cdUBzLRBr>& z3+XJviSPS@xqcl*!^i7&Kr2;HY$B=mRM?vg3-NEl_G^qsU`A?hF}Ged0JJ^?3176S zqGSIIAA8`p4LwBZp?Fekrb?g=xtx5^kbgkqUZMO zzq(1nC}=a#9r+z|P>L8aGKZXUrvIBcCDhD8>&ykL9Am$nh0%GNQj5feheyRn)&9Yp z&1n?{X%#7H@{~+!YF|3qsxfnU ztvI9I9RMhQ<(%&w06|x?)K_D9WDR0|53#z3n0tBJ{b$Ai={-xAE=vGxE(Ga8&`2Xd zose@Zk4?DjbBjT>n)r>rQRhZ~jHtjNGh(bT5N1#%7439UO7>d+McGC-HfY#*xzdh1 z$Ym_NIS!<~>ChTLH)aa`1~D+*p_%k+IvuZvpEDCyqHfwDv1eM3=;}Z1Ex|$1Q-Sa z3%PMnJ4=;PrUSFY30VkLByxvCX(FNrY#v2G)I>lKLX+tD!{*X7I=+yHSjfu~5jGIy zF-$~Y2Ch_)gK$MtwS;5_fntMI>X=swA>NXR$;dW&u-d zmRNF^T~#F^+Tv+R=&ow>*lBc;E{7_@78ilVC3WcHwVp@_IwQ173KkcG19Itgvd|2= z)PU2*5b1D2Y0|swbn`j`&Pl5s*vWOlt|UNUE(MTayD|qeoU0o3Vaya*T*l6*lIVND z;DDjdVsMqVN+d)cn1QY#Ap%oPM6Nlwey=J)q^pS*?wgxoh@=KCXBDzkxC~EgBqmBp zB4Pr8)>yzJ7>S5H4W<;d;G1ZRHZM^d^$P)}(ZIFr{t(>d>l4av3_?lCC#OTqX%I0{ z5ZKC)lYkErvygO#+#nG_(g;WzT`o*;hv8hrnLdn;g^CfFF2%;g!RhE20a%uRt6!Kv zVA5z38JNoltBFKCHefDT65!1S_JE#9Bny0s=}|;?+55?f2+X30@&fnMK?~>!*!$^u zo(L=kdi$%T2n_O`42(&Oz`DR;>D5xU2aLi6#@Jl&{=sR0CyQeT%Q1Il&*tk%xDqU6 zbpTT8f$H>RA&+2z&*rH!apVXP2xUPCGlVR1hMg#7x(pC!hy|@wRi*>nqRG^W9h8pVp$u1Y{1?>`TF)5dxtmtyo(T#KIGBzgVwn`?uTo^EpTV*8|0BXzF zy!IIo$> zoOH&p0XkR6a|PkQR~fR8%P=aQl|FqodPY2Ob@~P@{IlR=0u10>Z+($4K^u)|kf10c z5c%eHtqdA17aYYrN*i=Rke;jtnTsoy=yEdVfozs$F4gBf2hf1?fcOMSum`BfidN82 z6>!kCU>Xp#N#rOXpjB00fm)HR<-N2+tw@H2F#v{w<<^irrN_Df?(}=KIUK{`0R%bH zzzH-aJ(a7Vslsulfbm#Jpxq#pzkG#&+5DX#u>&PGCU9rcL|_IEb2>TE9i9?s!&H%A z%9IG@<)n%>8d!*pB1{x-5``%&;t*I>p@%(I1ls5(6*E8pqI#tY0Rm%ji<(01f#4-i z3BW?w;+Ozo;wj$*B47aQN+AFXO|?)f5Y&PBQ!7_DutLwraPI;&y@d*XJp$L?ly0c; z)cge?&rDjH+Qt8W_y1f1I^Lp=yE>vecaty6W|6@Ui!l!B0>(8Ia55cC0FBw)f_Qi4 zNLg7Y99C@wJD^}8fF?4Fk>i3K7_Ms6<)jxTAc!f*pdcU0G?=itMAv_R^)Q=@D=h;V z6b-ObmlCpIZq*Ya=L|#M>p-PRdIHm}y4f)r;#y!p@@_4+jgbN}JYA;GYqOeouo_q{ z;-0d?9pMqmMLnSzR&rqs!RGy4c1HcMA-}^xZpeqLz%AHrha>MEtC#q4+pOgM37R(e zfzT5mu(>boCJrZTrGrTBxQ41YoF{T`GbRiYHEiA+szc2g;gJ2>r8!wPEoVAY=DJ-a z>;?Hn4N3tQS~^HTi3*k1Kju8sn*WQjKOl(@uQm4j&x`hXOr_0 z`oUQa2kyG>&t1RIJ3L`d9Co3B|8fW^01;j$K_Cl!UhfGrLaXHha=frsxca8LgDabB z9@I=Vq1WkHBaa1gZ^Lr5TI}$GCEpVI5aZ$9#YlPBh%;% z2i6*pj=@KQ-h(9Q9hb6s&aUo==eM5{;^N{kU3*Z+#bG}dOkWF< zH~OJJ7NClU*B{JO3k~-0310j4>zc#E7EB{n;`O3YI(NFrH{{HCs zK<=TJ>wbT{^_J~G{>PI;FI3<9q@8jZ3zkbbJ04nXQ}NDio~1C5Vh8( z`~2@achu}wK6>J7QF+WOi@8E~BW`}!sTW$lo`#8z2f{{v)bGy}oBZ^7RC7tIp=0u% zj|E11@?U*eROMOpvSQ)NjCIJxE0)3jZaXwIHFxy?Y2`WA#QpG0d;8Z1FAu8}$81pZ z%!fWopL)+deC}G?ttaaiG?0DrTmSy+>ZdQ+J}b>29XQ6Vr%^%?p4jl)&O-T(=o#C`ztU@#IgeJA0+A*!6c!a9`YU^;Dm+AUO|A1Yl2e$1z)o_2PwP*Rz%wSbj zvkd%oE5~|N#N^uVF3s3q%SboezDl@SwRO?T{wB_QW7{13OlHG^lHu3JwFJ9~dTgVO%`-q70%n&+g(TAI;bmbI!a0k+U% zMhx6~i^C1Q&-n>g@HNuE_-Rz{;N`Jy(crG)^P$hLJa>8j(NtXb(&e1lI?b+)o9PAt zRN{-4)cu$E6MSnor{CXez_84gKk~C{wECB~g>#AB%g$bVE9npZ+^}``Un=D_dNcU6 z56!_{RxZpLo8Y*R==#r3&;4eqeS6`qGj%RU421{zXW30Pi{II5mYz_J$=$fbP`U0! zUpV7x!TjA+qU-b59^Srg&rQ;1!SD>}b=4=MWAatoe6HgU7}Bml`pI+OZpA&w-B~|x zdwsd%nC+f0jRt9wt?<+~-V)0{9zH*-6#J-UezBdf_+r%aUMt;IMt94y?4-xHy2Nm9 zs9jb&+`QmI-?`aCmA~9`+jI8Cmt!km7n;1N=$+@WrR!BRx6duIAPRSTYKXBRfrw!aBn8&LS>)sC(GQTsHc zE+(J%Yg!EkG_Zgf-?b}8`YOBkm*w!p z>`QvauCk4^&ttc`=uC zc)0(Th?cW&zpxy~=Xyrz7xx);Ke=ahL{m*o$)-5niTWm;|D6YpKuf9d0=NAIfl)fP2T$D_ zAxD?6>?^((Xd9Sf14bq;-a@P742_jBysG@sT>vGuxd@64=}EuMI~ ze|5>l*X>{b<}bOkGBq*3dna5M;QZ@v^Z4sN;TO))cog|~!;`x7J?}f~=LLM)?fT(* z@ht=29jBkjzPzK^bau~gTC~0Ii7(my$){2$Z1kAv4>`FJbjw zcH^0)n<>IG{p89&t2}%DTAnnm%cA_pPqQhu!DpN7dcC&&y!qMZQI#$J1LTJqH>Z^| z_WBik`tl%gR$uQP$$ZbSqzgWC7rPr?Sk8|giTHBzk3DuO7h{iaI+C#b4Kb57r2VB_ zdE1JIFPDCLQ|{joUA_hUvavkQPyT> Date: Sat, 3 Apr 2021 20:53:34 -0400 Subject: [PATCH 02/18] Adjust volume of item collection sound --- mods/ENTITIES/mcl_item_entity/init.lua | 2 +- .../sounds/item_drop_pickup.ogg | Bin 5625 -> 4834 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/ENTITIES/mcl_item_entity/init.lua b/mods/ENTITIES/mcl_item_entity/init.lua index 4028f5a15..7b566d8f4 100644 --- a/mods/ENTITIES/mcl_item_entity/init.lua +++ b/mods/ENTITIES/mcl_item_entity/init.lua @@ -112,7 +112,7 @@ minetest.register_globalstep(function(dtime) pos = pos, gain = 1, max_hear_distance = 16, - pitch = math.random(60,100)/100 + pitch = math.random(70,110)/100 }) if pool[name] > 6 then pool[name] = 6 diff --git a/mods/ENTITIES/mcl_item_entity/sounds/item_drop_pickup.ogg b/mods/ENTITIES/mcl_item_entity/sounds/item_drop_pickup.ogg index 6ca412d96cfa7037788371c0b70f39314d42b3a7..e7f5df09490b6e5ba110d540d4d064fa8c681bb1 100644 GIT binary patch delta 3456 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 delta 4252 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 From a807ee6372b0a597f45f6d05a3a073566768dbdf Mon Sep 17 00:00:00 2001 From: jordan4ibanez Date: Sat, 3 Apr 2021 20:55:46 -0400 Subject: [PATCH 03/18] Adjust the volume even more to perfectly match the gameplay --- mods/ENTITIES/mcl_item_entity/init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/ENTITIES/mcl_item_entity/init.lua b/mods/ENTITIES/mcl_item_entity/init.lua index 7b566d8f4..b63c17c2b 100644 --- a/mods/ENTITIES/mcl_item_entity/init.lua +++ b/mods/ENTITIES/mcl_item_entity/init.lua @@ -110,7 +110,7 @@ minetest.register_globalstep(function(dtime) if tick == true and pool[name] > 0 then minetest.sound_play("item_drop_pickup", { pos = pos, - gain = 1, + gain = 0.7, max_hear_distance = 16, pitch = math.random(70,110)/100 }) From 1b511936f5d287ce4a3592a71ec27e01a724da47 Mon Sep 17 00:00:00 2001 From: jordan4ibanez Date: Sat, 3 Apr 2021 21:05:31 -0400 Subject: [PATCH 04/18] Fix local name memory leak --- mods/ENTITIES/mcl_item_entity/init.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mods/ENTITIES/mcl_item_entity/init.lua b/mods/ENTITIES/mcl_item_entity/init.lua index b63c17c2b..cc7672b7a 100644 --- a/mods/ENTITIES/mcl_item_entity/init.lua +++ b/mods/ENTITIES/mcl_item_entity/init.lua @@ -6,14 +6,14 @@ local pool = {} local tick = false -local name minetest.register_on_joinplayer(function(player) + local name name = player:get_player_name() pool[name] = 0 end) -local name minetest.register_on_leaveplayer(function(player) + local name name = player:get_player_name() pool[name] = nil end) From 40b07e466b6f934a61e88224e8993ac163300bd0 Mon Sep 17 00:00:00 2001 From: epCode Date: Sat, 3 Apr 2021 18:07:51 -0700 Subject: [PATCH 05/18] make ghast fireballs deflectible --- mods/ENTITIES/mcl_mobs/api.lua | 7 ++++++- mods/ENTITIES/mobs_mc/ghast.lua | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/mods/ENTITIES/mcl_mobs/api.lua b/mods/ENTITIES/mcl_mobs/api.lua index 1ef0712e8..fac8bbeec 100644 --- a/mods/ENTITIES/mcl_mobs/api.lua +++ b/mods/ENTITIES/mcl_mobs/api.lua @@ -4223,6 +4223,11 @@ function mobs:register_arrow(name, def) switch = 0, owner_id = def.owner_id, rotate = def.rotate, + on_punch = function(self) + local vel = self.object:get_velocity() + self.object:set_velocity({x=vel.x * -1, y=vel.y * -1, z=vel.z * -1}) + end, + collisionbox = def.collisionbox or {0, 0, 0, 0, 0, 0}, automatic_face_movement_dir = def.rotate and (def.rotate - (pi / 180)) or false, @@ -4285,7 +4290,7 @@ function mobs:register_arrow(name, def) if self.hit_player or self.hit_mob or self.hit_object then - for _,player in pairs(minetest.get_objects_inside_radius(pos, 1.0)) do + for _,player in pairs(minetest.get_objects_inside_radius(pos, 1.5)) do if self.hit_player and player:is_player() then diff --git a/mods/ENTITIES/mobs_mc/ghast.lua b/mods/ENTITIES/mobs_mc/ghast.lua index 679a28c13..39af10add 100644 --- a/mods/ENTITIES/mobs_mc/ghast.lua +++ b/mods/ENTITIES/mobs_mc/ghast.lua @@ -74,6 +74,7 @@ mobs:register_arrow("mobs_mc:fireball", { visual_size = {x = 1, y = 1}, textures = {"mcl_fire_fire_charge.png"}, velocity = 15, + collisionbox = {-.5, -.5, -.5, .5, .5, .5}, hit_player = function(self, player) if rawget(_G, "armor") and armor.last_damage_types then From 90fd65ac665600d6f31bad18f7b5b0a5c53629f4 Mon Sep 17 00:00:00 2001 From: jordan4ibanez Date: Sat, 3 Apr 2021 21:09:43 -0400 Subject: [PATCH 06/18] Fix locationless playing --- mods/ENTITIES/mcl_item_entity/init.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mods/ENTITIES/mcl_item_entity/init.lua b/mods/ENTITIES/mcl_item_entity/init.lua index cc7672b7a..b65585a15 100644 --- a/mods/ENTITIES/mcl_item_entity/init.lua +++ b/mods/ENTITIES/mcl_item_entity/init.lua @@ -106,6 +106,8 @@ minetest.register_globalstep(function(dtime) local name = player:get_player_name() + + local pos = player:get_pos() if tick == true and pool[name] > 0 then minetest.sound_play("item_drop_pickup", { @@ -122,7 +124,7 @@ minetest.register_globalstep(function(dtime) end - local pos = player:get_pos() + local inv = player:get_inventory() local checkpos = {x=pos.x,y=pos.y + item_drop_settings.player_collect_height,z=pos.z} From ac87e0604ee673e8b13036fafd1c91d46fbbbcdf Mon Sep 17 00:00:00 2001 From: epCode Date: Sat, 3 Apr 2021 18:39:20 -0700 Subject: [PATCH 07/18] make ghast firing more MC-like --- mods/ENTITIES/mcl_mobs/api.lua | 4 ++++ mods/ENTITIES/mobs_mc/ghast.lua | 9 +++++++++ .../mobs_mc/textures/mobs_mc_ghast_firing.png | Bin 0 -> 1532 bytes 3 files changed, 13 insertions(+) create mode 100644 mods/ENTITIES/mobs_mc/textures/mobs_mc_ghast_firing.png diff --git a/mods/ENTITIES/mcl_mobs/api.lua b/mods/ENTITIES/mcl_mobs/api.lua index fac8bbeec..0a038ba13 100644 --- a/mods/ENTITIES/mcl_mobs/api.lua +++ b/mods/ENTITIES/mcl_mobs/api.lua @@ -2819,6 +2819,10 @@ local do_states = function(self, dtime) local arrow, ent local v = 1 if not self.shoot_arrow then + self.firing = true + minetest.after(1, function() + self.firing = false + end) arrow = minetest.add_entity(p, self.arrow) ent = arrow:get_luaentity() if ent.velocity then diff --git a/mods/ENTITIES/mobs_mc/ghast.lua b/mods/ENTITIES/mobs_mc/ghast.lua index 39af10add..7aed9395e 100644 --- a/mods/ENTITIES/mobs_mc/ghast.lua +++ b/mods/ENTITIES/mobs_mc/ghast.lua @@ -63,6 +63,15 @@ mobs:register_mob("mobs_mc:ghast", { makes_footstep_sound = false, instant_death = true, fire_resistant = true, + do_custom = function(self) + if self.firing == true then + self.base_texture = {"mobs_mc_ghast_firing.png"} + self.object:set_properties({textures=self.base_texture}) + else + self.base_texture = {"mobs_mc_ghast.png"} + self.object:set_properties({textures=self.base_texture}) + end + end, }) diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_ghast_firing.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_ghast_firing.png new file mode 100644 index 0000000000000000000000000000000000000000..3e5b41c32710a811ff75aa6a349bf4944294aaf0 GIT binary patch literal 1532 zcmVGj!2SAnoeDME4ikJU}4pA#amKA0nNSU0>ruVUlH< zMG@oNK%42{*j6_^;#ihEnn`-V$hIUOonL)N7WhNg*VhIBlu`hIqoX5%2>SNzn*o5^ z+gpssVt# zlyY@-Wy-RIloDlG0szXgwC@#Z_5@H}i{Jj4AyS%2I3 zj-5wF_O*&zdoUQ-#KiCWXn%jdHI7@qsw!kz2CcPsZjvOZ>-t3!T!?mech`FWS&$17 zBYceJdEAFQWZMwfWF0{dP)ea`8b~Qyt!vG7nLi|8D96-w9h~=)Ibd&ZuipczszTE= zpq3U*_c0hCNfP9FZe5*#4|&$%;bEsQNfMhFxAlOS&>>kumkNQJZNh+*K&X!^koqQ* zNyjVxb`p%<1qOqG_r8y4oQwLn_I>fl!)seXVmzm+s@_Y!l=UAT9$G?i!Pn)Izlj5A zs}8j!A3ki11Ck{1wu%x}nx&F2i_uwEamoBmZum=WQI2 zWm#+c3MI49;y7cs@bHas`E0{~JRY|cA3A%8LV|sjo4dD@ra7(#fYZ}cOsCV%-05_R z)6-M0)%*DKQrgEq=HR6dAINnFAX;n7lrNeWGg3+{77Lu6onbf};^WsZm`=K|4mRN?NVH!Vm_Z662!NKaSP;m?gcRJ)@Quaa&0E5IEb! z?OoXvkIA~OE#xG3bGHqb(lo_#xr9;*qtOUeRoPfRIXM9UTwY#UbVov^Y3faoLWq{& zS(f4E=EkdxSTsm;eR)Um4xjsT_u-!4V{(6gkI7`xDP~SiPH=g72`MGMfB$YVL1>|z zZf7GPvOdSW8Wc$8$-T@)^*)sa&_<@@B{c){9|KxJRale>8S-x zN%5S&n|nfT9|}p1Irw~fCM+UDh>SGMt<=CVu;6hnx^>m>sO~J i+LS-9Kx4y&huCj4GoCz*uaG4G0000 Date: Sat, 3 Apr 2021 20:12:24 +0300 Subject: [PATCH 08/18] Fix passive mobs despawning According to the wiki most passive mobs do not despawn. The ones that do have already been explicity marked as despawning. --- mods/ENTITIES/mcl_mobs/api.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mods/ENTITIES/mcl_mobs/api.lua b/mods/ENTITIES/mcl_mobs/api.lua index 0a038ba13..6a8646bd5 100644 --- a/mods/ENTITIES/mcl_mobs/api.lua +++ b/mods/ENTITIES/mcl_mobs/api.lua @@ -3741,6 +3741,8 @@ function mobs:register_mob(name, def) local can_despawn if def.can_despawn ~= nil then can_despawn = def.can_despawn +elseif def.spawn_class == "passive" then + can_despawn = false else can_despawn = true end From 49446bbb7b615e75f56e75a9bd2b507f81d6e214 Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Sun, 4 Apr 2021 12:01:45 +0200 Subject: [PATCH 09/18] Make enderdragon spawn upon exit portal generation --- mods/MAPGEN/mcl_structures/init.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/mods/MAPGEN/mcl_structures/init.lua b/mods/MAPGEN/mcl_structures/init.lua index f6317bdeb..6a7f44dfb 100644 --- a/mods/MAPGEN/mcl_structures/init.lua +++ b/mods/MAPGEN/mcl_structures/init.lua @@ -313,6 +313,7 @@ mcl_structures.generate_fossil = function(pos, rotation, pr) end mcl_structures.generate_end_exit_portal = function(pos, rot) + minetest.add_entity(vector.add(pos, vector.new(3, 11, 3)), "mobs_mc:enderdragon") local path = minetest.get_modpath("mcl_structures").."/schematics/mcl_structures_end_exit_portal.mts" return mcl_structures.place_schematic(pos, path, rot or "0", nil, true) end From 598692cf8c2fcbe94c21ab82ef3432665eb74e76 Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Sun, 4 Apr 2021 12:10:21 +0200 Subject: [PATCH 10/18] Add nil check to prevent crashes with mcl_throwing --- mods/ITEMS/mcl_throwing/register.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mods/ITEMS/mcl_throwing/register.lua b/mods/ITEMS/mcl_throwing/register.lua index 8ef1c73bf..3d8cc94cf 100644 --- a/mods/ITEMS/mcl_throwing/register.lua +++ b/mods/ITEMS/mcl_throwing/register.lua @@ -99,7 +99,7 @@ local snowball_on_step = function(self, dtime) local vel = self.object:get_velocity() local node = minetest.get_node(pos) local def = minetest.registered_nodes[node.name] - + -- Destroy when hitting a solid node if self._lastpos.x~=nil then @@ -203,7 +203,7 @@ local pearl_on_step = function(self, dtime) self.object:remove() -- Activate when hitting a solid node or a plant elseif walkable or nn == "mcl_core:vine" or nn == "mcl_core:deadbush" or minetest.get_item_group(nn, "flower") ~= 0 or minetest.get_item_group(nn, "sapling") ~= 0 or minetest.get_item_group(nn, "plant") ~= 0 or minetest.get_item_group(nn, "mushroom") ~= 0 or not def then - local player = minetest.get_player_by_name(self._thrower) + local player = self._thrower and minetest.get_player_by_name(self._thrower) if player then -- Teleport and hurt player From 1144006cdd77993daf8a1f37e8775d2f077ba06a Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Sun, 4 Apr 2021 15:16:06 +0200 Subject: [PATCH 11/18] Add End main island generation --- mods/MAPGEN/mcl_end_island/init.lua | 36 +++++++++++++++++++++++++++++ mods/MAPGEN/mcl_end_island/mod.conf | 4 ++++ 2 files changed, 40 insertions(+) create mode 100644 mods/MAPGEN/mcl_end_island/init.lua create mode 100644 mods/MAPGEN/mcl_end_island/mod.conf diff --git a/mods/MAPGEN/mcl_end_island/init.lua b/mods/MAPGEN/mcl_end_island/init.lua new file mode 100644 index 000000000..fb062bf77 --- /dev/null +++ b/mods/MAPGEN/mcl_end_island/init.lua @@ -0,0 +1,36 @@ +local noisemap = PerlinNoiseMap({ + offset = 0.5, + scale = 0.5, + spread = {x = 84, y = 84, z = 84}, + seed = minetest.get_mapgen_setting("seed") + 99999, + octaves = 4, + persist = 0.85, +}, {x = 151, y = 30, z = 151}):get_3d_map({x = 0, y = 0, z = 0}) + +local c_end_stone = minetest.get_content_id("mcl_end:end_stone") + +local x_offset = mcl_vars.mg_end_platform_pos.x - 27 +local y_offset = -2 + +minetest.register_on_generated(function(minp, maxp) + if maxp.y < (-27025 + y_offset) or minp.y > (-27000 + y_offset + 4) or maxp.x < (-75 + x_offset) or minp.x > (75 + x_offset) or maxp.z < -75 or minp.z > 75 then + return + end + + local vm, emin, emax = minetest.get_mapgen_object("voxelmanip") + local data = vm:get_data() + local area = VoxelArea:new({MinEdge = emin, MaxEdge = emax}) + + for idx in area:iter(math.max(minp.x, -75 + x_offset), math.max(minp.y, -27025 + y_offset + 4), math.max(minp.z, -75), math.min(maxp.x, 75 + x_offset), math.min(maxp.y, -27000 + y_offset), math.min(maxp.z, 75)) do + local pos = area:position(idx) + local y = 27025 + pos.y - y_offset + if noisemap[pos.x + 75 - x_offset + 1][y + 1][pos.z + 75 + 1] > (math.abs(1 - y / 25) ^ 2 + math.abs((pos.x - x_offset) / 75) ^ 2 + math.abs(pos.z / 75) ^ 2) then + data[idx] = c_end_stone + end + end + + vm:set_data(data) + vm:calc_lighting() + vm:update_liquids() + vm:write_to_map() +end) diff --git a/mods/MAPGEN/mcl_end_island/mod.conf b/mods/MAPGEN/mcl_end_island/mod.conf new file mode 100644 index 000000000..90432792c --- /dev/null +++ b/mods/MAPGEN/mcl_end_island/mod.conf @@ -0,0 +1,4 @@ +name = mcl_end_island +author = Fleckenstein +depends = mcl_mapgen_core, mcl_end +description = Generate the end main island for MCL2 From c5e1734c1c8796a8dd857ef5bd7025eae8e42624 Mon Sep 17 00:00:00 2001 From: Saku Laesvuori Date: Sun, 4 Apr 2021 23:24:28 +0300 Subject: [PATCH 12/18] Make horse taming more similar to minecraft (#1249) In minecraft horses are tamed by trying to ride them and they can also be fed to speed up taming. This commit implements both of those features and disables the old and broken taming system for horses. --- mods/ENTITIES/mobs_mc/horse.lua | 74 +++++++++++++++++++++++++++++++-- 1 file changed, 70 insertions(+), 4 deletions(-) diff --git a/mods/ENTITIES/mobs_mc/horse.lua b/mods/ENTITIES/mobs_mc/horse.lua index 4e588855f..1c2df41f3 100644 --- a/mods/ENTITIES/mobs_mc/horse.lua +++ b/mods/ENTITIES/mobs_mc/horse.lua @@ -157,8 +157,29 @@ local horse = { self._regentimer = 0 end - -- if driver present allow control of horse - if self.driver then + -- Some weird human is riding. Buck them off? + if self.driver and not self.tamed and self.buck_off_time <= 0 then + if math.random() < 0.2 then + mobs.detach(self.driver, {x = 1, y = 0, z = 1}) + -- TODO bucking animation + else + -- Nah, can't be bothered. Think about it again in one second + self.buck_off_time = 20 + end + end + + -- Tick the timer for trying to buck the player off + if self.buck_off_time then + if self.driver then + self.buck_off_time = self.buck_off_time - 1 + else + -- Player isn't riding anymore so no need to count + self.buck_off_time = nil + end + end + + -- if driver present and horse has a saddle allow control of horse + if self.driver and self._saddle then mobs.drive(self, "walk", "stand", false, dtime) @@ -191,6 +212,50 @@ local horse = { local item = clicker:get_wielded_item() local iname = item:get_name() local heal = 0 + + -- Taming + self.temper = self.temper or (math.random(1,100)) + + if not self.tamed then + local temper_increase = 0 + + -- Feeding, intentionally not using mobs:feed_tame because horse taming is + -- different and more complicated + if (iname == mobs_mc.items.sugar) then + temper_increase = 3 + elseif (iname == mobs_mc.items.wheat) then + temper_increase = 3 + elseif (iname == mobs_mc.items.apple) then + temper_increase = 3 + elseif (iname == mobs_mc.items.golden_carrot) then + temper_increase = 5 + elseif (iname == mobs_mc.items.golden_apple) then + temper_increase = 10 + + -- Trying to ride + elseif not self.driver then + self.object:set_properties({stepheight = 1.1}) + mobs.attach(self, clicker) + self.buck_off_time = 40 -- TODO how long does it take in minecraft? + if self.temper > 100 then + self.tamed = true -- NOTE taming can only be finished by riding the horse + if not self.owner or self.owner == "" then + self.owner = clicker:get_player_name() + end + end + temper_increase = 5 + + -- Clicking on the horse while riding ==> unmount + elseif self.driver and self.driver == clicker then + mobs.detach(clicker, {x = 1, y = 0, z = 1}) + end + + -- If nothing happened temper_increase = 0 and addition does nothing + self.temper = self.temper + temper_increase + + return + end + if can_breed(self.name) then -- Breed horse with golden apple or golden carrot if (iname == mobs_mc.items.golden_apple) then @@ -202,7 +267,8 @@ local horse = { return end end - -- Feed/tame with anything else + -- Feed with anything else + -- TODO heal amounts don't work if (iname == mobs_mc.items.sugar) then heal = 1 elseif (iname == mobs_mc.items.wheat) then @@ -212,7 +278,7 @@ local horse = { elseif (iname == mobs_mc.items.hay_bale) then heal = 20 end - if heal > 0 and mobs:feed_tame(self, clicker, heal, false, true) then + if heal > 0 and mobs:feed_tame(self, clicker, heal, false, false) then return end From 8bb8a0e3b29d2779d8c811a8a549608941fde345 Mon Sep 17 00:00:00 2001 From: Tianyang Zhang Date: Sun, 4 Apr 2021 15:40:10 -0700 Subject: [PATCH 13/18] Fix large and small slimes and magma cubes not dropping xp and loot --- mods/ENTITIES/mobs_mc/slime+magma_cube.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/mods/ENTITIES/mobs_mc/slime+magma_cube.lua b/mods/ENTITIES/mobs_mc/slime+magma_cube.lua index 7c21fb812..fd1f92bb4 100644 --- a/mods/ENTITIES/mobs_mc/slime+magma_cube.lua +++ b/mods/ENTITIES/mobs_mc/slime+magma_cube.lua @@ -51,7 +51,6 @@ local spawn_children_on_die = function(child_mob, children_count, spawn_distance end end, children, self.attack) end - return true end end From 93684baa86adcdf3db4b0a13e219428b6bf1a344 Mon Sep 17 00:00:00 2001 From: epCode Date: Sun, 4 Apr 2021 16:32:58 -0700 Subject: [PATCH 14/18] Make Blazes have more Mc-likeness ;) --- mods/ENTITIES/mobs_mc/blaze.lua | 53 +++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/mods/ENTITIES/mobs_mc/blaze.lua b/mods/ENTITIES/mobs_mc/blaze.lua index 20fa86a1f..30255612a 100644 --- a/mods/ENTITIES/mobs_mc/blaze.lua +++ b/mods/ENTITIES/mobs_mc/blaze.lua @@ -75,6 +75,59 @@ mobs:register_mob("mobs_mc:blaze", { fear_height = 0, glow = 14, fire_resistant = true, + do_custom = function(self) + for _,obj in pairs(minetest.get_objects_inside_radius(self.object:get_pos(), 1.2)) do + if obj:is_player() or not obj:is_player() and obj:get_luaentity()._cmi_is_mob then + mcl_burning.set_on_fire(obj, 5) + end + end + local pos = self.object:get_pos() + minetest.add_particle({ + pos = {x=pos.x+math.random(-0.7,0.7)*math.random()/2,y=pos.y+math.random(0.7,1.2),z=pos.z+math.random(-0.7,0.7)*math.random()/2}, + velocity = {x=0, y=math.random(1,1), z=0}, + expirationtime = math.random(), + size = math.random(1, 4), + collisiondetection = true, + vertical = false, + texture = "mcl_particles_smoke_anim.png^[colorize:#2c2c2c:255", + animation = { + type = "vertical_frames", + aspect_w = 8, + aspect_h = 8, + length = 2.05, + }, + }) + minetest.add_particle({ + pos = {x=pos.x+math.random(-0.7,0.7)*math.random()/2,y=pos.y+math.random(0.7,1.2),z=pos.z+math.random(-0.7,0.7)*math.random()/2}, + velocity = {x=0, y=math.random(1,1), z=0}, + expirationtime = math.random(), + size = math.random(1, 4), + collisiondetection = true, + vertical = false, + texture = "mcl_particles_smoke_anim.png^[colorize:#424242:255", + animation = { + type = "vertical_frames", + aspect_w = 8, + aspect_h = 8, + length = 2.05, + }, + }) + minetest.add_particle({ + pos = {x=pos.x+math.random(-0.7,0.7)*math.random()/2,y=pos.y+math.random(0.7,1.2),z=pos.z+math.random(-0.7,0.7)*math.random()/2}, + velocity = {x=0, y=math.random(1,1), z=0}, + expirationtime = math.random(), + size = math.random(1, 4), + collisiondetection = true, + vertical = false, + texture = "mcl_particles_smoke_anim.png^[colorize:#0f0f0f:255", + animation = { + type = "vertical_frames", + aspect_w = 8, + aspect_h = 8, + length = 2.05, + }, + }) + end, }) mobs:spawn_specific("mobs_mc:blaze", mobs_mc.spawn.nether_fortress, {"air"}, 0, minetest.LIGHT_MAX+1, 30, 5000, 3, mobs_mc.spawn_height.nether_min, mobs_mc.spawn_height.nether_max) From a6f0ad13a0592277a86d3ce3301f57751771c63b Mon Sep 17 00:00:00 2001 From: epCode Date: Sun, 4 Apr 2021 16:46:44 -0700 Subject: [PATCH 15/18] Make blaze burning better --- mods/ENTITIES/mobs_mc/blaze.lua | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/mods/ENTITIES/mobs_mc/blaze.lua b/mods/ENTITIES/mobs_mc/blaze.lua index 30255612a..fbffa7920 100644 --- a/mods/ENTITIES/mobs_mc/blaze.lua +++ b/mods/ENTITIES/mobs_mc/blaze.lua @@ -76,10 +76,8 @@ mobs:register_mob("mobs_mc:blaze", { glow = 14, fire_resistant = true, do_custom = function(self) - for _,obj in pairs(minetest.get_objects_inside_radius(self.object:get_pos(), 1.2)) do - if obj:is_player() or not obj:is_player() and obj:get_luaentity()._cmi_is_mob then - mcl_burning.set_on_fire(obj, 5) - end + if self.state == "attack" and vector.distance(self.object:get_pos(), self.attack:get_pos()) < 1.2 then + mcl_burning.set_on_fire(self.attack, 5) end local pos = self.object:get_pos() minetest.add_particle({ From 5fc3bb11ef9f8ea7d3198ba7a776f5b742b196f8 Mon Sep 17 00:00:00 2001 From: kay27 Date: Mon, 5 Apr 2021 04:54:58 +0400 Subject: [PATCH 16/18] [tools] Add simple python script to entirely reset End dimension generated before and get fresh one, improved (but please stop server & backup world before) --- tools/remove_end.py | 46 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 tools/remove_end.py diff --git a/tools/remove_end.py b/tools/remove_end.py new file mode 100644 index 000000000..3b73e5575 --- /dev/null +++ b/tools/remove_end.py @@ -0,0 +1,46 @@ +world_name = "world" +path_to_map_sqlite = "../../../worlds/" + world_name + "/map.sqlite" + +import sqlite3, sys + +try: + conn = sqlite3.connect(path_to_map_sqlite) +except Error as e: + print(e) + sys.exit() + +def unsignedToSigned(i, max_positive): + if i < max_positive: + return i + else: + return i - 2*max_positive + +cursor = conn.cursor() +cursor.execute("SELECT pos FROM blocks") +poses = cursor.fetchall() +end_blocks = [] +for i0 in (poses): + i = int(i0[0]) + blockpos = i + x = unsignedToSigned(i % 4096, 2048) + i = int((i - x) / 4096) + y = unsignedToSigned(i % 4096, 2048) + i = int((i - y) / 4096) + z = unsignedToSigned(i % 4096, 2048) + + node_pos_y = y * 16 + if node_pos_y > -28811 and node_pos_y + 15 < -67: + end_blocks.append(blockpos) + +if len(end_blocks) < 1: + print ("End blocks not found") + sys.exit() + +counter = 0 +for blockpos in end_blocks: + print("Deleting ", blockpos) + cursor.execute("DELETE FROM blocks WHERE pos=" + str(blockpos)) + counter += 1 +conn.commit() + +print(counter, " block(s) deleted") From e407ad2254fc2159bc5364480e2f802670d1ab05 Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Mon, 5 Apr 2021 09:25:03 +0200 Subject: [PATCH 17/18] Fix #1447 --- mods/PLAYER/mcl_playerplus/init.lua | 44 +++++++++++++++++------------ 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/mods/PLAYER/mcl_playerplus/init.lua b/mods/PLAYER/mcl_playerplus/init.lua index 767b275e4..52c87a514 100644 --- a/mods/PLAYER/mcl_playerplus/init.lua +++ b/mods/PLAYER/mcl_playerplus/init.lua @@ -86,17 +86,23 @@ minetest.register_globalstep(function(dtime) time = time + dtime - -- Update jump status immediately since we need this info in real time. - -- WARNING: This section is HACKY as hell since it is all just based on heuristics. for _,player in pairs(get_connected_players()) do + + --[[ + _ _ _ + __ _ _ __ (_)_ __ ___ __ _| |_(_) ___ _ __ ___ + / _` | '_ \| | '_ ` _ \ / _` | __| |/ _ \| '_ \/ __| + | (_| | | | | | | | | | | (_| | |_| | (_) | | | \__ \ + \__,_|_| |_|_|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/ + + ]]-- + local controls = player:get_player_control() - name = player:get_player_name() - + local name = player:get_player_name() local meta = player:get_meta() - - local player_velocity = player:get_velocity() or player:get_player_velocity() - + local parent = player:get_attach() local wielded = player:get_wielded_item() + local player_velocity = player:get_velocity() or player:get_player_velocity() -- controls head bone local pitch = - degrees(player:get_look_vertical()) @@ -114,7 +120,7 @@ minetest.register_globalstep(function(dtime) player:set_bone_position("Arm_Right_Pitch_Control", vector.new(-3,5.785,0), vector.new(pitch+90,-30,pitch * -1 * .35)) player:set_bone_position("Arm_Left_Pitch_Control", vector.new(3.5,5.785,0), vector.new(pitch+90,43,pitch * .35)) -- when punching - elseif controls.LMB and player:get_attach() == nil then + elseif controls.LMB and not parent then player:set_bone_position("Arm_Right_Pitch_Control", vector.new(-3,5.785,0), vector.new(pitch,0,0)) player:set_bone_position("Arm_Left_Pitch_Control", vector.new(3,5.785,0), vector.new(0,0,0)) -- when holding an item. @@ -127,38 +133,40 @@ minetest.register_globalstep(function(dtime) player:set_bone_position("Arm_Right_Pitch_Control", vector.new(-3,5.785,0), vector.new(0,0,0)) end - if controls.sneak and player:get_attach() == nil then + if parent then + local parent_yaw = degrees(parent:get_yaw()) + player:set_properties({collisionbox = {-0.35,0,-0.35,0.35,1.8,0.35}, eye_height = 1.5, nametag_color = { r = 225, b = 225, a = 225, g = 225 }}) + player:set_bone_position("Head", vector.new(0,6.3,0), vector.new(pitch, -limit_vel_yaw(yaw, parent_yaw) + parent_yaw, 0)) + player:set_bone_position("Body_Control", vector.new(0,6.3,0), vector.new(0,0,0)) + elseif controls.sneak then -- controls head pitch when sneaking player:set_bone_position("Head", vector.new(0,6.3,0), vector.new(pitch+36,0,0)) -- sets eye height, and nametag color accordingly player:set_properties({collisionbox = {-0.35,0,-0.35,0.35,1.8,0.35}, eye_height = 1.35, nametag_color = { r = 225, b = 225, a = 0, g = 225 }}) -- sneaking body conrols player:set_bone_position("Body_Control", vector.new(0,6.3,0), vector.new(0,0,0)) - elseif get_item_group(mcl_playerinfo[name].node_head, "water") ~= 0 and player:get_attach() == nil and is_sprinting(name) == true then + elseif get_item_group(mcl_playerinfo[name].node_head, "water") ~= 0 and is_sprinting(name) == true then -- set head pitch and yaw when swimming player:set_bone_position("Head", vector.new(0,6.3,0), vector.new(pitch+90-degrees(dir_to_pitch(player_velocity)),player_vel_yaw - yaw,0)) -- sets eye height, and nametag color accordingly player:set_properties({collisionbox = {-0.35,0,-0.35,0.35,0.8,0.35}, eye_height = 0.5, nametag_color = { r = 225, b = 225, a = 225, g = 225 }}) -- control body bone when swimming player:set_bone_position("Body_Control", vector.new(0,6.3,0), vector.new(degrees(dir_to_pitch(player_velocity)) - 90,-player_vel_yaw + yaw + 180,0)) - - elseif player:get_attach() == nil then + else -- sets eye height, and nametag color accordingly player:set_properties({collisionbox = {-0.35,0,-0.35,0.35,1.8,0.35}, eye_height = 1.5, nametag_color = { r = 225, b = 225, a = 225, g = 225 }}) player:set_bone_position("Head", vector.new(0,6.3,0), vector.new(pitch, player_vel_yaw - yaw, 0)) player:set_bone_position("Body_Control", vector.new(0,6.3,0), vector.new(0, -player_vel_yaw + yaw, 0)) - else - local attached = player:get_attach(parent) - local attached_yaw = degrees(attached:get_yaw()) - player:set_properties({collisionbox = {-0.35,0,-0.35,0.35,1.8,0.35}, eye_height = 1.5, nametag_color = { r = 225, b = 225, a = 225, g = 225 }}) - player:set_bone_position("Head", vector.new(0,6.3,0), vector.new(pitch, -limit_vel_yaw(yaw, attached_yaw) + attached_yaw, 0)) - player:set_bone_position("Body_Control", vector.new(0,6.3,0), vector.new(0,0,0)) end + -- Update jump status immediately since we need this info in real time. + -- WARNING: This section is HACKY as hell since it is all just based on heuristics. + if mcl_playerplus_internal[name].jump_cooldown > 0 then mcl_playerplus_internal[name].jump_cooldown = mcl_playerplus_internal[name].jump_cooldown - dtime end + if controls.jump and mcl_playerplus_internal[name].jump_cooldown <= 0 then pos = player:get_pos() From beb2484224e346390c4db9708df207a5101eb918 Mon Sep 17 00:00:00 2001 From: kay27 Date: Mon, 5 Apr 2021 13:50:26 +0400 Subject: [PATCH 18/18] Merge https://git.minetest.land/MineClone2/MineClone2/pulls/1366 --- mods/ENTITIES/mcl_mobs/api.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/ENTITIES/mcl_mobs/api.lua b/mods/ENTITIES/mcl_mobs/api.lua index 6a8646bd5..6e932ed5e 100644 --- a/mods/ENTITIES/mcl_mobs/api.lua +++ b/mods/ENTITIES/mcl_mobs/api.lua @@ -4351,7 +4351,7 @@ end -- make explosion with protection and tnt mod check function mobs:boom(self, pos, strength, fire) - + self.object:remove() if mod_explosions then if mobs_griefing and not minetest.is_protected(pos, "") then mcl_explosions.explode(pos, strength, { drop_chance = 1.0, fire = fire }, self.object)