mirror of
https://github.com/Wyrrrd/Autofilter.git
synced 2026-06-30 01:56:14 +02:00
Compare commits
17 Commits
v2.0.1
...
5877674873
| Author | SHA1 | Date | |
|---|---|---|---|
| 5877674873 | |||
| fffc74e0e8 | |||
| c178327717 | |||
| 8eac59487b | |||
| aa5d98b0f9 | |||
| 2751d12b5c | |||
| 3fbbc2f144 | |||
| cef622eaa7 | |||
| 225b9732d3 | |||
| b9fb3270df | |||
| 356bfba1a3 | |||
| ac75ed5a0b | |||
| dc8476b06c | |||
| 18b0cbf275 | |||
| b8b9fe494a | |||
| 63166c92cd | |||
| fa733dc4e3 |
@@ -6,7 +6,7 @@ When you manually place an inserter, it reads the inventory contents, inventory
|
||||
|
||||
### Settings
|
||||
|
||||
There is only one text field to enter configuration into (apart from an enabling checkbox). 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.
|
||||
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.
|
||||
@@ -22,8 +22,4 @@ This mod should work with all modded inserters, but I specifically added compati
|
||||
+ [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 and credits to the next release.
|
||||
|
||||
### Credits
|
||||
Thanks to [Friendch](https://mods.factorio.com/user/Friendch) for the french translation.
|
||||
Thanks to [Met_en_Bouldry](https://crowdin.com/profile/Met_en_Bouldry) for the ukrainian translation.
|
||||
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.
|
||||
|
||||
@@ -1,4 +1,21 @@
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 2.0.4
|
||||
Date: 2026-02-19
|
||||
Locale:
|
||||
- Update french and japanese
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 2.0.3
|
||||
Date: 2025-09-30
|
||||
Changes:
|
||||
- Update deprecated inventory defines
|
||||
Bugfixes:
|
||||
- Catch crash with infinity containers
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 2.0.2
|
||||
Date: 2024-12-19
|
||||
Locale:
|
||||
- Import changes from Crowdin
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 2.0.1
|
||||
Date: 2024-10-26
|
||||
Features:
|
||||
|
||||
+11
-15
@@ -69,11 +69,11 @@ end
|
||||
local function remove_noninsertable_items(items,entity)
|
||||
local search_inventories = {
|
||||
chest = {defines.inventory.chest},
|
||||
furnace = {defines.inventory.furnace_source},
|
||||
furnace = {defines.inventory.crafter_input},
|
||||
roboport = {defines.inventory.roboport_robot, defines.inventory.roboport_material},
|
||||
assembling_machine = {defines.inventory.assembling_machine_input},
|
||||
assembling_machine = {defines.inventory.crafter_input},
|
||||
lab = {defines.inventory.lab_input},
|
||||
rocket_silo = {defines.inventory.rocket_silo_rocket, defines.inventory.rocket_silo_input},
|
||||
rocket_silo = {defines.inventory.rocket_silo_rocket, defines.inventory.crafter_input},
|
||||
cargo_wagon = {defines.inventory.cargo_wagon},
|
||||
turret = {defines.inventory.turret_ammo},
|
||||
artillery_turret = {defines.inventory.artillery_turret_ammo},
|
||||
@@ -144,12 +144,14 @@ 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
|
||||
-- Debug message
|
||||
if __DebugAdapter then
|
||||
__DebugAdapter.print("[Autofilter] " .. get_item_name(entity.get_filter(slot)))
|
||||
if entity.type == "infinity-container" then
|
||||
if entity.get_infinity_container_filter(slot) then
|
||||
filter_items[#filter_items+1] = get_item_name(entity.get_infinity_container_filter(slot))
|
||||
end
|
||||
else
|
||||
if entity.get_filter(slot) then
|
||||
filter_items[#filter_items+1] = get_item_name(entity.get_filter(slot))
|
||||
end
|
||||
filter_items[#filter_items+1] = get_item_name(entity.get_filter(slot))
|
||||
end
|
||||
end
|
||||
return filter_items
|
||||
@@ -212,16 +214,10 @@ local function on_built_entity(event)
|
||||
-- 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))
|
||||
if __DebugAdapter then
|
||||
__DebugAdapter.print("[Autofilter] Inventory: " .. table.concat(items,", "))
|
||||
end
|
||||
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]))
|
||||
if __DebugAdapter then
|
||||
__DebugAdapter.print("[Autofilter] Entity: " .. table.concat(items,", "))
|
||||
end
|
||||
end
|
||||
elseif step == "belt" then
|
||||
-- Read belt transport lines at pickup, write to filter
|
||||
@@ -263,4 +259,4 @@ end
|
||||
|
||||
--event handling
|
||||
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"}})
|
||||
script.on_event(defines.events.on_built_entity, on_built_entity,{{filter="type", type = "inserter"}})
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Autofilter",
|
||||
"version": "2.0.1",
|
||||
"version": "2.0.4",
|
||||
"title": "Autofilter",
|
||||
"author": "Wyrrrd",
|
||||
"dependencies": [
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -11,7 +11,8 @@ autofilter_mode=Bestimmt die Reihenfolge der Auslesevorgänge (contents = Invent
|
||||
autofilter=Autofilter
|
||||
|
||||
[tips-and-tricks-item-description]
|
||||
autofilter=Wenn du einen [entity=inserter] von Hand platzierst (und automatische Filter in den Optionen aktiviert sind), liest er den Inventarinhalt, die Inventarfilter oder den Fließbandinhalt and der Aufnahmeposition aus und setzt seinen Filter auf diese Gegenstände.\n\nFür die Konfiguration dieses Verhaltens gibt es nur ein Textfeld. Dieses kann während des Spiels angepasst werden. Du kannst jedes der folgenden Schlüsselworte in beliebiger Reihenfolge getrennt durch Leerzeichen in das Textfeld eintragen. Sie werden von links nach rechts abgearbeitet.\n\n - contents : Überprüft den Inventarinhalt an der [entity=filter-inserter]-Aufnahmeposition nach Filterkandidaten.\n - filter : Überprüft den Inventarfilter an der [entity=filter-inserter]-Aufnahmeposition nach Filterkandidaten.\n - belt : Überprüft die Gegenstände auf einem [entity=transport-belt] oder [entity=splitter] an der [entity=filter-inserter]-Aufnahmeposition nach Filterkandidaten.\n - check : Überprüft, ob die aktuellen Filterkandidaten in ein Inventar an der [entity=filter-inserter]-Ablageposition gelegt werden können, und entfernt sie aus der Kandidatenliste, wenn nicht.\n - Alles andere wird ignoriert. Wenn du alle Funktionen von Autofilter abschalten willst, schreibe einfach irgendetwas in das Textfeld.\n\nNachdem diese Punkte verarbeitet wurden, entfernt eine Deduplikation alle mehrfachen Vorkommen von Gegenständen aus der Filterkandidatenliste, und dann werden die Kandidaten in den [entity=inserter]-Filter geschrieben, bis er voll ist.
|
||||
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
|
||||
autofilter=Autofilter
|
||||
|
||||
|
||||
@@ -8,8 +8,10 @@ autofilter_mode=Mode du filtre automatique
|
||||
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]
|
||||
autofilter=Filtre automatique
|
||||
|
||||
[tips-and-tricks-item-description]
|
||||
autofilter=Permet à un [entity=inserter] placé manuellement (si les filtres automatiques sont activés dans les paramètres) de reconnaître le contenu des inventaires, des filtres d'inventaire et des convoyeurs côté ramassage, pour pouvoir configurer automatiquement son propre filtre avec le même objet.\n\nCette zone de texte sert de configuration, et peut être changée en temps réel pendant le jeu. Pour se faire, ajoutez-y ces mots clefs, séparés par un espace et dans l'ordre souhaité, en fonction de vos choix : (L'odre de priorité ira de gauche à droite.)\n\n - contents : Recherche d'un objet filtrable dans l'inventaire situé côté ramassage du [entity=inserter].\n - filter : Recherche d'un objet filtrable dans le filtre d'inventaire situé côté ramassage du [entity=inserter].\n - belt : Recherche d'un objet filtrable dans le [entity=transport-belt] ou le [entity=splitter] situé côté ramassage du [entity=inserter].\n - check : S'assurer que le [entity=inserter] pourra transmettre l'objet envisagé par le filtre dans l'inventaire visé, ou le retirer de la liste des candidats dans le cas contraire.\nToute autre chose ajoutée sera ignorée, et si aucune de ces options n'est désirée il suffira de ne pas les y ajouter.\n\nLe filtre automatique fonctionne en faisant une liste provisoire de tous les candidats possibles, suivant les options choisies, puis élimine les doublons avant de transférer cette liste provisoire à celle du [entity=inserter]. (Auquel cas, jusqu'à complétion.)
|
||||
|
||||
[shortcut-name]
|
||||
[shortcut-name]
|
||||
autofilter=Filtre automatique
|
||||
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
[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]
|
||||
|
||||
[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=Автофильтр
|
||||
|
||||
@@ -14,4 +14,5 @@ autofilter=Автофільтр
|
||||
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=Автофільтр
|
||||
autofilter=Автофільтр
|
||||
|
||||
|
||||
Reference in New Issue
Block a user