From 85955f83992fd77ae05ed2c79e528ce7d522a11e Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Mon, 29 Jun 2026 18:50:47 +0900 Subject: [PATCH] . --- PHI-CL/control.lua | 9 ++++++- PHI-CL/control/loader.lua | 28 +++++++++++++++++++++ PHI-CL/data/b/ct.lua | 52 +++++++++++++++++++++++++++++++++++++++ PHI-CL/data/b/mig.lua | 2 ++ 4 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 PHI-CL/control/loader.lua diff --git a/PHI-CL/control.lua b/PHI-CL/control.lua index c32bd8c..5ab66fd 100644 --- a/PHI-CL/control.lua +++ b/PHI-CL/control.lua @@ -1,6 +1,7 @@ local cargo_landing = require('control/cargo-landing') local chest = require('control/chest') local inserter = require('control/inserter') +local loader = require('control/loader') local pump = require('control/pump') local rail_support = require('control/rail-support') local trash = require('control/trash') @@ -8,10 +9,16 @@ local trash = require('control/trash') local function entity_build(event) cargo_landing.build(event) chest.build(event) + loader.build(event) rail_support.build(event) trash.build(event) end +local function entity_destroy(event) + loader.destroy(event) + rail_support.destroy(event) +end + if (settings.startup['PHI-MI'].value and settings.startup['PHI-MI-GENERIC'].value) or (settings.startup['PHI-GM'].value and settings.startup['PHI-GM'].value ~= '') then script.on_event({defines.events.on_player_cheat_mode_enabled, defines.events.on_player_cheat_mode_disabled}, pump.recipe_hidden) end @@ -99,7 +106,7 @@ if settings.startup['PHI-MI'].value or (settings.startup['PHI-GM'].value and set end) script.on_event({defines.events.on_built_entity, defines.events.on_robot_built_entity, defines.events.on_space_platform_built_entity, defines.events.script_raised_built, defines.events.script_raised_revive}, entity_build) - script.on_event({defines.events.on_entity_died, defines.events.on_player_mined_entity, defines.events.on_robot_pre_mined, defines.events.script_raised_destroy}, rail_support.destroy) + script.on_event({defines.events.on_entity_died, defines.events.on_player_mined_entity, defines.events.on_robot_pre_mined, defines.events.script_raised_destroy}, entity_destroy) script.on_event(defines.events.on_entity_cloned, function(event) if not event.destination then diff --git a/PHI-CL/control/loader.lua b/PHI-CL/control/loader.lua new file mode 100644 index 0000000..ea26481 --- /dev/null +++ b/PHI-CL/control/loader.lua @@ -0,0 +1,28 @@ +local main = {} + +function main.build(event) + if event.entity.type ~= 'loader-1x1' then + return + end + + if prototypes.entity['loader-1x1'] then + local p = event.entity.surface.create_entity{name = 'loader-1x1', position = {event.entity.position.x, event.entity.position.y}, force = 'neutral', quality = event.entity.quality.name} + p.destructible = false + end +end + +function main.destroy(event) + if event.entity.type ~= 'loader-1x1' then + return + end + + if prototypes.entity['loader-1x1'] then + local p = event.entity.surface.find_entity({name = 'loader-1x1', force = 'neutral', quality = event.entity.quality.name}, {event.entity.position.x, event.entity.position.y}) + + if p then + p.destroy() + end + end +end + +return main diff --git a/PHI-CL/data/b/ct.lua b/PHI-CL/data/b/ct.lua index 40de711..b8042e3 100644 --- a/PHI-CL/data/b/ct.lua +++ b/PHI-CL/data/b/ct.lua @@ -133,6 +133,58 @@ if data.raw['electric-energy-interface'] and data.raw['electric-energy-interface end end +-- CT A 1 BASE ENTITY,ITEM +-- CT C 1 BASE ENTITY +if data.raw['loader-1x1'] and data.raw['loader-1x1']['loader-1x1'] then + local max_belt_speed = 0 + + for _, b in pairs(data.raw['transport-belt']) do + if b.speed then + max_belt_speed = math.max(max_belt_speed, b.speed) + end + end + + data.raw['loader-1x1']['loader-1x1'].hidden = false + data.raw['loader-1x1']['loader-1x1'].hidden_in_factoriopedia = false + data.raw['loader-1x1']['loader-1x1'].filter_count = 2 + data.raw['loader-1x1']['loader-1x1'].per_lane_filters = true + data.raw['loader-1x1']['loader-1x1'].adjustable_belt_stack_size = (data.raw['inserter']['stack-inserter'] and true) or false + data.raw['loader-1x1']['loader-1x1'].max_belt_stack_size = (data.raw['inserter']['stack-inserter'] and data.raw['inserter']['stack-inserter'].max_belt_stack_size) or 1 + + if data.raw.item['loader'] then + local item = table.deepcopy(data.raw.item['loader']) + item.name = 'loader-1x1' + item.place_result = item.name + item.hidden = false + item.hidden_in_factoriopedia = false + end + + if data.raw['infinity-container'] and data.raw['infinity-container']['infinity-chest'] then + local entity = table.deepcopy(data.raw['infinity-container']['infinity-chest']) + entity.name = 'loader-1x1-infinity-chest' + entity.enabled = false + entity.hidden = true + entity.hidden_in_factoriopedia = true + entity.gui_mode = 'none' + entity.inventory_type = 'with_custom_stack_size' + + if not entity.inventory_properties then + entity.inventory_properties = {} + end + + entity.inventory_properties.stack_size_min = 100 + entity.minable.result = nil + entity.collision_box = {{0, 0}, {0, 0}} + entity.selection_box = nil + entity.collision_mask = {colliding_with_tiles_only = true, layers = {}, not_colliding_with_itself = true} + entity.flags = {'hide-alt-info', 'not-blueprintable', 'not-deconstructable', 'not-flammable', 'not-on-map', 'not-selectable-in-game', 'placeable-off-grid', 'placeable-player'} + entity.next_upgrade = nil + entity.selection_priority = 49 + entity.order = 'zz' + data:extend({entity}) + end +end + -- CT A 1 BASE MAP_GEN_PRESET if settings.startup['PHI-CT-TILE'].value then data.raw['map-gen-presets']['default']['empty-world'] = { diff --git a/PHI-CL/data/b/mig.lua b/PHI-CL/data/b/mig.lua index 48a452e..268388e 100644 --- a/PHI-CL/data/b/mig.lua +++ b/PHI-CL/data/b/mig.lua @@ -492,6 +492,8 @@ if data.raw['loader'] then for _, ln in pairs(data.raw['loader']) do local l = ln.name + ln.hidden = false + ln.hidden_in_factoriopedia = false ln.filter_count = 2 ln.per_lane_filters = true ln.adjustable_belt_stack_size = (data.raw['inserter']['stack-inserter'] and true) or false