From 5c5359de4fa19b5b4d09eaebe5c322f9f33f9fd5 Mon Sep 17 00:00:00 2001 From: stujones11 Date: Wed, 27 Apr 2016 18:48:06 +0100 Subject: [PATCH] Restore armor stand entities when knocked-back by TNT --- 3d_armor_stand/init.lua | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/3d_armor_stand/init.lua b/3d_armor_stand/init.lua index ffa7cff..d722297 100644 --- a/3d_armor_stand/init.lua +++ b/3d_armor_stand/init.lua @@ -212,9 +212,31 @@ minetest.register_entity("3d_armor_stand:armor_entity", { visual_size = {x=1, y=1}, collisionbox = {-0.1,-0.4,-0.1, 0.1,1.3,0.1}, textures = {"3d_armor_trans.png"}, + pos = nil, + timer = 0, on_activate = function(self) local pos = self.object:getpos() - update_entity(pos) + if pos then + self.pos = vector.round(pos) + update_entity(pos) + end + end, + on_step = function(self, dtime) + if not self.pos then + return + end + self.timer = self.timer + dtime + if self.timer > 1 then + self.timer = 0 + local pos = self.object:getpos() + if pos then + if vector.equals(self.pos, pos) then + return + end + end + update_entity(self.pos) + self.object:remove() + end end, })