mirror of
https://github.com/Wyrrrd/Autofilter.git
synced 2026-06-30 18:07:19 +02:00
Compare commits
35 Commits
v0.18.5
...
cef622eaa7
| Author | SHA1 | Date | |
|---|---|---|---|
| cef622eaa7 | |||
| 225b9732d3 | |||
| b9fb3270df | |||
| 356bfba1a3 | |||
| ac75ed5a0b | |||
| dc8476b06c | |||
| 18b0cbf275 | |||
| b8b9fe494a | |||
| 63166c92cd | |||
| fa733dc4e3 | |||
| b2f2c23e94 | |||
| 883a9425ff | |||
| 190bbaf1cb | |||
| ffc0356695 | |||
| 1b57bd7113 | |||
| 0c443000f6 | |||
| 850ad3ef3a | |||
| b20a2f6751 | |||
| 7f2e4b2deb | |||
| 396ac6556f | |||
| 5780d79793 | |||
| 7be1f2f4b0 | |||
| 939d9e3cb6 | |||
| ab77cf1de3 | |||
| ceb17d2949 | |||
| ef61bd94dd | |||
| 461a88e6bd | |||
| bfc4e6aa3d | |||
| c36e55c961 | |||
| e6164a2d96 | |||
| e2ece3e288 | |||
| 31e723c8df | |||
| 27fa26ee13 | |||
| 8ce0cbbf8e | |||
| aed3caddda |
@@ -0,0 +1,2 @@
|
||||
*.zip
|
||||
.vscode/*
|
||||
@@ -1,9 +1,25 @@
|
||||
# Autofilter
|
||||
<img src="https://raw.githubusercontent.com/Wyrrrd/Autofilter/master/thumbnail.png" width="128" height="128">
|
||||
|
||||
### Description
|
||||
- When you place a filter inserter, it reads either the inventory contents or inventory filters on the pickup side and sets its filter to those items.
|
||||
- Fills the inserter's filter only until it is full (of course).
|
||||
- Sets the inserter's filter only if there is no filter already set (for example from a replaced preconfigured ghost).
|
||||
- The mode can be changed or disabled in player mod settings on the fly as needed.
|
||||
- Should work with most modded filter inserters.
|
||||
### Features
|
||||
When you manually place an inserter, it reads the inventory contents, inventory filters or belt contents on the pickup side and enables and sets its filter to those items. There are extensive configuration options.
|
||||
|
||||
### Settings
|
||||
|
||||
There is only one text field to enter configuration into. This can be done on the fly, while ingame. You can add each of the following keywords into the text field, in any order, separated by spaces. They will be processed left to right.
|
||||
|
||||
+ **contents** - Checks for filter candidates in the inventory contents at the inserter's pickup position.
|
||||
+ **filter** - Checks for filter candidates in the inventory's filter settings at the inserter's pickup position.
|
||||
+ **belt** - Checks for filter candidates in the items on a belt at the inserter's pickup position.
|
||||
+ **check** - Checks for the current filter candidates, if they could be inserted in the inventory at the inserter's drop position and removes them from the candidate list, if unsuccessful.
|
||||
+ *anything else* - Gets ignored.
|
||||
|
||||
After those are processed, a deduplication removes all but the first appearance of each item from the filter candidate list, and then the candidates are written to the inserter's filter until it is full.
|
||||
|
||||
### Compatibility
|
||||
This mod should work with all modded inserters, but I specifically added compatibility for the following mods:
|
||||
|
||||
+ [Bob's Adjustable Inserters](https://mods.factorio.com/mod/bobinserters) - rotated pickup positions
|
||||
|
||||
### Locale
|
||||
If you want to contribute by translating this mod, you can view the existing translations on [Crowdin](https://crowdin.com/project/factorio-mods-localization). I'd be happy to add your language to the next release.
|
||||
|
||||
+86
-13
@@ -1,52 +1,125 @@
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 2.0.2
|
||||
Date: 2024-12-19
|
||||
Locale:
|
||||
- Import changes from Crowdin
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 2.0.1
|
||||
Date: 2024-10-26
|
||||
Features:
|
||||
- Replace enable checkbox in settings with shortcut tile (CTRL+SHIFT+A)
|
||||
Bugfixes:
|
||||
- Fix filter mode
|
||||
- Fix check mode
|
||||
Locale:
|
||||
- Add ukrainian locale (thanks to Met_en_Bouldry)
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 2.0.0
|
||||
Date: 2024-10-25
|
||||
Features:
|
||||
- Added option to quickly enable/disable all functions (will be replaced with a shortcut tile in the future)
|
||||
- If enabled, now sets filters for all inserters (since filter inserters don't exist anymore)
|
||||
Changes:
|
||||
- Version bump for base game 2.0
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.1.3
|
||||
Date: 2021-09-06
|
||||
Locale:
|
||||
- Added french locale (thanks to Friendch)
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.1.2
|
||||
Date: 2021-04-18
|
||||
Changes:
|
||||
- Added tips&tricks page for ingame info
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.1.1
|
||||
Date: 2021-04-16
|
||||
Features:
|
||||
- Added option to read belt at pickup position
|
||||
- Added option to leave out filter candidates if they cannot enter inventory at drop position
|
||||
Changes:
|
||||
- Changed modus setting format to allow for more customization
|
||||
- Added deduplication to filter candidates (needed for belt transport lines)
|
||||
- Removed integrations for Informatron, Factorio Wiki Mod and Booktorio (feels like bloat)
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.1.0
|
||||
Date: 2020-12-02
|
||||
Changes:
|
||||
- Version bump for base game 1.1
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 0.18.10
|
||||
Date: 2020-04-03
|
||||
Features:
|
||||
- Added integration with Booktorio (for german and english locales)
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 0.18.9
|
||||
Date: 2020-03-29
|
||||
Features:
|
||||
- Added integration with Factorio Wiki Mod (for german and english locales)
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 0.18.8
|
||||
Date: 2020-03-06
|
||||
Changes:
|
||||
- Merged Informatron pages into single one
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 0.18.7
|
||||
Date: 2020-03-05
|
||||
Features:
|
||||
- Added integration with Informatron (for german and english locales)
|
||||
Changes:
|
||||
- Minor code readability improvements
|
||||
- Added earlier check for setting "none" to prevent more code from running
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 0.18.6
|
||||
Date: 2020-02-27
|
||||
Changes:
|
||||
- Updated retroactive downgrade to be on par with this version
|
||||
Bugfixes:
|
||||
- Fixed empty filter check, so it checks all slots instead of just the first one
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 0.18.5
|
||||
Date: 24. 2. 2020
|
||||
Date: 2020-02-24
|
||||
Changes:
|
||||
- Added hidden dependency to Bob's Adjustable Inserters (fixes setting filter from wrong inventory when pickup location is rotated)
|
||||
- Added check for empty filter and whitelist mode to avoid overwriting filter on replacing preexisting inserters/ghosts
|
||||
- Updated retroactive downgrade to be on par with this version
|
||||
|
||||
Locale:
|
||||
- Added translated mod description
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 0.18.4
|
||||
Date: 23. 2. 2020
|
||||
Date: 2020-02-23
|
||||
Changes:
|
||||
- Removed incompatibility with Upgrade Builder and Planner (see Bugfixes)
|
||||
|
||||
Bugfixes:
|
||||
- Added additional check for entity type, since event filters are not applied to mod-raised events
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 0.18.3
|
||||
Date: 23. 2. 2020
|
||||
Date: 2020-02-23
|
||||
Changes:
|
||||
- Minor improvements (typos, code style)
|
||||
- Added incompatibility with Upgrade Builder and Planner (until crash is fixed, see https://mods.factorio.com/mod/Autofilter/discussion/5e5177cbf26569000bdd51eb)
|
||||
|
||||
Graphics:
|
||||
- Changed thumbnail to the better
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 0.18.2
|
||||
Date: 22. 2. 2020
|
||||
Date: 2020-02-22
|
||||
Changes:
|
||||
- Matched changelog file format to what Factorio expects
|
||||
|
||||
Info:
|
||||
- Also downgraded to Factorio 0.17, see below
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 0.18.1
|
||||
Date: 22. 2. 2020
|
||||
Date: 2020-02-22
|
||||
Bugfixes:
|
||||
- Added missing entity check (caused game crash on inserter placement without adjacent entity)
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 0.18.0
|
||||
Date: 22. 2. 2020
|
||||
Date: 2020-02-22
|
||||
Features:
|
||||
- Added automatic setting of filter on inserter placement
|
||||
- Added player mod setting to control mod behaviour
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 0.17.0
|
||||
Date: 24. 2. 2020
|
||||
Date: 2020-02-27
|
||||
Info:
|
||||
- Retroactive downgrade
|
||||
---------------------------------------------------------------------------------------------------
|
||||
- Retroactive downgrade
|
||||
+224
-28
@@ -1,52 +1,247 @@
|
||||
--control.lua
|
||||
|
||||
--functions definitions
|
||||
local function get_item_name(item)
|
||||
if not item then
|
||||
return
|
||||
end
|
||||
local itemname = item
|
||||
if type(itemname) ~= "string" then
|
||||
itemname = itemname.name
|
||||
if type(itemname) ~= "string" then
|
||||
itemname = itemname.name
|
||||
end
|
||||
end
|
||||
return itemname
|
||||
end
|
||||
|
||||
local function concatenate_tables(table1,table2)
|
||||
for i = 1,#table2 do
|
||||
table1[#table1+1]=table2[i]
|
||||
end
|
||||
return table1
|
||||
end
|
||||
|
||||
local function string_to_table(str)
|
||||
local words = {}
|
||||
for word in str:gmatch("([^%s]+)") do
|
||||
words[#words+1] = word
|
||||
end
|
||||
return words
|
||||
end
|
||||
|
||||
local function toggle_shortcut(event)
|
||||
local player = game.get_player(event.player_index)
|
||||
local input = event.prototype_name or event.input_name
|
||||
|
||||
if player and input == "autofilter" then
|
||||
-- Toggle shortcut state
|
||||
player.set_shortcut_toggled(input, not player.is_shortcut_toggled(input))
|
||||
end
|
||||
end
|
||||
|
||||
local function is_filter_empty(inserter)
|
||||
for slot = 1,inserter.filter_slot_count do
|
||||
if inserter.get_filter(slot) then
|
||||
return false
|
||||
end
|
||||
return true
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
local function get_items_by_content(inserter,inventory)
|
||||
local items = {}
|
||||
for item,_ in pairs(inventory.get_contents()) do
|
||||
if #items < inserter.filter_slot_count then
|
||||
items[#items+1] = item
|
||||
local function deduplicate_items(items)
|
||||
local dedup_items = {}
|
||||
local marker = false
|
||||
for i=1,#items do
|
||||
for j=i+1,#items do
|
||||
if items[i] == items[j] then
|
||||
marker = true
|
||||
end
|
||||
end
|
||||
if not marker then
|
||||
dedup_items[#dedup_items+1]=items[i]
|
||||
end
|
||||
marker = false
|
||||
end
|
||||
return dedup_items
|
||||
end
|
||||
|
||||
local function remove_noninsertable_items(items,entity)
|
||||
local search_inventories = {
|
||||
chest = {defines.inventory.chest},
|
||||
furnace = {defines.inventory.furnace_source},
|
||||
roboport = {defines.inventory.roboport_robot, defines.inventory.roboport_material},
|
||||
assembling_machine = {defines.inventory.assembling_machine_input},
|
||||
lab = {defines.inventory.lab_input},
|
||||
rocket_silo = {defines.inventory.rocket_silo_rocket, defines.inventory.rocket_silo_input},
|
||||
cargo_wagon = {defines.inventory.cargo_wagon},
|
||||
turret = {defines.inventory.turret_ammo},
|
||||
artillery_turret = {defines.inventory.artillery_turret_ammo},
|
||||
artillery_wagon = {defines.inventory.artillery_wagon_ammo},
|
||||
spider = {defines.inventory.spider_ammo},
|
||||
hub = {defines.inventory.hub_main},
|
||||
cargo_landing_pad = {defines.inventory.cargo_landing_pad_main}
|
||||
}
|
||||
|
||||
local insert_items = {}
|
||||
local no_inventory_flag = true
|
||||
local item_insertable_flag = false
|
||||
|
||||
for i=1,#items do
|
||||
|
||||
-- Check fuel inventory
|
||||
local inventory = entity.get_fuel_inventory()
|
||||
if inventory and inventory.valid then
|
||||
no_inventory_flag = false
|
||||
if inventory.can_insert({name=items[i]}) then
|
||||
item_insertable_flag = true
|
||||
end
|
||||
end
|
||||
|
||||
-- Check other inventories
|
||||
if search_inventories[entity.prototype] then
|
||||
for _,search_inventory in pairs(search_inventories[entity.prototype]) do
|
||||
inventory = entity.get_inventory(search_inventory)
|
||||
if inventory and inventory.valid then
|
||||
no_inventory_flag = false
|
||||
if inventory.can_insert({name=items[i]}) then
|
||||
item_insertable_flag = true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if no_inventory_flag then
|
||||
insert_items = items
|
||||
break
|
||||
end
|
||||
if item_insertable_flag then
|
||||
insert_items[#insert_items+1]=items[i]
|
||||
item_insertable_flag = false
|
||||
end
|
||||
end
|
||||
return items
|
||||
return insert_items
|
||||
end
|
||||
|
||||
local function get_items_by_filter(inserter,inventory)
|
||||
local items = {}
|
||||
local function get_items_by_content(inventory)
|
||||
local content_items = {}
|
||||
for _,item in pairs(inventory.get_contents()) do
|
||||
content_items[#content_items+1] = get_item_name(item)
|
||||
end
|
||||
return content_items
|
||||
end
|
||||
|
||||
local function get_items_by_inventory_filter(inventory)
|
||||
local filter_items = {}
|
||||
for slot = 1,#inventory do
|
||||
if #items < inserter.filter_slot_count and inventory.get_filter(slot) then
|
||||
items[#items+1] = inventory.get_filter(slot)
|
||||
if inventory.get_filter(slot) then
|
||||
filter_items[#filter_items+1] = get_item_name(inventory.get_filter(slot))
|
||||
end
|
||||
end
|
||||
return items
|
||||
return filter_items
|
||||
end
|
||||
|
||||
local function get_items_by_entity_filter(entity)
|
||||
local filter_items = {}
|
||||
for slot = 1,entity.filter_slot_count do
|
||||
if entity.get_filter(slot) then
|
||||
filter_items[#filter_items+1] = get_item_name(entity.get_filter(slot))
|
||||
end
|
||||
end
|
||||
return filter_items
|
||||
end
|
||||
|
||||
local function get_items_by_transport_line(belt)
|
||||
local belt_items = {}
|
||||
for i = 1,belt.get_max_transport_line_index() do
|
||||
local line = belt.get_transport_line(i)
|
||||
if line and line.valid then
|
||||
belt_items = concatenate_tables(belt_items,get_items_by_content(line))
|
||||
end
|
||||
end
|
||||
return belt_items
|
||||
end
|
||||
|
||||
local function on_built_entity(event)
|
||||
local inserter = event.created_entity
|
||||
if inserter.type == "inserter" then
|
||||
if inserter.filter_slot_count then
|
||||
if is_filter_empty(inserter) and inserter.inserter_filter_mode == "whitelist" then
|
||||
local pickup = inserter.surface.find_entities_filtered({position = inserter.pickup_position, limit = 1})
|
||||
if #pickup > 0 then
|
||||
local inventory = pickup[1].get_output_inventory()
|
||||
if inventory then
|
||||
local mode = game.players[event.player_index].mod_settings["Autofilter_Mode"].value
|
||||
if mode == "content" and not inventory.is_empty() then
|
||||
for slot,item in pairs(get_items_by_content(inserter,inventory)) do
|
||||
inserter.set_filter(slot,item)
|
||||
if game.players[event.player_index].is_shortcut_toggled("autofilter") then
|
||||
local inserter = event.entity
|
||||
local mode = string_to_table(game.players[event.player_index].mod_settings["autofilter_mode"].value)
|
||||
if inserter and inserter.valid and inserter.type == "inserter" then
|
||||
if inserter.filter_slot_count then
|
||||
if not inserter.use_filters and is_filter_empty(inserter) and inserter.inserter_filter_mode == "whitelist" then
|
||||
-- Read pickup and drop position entity
|
||||
local pickup = inserter.surface.find_entities_filtered({
|
||||
position = inserter.pickup_position,
|
||||
force = inserter.force,
|
||||
surface = inserter.surface,
|
||||
collision_mask_layer= "is_object",
|
||||
to_be_deconstructed = false,
|
||||
limit = 1
|
||||
})
|
||||
local drop = inserter.surface.find_entities_filtered({
|
||||
position = inserter.drop_position,
|
||||
force = inserter.force,
|
||||
surface = inserter.surface,
|
||||
collision_mask= "is_object",
|
||||
to_be_deconstructed = false,
|
||||
limit = 1
|
||||
})
|
||||
|
||||
if pickup[1] and pickup[1].valid then
|
||||
-- Prequisites
|
||||
local inventory_pickup = pickup[1].get_output_inventory()
|
||||
|
||||
if (pickup[1].type == "transport-belt" or pickup[1].type == "underground-belt" or pickup[1].type == "splitter") then
|
||||
local maxlines = pickup[1].get_max_transport_line_index()
|
||||
end
|
||||
local items = {}
|
||||
local check = false
|
||||
|
||||
-- Read each mode element
|
||||
for _,step in pairs(mode) do
|
||||
if step == "contents" then
|
||||
-- Read inventory contents at pickup, write to filter
|
||||
if inventory_pickup and not inventory_pickup.is_empty() then
|
||||
items = concatenate_tables(items,get_items_by_content(inventory_pickup))
|
||||
end
|
||||
elseif step == "filter" then
|
||||
-- Read inventory filter at pickup, write to filter
|
||||
if inventory_pickup and inventory_pickup.is_filtered() then
|
||||
items = concatenate_tables(items,get_items_by_inventory_filter(inventory_pickup))
|
||||
end
|
||||
-- Read entity filter at pickup, write to filter
|
||||
if pickup[1].filter_slot_count > 0 then
|
||||
items = concatenate_tables(items,get_items_by_entity_filter(pickup[1]))
|
||||
end
|
||||
elseif step == "belt" then
|
||||
-- Read belt transport lines at pickup, write to filter
|
||||
if (pickup[1].type == "transport-belt" or pickup[1].type == "underground-belt" or pickup[1].type == "splitter") and pickup[1].get_max_transport_line_index() then
|
||||
items = concatenate_tables(items,get_items_by_transport_line(pickup[1]))
|
||||
end
|
||||
elseif step == "check" then
|
||||
-- Drop inventory insertion check
|
||||
if drop[1] and drop[1].valid then
|
||||
items = remove_noninsertable_items(items,drop[1])
|
||||
end
|
||||
end
|
||||
elseif mode == "filter" and inventory.is_filtered() then
|
||||
for slot,item in pairs(get_items_by_filter(inserter,inventory)) do
|
||||
inserter.set_filter(slot,item)
|
||||
end
|
||||
|
||||
-- Filter candidate cleanup
|
||||
if #items > 0 then
|
||||
-- Deduplication
|
||||
items = deduplicate_items(items)
|
||||
|
||||
-- Debug message
|
||||
if __DebugAdapter then
|
||||
__DebugAdapter.print("[Autofilter] Inserter at (" .. inserter.position.x .. "," .. inserter.position.y .. ") had its filter set to: " .. table.concat(items,", "))
|
||||
end
|
||||
|
||||
-- Enable filters
|
||||
inserter.use_filters = true
|
||||
|
||||
-- Writing filters until full
|
||||
for slot = 1, inserter.filter_slot_count do
|
||||
inserter.set_filter(slot,items[slot])
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -57,4 +252,5 @@ local function on_built_entity(event)
|
||||
end
|
||||
|
||||
--event handling
|
||||
script.on_event(defines.events.on_built_entity, on_built_entity,{{filter="type", type = "inserter"}})
|
||||
script.on_event({defines.events.on_lua_shortcut, "autofilter"}, toggle_shortcut)
|
||||
script.on_event(defines.events.on_built_entity, on_built_entity,{{filter="type", type = "inserter"}})
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
--data.lua
|
||||
|
||||
data:extend(
|
||||
{
|
||||
{
|
||||
type = "tips-and-tricks-item",
|
||||
name = "autofilter",
|
||||
tag = "[entity=inserter]",
|
||||
category = "inserters",
|
||||
indent = 1,
|
||||
order = "g",
|
||||
dependencies = {"inserters"},
|
||||
},
|
||||
{
|
||||
type = "custom-input",
|
||||
name = "autofilter",
|
||||
key_sequence = "CONTROL + SHIFT + A",
|
||||
consuming = "game-only",
|
||||
action = "lua"
|
||||
},
|
||||
{
|
||||
type = "shortcut",
|
||||
name = "autofilter",
|
||||
action = "lua",
|
||||
order = "h[combatRobot]",
|
||||
technology_to_unlock = "electronics",
|
||||
associated_control_input = "autofilter",
|
||||
toggleable = true,
|
||||
icon = "__Autofilter__/graphics/autofilter.png",
|
||||
icon_size = 32,
|
||||
small_icon = "__Autofilter__/graphics/autofilter-small.png",
|
||||
small_icon_size = 24,
|
||||
unavailable_until_unlocked = true,
|
||||
},
|
||||
})
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 913 B |
Binary file not shown.
|
After Width: | Height: | Size: 916 B |
Binary file not shown.
|
After Width: | Height: | Size: 993 B |
Binary file not shown.
|
After Width: | Height: | Size: 1000 B |
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "Autofilter",
|
||||
"version": "0.18.5",
|
||||
"version": "2.0.2",
|
||||
"title": "Autofilter",
|
||||
"author": "Wyrrrd",
|
||||
"dependencies": [
|
||||
"base >= 0.18.0",
|
||||
"(?)bobinserters"
|
||||
"base >= 2.0.0",
|
||||
"(?) bobinserters >= 1.3.0"
|
||||
],
|
||||
"description": "Automatically set inserter filters based on adjacent inventory.",
|
||||
"factorio_version": "0.18"
|
||||
"description": "Automatically set inserter filters based on adjacent inventory/belt.",
|
||||
"factorio_version": "2.0"
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
[mod-description]
|
||||
Autofilter=Automaticky nastavit filtry překladače na základě přilehlé inventury/pásu.
|
||||
|
||||
[mod-setting-name]
|
||||
autofilter_mode=Automatický režim filtru
|
||||
|
||||
[mod-setting-description]
|
||||
autofilter_mode=Konfigurace priority čtení zdrojů (contents = obsah inventury, filter = inventární filtr, belt = obsah pásu, check = kontrola schopnosti zařaditelnosti při pádové poloze).
|
||||
|
||||
[tips-and-tricks-item-name]
|
||||
autofilter=Automatický filtr
|
||||
|
||||
[tips-and-tricks-item-description]
|
||||
autofilter=Když ručně umístíte [entity=inserter] (a pokud jsou v nastavení povoleny automatické filtry), přečte obsah inventáře, filtry inventáře nebo obsah pásu na straně vyzvednutí a nastaví svůj filtr na tyto položky.\n\nExistuje pouze jedno textové pole pro zadání konfigurace tohoto chování. To lze provést za běhu, zatímco hrajete. Do textového pole můžete přidat každé z následujících klíčových slov v libovolném pořadí, oddělené mezerami. Budou zpracovány zleva doprava.\n\n - obsah : Zkontroluje kandidáty filtru v obsahu inventáře na pozici vyzvednutí [entity=inserter].\n - filtr : Zkontroluje kandidáty filtru v nastavení filtru inventáře na pozice vyzvednutí [entity=inserter].\n - pás : Zkontroluje kandidáty na filtr v položkách na [entity=transport-belt] nebo [entity=splitter] na pozici vyzvednutí [entity=inserter]. \n - zkontrolovat : Zkontroluje aktuální kandidáty filtru, pokud je lze vložit do inventáře na pozici přetažení [entity=inserter], a v případě neúspěšnosti je odstraní ze seznamu kandidátů.\n - Cokoli jiného bude ignorováno. Pokud chcete deaktivovat všechny funkce automatického filtru, stačí napsat cokoli do textového pole.\n\nPo zpracování deduplikace odstraní všechny položky kromě prvního výskytu každé položky ze seznamu kandidátů filtru a poté se kandidáti zapíší do filtr [entity=inserter], dokud není plný.
|
||||
|
||||
[shortcut-name]
|
||||
autofilter=Automatický filtr
|
||||
|
||||
+12
-7
@@ -1,13 +1,18 @@
|
||||
[mod-description]
|
||||
Autofilter=Setzt Greifarmfilter automatisch, basierend auf dem angrenzenden Inventar.
|
||||
Autofilter=Setzt Greifarmfilter automatisch, basierend auf angrenzenden Inventaren/Fließbändern.
|
||||
|
||||
[mod-setting-name]
|
||||
Autofilter_Mode=Autofilter-Modus
|
||||
autofilter_mode=Automatischer-Filter-Modus
|
||||
|
||||
[mod-setting-description]
|
||||
Autofilter_Mode=Ändere, ob Greifarmfilter durch Inventarinhalt, Inventarfilter oder gar nicht gesetzt werden sollen.
|
||||
autofilter_mode=Bestimmt die Reihenfolge der Auslesevorgänge (contents = Inventarinhalt, filter = Inventarfilter, belt = Fließbandinhalt, check = Zielinventarprüfung).
|
||||
|
||||
[tips-and-tricks-item-name]
|
||||
autofilter=Autofilter
|
||||
|
||||
[tips-and-tricks-item-description]
|
||||
autofilter=Wenn Du manuell einen [entity=inserter] platzierst (und automatische Filter in den Einstellungen aktiviert sind), prüft er den Inventarinhalt, die Inventarfilter oder den Fließbandinhalt auf der Aufnahmeseite und stellt seinen Filter entsprechend ein.\n\nEs gibt nur ein Textfeld, in das Du die Konfiguration dieses Verhaltens eingeben kannst. Das kannst Du im laufenden Spiel machen. Du kannst die folgenden Schlüsselwörter in beliebiger Reihenfolge in das Textfeld einfügen, getrennt durch Leerzeichen. Sie werden von links nach rechts verarbeitet..\n\n - contents : Prüft den Inventarinhalt an der Aufnahmeposition des [entity=inserter] auf Filterkandidaten.?\n - filter : Prüft die Filtereinstellungen des Inventars an der Aufnahmeposition des [entity=inserter] auf Filterkandidaten.\n - belt : Prüft die Gegenstände auf einem [entity=transport-belt] oder [entity=splitter] an der Aufnahmeposition des [entity=inserter] auf Filterkandidaten.\n - check : Prüft die aktuellen Filterkandidaten, ob sie im Inventar an der Abgabeposition des [entity=inserter] abgelegt werden können, und entfernt sie aus der Kandidatenliste, falls das nicht möglich ist.\n - Alles andere wird ignoriert. Wenn Du die Funktionalität vom Autofilter komplett deaktivieren möchtest, schreibe einfach irgendetwas in das Textfeld.\n\nNachdem diese Verarbeitung abgeschlossen ist, entfernt eine Deduplikation alle doppelten Einträge aus der Filterkandidatenliste (außer dem ersten Auftreten jedes Gegenstandes). Anschließend werden die Kandidaten in den Filter des [entity=inserter] geschrieben, bis dieser voll ist.
|
||||
|
||||
[shortcut-name]
|
||||
autofilter=Autofilter
|
||||
|
||||
[string-mod-setting]
|
||||
Autofilter_Mode-content=Inhalt
|
||||
Autofilter_Mode-filter=Filter
|
||||
Autofilter_Mode-none=Keiner
|
||||
+11
-7
@@ -1,13 +1,17 @@
|
||||
[mod-description]
|
||||
Autofilter=Automatically set inserter filters based on adjacent inventory.
|
||||
Autofilter=Automatically set inserter filters based on adjacent inventory/belt.
|
||||
|
||||
[mod-setting-name]
|
||||
Autofilter_Mode=Autofilter Mode
|
||||
autofilter_mode=Automatic filter mode
|
||||
|
||||
[mod-setting-description]
|
||||
Autofilter_Mode=Change if inserter filters should be set from inventory items, inventory filter or not at all.
|
||||
autofilter_mode=Configure the priority of reading sources (contents = inventory contents, filter = inventory filter, belt = belt contents, check = check for insertability at drop position).
|
||||
|
||||
[string-mod-setting]
|
||||
Autofilter_Mode-content=Content
|
||||
Autofilter_Mode-filter=Filter
|
||||
Autofilter_Mode-none=None
|
||||
[tips-and-tricks-item-name]
|
||||
autofilter=Autofilter
|
||||
|
||||
[tips-and-tricks-item-description]
|
||||
autofilter=When you manually place a [entity=inserter] (and if automatic filters are enabled in settings), it reads the inventory contents, inventory filters or belt contents on the pickup side and sets its filter to those items.\n\nThere is only one text field to enter configuration of this behaviour into. This can be done on the fly, while ingame. You can add each of the following keywords into the text field, in any order, separated by spaces. They will be processed left to right.\n\n - contents : Checks for filter candidates in the inventory contents at the pickup position of the [entity=inserter].\n - filter : Checks for filter candidates in the inventory's filter settings at the pickup position of the [entity=inserter].\n - belt : Checks for filter candidates in the items on a [entity=transport-belt] or [entity=splitter] at the pickup position of the [entity=inserter].\n - check : Checks for the current filter candidates, if they could be inserted in the inventory at the drop position of the [entity=inserter] and removes them from the candidate list, if unsuccessful.\n - Anything else gets ignored. If you want to disable all functionality of Autofilter, just write anything into the text field.\n\nAfter those are processed, a deduplication removes all but the first appearance of each item from the filter candidate list, and then the candidates are written to the filter of the [entity=inserter] until it is full.
|
||||
|
||||
[shortcut-name]
|
||||
autofilter=Autofilter
|
||||
@@ -0,0 +1,15 @@
|
||||
[mod-description]
|
||||
Autofilter=Configuration automatique du filtre des bras robotisés en fonction des inventaires et convoyeurs adjacents.
|
||||
|
||||
[mod-setting-name]
|
||||
autofilter_mode=Mode du filtre automatique
|
||||
|
||||
[mod-setting-description]
|
||||
autofilter_mode=Sélectionner la priorité de la source (contents = contenu de l'inventaire, filter = filtre de l'inventaire, belt = contenu du convoyeur, check = s'assurer qu'il y a de la place dans la zone de dépôt).
|
||||
|
||||
[tips-and-tricks-item-name]
|
||||
|
||||
[tips-and-tricks-item-description]
|
||||
|
||||
[shortcut-name]
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
[mod-description]
|
||||
|
||||
[mod-setting-name]
|
||||
|
||||
[mod-setting-description]
|
||||
|
||||
[tips-and-tricks-item-name]
|
||||
|
||||
[tips-and-tricks-item-description]
|
||||
|
||||
[shortcut-name]
|
||||
autofilter=オートフィルタ
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
[mod-description]
|
||||
Autofilter=Автоматически устанавливать фильтры манипуляторов на основе соседних хранилищ/конвейеров.
|
||||
|
||||
[mod-setting-name]
|
||||
autofilter_mode=Режим автоматической фильтрации
|
||||
|
||||
[mod-setting-description]
|
||||
autofilter_mode=Настроить приоритет источников чтения (contents = содержимое инвентаря, filter = фильтр инвентаря, belt = содержимое конвейера, check = проверка на возможность вставки в позицию сброса).
|
||||
|
||||
[tips-and-tricks-item-name]
|
||||
autofilter=Автофильтр
|
||||
|
||||
[tips-and-tricks-item-description]
|
||||
autofilter=Когда вы вручную ставите [entity=inserter] (а также если автоматические фильтры включены в настройках), он считывает содержимое инвентаря, фильтры инвентаря или содержимое конвееров на месте подачи и устанавливает фильтры на эти предметы.\n\nЕсть только одно текстовое поле для ввода настроек поведения. Это может быть сделано во время игры. Вы можете добавить каждое из следующих ключевых слов в текстовое поле в любом порядке, разделив пробелами. Они будут обработаны слева направо.\n\n - содержимое: Проверяет кандидатуры фильтра в инвентаре на месте подачи [entity=inserter].\n - фильтр: Проверяет кандидатуры фильтра в настройках инвентаря на месте подачи [entity=inserter].\n - конвейер : Проверяет фильтр кандидатов из предметов на [entity=transport-belt] или [entity=splitter] в позиции подбора [entity=inserter].\n - проверить: проверяет текущих кандидатов фильтра, могут ли они быть вставлены в инвентарь в позиции выпадения [entity=inserter] и удаляет их из списка кандидатов, если не успешно.\n - Всё остальное игнорируется. Если вы хотите отключить все функции Автофильтра, просто напишите что-нибудь в текстовое поле.\n\nПосле их обработки, Дедупликатор удаляет все, кроме первого появления каждого элемента из фильра списка кандидатов, а затем кандидаты записываются в фильтр [entity=inserter] до тех пор, пока он не будет полон.
|
||||
|
||||
[shortcut-name]
|
||||
autofilter=Автофильтр
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
[mod-description]
|
||||
Autofilter=Автоматичне налаштування фільтрів маніпуляторів на основі сусідніх запасів/стрічок.
|
||||
|
||||
[mod-setting-name]
|
||||
autofilter_mode=Автоматичний режим фільтрації
|
||||
|
||||
[mod-setting-description]
|
||||
autofilter_mode=Налаштуйте пріоритет джерел зчитування (contents = вміст інвентарю, filter = фільтр інвентарю, belt = вміст стрічки, check = перевірка на можливість вставки в позиції падіння).
|
||||
|
||||
[tips-and-tricks-item-name]
|
||||
autofilter=Автофільтр
|
||||
|
||||
[tips-and-tricks-item-description]
|
||||
autofilter=Коли ви вручну розміщуєте [entity=inserter] (і якщо у налаштуваннях увімкнено автоматичні фільтри), він зчитує вміст інвентарю, фільтри інвентарю або вміст конвеєра на стороні підбирання і встановлює свій фільтр на ці предмети.\n\nІснує лише одне текстове поле для введення конфігурації цієї поведінки. Це можна зробити на льоту, під час гри. Ви можете додати кожне з наведених нижче ключових слів до текстового поля у довільному порядку, розділяючи їх пробілами. Вони будуть оброблені зліва направо.\n\n - вміст : Перевіряє наявність кандидатів на фільтр у вмісті інвентарю на позиції збирання [entity=inserter].\n - filter : Перевіряє наявність кандидатів на фільтр у налаштуваннях фільтра інвентарю на позиції збирання [entity=inserter].\n - belt : Перевіряє наявність кандидатів на фільтр у предметах на [entity=transport-belt] або [entity=splitter] у позиції збору [entity=inserter].\n - check : Перевіряє поточні кандидати на фільтр, якщо їх можна вставити в інвентар у позиції скидання [entity=inserter] і видаляє їх зі списку кандидатів, якщо це не вдасться.\n - Все інше ігнорується. Якщо ви хочете вимкнути всю функціональність автофільтру, просто напишіть будь-що у текстовому полі.\n\nПісля обробки цих даних дедуплікація вилучає зі списку кандидатів фільтру всі, крім першої появи кожного елемента, а потім кандидати записуються до фільтру [entity=inserter], доки він не буде заповнений.
|
||||
|
||||
[shortcut-name]
|
||||
autofilter=Автофільтр
|
||||
|
||||
+3
-4
@@ -1,10 +1,9 @@
|
||||
data:extend({
|
||||
{
|
||||
type = "string-setting",
|
||||
name = "Autofilter_Mode",
|
||||
default_value = "content",
|
||||
allowed_values = {"content","filter","none"},
|
||||
name = "autofilter_mode",
|
||||
default_value = "contents belt",
|
||||
setting_type = "runtime-per-user",
|
||||
order = "a",
|
||||
order = "autofilter-b",
|
||||
},
|
||||
})
|
||||
Reference in New Issue
Block a user