forked from VoxeLibre/VoxeLibre
Add in a visual for horse taming (hearts)
This commit is contained in:
parent
189c0ad157
commit
8e7ce5a72a
|
@ -59,3 +59,64 @@ mobs.critical_effect = function(self)
|
||||||
texture = "heart.png^[colorize:black:255",
|
texture = "heart.png^[colorize:black:255",
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--when feeding a mob
|
||||||
|
mobs.feed_effect = function(self)
|
||||||
|
|
||||||
|
local pos = self.object:get_pos()
|
||||||
|
local yaw = self.object:get_yaw()
|
||||||
|
local collisionbox = self.object:get_properties().collisionbox
|
||||||
|
|
||||||
|
local min, max
|
||||||
|
|
||||||
|
if collisionbox then
|
||||||
|
min = {x=collisionbox[1], y=collisionbox[2], z=collisionbox[3]}
|
||||||
|
max = {x=collisionbox[4], y=collisionbox[5], z=collisionbox[6]}
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest_add_particlespawner({
|
||||||
|
amount = 10,
|
||||||
|
time = 0.0001,
|
||||||
|
minpos = vector.add(pos, min),
|
||||||
|
maxpos = vector.add(pos, max),
|
||||||
|
minvel = vector.new(-1,1,-1),
|
||||||
|
maxvel = vector.new(1,3,1),
|
||||||
|
minexptime = 0.7,
|
||||||
|
maxexptime = 1,
|
||||||
|
minsize = 1,
|
||||||
|
maxsize = 2,
|
||||||
|
collisiondetection = false,
|
||||||
|
vertical = false,
|
||||||
|
texture = "heart.png^[colorize:gray:255",
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
--hearts when tamed
|
||||||
|
mobs.tamed_effect = function(self)
|
||||||
|
local pos = self.object:get_pos()
|
||||||
|
local yaw = self.object:get_yaw()
|
||||||
|
local collisionbox = self.object:get_properties().collisionbox
|
||||||
|
|
||||||
|
local min, max
|
||||||
|
|
||||||
|
if collisionbox then
|
||||||
|
min = {x=collisionbox[1], y=collisionbox[2], z=collisionbox[3]}
|
||||||
|
max = {x=collisionbox[4], y=collisionbox[5], z=collisionbox[6]}
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest_add_particlespawner({
|
||||||
|
amount = 30,
|
||||||
|
time = 0.0001,
|
||||||
|
minpos = vector.add(pos, min),
|
||||||
|
maxpos = vector.add(pos, max),
|
||||||
|
minvel = vector.new(-1,1,-1),
|
||||||
|
maxvel = vector.new(1,3,1),
|
||||||
|
minexptime = 0.7,
|
||||||
|
maxexptime = 1,
|
||||||
|
minsize = 1,
|
||||||
|
maxsize = 2,
|
||||||
|
collisiondetection = false,
|
||||||
|
vertical = false,
|
||||||
|
texture = "heart.png",
|
||||||
|
})
|
||||||
|
end
|
|
@ -241,6 +241,7 @@ local horse = {
|
||||||
self.buck_off_time = 40 -- TODO how long does it take in minecraft?
|
self.buck_off_time = 40 -- TODO how long does it take in minecraft?
|
||||||
if self.temper > 100 then
|
if self.temper > 100 then
|
||||||
self.tamed = true -- NOTE taming can only be finished by riding the horse
|
self.tamed = true -- NOTE taming can only be finished by riding the horse
|
||||||
|
mobs.tamed_effect(self)
|
||||||
if not self.owner or self.owner == "" then
|
if not self.owner or self.owner == "" then
|
||||||
self.owner = clicker:get_player_name()
|
self.owner = clicker:get_player_name()
|
||||||
end
|
end
|
||||||
|
@ -255,6 +256,14 @@ local horse = {
|
||||||
-- If nothing happened temper_increase = 0 and addition does nothing
|
-- If nothing happened temper_increase = 0 and addition does nothing
|
||||||
self.temper = self.temper + temper_increase
|
self.temper = self.temper + temper_increase
|
||||||
|
|
||||||
|
--give the player some kind of idea
|
||||||
|
--of what's happening with the horse's temper
|
||||||
|
if self.temper <= 100 then
|
||||||
|
mobs.feed_effect(self)
|
||||||
|
else
|
||||||
|
mobs.tamed_effect(self)
|
||||||
|
end
|
||||||
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue