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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 QSo4eTW6g>6Rczz`1NNX1@Bjb+ diff --git a/mods/ENTITIES/mcl_item_entity/sounds/item_drop_pickup.2.ogg b/mods/ENTITIES/mcl_item_entity/sounds/item_drop_pickup.2.ogg deleted file mode 100644 index a5087ab7d99ceff61375aece9773a1f791f9c4f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6151 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 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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 Bl`8-M diff --git a/mods/ENTITIES/mcl_item_entity/sounds/item_drop_pickup.4.ogg b/mods/ENTITIES/mcl_item_entity/sounds/item_drop_pickup.4.ogg deleted file mode 100644 index 6436f2678ca2a3bd438439ac74978091e73cbce6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5822 zcmai1dpy(M|37A!NXxB}iZV7)rir=K44Jua=Gt;ykyOm2i$1c6k0i~EG?FYSs`-Q{ zQlH$SNsLP9#wej1K3(*CY(DkGKgx6W%lf+%KEhv2?ERnNjbxD(09F(@k`WCWv*J<6d1sY1F#k|sOT0cOBP z+6Qo0#`Z7+b_Om>V5N@+H9yLDl7Gkd3zsAg^*Fma*3SpjshGh+D-c)*R%V&8){s z_zY3U7#}0TN%*DwK-EI!Dx8FWza((UB4;c-_^8lCip7a0Lix*EaT2~!)xn&?lQlRA zU!f{GyUeLN;bW1nb6~FNIx$%*7MFjYQahPUab?ueE4q>nVc-i z01EK%<0r$OqhXIFQTp4KhwEBQILwWkE9C~4V4FFyr^?H`C`VW23 z>t2rZQAhfyoAp{)_EMawO!@$i8CaJb{3MMwmpn9=JT%V?3*gZM|A!VshXA0@h7%S8 zLAN3pUAS>WF8o)RFaW@QO&3|cxmFvxJvMy!*wpJ2)=R_QN7K0%OYPC3`B=sJY^L{G z(kPp0RKHk%UTknJb10kU5v3u!@if|?4Pjs zqw((n0HE4&U9+=C&qEz4CYwnt!3s=K)F(HWJv5xXG-(4G&f+}mL#(BbFV#cSL+ncp)b^nAkRF>nJT$2k z4QHwrmBRC&*3i4Lu}^)eL)uhvEj@TP*`LQ8+T`(6`sqQfVfyo!wA$FA{NJXi1HRP3 z%~Wx%rB4FQhe{9hr3NO_0tcx6{mCAhR58WlsTP&WqdpbWsXS�(Hob_H=+6*q=Pu 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 a^5$pP)I=sh-M+r;>R6+%V`F~|fd2yyoanp& 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 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 literal 0 HcmV?d00001 From 0641f09915d7a39b6964b2629bf75dcc67a694ea Mon Sep 17 00:00:00 2001 From: jordan4ibanez 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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 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)