1
0
mirror of https://github.com/sys4-fr/server-nalc.git synced 2025-07-18 15:40:25 +02:00

Update pipeworks

This commit is contained in:
LeMagnesium
2015-09-01 20:46:34 +02:00
parent a4c3c59b07
commit 659a2e5463
3 changed files with 25 additions and 9 deletions

View File

@ -149,8 +149,8 @@ local entitydef_default = {
_remove_attached = function(self, index)
local master = self._attached_entities_master
local entity = self._attached_entities[index]
local ent = entity.entity
entity.entity = nil
local ent = entity and entity.entity
if entity then entity.entity = nil end
if index == master then
self:_detach_all()
local newmaster
@ -315,10 +315,11 @@ minetest.register_globalstep(function(dtime)
end
for id, entity in pairs(luaentity.entities) do
local master = entity._attached_entities_master
if master then
local master_def = entity._attached_entities[master]
local master_entity = master_def.entity
entity._pos = vector.subtract(master_entity:getpos(), master_def.offset)
local master_def = master and entity._attached_entities[master]
local master_entity = master_def and master_def.entity
local master_entity_pos = master_entity and master_entity:getpos()
if master_entity_pos then
entity._pos = vector.subtract(master_entity_pos, master_def.offset)
entity._velocity = master_entity:getvelocity()
entity._acceleration = master_entity:getacceleration()
else
@ -330,9 +331,21 @@ minetest.register_globalstep(function(dtime)
entity._velocity,
vector.multiply(entity._acceleration, dtime))
end
entity:_add_loaded()
if entity.on_step then
entity:on_step(dtime)
if master and not master_entity_pos then -- The entity has somehow been cleared
if pipeworks.delete_item_on_clearobject then
entity:remove()
else
entity:_remove_attached(master)
entity:_add_loaded()
if entity.on_step then
entity:on_step(dtime)
end
end
else
entity:_add_loaded()
if entity.on_step then
entity:on_step(dtime)
end
end
end
end)