mirror of
https://git.minetest.land/MineClone2/MineClone2.git
synced 2024-12-05 01:03:44 +01:00
fix and optimize Fleckenstein
This commit is contained in:
parent
a67938904e
commit
54bc4f7545
@ -216,34 +216,25 @@ end
|
|||||||
|
|
||||||
function mob_class:update_roll()
|
function mob_class:update_roll()
|
||||||
local is_Fleckenstein = self.nametag == "Fleckenstein"
|
local is_Fleckenstein = self.nametag == "Fleckenstein"
|
||||||
local was_Fleckenstein = false
|
if not is_Fleckenstein and not self.is_Fleckenstein then return end
|
||||||
|
|
||||||
local rot = self.object:get_rotation()
|
local rot = self.object:get_rotation()
|
||||||
rot.z = is_Fleckenstein and pi or 0
|
rot.z = is_Fleckenstein and PI or 0
|
||||||
self.object:set_rotation(rot)
|
self.object:set_rotation(rot)
|
||||||
|
|
||||||
local cbox = table.copy(self.collisionbox)
|
if is_Fleckenstein ~= self.is_Fleckenstein then
|
||||||
local acbox = self.object:get_properties().collisionbox
|
|
||||||
|
|
||||||
if abs(cbox[2] - acbox[2]) > 0.1 then
|
|
||||||
was_Fleckenstein = true
|
|
||||||
end
|
|
||||||
|
|
||||||
if is_Fleckenstein ~= was_Fleckenstein then
|
|
||||||
local pos = self.object:get_pos()
|
local pos = self.object:get_pos()
|
||||||
pos.y = pos.y + (acbox[2] + acbox[5])
|
local cbox = is_Fleckenstein and table.copy(self.collisionbox) or self.object:get_properties().collisionbox
|
||||||
self.object:set_pos(pos)
|
pos.y = pos.y + (cbox[2] + cbox[5])
|
||||||
end
|
|
||||||
|
|
||||||
if is_Fleckenstein then
|
|
||||||
cbox[2], cbox[5] = -cbox[5], -cbox[2]
|
cbox[2], cbox[5] = -cbox[5], -cbox[2]
|
||||||
self.object:set_properties({collisionbox = cbox})
|
|
||||||
-- This leads to child mobs having the wrong collisionbox
|
-- This leads to child mobs having the wrong collisionbox
|
||||||
-- and seeing as it seems to be nothing but an easter egg
|
-- and seeing as it seems to be nothing but an easter egg
|
||||||
-- i've put it inside the if. Which just makes it be upside
|
-- i've put it inside the if. Which just makes it be upside
|
||||||
-- down lol.
|
-- down lol.
|
||||||
|
self.object:set_properties({collisionbox = cbox})
|
||||||
|
self.object:set_pos(pos)
|
||||||
end
|
end
|
||||||
|
self.is_Fleckenstein = is_Fleckenstein
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Relative turn, primarily for random turning
|
-- Relative turn, primarily for random turning
|
||||||
|
Loading…
Reference in New Issue
Block a user