This commit is contained in:
2025-03-26 20:24:55 +09:00
parent 18936b10e1
commit c146dcafcf

View File

@@ -318,19 +318,19 @@ if settings.startup['PHI-CT'].value then
end) end)
script.on_event(defines.events.on_entity_settings_pasted, function(e) script.on_event(defines.events.on_entity_settings_pasted, function(e)
if e.destination.type == 'inserter' or (e.destination.type == 'entity-ghost' and e.destination.ghost_type == 'inserter') then if not (e.destination.type == 'inserter' and (e.destination.type == 'entity-ghost' and e.destination.ghost_type == 'inserter')) then
return
end
e.destination.direction = e.source.direction e.destination.direction = e.source.direction
local arm_positions = inserter_utils.get_arm_positions(e.destination) local arm_positions = inserter_utils.get_arm_positions(e.destination)
local max_range = inserter_utils.get_max_range(e.destination) local max_range = inserter_utils.get_max_range(e.destination)
if math.max(math.abs(arm_positions.drop.x), math.abs(arm_positions.drop.y)) > max_range then for _, v in pairs({'drop', 'pickup'}) do
local vec = math2d.position.ensure_xy(arm_positions.drop) if math.max(math.abs(arm_positions[v].x), math.abs(arm_positions[v].y)) > max_range then
arm_positions.drop = math2d.position.multiply_scalar(math2d.direction.vectors[(math.floor(math.atan2(vec.x, -vec.y) * (4 / math.pi) + 0.5) % 8) + 1], max_range) local vec = math2d.position.ensure_xy(arm_positions[v])
arm_positions[v] = math2d.position.multiply_scalar(math2d.direction.vectors[(math.floor(math.atan2(vec.x, -vec.y) * (4 / math.pi) + 0.5) % 8) + 1], max_range)
end end
if math.max(math.abs(arm_positions.pickup.x), math.abs(arm_positions.pickup.y)) > max_range then
local vec = math2d.position.ensure_xy(arm_positions.drop)
arm_positions.pickup = math2d.position.multiply_scalar(math2d.direction.vectors[(math.floor(math.atan2(vec.x, -vec.y) * (4 / math.pi) + 0.5) % 8) + 1], max_range)
end end
if math2d.position.equal(arm_positions.pickup, arm_positions.drop) then if math2d.position.equal(arm_positions.pickup, arm_positions.drop) then
@@ -344,6 +344,5 @@ if settings.startup['PHI-CT'].value then
gui.update(player, player.opened) gui.update(player, player.opened)
end end
end end
end
end) end)
end end