From b70e7d81b575ad6800b01dff3fe0d2ef26f7c54e Mon Sep 17 00:00:00 2001 From: tenplus1 Date: Mon, 1 Jul 2024 07:45:14 +0100 Subject: [PATCH 1/4] fix fall damage value --- init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.lua b/init.lua index 1a75ca4..a9eb847 100644 --- a/init.lua +++ b/init.lua @@ -56,7 +56,7 @@ mobs:register_mob("mob_horse:horse", { hp_max = 16, armor = 200, lava_damage = 5, - fall_damage = 5, + fall_damage = 1, water_damage = 0, makes_footstep_sound = true, drops = { From 9f272940f602c9175d95caa09a89f099012a165b Mon Sep 17 00:00:00 2001 From: tenplus1 Date: Sat, 3 Aug 2024 11:35:57 +0100 Subject: [PATCH 2/4] add on_sound example --- init.lua | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/init.lua b/init.lua index a9eb847..51fae16 100644 --- a/init.lua +++ b/init.lua @@ -222,7 +222,15 @@ mobs:register_mob("mob_horse:horse", { if self.saddle and self.owner == player_name then mobs.attach(self, clicker) end + end, +--[[ + on_sound = function(self, def) + + if def.loudness > 0.2 then -- if loud enough make horse jump with fright + self.object:set_velocity({x=0, y=5, z=0}) + end end +]] }) From 12e6d718cbaa06ef16d7cd7b6824aaacbbea5684 Mon Sep 17 00:00:00 2001 From: tenplus1 Date: Sun, 4 Aug 2024 08:27:28 +0100 Subject: [PATCH 3/4] edit on_sound example to use new loudness scale --- init.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/init.lua b/init.lua index 51fae16..6f28389 100644 --- a/init.lua +++ b/init.lua @@ -225,8 +225,8 @@ mobs:register_mob("mob_horse:horse", { end, --[[ on_sound = function(self, def) - - if def.loudness > 0.2 then -- if loud enough make horse jump with fright + -- loudness ranges from (0.0 = cannot hear, to 1.0 = next to sound) + if def.loudness > 0.8 then -- if loud enough startle horse into jumping self.object:set_velocity({x=0, y=5, z=0}) end end From 868e5a88f40e01469383bf81d1e8b5e0ce7cf4ef Mon Sep 17 00:00:00 2001 From: tenplus1 Date: Sat, 10 Aug 2024 14:57:23 +0100 Subject: [PATCH 4/4] tidy code --- init.lua | 55 ++++++++++++++++++++++--------------------------------- 1 file changed, 22 insertions(+), 33 deletions(-) diff --git a/init.lua b/init.lua index 6f28389..a430553 100644 --- a/init.lua +++ b/init.lua @@ -1,11 +1,11 @@ --- Load support for intllib. +-- translation and get mod path + +local S = minetest.get_translator("mob_horse") local MP = minetest.get_modpath(minetest.get_current_modname()) .. "/" --- Translation support -local S = minetest.get_translator("mob_horse") - -- horse shoes (speed, jump, brake/reverse speed, overlay texture) + local shoes = { ["mobs:horseshoe_steel"] = {7, 4, 2, "mobs_horseshoe_steelo.png"}, ["mobs:horseshoe_bronze"] = {7, 4, 4, "mobs_horseshoe_bronzeo.png"}, @@ -14,8 +14,8 @@ local shoes = { ["mobs:horseshoe_crystal"] = {11, 6, 9, "mobs_horseshoe_crystalo.png"} } - -- rideable horse + mobs:register_mob("mob_horse:horse", { type = "animal", visual = "mesh", @@ -23,19 +23,12 @@ mobs:register_mob("mob_horse:horse", { mesh = "mobs_horse.x", collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.25, 0.4}, animation = { - speed_normal = 15, - speed_run = 30, - stand_start = 25, - stand_end = 50, -- 75 - stand2_start = 25, - stand2_end = 25, - stand3_start = 55, - stand3_end = 75, - stand3_loop = false, - walk_start = 75, - walk_end = 100, - run_start = 75, - run_end = 100 + speed_normal = 15, speed_run = 30, + stand_start = 25, stand_end = 50, -- 75 + stand2_start = 25, stand2_end = 25, + stand3_start = 55, stand3_end = 75, stand3_loop = false, + walk_start = 75, walk_end = 100, + run_start = 75, run_end = 100 }, textures = { {"mobs_horse.png"}, -- textures by Mjollna @@ -117,19 +110,13 @@ mobs:register_mob("mob_horse:horse", { on_rightclick = function(self, clicker) -- make sure player is clicking - if not clicker or not clicker:is_player() then - return - end + if not clicker or not clicker:is_player() then return end -- feed, tame or heal horse - if mobs:feed_tame(self, clicker, 10, true, true) then - return - end + if mobs:feed_tame(self, clicker, 10, true, true) then return end -- applying protection rune - if mobs:protect(self, clicker) then - return - end + if mobs:protect(self, clicker) then return end local player_name = clicker:get_player_name() @@ -149,8 +136,7 @@ mobs:register_mob("mob_horse:horse", { end -- attach saddle to horse - if not self.driver - and not self.child + if not self.driver and not self.child and clicker:get_wielded_item():get_name() == "mobs:saddle" and not self.saddle then @@ -233,7 +219,6 @@ mobs:register_mob("mob_horse:horse", { ]] }) - -- check for custom spawn.lua local input = io.open(MP .. "spawn.lua", "r") @@ -255,11 +240,12 @@ else }) end +-- spawn egg mobs:register_egg("mob_horse:horse", S("Horse"), "wool_brown.png", 1) - -- steel horseshoes + minetest.register_craftitem(":mobs:horseshoe_steel", { description = S("Steel HorseShoes (use on horse to apply)"), inventory_image = "mobs_horseshoe_steel.png", @@ -275,6 +261,7 @@ minetest.register_craft({ }) -- bronze horseshoes + minetest.register_craftitem(":mobs:horseshoe_bronze", { description = S("Bronze HorseShoes (use on horse to apply)"), inventory_image = "mobs_horseshoe_bronze.png" @@ -290,6 +277,7 @@ minetest.register_craft({ }) -- mese horseshoes + minetest.register_craftitem(":mobs:horseshoe_mese", { description = S("Mese HorseShoes (use on horse to apply)"), inventory_image = "mobs_horseshoe_mese.png" @@ -305,6 +293,7 @@ minetest.register_craft({ }) -- diamond horseshoes + minetest.register_craftitem(":mobs:horseshoe_diamond", { description = S("Diamond HorseShoes (use on horse to apply)"), inventory_image = "mobs_horseshoe_diamond.png" @@ -320,6 +309,7 @@ minetest.register_craft({ }) -- crystal horseshoes + if minetest.get_modpath("ethereal") then minetest.register_craftitem(":mobs:horseshoe_crystal", { @@ -337,8 +327,8 @@ if minetest.get_modpath("ethereal") then }) end - -- lucky blocks + if minetest.get_modpath("lucky_block") then lucky_block:add_blocks({ @@ -350,5 +340,4 @@ if minetest.get_modpath("lucky_block") then }) end - print("[MOD] Mob Horse loaded")