mirror of
https://codeberg.org/tenplus1/mob_horse.git
synced 2024-12-30 12:30:21 +01:00
redo saddles and add overlay
This commit is contained in:
parent
9130b43ef8
commit
decb1c384c
65
init.lua
65
init.lua
@ -92,22 +92,20 @@ mobs:register_mob("mob_horse:horse", {
|
||||
|
||||
on_die = function(self, pos)
|
||||
|
||||
-- drop saddle when horse is killed while riding
|
||||
-- also detach from horse properly
|
||||
-- detach player from horse properly
|
||||
if self.driver then
|
||||
|
||||
minetest.add_item(pos, "mobs:saddle")
|
||||
|
||||
mobs.detach(self.driver, {x = 1, y = 0, z = 1})
|
||||
end
|
||||
|
||||
self.saddle = nil
|
||||
-- drop saddle if found
|
||||
if self.saddle then
|
||||
minetest.add_item(pos, "mobs:saddle")
|
||||
end
|
||||
|
||||
-- drop any horseshoes added
|
||||
if self.shoed then
|
||||
minetest.add_item(pos, self.shoed)
|
||||
end
|
||||
|
||||
end,
|
||||
|
||||
do_punch = function(self, hitter)
|
||||
@ -149,29 +147,27 @@ mobs:register_mob("mob_horse:horse", {
|
||||
|
||||
mobs.detach(clicker, {x = 1, y = 0, z = 1})
|
||||
|
||||
-- add saddle back to inventory
|
||||
if inv:room_for_item("main", "mobs:saddle") then
|
||||
inv:add_item("main", "mobs:saddle")
|
||||
else
|
||||
minetest.add_item(clicker:get_pos(), "mobs:saddle")
|
||||
end
|
||||
return
|
||||
end
|
||||
|
||||
self.saddle = nil
|
||||
|
||||
-- attach player to horse
|
||||
elseif (not self.driver and not self.child
|
||||
and clicker:get_wielded_item():get_name() == "mobs:saddle")
|
||||
or self.saddle then
|
||||
|
||||
self.object:set_properties({stepheight = 1.1})
|
||||
mobs.attach(self, clicker)
|
||||
|
||||
-- take saddle from inventory
|
||||
if not self.saddle then
|
||||
inv:remove_item("main", "mobs:saddle")
|
||||
end
|
||||
-- attach saddle to horse
|
||||
if not self.driver
|
||||
and not self.child
|
||||
and clicker:get_wielded_item():get_name() == "mobs:saddle"
|
||||
and not self.saddle then
|
||||
|
||||
self.saddle = true
|
||||
self.order = "stand"
|
||||
self.object:set_properties({stepheight = 1.1})
|
||||
|
||||
-- take saddle from inventory
|
||||
inv:remove_item("main", "mobs:saddle")
|
||||
|
||||
self.texture_mods = self.texture_mods .. "^mobs_saddle_overlay.png"
|
||||
|
||||
self.object:set_texture_mod(self.texture_mods)
|
||||
|
||||
return
|
||||
end
|
||||
|
||||
-- apply horseshoes
|
||||
@ -196,6 +192,12 @@ mobs:register_mob("mob_horse:horse", {
|
||||
-- apply horseshoe overlay to current horse texture
|
||||
if overlay then
|
||||
self.texture_mods = "^" .. overlay
|
||||
|
||||
if self.saddle then
|
||||
self.texture_mods = self.texture_mods
|
||||
.. "^mobs_saddle_overlay.png"
|
||||
end
|
||||
|
||||
self.object:set_texture_mod(self.texture_mods)
|
||||
end
|
||||
|
||||
@ -215,8 +217,13 @@ mobs:register_mob("mob_horse:horse", {
|
||||
end
|
||||
|
||||
-- used to capture horse with magic lasso
|
||||
mobs:capture_mob(self, clicker, 0, 0, 80, false, nil)
|
||||
end,
|
||||
if mobs:capture_mob(self, clicker, nil, nil, 80, false, nil) then return end
|
||||
|
||||
-- ride horse if saddled
|
||||
if self.saddle and self.owner == player_name then
|
||||
mobs.attach(self, clicker)
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
mobs:spawn({
|
||||
|
@ -7,6 +7,10 @@ There are three different horse textures (white, brown, black) which will spawn
|
||||
### Taming
|
||||
Horses can be tamed with 10x wheat, apple, barley, oats of corn which then allows the player to pick up the horse using a lasso and ride by right-clicking with a saddle.
|
||||
|
||||
---
|
||||
### Saddle
|
||||
Right clicking a horse with a saddle equips it and the horse will be ordered to stand still until you wish to ride.
|
||||
|
||||
---
|
||||
### Horseshoes
|
||||
Horseshoes can be crafted using steel, bronze, mese, diamond and crystal (4x ingots - 2 down either side with 1x block top middle) and placed on a horse by right clicking with the item. These can make horses run faster or jump higher while riding depending on tier.
|
||||
|
BIN
textures/mobs_saddle_overlay.png
Normal file
BIN
textures/mobs_saddle_overlay.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.0 KiB |
Loading…
Reference in New Issue
Block a user