From 46fc20e7f9d085aef90831016fc26d521c47f0aa Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 1 Jul 2026 22:16:10 +0900 Subject: [PATCH] . --- PHI-CL/data-final-fixes.lua | 4 ++ PHI-CL/data/f/mi.lua | 137 +++++++++++++++++++----------------- 2 files changed, 75 insertions(+), 66 deletions(-) diff --git a/PHI-CL/data-final-fixes.lua b/PHI-CL/data-final-fixes.lua index 8802a00..f8915a5 100644 --- a/PHI-CL/data-final-fixes.lua +++ b/PHI-CL/data-final-fixes.lua @@ -1,3 +1,7 @@ if settings.startup['PHI-CT'].value then require('data.f.ct') end + +if settings.startup['PHI-MI'].value then + require('data.f.ct') +end diff --git a/PHI-CL/data/f/mi.lua b/PHI-CL/data/f/mi.lua index 6bee1e8..57b61e1 100644 --- a/PHI-CL/data/f/mi.lua +++ b/PHI-CL/data/f/mi.lua @@ -1,80 +1,85 @@ local items = require('mi-c') +function main_entity_number_position(entity) + local box = entity.selection_box or entity.collision_box + + if not box then + return + end + + if not box.left_top and not box.right_bottom and type(box[1]) == 'table' and type(box[2]) == 'table' then + box = { + left_top = {x = box[1][1], y = box[1][2]}, + right_bottom = {x = box[2][1], y = box[2][2]} + } + end + + local w = box.right_bottom.x - box.left_top.x + local h = box.right_bottom.y - box.left_top.y + local cx = (box.left_top.x + box.right_bottom.x) / 2 + local cy = (box.left_top.y + box.right_bottom.y) / 2 + + local positions = { + [1] = { + x = cx - 0.2 * w, + y = cy + h / 2 - 0.25 + }, + [2] = { + x = cx - 0.2 * h, + y = cy + w / 2 - 0.25 + } + } + + return positions +end + +function main_entity_apply(entity, graphic) + if not entity[graphic] then + return + end + + entity[graphic].status_colors = items['status'] + + if not entity[graphic].working_visualisations then + entity[graphic].working_visualisations = {} + end + + local positions = main_entity_number_position(entity) + + if positions then + entity[graphic].working_visualisations[#entity[graphic].working_visualisations + 1] = { + always_draw = true, + apply_tint = 'status', + render_layer = 'light-effect', + animation = { + filename = '__base__/graphics/icons/signal/signal_white.png', + flags = {'icon'}, + size = 64, + scale = 0.15, + line_length = 1, + frame_count = 1, + animation_speed = 1, + draw_as_glow = true + }, + north_position = positions[1], + east_position = positions[2], + south_position = positions[1], + west_position = positions[2], + } + end +end -- MI C 11 BASE ENTITY -- MI C 1 RECYCLER ENTITY -- MI C 7 SPACE_AGE ENTITY -if settings.startup['PHI-CT-STATUS'].value and items['status'] and items['status_ignore'] then - function main_entity_number_position(entity) - local box = entity.selection_box or entity.collision_box - - if not box then - return - end - - if not box.left_top and not box.right_bottom and type(box[1]) == 'table' and type(box[2]) == 'table' then - box = { - left_top = {x = box[1][1], y = box[1][2]}, - right_bottom = {x = box[2][1], y = box[2][2]} - } - end - - local w = box.right_bottom.x - box.left_top.x - local h = box.right_bottom.y - box.left_top.y - local cx = (box.left_top.x + box.right_bottom.x) / 2 - local cy = (box.left_top.y + box.right_bottom.y) / 2 - - local positions = { - [1] = { - x = cx - 0.2 * w, - y = cy + h / 2 - 0.25 - }, - [2] = { - x = cx - 0.2 * h, - y = cy + w / 2 - 0.25 - } - } - - return positions - end - +if settings.startup['PHI-MI-STATUS'].value and items['status'] and items['status_ignore'] then for _, c in pairs({'assembling-machine', 'furnace', 'mining-drill'}) do for _, v in pairs(data.raw[c]) do if not v.bottleneck_ignore and not items['status_ignore'][v.name] then for _, a in pairs({'graphics_set', 'wet_mining_graphics_set', 'graphics_set_flipped'}) do - if v[a] then - v[a].status_colors = items['status'] - - if not v[a].working_visualisations then - v[a].working_visualisations = {} - end - - local positions = main_entity_number_position(v) - - if positions then - v[a].working_visualisations[#v[a].working_visualisations + 1] = { - always_draw = true, - apply_tint = 'status', - render_layer = 'light-effect', - animation = { - filename = '__base__/graphics/icons/signal/signal_white.png', - flags = {'icon'}, - size = 64, - scale = 0.15, - line_length = 1, - frame_count = 1, - animation_speed = 1, - draw_as_glow = true - }, - north_position = positions[1], - east_position = positions[2], - south_position = positions[1], - west_position = positions[2], - } - end - end + main_entity_apply(v, a) end end end end -end \ No newline at end of file +end