mirror of
https://github.com/Refactorio/RedMew.git
synced 2025-02-15 13:53:13 +02:00
Fix register_on_object_destroyed
This commit is contained in:
parent
a9c4dd006b
commit
323aa62099
@ -6,7 +6,6 @@ local register_on_object_destroyed = script.register_on_object_destroyed
|
||||
|
||||
local Public = {}
|
||||
local turrets_map = {}
|
||||
local register_map = {}
|
||||
local primitives = { index = nil }
|
||||
local Artillery = {
|
||||
enabled = true,
|
||||
@ -47,13 +46,11 @@ local Artillery = {
|
||||
Global.register(
|
||||
{
|
||||
turrets_map = turrets_map,
|
||||
register_map = register_map,
|
||||
primitives = primitives,
|
||||
artillery = Artillery,
|
||||
},
|
||||
function(tbl)
|
||||
turrets_map = tbl.turrets_map
|
||||
register_map = tbl.register_map
|
||||
primitives = tbl.primitives
|
||||
Artillery = tbl.artillery
|
||||
end)
|
||||
@ -87,7 +84,7 @@ function Public.register(entity, refill_name)
|
||||
return
|
||||
end
|
||||
|
||||
local destroy_id = register_on_object_destroyed(entity)
|
||||
register_on_object_destroyed(entity)
|
||||
local unit_id = entity.unit_number
|
||||
|
||||
local data = {
|
||||
@ -95,7 +92,6 @@ function Public.register(entity, refill_name)
|
||||
refill = refill_name,
|
||||
is_fluid = is_fluid,
|
||||
is_artillery = is_artillery,
|
||||
destroy_id = destroy_id
|
||||
}
|
||||
|
||||
if data.is_artillery then
|
||||
@ -113,25 +109,20 @@ function Public.register(entity, refill_name)
|
||||
}
|
||||
end
|
||||
|
||||
register_map[destroy_id] = unit_id
|
||||
turrets_map[unit_id] = data
|
||||
end
|
||||
|
||||
function Public.remove(entity)
|
||||
local unit_id = entity.unit_number
|
||||
local destroy_id = turrets_map[unit_id].destroy_id
|
||||
|
||||
register_map[destroy_id] = nil
|
||||
turrets_map[unit_id] = nil
|
||||
if not entity.unit_number then
|
||||
return
|
||||
end
|
||||
turrets_map[entity.unit_number] = nil
|
||||
end
|
||||
|
||||
function Public.reset()
|
||||
for k, _ in pairs(turrets_map) do
|
||||
turrets_map[k] = nil
|
||||
end
|
||||
for k, _ in pairs(register_map) do
|
||||
register_map[k] = nil
|
||||
end
|
||||
end
|
||||
|
||||
local artillery_projectile_token = Token.register(function(data)
|
||||
@ -194,11 +185,10 @@ local function simulate_automatic_artillery(data)
|
||||
end
|
||||
|
||||
local function on_object_destroyed(event)
|
||||
local destroy_id = event.registration_number
|
||||
local unit_id = event.unit_number
|
||||
|
||||
register_map[destroy_id] = nil
|
||||
turrets_map[unit_id] = nil
|
||||
if not event.useful_id then
|
||||
return
|
||||
end
|
||||
turrets_map[event.useful_id] = nil
|
||||
end
|
||||
Event.add(defines.events.on_object_destroyed, on_object_destroyed)
|
||||
|
||||
|
@ -23,12 +23,15 @@ local function register_tank(entity)
|
||||
if entity.name ~= 'tank' then
|
||||
return
|
||||
end
|
||||
tank_entities[entity.unit_number] = entity
|
||||
script.register_on_object_destroyed(entity)
|
||||
tank_entities[entity.unit_number] = entity
|
||||
end
|
||||
|
||||
Event.add(defines.events.on_object_destroyed, function(event)
|
||||
tank_entities[event.unit_number] = nil
|
||||
if not event.useful_id then
|
||||
return
|
||||
end
|
||||
tank_entities[event.useful_id] = nil
|
||||
end)
|
||||
|
||||
Event.add(defines.events.on_robot_built_entity, function(event)
|
||||
|
@ -9,7 +9,7 @@ Global.register({car_entities = car_entities}, function(tbl)
|
||||
end)
|
||||
|
||||
Event.add(defines.events.on_object_destroyed, function(event)
|
||||
car_entities[event.unit_number] = nil
|
||||
car_entities[event.useful_id] = nil
|
||||
end)
|
||||
|
||||
Event.add(defines.events.on_player_driving_changed_state, function(event)
|
||||
@ -25,8 +25,8 @@ Event.add(defines.events.on_player_driving_changed_state, function(event)
|
||||
if player ~= driver.player then -- if the player that got in the vehicle is not the driver then return
|
||||
return
|
||||
else
|
||||
car_entities[entity.unit_number] = entity
|
||||
script.register_on_object_destroyed(entity)
|
||||
local _, useful_id = script.register_on_object_destroyed(entity)
|
||||
car_entities[useful_id] = entity
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
@ -318,10 +318,10 @@ end
|
||||
Event.add(defines.events.on_entity_damaged, on_entity_damaged)
|
||||
|
||||
local function on_object_destroyed(event)
|
||||
local unit_number = event.unit_number
|
||||
--local registration_number = event.registration_number
|
||||
|
||||
Enemy.stop_tracking({ unit_number = unit_number })
|
||||
if not event.useful_id then
|
||||
return
|
||||
end
|
||||
Enemy.stop_tracking({ unit_number = event.useful_id })
|
||||
end
|
||||
Event.add(defines.events.on_object_destroyed, on_object_destroyed)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user