From bd91b1f18afb840073a9ff2629c3c9295dd64625 Mon Sep 17 00:00:00 2001 From: kzawora Date: Sat, 1 Oct 2022 00:01:14 +0200 Subject: [PATCH 1/6] Add option to transfer seeds and fertilizers into Junimo huts --- Automate/Framework/AutomationFactory.cs | 4 ++- ...ericModConfigMenuIntegrationForAutomate.cs | 12 +++++++++ .../Machines/Buildings/JunimoHutMachine.cs | 25 +++++++++++++++++-- .../Models/ModCompatibilityConfig.cs | 6 +++++ Automate/i18n/de.json | 4 +++ Automate/i18n/default.json | 4 +++ Automate/i18n/es.json | 4 +++ Automate/i18n/hu.json | 4 +++ Automate/i18n/it.json | 4 +++ Automate/i18n/ko.json | 4 +++ Automate/i18n/pt.json | 4 +++ Automate/i18n/ru.json | 4 +++ Automate/i18n/tr.json | 4 +++ Automate/i18n/uk.json | 4 +++ Automate/i18n/zh.json | 4 +++ 15 files changed, 88 insertions(+), 3 deletions(-) diff --git a/Automate/Framework/AutomationFactory.cs b/Automate/Framework/AutomationFactory.cs index 5371f2f51..6936a38f1 100644 --- a/Automate/Framework/AutomationFactory.cs +++ b/Automate/Framework/AutomationFactory.cs @@ -257,7 +257,9 @@ public AutomationFactory(Func config, IMonitor monitor, IReflectionHe { var config = this.Config(); bool betterJunimosCompat = config.ModCompatibility.BetterJunimos && this.IsBetterJunimosLoaded; - return new JunimoHutMachine(hut, location, ignoreSeedOutput: betterJunimosCompat, ignoreFertilizerOutput: betterJunimosCompat, pullGemstonesFromJunimoHuts: config.PullGemstonesFromJunimoHuts); + bool allowSeedInput = betterJunimosCompat && config.ModCompatibility.BetterJunimosTransferSeedsToJunimoHuts; + bool allowFertilizerInput = betterJunimosCompat && config.ModCompatibility.BetterJunimosTransferSeedsToJunimoHuts; + return new JunimoHutMachine(hut, location, allowSeedInput: allowSeedInput, allowFertilizerInput: allowFertilizerInput, ignoreSeedOutput: betterJunimosCompat, ignoreFertilizerOutput: betterJunimosCompat, pullGemstonesFromJunimoHuts: config.PullGemstonesFromJunimoHuts); } case Mill mill: diff --git a/Automate/Framework/GenericModConfigMenuIntegrationForAutomate.cs b/Automate/Framework/GenericModConfigMenuIntegrationForAutomate.cs index bbfd477af..69c1887fc 100644 --- a/Automate/Framework/GenericModConfigMenuIntegrationForAutomate.cs +++ b/Automate/Framework/GenericModConfigMenuIntegrationForAutomate.cs @@ -87,6 +87,18 @@ public void Register() get: config => config.ModCompatibility.BetterJunimos, set: (config, value) => config.ModCompatibility.BetterJunimos = value ) + .AddCheckbox( + name: I18n.Config_BetterJunimosTransferSeedsToJunimoHuts_Name, + tooltip: I18n.Config_BetterJunimosTransferSeedsToJunimoHuts_Desc, + get: config => config.ModCompatibility.BetterJunimosTransferSeedsToJunimoHuts, + set: (config, value) => config.ModCompatibility.BetterJunimosTransferSeedsToJunimoHuts = value + ) + .AddCheckbox( + name: I18n.Config_BetterJunimosTransferFertilizersToJunimoHuts_Name, + tooltip: I18n.Config_BetterJunimosTransferFertilizersToJunimoHuts_Desc, + get: config => config.ModCompatibility.BetterJunimosTransferFertilizersToJunimoHuts, + set: (config, value) => config.ModCompatibility.BetterJunimosTransferFertilizersToJunimoHuts = value + ) .AddCheckbox( name: I18n.Config_WarnForMissingBridgeMod_Name, tooltip: I18n.Config_WarnForMissingBridgeMod_Desc, diff --git a/Automate/Framework/Machines/Buildings/JunimoHutMachine.cs b/Automate/Framework/Machines/Buildings/JunimoHutMachine.cs index 592783045..abf6dd74a 100644 --- a/Automate/Framework/Machines/Buildings/JunimoHutMachine.cs +++ b/Automate/Framework/Machines/Buildings/JunimoHutMachine.cs @@ -1,6 +1,7 @@ using System.Linq; using StardewValley; using StardewValley.Buildings; +using StardewValley.Locations; using StardewValley.Objects; using SObject = StardewValley.Object; @@ -12,6 +13,12 @@ internal class JunimoHutMachine : BaseMachineForBuilding /********* ** Fields *********/ + /// Whether seeds should be treated as Junimo hut inputs. + private readonly bool AllowSeedInput; + + /// Whether fertilizer should be treated as Junimo hut inputs. + private readonly bool AllowFertilizerInput; + /// Whether seeds should be ignored when selecting output. private readonly bool IgnoreSeedOutput; @@ -31,12 +38,16 @@ internal class JunimoHutMachine : BaseMachineForBuilding /// Construct an instance. /// The underlying Junimo hut. /// The location which contains the machine. + /// Whether seeds are allowed as an input. + /// Whether fertilizers are allowed as an input. /// Whether seeds should be ignored when selecting output. /// Whether fertilizer should be ignored when selecting output. /// Whether to pull gemstones out of Junimo huts. - public JunimoHutMachine(JunimoHut hut, GameLocation location, bool ignoreSeedOutput, bool ignoreFertilizerOutput, bool pullGemstonesFromJunimoHuts) + public JunimoHutMachine(JunimoHut hut, GameLocation location, bool allowSeedInput, bool allowFertilizerInput, bool ignoreSeedOutput, bool ignoreFertilizerOutput, bool pullGemstonesFromJunimoHuts) : base(hut, location, BaseMachine.GetTileAreaFor(hut)) { + this.AllowSeedInput = allowSeedInput; + this.AllowFertilizerInput = allowFertilizerInput; this.IgnoreSeedOutput = ignoreSeedOutput; this.IgnoreFertilizerOutput = ignoreFertilizerOutput; this.PullGemstonesFromJunimoHuts = pullGemstonesFromJunimoHuts; @@ -47,6 +58,8 @@ public override MachineState GetState() { if (this.Machine.isUnderConstruction()) return MachineState.Disabled; + if (this.AllowSeedInput || this.AllowFertilizerInput) + return MachineState.Empty; return this.GetNextOutput() != null ? MachineState.Done @@ -64,7 +77,15 @@ public override MachineState GetState() /// Returns whether the machine started processing an item. public override bool SetInput(IStorage input) { - return false; // no input + // get next item + ITrackedStack? tracker = input.GetItems().FirstOrDefault(p => p.Sample is SObject obj && ((this.AllowSeedInput && (obj.Category == SObject.SeedsCategory)) || (this.AllowFertilizerInput && (obj.Category == SObject.fertilizerCategory)))); + if (tracker == null) + return false; + + // place item in output chest + SObject item = (SObject)tracker.Take(1)!; + this.Output.addItem(item); + return true; } diff --git a/Automate/Framework/Models/ModCompatibilityConfig.cs b/Automate/Framework/Models/ModCompatibilityConfig.cs index 5509fadba..7038eafed 100644 --- a/Automate/Framework/Models/ModCompatibilityConfig.cs +++ b/Automate/Framework/Models/ModCompatibilityConfig.cs @@ -9,6 +9,12 @@ internal class ModCompatibilityConfig /// Whether to enable compatibility with Better Junimos. If it's installed, Junimo huts won't output fertilizer or seeds. public bool BetterJunimos { get; set; } = true; + /// Whether to transfer seeds into Junimo huts. If true, Junimo huts will accept seeds from connected chests. Does nothing without Better Junimos mod. + public bool BetterJunimosTransferSeedsToJunimoHuts { get; set; } = false; + + /// Whether to transfer fertilizers into Junimo huts. If true, Junimo huts will accept seeds from connected chests. Does nothing without Better Junimos mod. + public bool BetterJunimosTransferFertilizersToJunimoHuts { get; set; } = false; + /// Whether to log a warning if the player installs a custom-machine mod that requires a separate compatibility patch which isn't installed. public bool WarnForMissingBridgeMod { get; set; } = true; } diff --git a/Automate/i18n/de.json b/Automate/i18n/de.json index 6f4f2f8e6..3c19e338a 100644 --- a/Automate/i18n/de.json +++ b/Automate/i18n/de.json @@ -17,6 +17,10 @@ "config.title.mod-compatibility": "Mod-Kompatibilität", "config.better-junimos.name": "Better Junimos", "config.better-junimos.desc": "Kompatibilität mit 'Better Junimos' aktivieren. Wenn installiert, geben Junimo-Hütten weder Dünger noch Saatgut aus.", + "config.better-junimos-transfer-seeds-to-junimo-huts.name": "Better Junimos: Transfer seeds", // TODO + "config.better-junimos-transfer-seeds-to-junimo-huts.desc": "If set, Junimo huts will accept seeds from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO + "config.better-junimos-transfer-fertilizers-to-junimo-huts.name": "Better Junimos: Transfer fertilizers", // TODO + "config.better-junimos-transfer-fertilizers-to-junimo-huts.desc": "If set, Junimo huts will accept fertilizers from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO "config.warn-for-missing-bridge-mod.name": "Warnung für fehlende Brücken-Mod", "config.warn-for-missing-bridge-mod.desc": "Ob eine Warnung beim Start protokolliert werden soll, wenn eine Custom Machine-Mod installiert ist, die einen separaten, nicht installierten Kompatibilitäts-Patch erfordert.", diff --git a/Automate/i18n/default.json b/Automate/i18n/default.json index fc2afd491..33be2ed02 100644 --- a/Automate/i18n/default.json +++ b/Automate/i18n/default.json @@ -17,6 +17,10 @@ "config.title.mod-compatibility": "Mod compatibility", "config.better-junimos.name": "Better Junimos", "config.better-junimos.desc": "Enable compatibility with Better Junimos. If it's installed, Junimo huts won't output fertilizer or seeds.", + "config.better-junimos-transfer-seeds-to-junimo-huts.name": "Better Junimos: Transfer seeds", + "config.better-junimos-transfer-seeds-to-junimo-huts.desc": "If set, Junimo huts will accept seeds from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", + "config.better-junimos-transfer-fertilizers-to-junimo-huts.name": "Better Junimos: Transfer fertilizers", + "config.better-junimos-transfer-fertilizers-to-junimo-huts.desc": "If set, Junimo huts will accept fertilizers from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", "config.warn-for-missing-bridge-mod.name": "Warn for missing bridge mod", "config.warn-for-missing-bridge-mod.desc": "Whether to log a warning on startup if you installed a custom-machine mod that requires a separate compatibility patch which isn't installed.", diff --git a/Automate/i18n/es.json b/Automate/i18n/es.json index 617288ad4..16228c6d5 100644 --- a/Automate/i18n/es.json +++ b/Automate/i18n/es.json @@ -17,6 +17,10 @@ "config.title.mod-compatibility": "Compatibilidad con los mods", "config.better-junimos.name": "Better Junimos", "config.better-junimos.desc": "Habilitar compatibilidad con Better Junimos. Si se instala, las cabañas de Junimo no producirán abono ni semillas.", + "config.better-junimos-transfer-seeds-to-junimo-huts.name": "Better Junimos: Transfer seeds", // TODO + "config.better-junimos-transfer-seeds-to-junimo-huts.desc": "If set, Junimo huts will accept seeds from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO + "config.better-junimos-transfer-fertilizers-to-junimo-huts.name": "Better Junimos: Transfer fertilizers", // TODO + "config.better-junimos-transfer-fertilizers-to-junimo-huts.desc": "If set, Junimo huts will accept fertilizers from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO "config.warn-for-missing-bridge-mod.name": "Warn for missing bridge mod", "config.warn-for-missing-bridge-mod.desc": "Si se registra una advertencia al inicio si se ha instalado un mod de máquina personalizada que requiere un parche de compatibilidad separado que no está instalado.", diff --git a/Automate/i18n/hu.json b/Automate/i18n/hu.json index a8fddc72b..fe1a3ef22 100644 --- a/Automate/i18n/hu.json +++ b/Automate/i18n/hu.json @@ -17,6 +17,10 @@ "config.title.mod-compatibility": "Mod kompatibilitás", "config.better-junimos.name": "Jobb Junimok", "config.better-junimos.desc": "Better Junimos mod kompatibilitás engedélyezése. Ha telepítve van, a Junimo kunyhók nem fognak kiadni műtrágyát és vetőmagvat.", + "config.better-junimos-transfer-seeds-to-junimo-huts.name": "Better Junimos: Transfer seeds", // TODO + "config.better-junimos-transfer-seeds-to-junimo-huts.desc": "If set, Junimo huts will accept seeds from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO + "config.better-junimos-transfer-fertilizers-to-junimo-huts.name": "Better Junimos: Transfer fertilizers", // TODO + "config.better-junimos-transfer-fertilizers-to-junimo-huts.desc": "If set, Junimo huts will accept fertilizers from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO "config.warn-for-missing-bridge-mod.name": "Figyelmeztetés hiányzó mod miatt", "config.warn-for-missing-bridge-mod.desc": "Naplózzon-e figyelmeztetést indításkor, ha olyan egyedi gép modot telepítesz, melyhez külön kompatibilitási javítás szükséges, ami nincs telepítve.", diff --git a/Automate/i18n/it.json b/Automate/i18n/it.json index 6daba56e4..3d81f6417 100644 --- a/Automate/i18n/it.json +++ b/Automate/i18n/it.json @@ -17,6 +17,10 @@ "config.title.mod-compatibility": "Compatibilità con le mod", "config.better-junimos.name": "Better Junimos", "config.better-junimos.desc": "Abilita la compatibilità con Better Junimos. Se è installato, le capanne Junimo non produrranno fertilizzanti o semi.", + "config.better-junimos-transfer-seeds-to-junimo-huts.name": "Better Junimos: Transfer seeds", // TODO + "config.better-junimos-transfer-seeds-to-junimo-huts.desc": "If set, Junimo huts will accept seeds from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO + "config.better-junimos-transfer-fertilizers-to-junimo-huts.name": "Better Junimos: Transfer fertilizers", // TODO + "config.better-junimos-transfer-fertilizers-to-junimo-huts.desc": "If set, Junimo huts will accept fertilizers from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO "config.warn-for-missing-bridge-mod.name": "Avvertimento per la mancanza di mod.", "config.warn-for-missing-bridge-mod.desc": "Scegli se registrare un avviso all'avvio se si è installata una macchina personalizzata che richiede una patch di compatibilità separata che non è installata.", diff --git a/Automate/i18n/ko.json b/Automate/i18n/ko.json index 47eef6f03..87bc92bce 100644 --- a/Automate/i18n/ko.json +++ b/Automate/i18n/ko.json @@ -17,6 +17,10 @@ "config.title.mod-compatibility": "모드 호환성", "config.better-junimos.name": "Better Junimos(더 나은 주니모)", "config.better-junimos.desc": "Better Junimos 모드와의 호환성을 사용하도록 설정합니다.\n설치된 경우 주니모 오두막은 비료나 씨앗을 생산하지 않습니다.", + "config.better-junimos-transfer-seeds-to-junimo-huts.name": "Better Junimos: Transfer seeds", // TODO + "config.better-junimos-transfer-seeds-to-junimo-huts.desc": "If set, Junimo huts will accept seeds from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO + "config.better-junimos-transfer-fertilizers-to-junimo-huts.name": "Better Junimos: Transfer fertilizers", // TODO + "config.better-junimos-transfer-fertilizers-to-junimo-huts.desc": "If set, Junimo huts will accept fertilizers from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO "config.warn-for-missing-bridge-mod.name": "연결 모드 누락 경고", "config.warn-for-missing-bridge-mod.desc": "설치되지 않은 별도의 호환성 패치가 필요한 사용자 지정 모드를 설치한 경우 시작 시 경고를 기록할지 여부.", diff --git a/Automate/i18n/pt.json b/Automate/i18n/pt.json index 04a7ea39e..0fd2b0cbb 100644 --- a/Automate/i18n/pt.json +++ b/Automate/i18n/pt.json @@ -17,6 +17,10 @@ "config.title.mod-compatibility": "Compatibilidade de Mod", "config.better-junimos.name": "Better Junimos", "config.better-junimos.desc": "Ativa a compatibilidade com Better Junimos. Se estiver instalado, cabanas junimo não retirarão fertilizantes ou sementes.", + "config.better-junimos-transfer-seeds-to-junimo-huts.name": "Better Junimos: Transfer seeds", // TODO + "config.better-junimos-transfer-seeds-to-junimo-huts.desc": "If set, Junimo huts will accept seeds from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO + "config.better-junimos-transfer-fertilizers-to-junimo-huts.name": "Better Junimos: Transfer fertilizers", // TODO + "config.better-junimos-transfer-fertilizers-to-junimo-huts.desc": "If set, Junimo huts will accept fertilizers from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO "config.warn-for-missing-bridge-mod.name": "Aviso para falta de mod de ponte", "config.warn-for-missing-bridge-mod.desc": "Se deve ou não informar ao início caso você tenha instalado um mod de máquina customizada que requer um pacote de estabilidade que não está instalado.", diff --git a/Automate/i18n/ru.json b/Automate/i18n/ru.json index 2d0935603..3773e152f 100644 --- a/Automate/i18n/ru.json +++ b/Automate/i18n/ru.json @@ -17,6 +17,10 @@ "config.title.mod-compatibility": "Совместимость с модами", "config.better-junimos.name": "Better Junimos", "config.better-junimos.desc": "Включите совместимость с Better Junimos. Если он включен, Джунимо не будут удобрять почву или сеять семена.", + "config.better-junimos-transfer-seeds-to-junimo-huts.name": "Better Junimos: Transfer seeds", // TODO + "config.better-junimos-transfer-seeds-to-junimo-huts.desc": "If set, Junimo huts will accept seeds from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO + "config.better-junimos-transfer-fertilizers-to-junimo-huts.name": "Better Junimos: Transfer fertilizers", // TODO + "config.better-junimos-transfer-fertilizers-to-junimo-huts.desc": "If set, Junimo huts will accept fertilizers from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO "config.warn-for-missing-bridge-mod.name": "Предупреждение об отсутствии bridge mod", "config.warn-for-missing-bridge-mod.desc": "Регистрация предупреждение во время запуска, если вы установили custom-machine мод, который требует отдельного патча, если он не установлен.", diff --git a/Automate/i18n/tr.json b/Automate/i18n/tr.json index 278a1f0d1..f9c59a334 100644 --- a/Automate/i18n/tr.json +++ b/Automate/i18n/tr.json @@ -17,6 +17,10 @@ "config.title.mod-compatibility": "Mod uyumluluğu", "config.better-junimos.name": "Daha iyi Junimolar", "config.better-junimos.desc": "Daha iyi Junimolar ile uyumluluğu etkinleştirir. Kuruluysa, Junimo kulübeleri gübre veya tohum vermez.", + "config.better-junimos-transfer-seeds-to-junimo-huts.name": "Better Junimos: Transfer seeds", // TODO + "config.better-junimos-transfer-seeds-to-junimo-huts.desc": "If set, Junimo huts will accept seeds from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO + "config.better-junimos-transfer-fertilizers-to-junimo-huts.name": "Better Junimos: Transfer fertilizers", // TODO + "config.better-junimos-transfer-fertilizers-to-junimo-huts.desc": "If set, Junimo huts will accept fertilizers from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO "config.warn-for-missing-bridge-mod.name": "Eksik köprü modu için uyar", "config.warn-for-missing-bridge-mod.desc": "Yüklenmemiş ayrı bir uyumluluk düzeltme eki gerektiren bir özel makine modu yüklediyseniz, başlangıçta bir uyarının günlüğe kaydedilip kaydedilmeyeceği.", diff --git a/Automate/i18n/uk.json b/Automate/i18n/uk.json index adcab70f7..56bf788f7 100644 --- a/Automate/i18n/uk.json +++ b/Automate/i18n/uk.json @@ -17,6 +17,10 @@ "config.title.mod-compatibility": "Сумісність модів", "config.better-junimos.name": "Better Junimos", "config.better-junimos.desc": "Увімкнення сумісністі з Better Junimos. Якщо увімкнено, то будиночки Джунімо не видаватимуть добрива чи насіння.", + "config.better-junimos-transfer-seeds-to-junimo-huts.name": "Better Junimos: Transfer seeds", // TODO + "config.better-junimos-transfer-seeds-to-junimo-huts.desc": "If set, Junimo huts will accept seeds from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO + "config.better-junimos-transfer-fertilizers-to-junimo-huts.name": "Better Junimos: Transfer fertilizers", // TODO + "config.better-junimos-transfer-fertilizers-to-junimo-huts.desc": "If set, Junimo huts will accept fertilizers from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO "config.warn-for-missing-bridge-mod.name": "Попередженння про відсутність моду Bridge Mod", "config.warn-for-missing-bridge-mod.desc": "Реєстрування попередження під час запуску, якщо ви встановили спеціальний мод, котрий вимагає окремого моду, який не встановлено.", diff --git a/Automate/i18n/zh.json b/Automate/i18n/zh.json index 006e470d3..0d2a69b51 100644 --- a/Automate/i18n/zh.json +++ b/Automate/i18n/zh.json @@ -17,6 +17,10 @@ "config.title.mod-compatibility": "模组兼容性", "config.better-junimos.name": "Better Junimos(更好的祝尼魔)", "config.better-junimos.desc": "启用与 Better Junimos 的兼容性。 如果安装该模组,祝尼魔小屋不会输出肥料或种子", + "config.better-junimos-transfer-seeds-to-junimo-huts.name": "Better Junimos: Transfer seeds", // TODO + "config.better-junimos-transfer-seeds-to-junimo-huts.desc": "If set, Junimo huts will accept seeds from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO + "config.better-junimos-transfer-fertilizers-to-junimo-huts.name": "Better Junimos: Transfer fertilizers", // TODO + "config.better-junimos-transfer-fertilizers-to-junimo-huts.desc": "If set, Junimo huts will accept fertilizers from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO "config.warn-for-missing-bridge-mod.name": "缺少连接模块警告", "config.warn-for-missing-bridge-mod.desc": "如果你安装了自定义机器模组但未安装其所需要另外安装的兼容性补丁,是否在启动时记录警告", From 3d133ec3ba8a06fe9c744cef9a56144bac3b1587 Mon Sep 17 00:00:00 2001 From: kzawora Date: Sat, 1 Oct 2022 00:13:56 +0200 Subject: [PATCH 2/6] Update description --- Automate/Framework/Models/ModCompatibilityConfig.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Automate/Framework/Models/ModCompatibilityConfig.cs b/Automate/Framework/Models/ModCompatibilityConfig.cs index 7038eafed..e51794c6a 100644 --- a/Automate/Framework/Models/ModCompatibilityConfig.cs +++ b/Automate/Framework/Models/ModCompatibilityConfig.cs @@ -9,10 +9,10 @@ internal class ModCompatibilityConfig /// Whether to enable compatibility with Better Junimos. If it's installed, Junimo huts won't output fertilizer or seeds. public bool BetterJunimos { get; set; } = true; - /// Whether to transfer seeds into Junimo huts. If true, Junimo huts will accept seeds from connected chests. Does nothing without Better Junimos mod. + /// Whether to transfer seeds into Junimo huts. If true, Junimo huts will accept seeds from connected chests. Does nothing without Better Junimos mod compatibility. public bool BetterJunimosTransferSeedsToJunimoHuts { get; set; } = false; - /// Whether to transfer fertilizers into Junimo huts. If true, Junimo huts will accept seeds from connected chests. Does nothing without Better Junimos mod. + /// Whether to transfer fertilizers into Junimo huts. If true, Junimo huts will accept fertilizers from connected chests. Does nothing without Better Junimos mod compatibility. public bool BetterJunimosTransferFertilizersToJunimoHuts { get; set; } = false; /// Whether to log a warning if the player installs a custom-machine mod that requires a separate compatibility patch which isn't installed. From f151913f703b777a347657980c51996f429cdf3b Mon Sep 17 00:00:00 2001 From: kzawora Date: Sat, 1 Oct 2022 00:18:20 +0200 Subject: [PATCH 3/6] Avoid creating null tracker when seed/fertilizer inputs are enabled --- .../Machines/Buildings/JunimoHutMachine.cs | 3 + .../PublishProfiles/FolderProfile.pubxml | 13 + Backup/Pathoschild.Stardew.sln | 162 ++++++++++ Pathoschild.Stardew.sln | 42 +-- UpgradeLog.htm | 296 ++++++++++++++++++ 5 files changed, 495 insertions(+), 21 deletions(-) create mode 100644 Automate/Properties/PublishProfiles/FolderProfile.pubxml create mode 100644 Backup/Pathoschild.Stardew.sln create mode 100644 UpgradeLog.htm diff --git a/Automate/Framework/Machines/Buildings/JunimoHutMachine.cs b/Automate/Framework/Machines/Buildings/JunimoHutMachine.cs index abf6dd74a..69f29c3a7 100644 --- a/Automate/Framework/Machines/Buildings/JunimoHutMachine.cs +++ b/Automate/Framework/Machines/Buildings/JunimoHutMachine.cs @@ -77,6 +77,9 @@ public override MachineState GetState() /// Returns whether the machine started processing an item. public override bool SetInput(IStorage input) { + if (!this.AllowFertilizerInput && !this.AllowSeedInput) + return false; + // get next item ITrackedStack? tracker = input.GetItems().FirstOrDefault(p => p.Sample is SObject obj && ((this.AllowSeedInput && (obj.Category == SObject.SeedsCategory)) || (this.AllowFertilizerInput && (obj.Category == SObject.fertilizerCategory)))); if (tracker == null) diff --git a/Automate/Properties/PublishProfiles/FolderProfile.pubxml b/Automate/Properties/PublishProfiles/FolderProfile.pubxml new file mode 100644 index 000000000..872a53e04 --- /dev/null +++ b/Automate/Properties/PublishProfiles/FolderProfile.pubxml @@ -0,0 +1,13 @@ + + + + + Release + Any CPU + bin\Release\publish\ + FileSystem + <_TargetId>Folder + + \ No newline at end of file diff --git a/Backup/Pathoschild.Stardew.sln b/Backup/Pathoschild.Stardew.sln new file mode 100644 index 000000000..08e4c9a6c --- /dev/null +++ b/Backup/Pathoschild.Stardew.sln @@ -0,0 +1,162 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.32014.148 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "root", "root", "{775A00CB-71CD-49BF-BB1B-B09951ABD325}" + ProjectSection(SolutionItems) = preProject + .editorconfig = .editorconfig + .gitattributes = .gitattributes + .gitignore = .gitignore + LICENSE = LICENSE + README.md = README.md + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{5950ED4C-2284-4253-9583-BB7811FAF5EE}" +EndProject +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = ".Common", "Common\.Common.shproj", "{B9E9EDFC-E98A-4370-994F-40A9F39A0284}" +EndProject +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = ".Common.Patching", "Common.Patching\.Common.Patching.shproj", "{49C40E04-5A9F-47DA-8906-FA717816E772}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Automate", "Automate\Automate.csproj", "{4456349C-749D-430B-8295-D70D2B2D3649}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ChestsAnywhere", "ChestsAnywhere\ChestsAnywhere.csproj", "{FCA458CF-D872-47B7-9048-403C56A20905}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ContentPatcher", "ContentPatcher\ContentPatcher.csproj", "{7C05FF17-E7AA-485A-A0E9-BAB0248CF653}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CropsAnytimeAnywhere", "CropsAnytimeAnywhere\CropsAnytimeAnywhere.csproj", "{7CD586E4-E766-494A-A06F-ABAC3E0E6C90}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DataLayers", "DataLayers\DataLayers.csproj", "{9EECB232-2178-4101-9397-CFB885BC25F2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DebugMode", "DebugMode\DebugMode.csproj", "{5EE9FEB7-E8B4-4CBB-878B-B794810DD94B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FastAnimations", "FastAnimations\FastAnimations.csproj", "{6A78A4D9-BCE8-43A4-8938-AEDBA5BE98C0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HorseFluteAnywhere", "HorseFluteAnywhere\HorseFluteAnywhere.csproj", "{5588CE27-A617-4C20-BC14-6FFB9A6313DD}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LookupAnything", "LookupAnything\LookupAnything.csproj", "{44366A09-9A49-49B5-9D5F-51DC3F751FCB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NoclipMode", "NoclipMode\NoclipMode.csproj", "{81B42938-5567-469B-8B92-56E006DF588D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkipIntro", "SkipIntro\SkipIntro.csproj", "{F2C606B1-51D2-48F3-9CF7-2F8CD46DAFF9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SmallBeachFarm", "SmallBeachFarm\SmallBeachFarm.csproj", "{495AA31A-ABFD-402D-A091-620CDB4BC7E1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestMod", "TestMod\TestMod.csproj", "{EC5F07FF-A84F-4088-9FA2-DAE66046A093}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tests.Common", "Tests.Common\Tests.Common.csproj", "{EF4F1A38-6601-4441-B7B1-E9C26B312192}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tests.Mods", "Tests.Mods\Tests.Mods.csproj", "{729DB4C6-AD85-4BAF-B54A-DF6D534E50FF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TractorMod", "TractorMod\TractorMod.csproj", "{DDF905ED-320B-48AF-91A5-2A5563F256FA}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{183A028A-D606-4BA6-A211-51C966B98613}" + ProjectSection(SolutionItems) = preProject + _build\common.targets = _build\common.targets + EndProjectSection +EndProject +Global + GlobalSection(SharedMSBuildProjectFiles) = preSolution + Common\Common.projitems*{44366a09-9a49-49b5-9d5f-51dc3f751fcb}*SharedItemsImports = 5 + Common\Common.projitems*{4456349c-749d-430b-8295-d70d2b2d3649}*SharedItemsImports = 5 + Common.Patching\Common.Patching.projitems*{495aa31a-abfd-402d-a091-620cdb4bc7e1}*SharedItemsImports = 5 + Common\Common.projitems*{495aa31a-abfd-402d-a091-620cdb4bc7e1}*SharedItemsImports = 5 + Common.Patching\Common.Patching.projitems*{49c40e04-5a9f-47da-8906-fa717816e772}*SharedItemsImports = 13 + Common.Patching\Common.Patching.projitems*{5588ce27-a617-4c20-bc14-6ffb9a6313dd}*SharedItemsImports = 5 + Common\Common.projitems*{5588ce27-a617-4c20-bc14-6ffb9a6313dd}*SharedItemsImports = 5 + Common\Common.projitems*{5ee9feb7-e8b4-4cbb-878b-b794810dd94b}*SharedItemsImports = 5 + Common\Common.projitems*{6a78a4d9-bce8-43a4-8938-aedba5be98c0}*SharedItemsImports = 5 + Common\Common.projitems*{7c05ff17-e7aa-485a-a0e9-bab0248cf653}*SharedItemsImports = 5 + Common.Patching\Common.Patching.projitems*{7cd586e4-e766-494a-a06f-abac3e0e6c90}*SharedItemsImports = 5 + Common\Common.projitems*{7cd586e4-e766-494a-a06f-abac3e0e6c90}*SharedItemsImports = 5 + Common\Common.projitems*{81b42938-5567-469b-8b92-56e006df588d}*SharedItemsImports = 5 + Common\Common.projitems*{9eecb232-2178-4101-9397-cfb885bc25f2}*SharedItemsImports = 5 + Common\Common.projitems*{b9e9edfc-e98a-4370-994f-40a9f39a0284}*SharedItemsImports = 13 + Common\Common.projitems*{ddf905ed-320b-48af-91a5-2a5563f256fa}*SharedItemsImports = 5 + Common\Common.projitems*{ef4f1a38-6601-4441-b7b1-e9c26b312192}*SharedItemsImports = 5 + Common\Common.projitems*{f2c606b1-51d2-48f3-9cf7-2f8cd46daff9}*SharedItemsImports = 5 + Common\Common.projitems*{fca458cf-d872-47b7-9048-403c56a20905}*SharedItemsImports = 5 + EndGlobalSection + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {4456349C-749D-430B-8295-D70D2B2D3649}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4456349C-749D-430B-8295-D70D2B2D3649}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4456349C-749D-430B-8295-D70D2B2D3649}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4456349C-749D-430B-8295-D70D2B2D3649}.Release|Any CPU.Build.0 = Release|Any CPU + {FCA458CF-D872-47B7-9048-403C56A20905}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FCA458CF-D872-47B7-9048-403C56A20905}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FCA458CF-D872-47B7-9048-403C56A20905}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FCA458CF-D872-47B7-9048-403C56A20905}.Release|Any CPU.Build.0 = Release|Any CPU + {7C05FF17-E7AA-485A-A0E9-BAB0248CF653}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7C05FF17-E7AA-485A-A0E9-BAB0248CF653}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7C05FF17-E7AA-485A-A0E9-BAB0248CF653}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7C05FF17-E7AA-485A-A0E9-BAB0248CF653}.Release|Any CPU.Build.0 = Release|Any CPU + {7CD586E4-E766-494A-A06F-ABAC3E0E6C90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7CD586E4-E766-494A-A06F-ABAC3E0E6C90}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7CD586E4-E766-494A-A06F-ABAC3E0E6C90}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7CD586E4-E766-494A-A06F-ABAC3E0E6C90}.Release|Any CPU.Build.0 = Release|Any CPU + {9EECB232-2178-4101-9397-CFB885BC25F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9EECB232-2178-4101-9397-CFB885BC25F2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9EECB232-2178-4101-9397-CFB885BC25F2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9EECB232-2178-4101-9397-CFB885BC25F2}.Release|Any CPU.Build.0 = Release|Any CPU + {5EE9FEB7-E8B4-4CBB-878B-B794810DD94B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5EE9FEB7-E8B4-4CBB-878B-B794810DD94B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5EE9FEB7-E8B4-4CBB-878B-B794810DD94B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5EE9FEB7-E8B4-4CBB-878B-B794810DD94B}.Release|Any CPU.Build.0 = Release|Any CPU + {6A78A4D9-BCE8-43A4-8938-AEDBA5BE98C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6A78A4D9-BCE8-43A4-8938-AEDBA5BE98C0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6A78A4D9-BCE8-43A4-8938-AEDBA5BE98C0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6A78A4D9-BCE8-43A4-8938-AEDBA5BE98C0}.Release|Any CPU.Build.0 = Release|Any CPU + {5588CE27-A617-4C20-BC14-6FFB9A6313DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5588CE27-A617-4C20-BC14-6FFB9A6313DD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5588CE27-A617-4C20-BC14-6FFB9A6313DD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5588CE27-A617-4C20-BC14-6FFB9A6313DD}.Release|Any CPU.Build.0 = Release|Any CPU + {44366A09-9A49-49B5-9D5F-51DC3F751FCB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {44366A09-9A49-49B5-9D5F-51DC3F751FCB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {44366A09-9A49-49B5-9D5F-51DC3F751FCB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {44366A09-9A49-49B5-9D5F-51DC3F751FCB}.Release|Any CPU.Build.0 = Release|Any CPU + {81B42938-5567-469B-8B92-56E006DF588D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {81B42938-5567-469B-8B92-56E006DF588D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {81B42938-5567-469B-8B92-56E006DF588D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {81B42938-5567-469B-8B92-56E006DF588D}.Release|Any CPU.Build.0 = Release|Any CPU + {F2C606B1-51D2-48F3-9CF7-2F8CD46DAFF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F2C606B1-51D2-48F3-9CF7-2F8CD46DAFF9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F2C606B1-51D2-48F3-9CF7-2F8CD46DAFF9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F2C606B1-51D2-48F3-9CF7-2F8CD46DAFF9}.Release|Any CPU.Build.0 = Release|Any CPU + {495AA31A-ABFD-402D-A091-620CDB4BC7E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {495AA31A-ABFD-402D-A091-620CDB4BC7E1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {495AA31A-ABFD-402D-A091-620CDB4BC7E1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {495AA31A-ABFD-402D-A091-620CDB4BC7E1}.Release|Any CPU.Build.0 = Release|Any CPU + {EC5F07FF-A84F-4088-9FA2-DAE66046A093}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EC5F07FF-A84F-4088-9FA2-DAE66046A093}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EC5F07FF-A84F-4088-9FA2-DAE66046A093}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EC5F07FF-A84F-4088-9FA2-DAE66046A093}.Release|Any CPU.Build.0 = Release|Any CPU + {EF4F1A38-6601-4441-B7B1-E9C26B312192}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EF4F1A38-6601-4441-B7B1-E9C26B312192}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EF4F1A38-6601-4441-B7B1-E9C26B312192}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EF4F1A38-6601-4441-B7B1-E9C26B312192}.Release|Any CPU.Build.0 = Release|Any CPU + {729DB4C6-AD85-4BAF-B54A-DF6D534E50FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {729DB4C6-AD85-4BAF-B54A-DF6D534E50FF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {729DB4C6-AD85-4BAF-B54A-DF6D534E50FF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {729DB4C6-AD85-4BAF-B54A-DF6D534E50FF}.Release|Any CPU.Build.0 = Release|Any CPU + {DDF905ED-320B-48AF-91A5-2A5563F256FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DDF905ED-320B-48AF-91A5-2A5563F256FA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DDF905ED-320B-48AF-91A5-2A5563F256FA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DDF905ED-320B-48AF-91A5-2A5563F256FA}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {EC5F07FF-A84F-4088-9FA2-DAE66046A093} = {5950ED4C-2284-4253-9583-BB7811FAF5EE} + {EF4F1A38-6601-4441-B7B1-E9C26B312192} = {5950ED4C-2284-4253-9583-BB7811FAF5EE} + {729DB4C6-AD85-4BAF-B54A-DF6D534E50FF} = {5950ED4C-2284-4253-9583-BB7811FAF5EE} + {183A028A-D606-4BA6-A211-51C966B98613} = {775A00CB-71CD-49BF-BB1B-B09951ABD325} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {EF4A4878-3839-48F1-B4C1-43D0570BCCB4} + EndGlobalSection +EndGlobal diff --git a/Pathoschild.Stardew.sln b/Pathoschild.Stardew.sln index 08e4c9a6c..396778bca 100644 --- a/Pathoschild.Stardew.sln +++ b/Pathoschild.Stardew.sln @@ -56,27 +56,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{183A028A EndProjectSection EndProject Global - GlobalSection(SharedMSBuildProjectFiles) = preSolution - Common\Common.projitems*{44366a09-9a49-49b5-9d5f-51dc3f751fcb}*SharedItemsImports = 5 - Common\Common.projitems*{4456349c-749d-430b-8295-d70d2b2d3649}*SharedItemsImports = 5 - Common.Patching\Common.Patching.projitems*{495aa31a-abfd-402d-a091-620cdb4bc7e1}*SharedItemsImports = 5 - Common\Common.projitems*{495aa31a-abfd-402d-a091-620cdb4bc7e1}*SharedItemsImports = 5 - Common.Patching\Common.Patching.projitems*{49c40e04-5a9f-47da-8906-fa717816e772}*SharedItemsImports = 13 - Common.Patching\Common.Patching.projitems*{5588ce27-a617-4c20-bc14-6ffb9a6313dd}*SharedItemsImports = 5 - Common\Common.projitems*{5588ce27-a617-4c20-bc14-6ffb9a6313dd}*SharedItemsImports = 5 - Common\Common.projitems*{5ee9feb7-e8b4-4cbb-878b-b794810dd94b}*SharedItemsImports = 5 - Common\Common.projitems*{6a78a4d9-bce8-43a4-8938-aedba5be98c0}*SharedItemsImports = 5 - Common\Common.projitems*{7c05ff17-e7aa-485a-a0e9-bab0248cf653}*SharedItemsImports = 5 - Common.Patching\Common.Patching.projitems*{7cd586e4-e766-494a-a06f-abac3e0e6c90}*SharedItemsImports = 5 - Common\Common.projitems*{7cd586e4-e766-494a-a06f-abac3e0e6c90}*SharedItemsImports = 5 - Common\Common.projitems*{81b42938-5567-469b-8b92-56e006df588d}*SharedItemsImports = 5 - Common\Common.projitems*{9eecb232-2178-4101-9397-cfb885bc25f2}*SharedItemsImports = 5 - Common\Common.projitems*{b9e9edfc-e98a-4370-994f-40a9f39a0284}*SharedItemsImports = 13 - Common\Common.projitems*{ddf905ed-320b-48af-91a5-2a5563f256fa}*SharedItemsImports = 5 - Common\Common.projitems*{ef4f1a38-6601-4441-b7b1-e9c26b312192}*SharedItemsImports = 5 - Common\Common.projitems*{f2c606b1-51d2-48f3-9cf7-2f8cd46daff9}*SharedItemsImports = 5 - Common\Common.projitems*{fca458cf-d872-47b7-9048-403c56a20905}*SharedItemsImports = 5 - EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU @@ -159,4 +138,25 @@ Global GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {EF4A4878-3839-48F1-B4C1-43D0570BCCB4} EndGlobalSection + GlobalSection(SharedMSBuildProjectFiles) = preSolution + Common\Common.projitems*{44366a09-9a49-49b5-9d5f-51dc3f751fcb}*SharedItemsImports = 5 + Common\Common.projitems*{4456349c-749d-430b-8295-d70d2b2d3649}*SharedItemsImports = 5 + Common.Patching\Common.Patching.projitems*{495aa31a-abfd-402d-a091-620cdb4bc7e1}*SharedItemsImports = 5 + Common\Common.projitems*{495aa31a-abfd-402d-a091-620cdb4bc7e1}*SharedItemsImports = 5 + Common.Patching\Common.Patching.projitems*{49c40e04-5a9f-47da-8906-fa717816e772}*SharedItemsImports = 13 + Common.Patching\Common.Patching.projitems*{5588ce27-a617-4c20-bc14-6ffb9a6313dd}*SharedItemsImports = 5 + Common\Common.projitems*{5588ce27-a617-4c20-bc14-6ffb9a6313dd}*SharedItemsImports = 5 + Common\Common.projitems*{5ee9feb7-e8b4-4cbb-878b-b794810dd94b}*SharedItemsImports = 5 + Common\Common.projitems*{6a78a4d9-bce8-43a4-8938-aedba5be98c0}*SharedItemsImports = 5 + Common\Common.projitems*{7c05ff17-e7aa-485a-a0e9-bab0248cf653}*SharedItemsImports = 5 + Common.Patching\Common.Patching.projitems*{7cd586e4-e766-494a-a06f-abac3e0e6c90}*SharedItemsImports = 5 + Common\Common.projitems*{7cd586e4-e766-494a-a06f-abac3e0e6c90}*SharedItemsImports = 5 + Common\Common.projitems*{81b42938-5567-469b-8b92-56e006df588d}*SharedItemsImports = 5 + Common\Common.projitems*{9eecb232-2178-4101-9397-cfb885bc25f2}*SharedItemsImports = 5 + Common\Common.projitems*{b9e9edfc-e98a-4370-994f-40a9f39a0284}*SharedItemsImports = 13 + Common\Common.projitems*{ddf905ed-320b-48af-91a5-2a5563f256fa}*SharedItemsImports = 5 + Common\Common.projitems*{ef4f1a38-6601-4441-b7b1-e9c26b312192}*SharedItemsImports = 5 + Common\Common.projitems*{f2c606b1-51d2-48f3-9cf7-2f8cd46daff9}*SharedItemsImports = 5 + Common\Common.projitems*{fca458cf-d872-47b7-9048-403c56a20905}*SharedItemsImports = 5 + EndGlobalSection EndGlobal diff --git a/UpgradeLog.htm b/UpgradeLog.htm new file mode 100644 index 000000000..e9f3a81ce --- /dev/null +++ b/UpgradeLog.htm @@ -0,0 +1,296 @@ + + + + Migration Report +

+ Migration Report - Pathoschild.Stardew

Overview

ProjectPathErrorsWarningsMessages
SolutionPathoschild.Stardew.sln012
.CommonCommon\.Common.shproj000
.Common.PatchingCommon.Patching\.Common.Patching.shproj000
[Shared MSBuild Project Files][Shared MSBuild Project Files]000
AutomateAutomate\Automate.csproj000
buildbuild000
ChestsAnywhereChestsAnywhere\ChestsAnywhere.csproj000
ContentPatcherContentPatcher\ContentPatcher.csproj000
CropsAnytimeAnywhereCropsAnytimeAnywhere\CropsAnytimeAnywhere.csproj000
DataLayersDataLayers\DataLayers.csproj000
DebugModeDebugMode\DebugMode.csproj000
FastAnimationsFastAnimations\FastAnimations.csproj000
HorseFluteAnywhereHorseFluteAnywhere\HorseFluteAnywhere.csproj000
LookupAnythingLookupAnything\LookupAnything.csproj000
NoclipModeNoclipMode\NoclipMode.csproj000
rootroot000
SkipIntroSkipIntro\SkipIntro.csproj000
SmallBeachFarmSmallBeachFarm\SmallBeachFarm.csproj000
TestModTestMod\TestMod.csproj000
teststests000
Tests.CommonTests.Common\Tests.Common.csproj000
Tests.ModsTests.Mods\Tests.Mods.csproj000
TractorModTractorMod\TractorMod.csproj000

Solution and projects

Solution

Message
Pathoschild.Stardew.sln: + Visual Studio needs to make non-functional changes to this project in order to enable the project to open in released versions of Visual Studio newer than Visual Studio 2010 SP1 without impacting project behavior.
+ Show 2 additional messages +
Pathoschild.Stardew.sln: + File successfully backed up as C:\dev\StardewMods\Backup\Pathoschild.Stardew.sln
Pathoschild.Stardew.sln: + Solution migrated successfully
+ Hide 2 additional messages +

.Common

Message
.Common logged no messages. +

.Common.Patching

Message
.Common.Patching logged no messages. +

[Shared MSBuild Project Files]

Message
[Shared MSBuild Project Files] logged no messages. +

Automate

Message
Automate logged no messages. +

build

Message
build logged no messages. +

ChestsAnywhere

Message
ChestsAnywhere logged no messages. +

ContentPatcher

Message
ContentPatcher logged no messages. +

CropsAnytimeAnywhere

Message
CropsAnytimeAnywhere logged no messages. +

DataLayers

Message
DataLayers logged no messages. +

DebugMode

Message
DebugMode logged no messages. +

FastAnimations

Message
FastAnimations logged no messages. +

HorseFluteAnywhere

Message
HorseFluteAnywhere logged no messages. +

LookupAnything

Message
LookupAnything logged no messages. +

NoclipMode

Message
NoclipMode logged no messages. +

root

Message
root logged no messages. +

SkipIntro

Message
SkipIntro logged no messages. +

SmallBeachFarm

Message
SmallBeachFarm logged no messages. +

TestMod

Message
TestMod logged no messages. +

tests

Message
tests logged no messages. +

Tests.Common

Message
Tests.Common logged no messages. +

Tests.Mods

Message
Tests.Mods logged no messages. +

TractorMod

Message
TractorMod logged no messages. +
\ No newline at end of file From 28ff18ec83700aed8262a3f18be7e7fea7e03fad Mon Sep 17 00:00:00 2001 From: kzawora Date: Sat, 1 Oct 2022 00:47:14 +0200 Subject: [PATCH 4/6] Revert "Avoid creating null tracker when seed/fertilizer inputs are enabled" This reverts commit f151913f703b777a347657980c51996f429cdf3b. --- .../Machines/Buildings/JunimoHutMachine.cs | 3 - .../PublishProfiles/FolderProfile.pubxml | 13 - Backup/Pathoschild.Stardew.sln | 162 ---------- Pathoschild.Stardew.sln | 42 +-- UpgradeLog.htm | 296 ------------------ 5 files changed, 21 insertions(+), 495 deletions(-) delete mode 100644 Automate/Properties/PublishProfiles/FolderProfile.pubxml delete mode 100644 Backup/Pathoschild.Stardew.sln delete mode 100644 UpgradeLog.htm diff --git a/Automate/Framework/Machines/Buildings/JunimoHutMachine.cs b/Automate/Framework/Machines/Buildings/JunimoHutMachine.cs index 69f29c3a7..abf6dd74a 100644 --- a/Automate/Framework/Machines/Buildings/JunimoHutMachine.cs +++ b/Automate/Framework/Machines/Buildings/JunimoHutMachine.cs @@ -77,9 +77,6 @@ public override MachineState GetState() /// Returns whether the machine started processing an item. public override bool SetInput(IStorage input) { - if (!this.AllowFertilizerInput && !this.AllowSeedInput) - return false; - // get next item ITrackedStack? tracker = input.GetItems().FirstOrDefault(p => p.Sample is SObject obj && ((this.AllowSeedInput && (obj.Category == SObject.SeedsCategory)) || (this.AllowFertilizerInput && (obj.Category == SObject.fertilizerCategory)))); if (tracker == null) diff --git a/Automate/Properties/PublishProfiles/FolderProfile.pubxml b/Automate/Properties/PublishProfiles/FolderProfile.pubxml deleted file mode 100644 index 872a53e04..000000000 --- a/Automate/Properties/PublishProfiles/FolderProfile.pubxml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - Release - Any CPU - bin\Release\publish\ - FileSystem - <_TargetId>Folder - - \ No newline at end of file diff --git a/Backup/Pathoschild.Stardew.sln b/Backup/Pathoschild.Stardew.sln deleted file mode 100644 index 08e4c9a6c..000000000 --- a/Backup/Pathoschild.Stardew.sln +++ /dev/null @@ -1,162 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.0.32014.148 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "root", "root", "{775A00CB-71CD-49BF-BB1B-B09951ABD325}" - ProjectSection(SolutionItems) = preProject - .editorconfig = .editorconfig - .gitattributes = .gitattributes - .gitignore = .gitignore - LICENSE = LICENSE - README.md = README.md - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{5950ED4C-2284-4253-9583-BB7811FAF5EE}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = ".Common", "Common\.Common.shproj", "{B9E9EDFC-E98A-4370-994F-40A9F39A0284}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = ".Common.Patching", "Common.Patching\.Common.Patching.shproj", "{49C40E04-5A9F-47DA-8906-FA717816E772}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Automate", "Automate\Automate.csproj", "{4456349C-749D-430B-8295-D70D2B2D3649}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ChestsAnywhere", "ChestsAnywhere\ChestsAnywhere.csproj", "{FCA458CF-D872-47B7-9048-403C56A20905}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ContentPatcher", "ContentPatcher\ContentPatcher.csproj", "{7C05FF17-E7AA-485A-A0E9-BAB0248CF653}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CropsAnytimeAnywhere", "CropsAnytimeAnywhere\CropsAnytimeAnywhere.csproj", "{7CD586E4-E766-494A-A06F-ABAC3E0E6C90}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DataLayers", "DataLayers\DataLayers.csproj", "{9EECB232-2178-4101-9397-CFB885BC25F2}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DebugMode", "DebugMode\DebugMode.csproj", "{5EE9FEB7-E8B4-4CBB-878B-B794810DD94B}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FastAnimations", "FastAnimations\FastAnimations.csproj", "{6A78A4D9-BCE8-43A4-8938-AEDBA5BE98C0}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HorseFluteAnywhere", "HorseFluteAnywhere\HorseFluteAnywhere.csproj", "{5588CE27-A617-4C20-BC14-6FFB9A6313DD}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LookupAnything", "LookupAnything\LookupAnything.csproj", "{44366A09-9A49-49B5-9D5F-51DC3F751FCB}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NoclipMode", "NoclipMode\NoclipMode.csproj", "{81B42938-5567-469B-8B92-56E006DF588D}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkipIntro", "SkipIntro\SkipIntro.csproj", "{F2C606B1-51D2-48F3-9CF7-2F8CD46DAFF9}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SmallBeachFarm", "SmallBeachFarm\SmallBeachFarm.csproj", "{495AA31A-ABFD-402D-A091-620CDB4BC7E1}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestMod", "TestMod\TestMod.csproj", "{EC5F07FF-A84F-4088-9FA2-DAE66046A093}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tests.Common", "Tests.Common\Tests.Common.csproj", "{EF4F1A38-6601-4441-B7B1-E9C26B312192}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tests.Mods", "Tests.Mods\Tests.Mods.csproj", "{729DB4C6-AD85-4BAF-B54A-DF6D534E50FF}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TractorMod", "TractorMod\TractorMod.csproj", "{DDF905ED-320B-48AF-91A5-2A5563F256FA}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{183A028A-D606-4BA6-A211-51C966B98613}" - ProjectSection(SolutionItems) = preProject - _build\common.targets = _build\common.targets - EndProjectSection -EndProject -Global - GlobalSection(SharedMSBuildProjectFiles) = preSolution - Common\Common.projitems*{44366a09-9a49-49b5-9d5f-51dc3f751fcb}*SharedItemsImports = 5 - Common\Common.projitems*{4456349c-749d-430b-8295-d70d2b2d3649}*SharedItemsImports = 5 - Common.Patching\Common.Patching.projitems*{495aa31a-abfd-402d-a091-620cdb4bc7e1}*SharedItemsImports = 5 - Common\Common.projitems*{495aa31a-abfd-402d-a091-620cdb4bc7e1}*SharedItemsImports = 5 - Common.Patching\Common.Patching.projitems*{49c40e04-5a9f-47da-8906-fa717816e772}*SharedItemsImports = 13 - Common.Patching\Common.Patching.projitems*{5588ce27-a617-4c20-bc14-6ffb9a6313dd}*SharedItemsImports = 5 - Common\Common.projitems*{5588ce27-a617-4c20-bc14-6ffb9a6313dd}*SharedItemsImports = 5 - Common\Common.projitems*{5ee9feb7-e8b4-4cbb-878b-b794810dd94b}*SharedItemsImports = 5 - Common\Common.projitems*{6a78a4d9-bce8-43a4-8938-aedba5be98c0}*SharedItemsImports = 5 - Common\Common.projitems*{7c05ff17-e7aa-485a-a0e9-bab0248cf653}*SharedItemsImports = 5 - Common.Patching\Common.Patching.projitems*{7cd586e4-e766-494a-a06f-abac3e0e6c90}*SharedItemsImports = 5 - Common\Common.projitems*{7cd586e4-e766-494a-a06f-abac3e0e6c90}*SharedItemsImports = 5 - Common\Common.projitems*{81b42938-5567-469b-8b92-56e006df588d}*SharedItemsImports = 5 - Common\Common.projitems*{9eecb232-2178-4101-9397-cfb885bc25f2}*SharedItemsImports = 5 - Common\Common.projitems*{b9e9edfc-e98a-4370-994f-40a9f39a0284}*SharedItemsImports = 13 - Common\Common.projitems*{ddf905ed-320b-48af-91a5-2a5563f256fa}*SharedItemsImports = 5 - Common\Common.projitems*{ef4f1a38-6601-4441-b7b1-e9c26b312192}*SharedItemsImports = 5 - Common\Common.projitems*{f2c606b1-51d2-48f3-9cf7-2f8cd46daff9}*SharedItemsImports = 5 - Common\Common.projitems*{fca458cf-d872-47b7-9048-403c56a20905}*SharedItemsImports = 5 - EndGlobalSection - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {4456349C-749D-430B-8295-D70D2B2D3649}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4456349C-749D-430B-8295-D70D2B2D3649}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4456349C-749D-430B-8295-D70D2B2D3649}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4456349C-749D-430B-8295-D70D2B2D3649}.Release|Any CPU.Build.0 = Release|Any CPU - {FCA458CF-D872-47B7-9048-403C56A20905}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FCA458CF-D872-47B7-9048-403C56A20905}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FCA458CF-D872-47B7-9048-403C56A20905}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FCA458CF-D872-47B7-9048-403C56A20905}.Release|Any CPU.Build.0 = Release|Any CPU - {7C05FF17-E7AA-485A-A0E9-BAB0248CF653}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7C05FF17-E7AA-485A-A0E9-BAB0248CF653}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7C05FF17-E7AA-485A-A0E9-BAB0248CF653}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7C05FF17-E7AA-485A-A0E9-BAB0248CF653}.Release|Any CPU.Build.0 = Release|Any CPU - {7CD586E4-E766-494A-A06F-ABAC3E0E6C90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7CD586E4-E766-494A-A06F-ABAC3E0E6C90}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7CD586E4-E766-494A-A06F-ABAC3E0E6C90}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7CD586E4-E766-494A-A06F-ABAC3E0E6C90}.Release|Any CPU.Build.0 = Release|Any CPU - {9EECB232-2178-4101-9397-CFB885BC25F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9EECB232-2178-4101-9397-CFB885BC25F2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9EECB232-2178-4101-9397-CFB885BC25F2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9EECB232-2178-4101-9397-CFB885BC25F2}.Release|Any CPU.Build.0 = Release|Any CPU - {5EE9FEB7-E8B4-4CBB-878B-B794810DD94B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5EE9FEB7-E8B4-4CBB-878B-B794810DD94B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5EE9FEB7-E8B4-4CBB-878B-B794810DD94B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5EE9FEB7-E8B4-4CBB-878B-B794810DD94B}.Release|Any CPU.Build.0 = Release|Any CPU - {6A78A4D9-BCE8-43A4-8938-AEDBA5BE98C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6A78A4D9-BCE8-43A4-8938-AEDBA5BE98C0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6A78A4D9-BCE8-43A4-8938-AEDBA5BE98C0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6A78A4D9-BCE8-43A4-8938-AEDBA5BE98C0}.Release|Any CPU.Build.0 = Release|Any CPU - {5588CE27-A617-4C20-BC14-6FFB9A6313DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5588CE27-A617-4C20-BC14-6FFB9A6313DD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5588CE27-A617-4C20-BC14-6FFB9A6313DD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5588CE27-A617-4C20-BC14-6FFB9A6313DD}.Release|Any CPU.Build.0 = Release|Any CPU - {44366A09-9A49-49B5-9D5F-51DC3F751FCB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {44366A09-9A49-49B5-9D5F-51DC3F751FCB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {44366A09-9A49-49B5-9D5F-51DC3F751FCB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {44366A09-9A49-49B5-9D5F-51DC3F751FCB}.Release|Any CPU.Build.0 = Release|Any CPU - {81B42938-5567-469B-8B92-56E006DF588D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {81B42938-5567-469B-8B92-56E006DF588D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {81B42938-5567-469B-8B92-56E006DF588D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {81B42938-5567-469B-8B92-56E006DF588D}.Release|Any CPU.Build.0 = Release|Any CPU - {F2C606B1-51D2-48F3-9CF7-2F8CD46DAFF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F2C606B1-51D2-48F3-9CF7-2F8CD46DAFF9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F2C606B1-51D2-48F3-9CF7-2F8CD46DAFF9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F2C606B1-51D2-48F3-9CF7-2F8CD46DAFF9}.Release|Any CPU.Build.0 = Release|Any CPU - {495AA31A-ABFD-402D-A091-620CDB4BC7E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {495AA31A-ABFD-402D-A091-620CDB4BC7E1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {495AA31A-ABFD-402D-A091-620CDB4BC7E1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {495AA31A-ABFD-402D-A091-620CDB4BC7E1}.Release|Any CPU.Build.0 = Release|Any CPU - {EC5F07FF-A84F-4088-9FA2-DAE66046A093}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EC5F07FF-A84F-4088-9FA2-DAE66046A093}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EC5F07FF-A84F-4088-9FA2-DAE66046A093}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EC5F07FF-A84F-4088-9FA2-DAE66046A093}.Release|Any CPU.Build.0 = Release|Any CPU - {EF4F1A38-6601-4441-B7B1-E9C26B312192}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EF4F1A38-6601-4441-B7B1-E9C26B312192}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EF4F1A38-6601-4441-B7B1-E9C26B312192}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EF4F1A38-6601-4441-B7B1-E9C26B312192}.Release|Any CPU.Build.0 = Release|Any CPU - {729DB4C6-AD85-4BAF-B54A-DF6D534E50FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {729DB4C6-AD85-4BAF-B54A-DF6D534E50FF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {729DB4C6-AD85-4BAF-B54A-DF6D534E50FF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {729DB4C6-AD85-4BAF-B54A-DF6D534E50FF}.Release|Any CPU.Build.0 = Release|Any CPU - {DDF905ED-320B-48AF-91A5-2A5563F256FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DDF905ED-320B-48AF-91A5-2A5563F256FA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DDF905ED-320B-48AF-91A5-2A5563F256FA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DDF905ED-320B-48AF-91A5-2A5563F256FA}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {EC5F07FF-A84F-4088-9FA2-DAE66046A093} = {5950ED4C-2284-4253-9583-BB7811FAF5EE} - {EF4F1A38-6601-4441-B7B1-E9C26B312192} = {5950ED4C-2284-4253-9583-BB7811FAF5EE} - {729DB4C6-AD85-4BAF-B54A-DF6D534E50FF} = {5950ED4C-2284-4253-9583-BB7811FAF5EE} - {183A028A-D606-4BA6-A211-51C966B98613} = {775A00CB-71CD-49BF-BB1B-B09951ABD325} - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {EF4A4878-3839-48F1-B4C1-43D0570BCCB4} - EndGlobalSection -EndGlobal diff --git a/Pathoschild.Stardew.sln b/Pathoschild.Stardew.sln index 396778bca..08e4c9a6c 100644 --- a/Pathoschild.Stardew.sln +++ b/Pathoschild.Stardew.sln @@ -56,6 +56,27 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{183A028A EndProjectSection EndProject Global + GlobalSection(SharedMSBuildProjectFiles) = preSolution + Common\Common.projitems*{44366a09-9a49-49b5-9d5f-51dc3f751fcb}*SharedItemsImports = 5 + Common\Common.projitems*{4456349c-749d-430b-8295-d70d2b2d3649}*SharedItemsImports = 5 + Common.Patching\Common.Patching.projitems*{495aa31a-abfd-402d-a091-620cdb4bc7e1}*SharedItemsImports = 5 + Common\Common.projitems*{495aa31a-abfd-402d-a091-620cdb4bc7e1}*SharedItemsImports = 5 + Common.Patching\Common.Patching.projitems*{49c40e04-5a9f-47da-8906-fa717816e772}*SharedItemsImports = 13 + Common.Patching\Common.Patching.projitems*{5588ce27-a617-4c20-bc14-6ffb9a6313dd}*SharedItemsImports = 5 + Common\Common.projitems*{5588ce27-a617-4c20-bc14-6ffb9a6313dd}*SharedItemsImports = 5 + Common\Common.projitems*{5ee9feb7-e8b4-4cbb-878b-b794810dd94b}*SharedItemsImports = 5 + Common\Common.projitems*{6a78a4d9-bce8-43a4-8938-aedba5be98c0}*SharedItemsImports = 5 + Common\Common.projitems*{7c05ff17-e7aa-485a-a0e9-bab0248cf653}*SharedItemsImports = 5 + Common.Patching\Common.Patching.projitems*{7cd586e4-e766-494a-a06f-abac3e0e6c90}*SharedItemsImports = 5 + Common\Common.projitems*{7cd586e4-e766-494a-a06f-abac3e0e6c90}*SharedItemsImports = 5 + Common\Common.projitems*{81b42938-5567-469b-8b92-56e006df588d}*SharedItemsImports = 5 + Common\Common.projitems*{9eecb232-2178-4101-9397-cfb885bc25f2}*SharedItemsImports = 5 + Common\Common.projitems*{b9e9edfc-e98a-4370-994f-40a9f39a0284}*SharedItemsImports = 13 + Common\Common.projitems*{ddf905ed-320b-48af-91a5-2a5563f256fa}*SharedItemsImports = 5 + Common\Common.projitems*{ef4f1a38-6601-4441-b7b1-e9c26b312192}*SharedItemsImports = 5 + Common\Common.projitems*{f2c606b1-51d2-48f3-9cf7-2f8cd46daff9}*SharedItemsImports = 5 + Common\Common.projitems*{fca458cf-d872-47b7-9048-403c56a20905}*SharedItemsImports = 5 + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU @@ -138,25 +159,4 @@ Global GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {EF4A4878-3839-48F1-B4C1-43D0570BCCB4} EndGlobalSection - GlobalSection(SharedMSBuildProjectFiles) = preSolution - Common\Common.projitems*{44366a09-9a49-49b5-9d5f-51dc3f751fcb}*SharedItemsImports = 5 - Common\Common.projitems*{4456349c-749d-430b-8295-d70d2b2d3649}*SharedItemsImports = 5 - Common.Patching\Common.Patching.projitems*{495aa31a-abfd-402d-a091-620cdb4bc7e1}*SharedItemsImports = 5 - Common\Common.projitems*{495aa31a-abfd-402d-a091-620cdb4bc7e1}*SharedItemsImports = 5 - Common.Patching\Common.Patching.projitems*{49c40e04-5a9f-47da-8906-fa717816e772}*SharedItemsImports = 13 - Common.Patching\Common.Patching.projitems*{5588ce27-a617-4c20-bc14-6ffb9a6313dd}*SharedItemsImports = 5 - Common\Common.projitems*{5588ce27-a617-4c20-bc14-6ffb9a6313dd}*SharedItemsImports = 5 - Common\Common.projitems*{5ee9feb7-e8b4-4cbb-878b-b794810dd94b}*SharedItemsImports = 5 - Common\Common.projitems*{6a78a4d9-bce8-43a4-8938-aedba5be98c0}*SharedItemsImports = 5 - Common\Common.projitems*{7c05ff17-e7aa-485a-a0e9-bab0248cf653}*SharedItemsImports = 5 - Common.Patching\Common.Patching.projitems*{7cd586e4-e766-494a-a06f-abac3e0e6c90}*SharedItemsImports = 5 - Common\Common.projitems*{7cd586e4-e766-494a-a06f-abac3e0e6c90}*SharedItemsImports = 5 - Common\Common.projitems*{81b42938-5567-469b-8b92-56e006df588d}*SharedItemsImports = 5 - Common\Common.projitems*{9eecb232-2178-4101-9397-cfb885bc25f2}*SharedItemsImports = 5 - Common\Common.projitems*{b9e9edfc-e98a-4370-994f-40a9f39a0284}*SharedItemsImports = 13 - Common\Common.projitems*{ddf905ed-320b-48af-91a5-2a5563f256fa}*SharedItemsImports = 5 - Common\Common.projitems*{ef4f1a38-6601-4441-b7b1-e9c26b312192}*SharedItemsImports = 5 - Common\Common.projitems*{f2c606b1-51d2-48f3-9cf7-2f8cd46daff9}*SharedItemsImports = 5 - Common\Common.projitems*{fca458cf-d872-47b7-9048-403c56a20905}*SharedItemsImports = 5 - EndGlobalSection EndGlobal diff --git a/UpgradeLog.htm b/UpgradeLog.htm deleted file mode 100644 index e9f3a81ce..000000000 --- a/UpgradeLog.htm +++ /dev/null @@ -1,296 +0,0 @@ - - - - Migration Report -

- Migration Report - Pathoschild.Stardew

Overview

ProjectPathErrorsWarningsMessages
SolutionPathoschild.Stardew.sln012
.CommonCommon\.Common.shproj000
.Common.PatchingCommon.Patching\.Common.Patching.shproj000
[Shared MSBuild Project Files][Shared MSBuild Project Files]000
AutomateAutomate\Automate.csproj000
buildbuild000
ChestsAnywhereChestsAnywhere\ChestsAnywhere.csproj000
ContentPatcherContentPatcher\ContentPatcher.csproj000
CropsAnytimeAnywhereCropsAnytimeAnywhere\CropsAnytimeAnywhere.csproj000
DataLayersDataLayers\DataLayers.csproj000
DebugModeDebugMode\DebugMode.csproj000
FastAnimationsFastAnimations\FastAnimations.csproj000
HorseFluteAnywhereHorseFluteAnywhere\HorseFluteAnywhere.csproj000
LookupAnythingLookupAnything\LookupAnything.csproj000
NoclipModeNoclipMode\NoclipMode.csproj000
rootroot000
SkipIntroSkipIntro\SkipIntro.csproj000
SmallBeachFarmSmallBeachFarm\SmallBeachFarm.csproj000
TestModTestMod\TestMod.csproj000
teststests000
Tests.CommonTests.Common\Tests.Common.csproj000
Tests.ModsTests.Mods\Tests.Mods.csproj000
TractorModTractorMod\TractorMod.csproj000

Solution and projects

Solution

Message
Pathoschild.Stardew.sln: - Visual Studio needs to make non-functional changes to this project in order to enable the project to open in released versions of Visual Studio newer than Visual Studio 2010 SP1 without impacting project behavior.
- Show 2 additional messages -
Pathoschild.Stardew.sln: - File successfully backed up as C:\dev\StardewMods\Backup\Pathoschild.Stardew.sln
Pathoschild.Stardew.sln: - Solution migrated successfully
- Hide 2 additional messages -

.Common

Message
.Common logged no messages. -

.Common.Patching

Message
.Common.Patching logged no messages. -

[Shared MSBuild Project Files]

Message
[Shared MSBuild Project Files] logged no messages. -

Automate

Message
Automate logged no messages. -

build

Message
build logged no messages. -

ChestsAnywhere

Message
ChestsAnywhere logged no messages. -

ContentPatcher

Message
ContentPatcher logged no messages. -

CropsAnytimeAnywhere

Message
CropsAnytimeAnywhere logged no messages. -

DataLayers

Message
DataLayers logged no messages. -

DebugMode

Message
DebugMode logged no messages. -

FastAnimations

Message
FastAnimations logged no messages. -

HorseFluteAnywhere

Message
HorseFluteAnywhere logged no messages. -

LookupAnything

Message
LookupAnything logged no messages. -

NoclipMode

Message
NoclipMode logged no messages. -

root

Message
root logged no messages. -

SkipIntro

Message
SkipIntro logged no messages. -

SmallBeachFarm

Message
SmallBeachFarm logged no messages. -

TestMod

Message
TestMod logged no messages. -

tests

Message
tests logged no messages. -

Tests.Common

Message
Tests.Common logged no messages. -

Tests.Mods

Message
Tests.Mods logged no messages. -

TractorMod

Message
TractorMod logged no messages. -
\ No newline at end of file From 364c2d1d52f076f6b4f1ed48207ba24e487ec06f Mon Sep 17 00:00:00 2001 From: kzawora Date: Sat, 1 Oct 2022 00:47:59 +0200 Subject: [PATCH 5/6] Avoid creating null tracker when seed/fertilizer inputs are enabled --- Automate/Framework/Machines/Buildings/JunimoHutMachine.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Automate/Framework/Machines/Buildings/JunimoHutMachine.cs b/Automate/Framework/Machines/Buildings/JunimoHutMachine.cs index abf6dd74a..69f29c3a7 100644 --- a/Automate/Framework/Machines/Buildings/JunimoHutMachine.cs +++ b/Automate/Framework/Machines/Buildings/JunimoHutMachine.cs @@ -77,6 +77,9 @@ public override MachineState GetState() /// Returns whether the machine started processing an item. public override bool SetInput(IStorage input) { + if (!this.AllowFertilizerInput && !this.AllowSeedInput) + return false; + // get next item ITrackedStack? tracker = input.GetItems().FirstOrDefault(p => p.Sample is SObject obj && ((this.AllowSeedInput && (obj.Category == SObject.SeedsCategory)) || (this.AllowFertilizerInput && (obj.Category == SObject.fertilizerCategory)))); if (tracker == null) From 06ee523174b718c4c55142e92de2d04ce8e6073f Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Mon, 10 Oct 2022 15:20:57 -0400 Subject: [PATCH 6/6] overhaul Junimo hut options to provide more flexibility --- Automate/Framework/AutomationFactory.cs | 20 +++- ...ericModConfigMenuIntegrationForAutomate.cs | 84 ++++++++----- .../Machines/Buildings/JunimoHutMachine.cs | 110 ++++++++++++------ .../Framework/Models/JunimoHutBehavior.cs | 18 +++ .../Models/ModCompatibilityConfig.cs | 21 ---- Automate/Framework/Models/ModConfig.cs | 18 ++- Automate/ModEntry.cs | 2 +- Automate/i18n/de.json | 28 +++-- Automate/i18n/default.json | 26 +++-- Automate/i18n/es.json | 30 +++-- Automate/i18n/hu.json | 28 +++-- Automate/i18n/it.json | 28 +++-- Automate/i18n/ko.json | 28 +++-- Automate/i18n/pt.json | 28 +++-- Automate/i18n/ru.json | 28 +++-- Automate/i18n/tr.json | 28 +++-- Automate/i18n/uk.json | 28 +++-- Automate/i18n/zh.json | 28 +++-- 18 files changed, 360 insertions(+), 221 deletions(-) create mode 100644 Automate/Framework/Models/JunimoHutBehavior.cs delete mode 100644 Automate/Framework/Models/ModCompatibilityConfig.cs diff --git a/Automate/Framework/AutomationFactory.cs b/Automate/Framework/AutomationFactory.cs index 6936a38f1..ae8a8ece7 100644 --- a/Automate/Framework/AutomationFactory.cs +++ b/Automate/Framework/AutomationFactory.cs @@ -255,11 +255,21 @@ public AutomationFactory(Func config, IMonitor monitor, IReflectionHe case JunimoHut hut: { - var config = this.Config(); - bool betterJunimosCompat = config.ModCompatibility.BetterJunimos && this.IsBetterJunimosLoaded; - bool allowSeedInput = betterJunimosCompat && config.ModCompatibility.BetterJunimosTransferSeedsToJunimoHuts; - bool allowFertilizerInput = betterJunimosCompat && config.ModCompatibility.BetterJunimosTransferSeedsToJunimoHuts; - return new JunimoHutMachine(hut, location, allowSeedInput: allowSeedInput, allowFertilizerInput: allowFertilizerInput, ignoreSeedOutput: betterJunimosCompat, ignoreFertilizerOutput: betterJunimosCompat, pullGemstonesFromJunimoHuts: config.PullGemstonesFromJunimoHuts); + ModConfig config = this.Config(); + + JunimoHutBehavior gemBehavior = config.JunimoHutBehaviorForGemStones; + if (gemBehavior is JunimoHutBehavior.AutoDetect) + gemBehavior = JunimoHutBehavior.Ignore; + + JunimoHutBehavior fertilizerBehavior = config.JunimoHutBehaviorForFertilizer; + if (fertilizerBehavior is JunimoHutBehavior.AutoDetect) + fertilizerBehavior = this.IsBetterJunimosLoaded ? JunimoHutBehavior.Ignore : JunimoHutBehavior.MoveIntoChests; + + JunimoHutBehavior seedBehavior = config.JunimoHutBehaviorForFertilizer; + if (seedBehavior is JunimoHutBehavior.AutoDetect) + seedBehavior = this.IsBetterJunimosLoaded ? JunimoHutBehavior.Ignore : JunimoHutBehavior.MoveIntoChests; + + return new JunimoHutMachine(hut, location, gemBehavior, fertilizerBehavior, seedBehavior); } case Mill mill: diff --git a/Automate/Framework/GenericModConfigMenuIntegrationForAutomate.cs b/Automate/Framework/GenericModConfigMenuIntegrationForAutomate.cs index 69c1887fc..3ba1c6927 100644 --- a/Automate/Framework/GenericModConfigMenuIntegrationForAutomate.cs +++ b/Automate/Framework/GenericModConfigMenuIntegrationForAutomate.cs @@ -57,12 +57,6 @@ public void Register() get: config => config.Enabled, set: (config, value) => config.Enabled = value ) - .AddCheckbox( - name: I18n.Config_JunimoHutsOutputGems_Name, - tooltip: I18n.Config_JunimoHutsOutputGems_Desc, - get: config => config.PullGemstonesFromJunimoHuts, - set: (config, value) => config.PullGemstonesFromJunimoHuts = value - ) .AddNumberField( name: I18n.Config_AutomationInterval_Name, tooltip: I18n.Config_AutomationInterval_Desc, @@ -76,34 +70,12 @@ public void Register() tooltip: I18n.Config_ToggleOverlayKey_Desc, get: config => config.Controls.ToggleOverlay, set: (config, value) => config.Controls.ToggleOverlay = value - ); - - // mod compatibility - menu - .AddSectionTitle(I18n.Config_Title_ModCompatibility) - .AddCheckbox( - name: I18n.Config_BetterJunimos_Name, - tooltip: I18n.Config_BetterJunimos_Desc, - get: config => config.ModCompatibility.BetterJunimos, - set: (config, value) => config.ModCompatibility.BetterJunimos = value - ) - .AddCheckbox( - name: I18n.Config_BetterJunimosTransferSeedsToJunimoHuts_Name, - tooltip: I18n.Config_BetterJunimosTransferSeedsToJunimoHuts_Desc, - get: config => config.ModCompatibility.BetterJunimosTransferSeedsToJunimoHuts, - set: (config, value) => config.ModCompatibility.BetterJunimosTransferSeedsToJunimoHuts = value - ) - .AddCheckbox( - name: I18n.Config_BetterJunimosTransferFertilizersToJunimoHuts_Name, - tooltip: I18n.Config_BetterJunimosTransferFertilizersToJunimoHuts_Desc, - get: config => config.ModCompatibility.BetterJunimosTransferFertilizersToJunimoHuts, - set: (config, value) => config.ModCompatibility.BetterJunimosTransferFertilizersToJunimoHuts = value ) .AddCheckbox( name: I18n.Config_WarnForMissingBridgeMod_Name, tooltip: I18n.Config_WarnForMissingBridgeMod_Desc, - get: config => config.ModCompatibility.WarnForMissingBridgeMod, - set: (config, value) => config.ModCompatibility.WarnForMissingBridgeMod = value + get: config => config.WarnForMissingBridgeMod, + set: (config, value) => config.WarnForMissingBridgeMod = value ); // connectors @@ -126,6 +98,30 @@ public void Register() set: (config, value) => this.SetCustomConnectors(config, value.Split(',').Select(p => p.Trim())) ); + // Junimo huts + menu.AddSectionTitle(I18n.Config_Title_JunimoHuts); + this.AddJunimoHutBehaviorDropdown( + menu, + name: I18n.Config_JunimoHutGems_Name, + tooltip: I18n.Config_JunimoHutGems_Desc, + get: config => config.JunimoHutBehaviorForGemStones, + set: (config, value) => config.JunimoHutBehaviorForGemStones = value + ); + this.AddJunimoHutBehaviorDropdown( + menu, + name: I18n.Config_JunimoHutFertilizer_Name, + tooltip: I18n.Config_JunimoHutFertilizer_Desc, + get: config => config.JunimoHutBehaviorForFertilizer, + set: (config, value) => config.JunimoHutBehaviorForFertilizer = value + ); + this.AddJunimoHutBehaviorDropdown( + menu, + name: I18n.Config_JunimoHutSeeds_Name, + tooltip: I18n.Config_JunimoHutSeeds_Desc, + get: config => config.JunimoHutBehaviorForSeeds, + set: (config, value) => config.JunimoHutBehaviorForSeeds = value + ); + // machine overrides menu.AddSectionTitle(I18n.Config_Title_MachineOverrides); foreach (var entry in this.Data.DefaultMachineOverrides) @@ -144,6 +140,34 @@ public void Register() /********* ** Private methods *********/ + /**** + ** Junimo huts + ****/ + /// Add a dropdown to configure Junimo hut behavior for an item type. + /// The config menu to extend. + /// The label text to show in the form. + /// The tooltip text shown when the cursor hovers on the field. + /// Get the current value from the mod config. + /// Set a new value in the mod config. + private void AddJunimoHutBehaviorDropdown(GenericModConfigMenuIntegration menu, Func name, Func tooltip, Func get, Action set) + { + menu.AddDropdown( + name: name, + tooltip: tooltip, + get: config => get(config).ToString(), + set: (config, value) => set(config, Enum.Parse(value)), + allowedValues: Enum.GetNames(), + formatAllowedValue: value => value switch + { + nameof(JunimoHutBehavior.AutoDetect) => I18n.Config_JunimoHuts_AutoDetect(), + nameof(JunimoHutBehavior.Ignore) => I18n.Config_JunimoHuts_Ignore(), + nameof(JunimoHutBehavior.MoveIntoChests) => I18n.Config_JunimoHuts_MoveIntoChests(), + nameof(JunimoHutBehavior.MoveIntoHut) => I18n.Config_JunimoHuts_MoveIntoHuts(), + _ => "???" // should never happen + } + ); + } + /**** ** Connectors ****/ diff --git a/Automate/Framework/Machines/Buildings/JunimoHutMachine.cs b/Automate/Framework/Machines/Buildings/JunimoHutMachine.cs index 69f29c3a7..a197fef4f 100644 --- a/Automate/Framework/Machines/Buildings/JunimoHutMachine.cs +++ b/Automate/Framework/Machines/Buildings/JunimoHutMachine.cs @@ -1,7 +1,7 @@ using System.Linq; +using Pathoschild.Stardew.Automate.Framework.Models; using StardewValley; using StardewValley.Buildings; -using StardewValley.Locations; using StardewValley.Objects; using SObject = StardewValley.Object; @@ -13,20 +13,20 @@ internal class JunimoHutMachine : BaseMachineForBuilding /********* ** Fields *********/ - /// Whether seeds should be treated as Junimo hut inputs. - private readonly bool AllowSeedInput; + /// How to handle gem stones in the hut or connected chests. + private readonly JunimoHutBehavior GemBehavior; - /// Whether fertilizer should be treated as Junimo hut inputs. - private readonly bool AllowFertilizerInput; + /// How to handle fertilizer in the hut or connected chests. + private readonly JunimoHutBehavior FertilizerBehavior; - /// Whether seeds should be ignored when selecting output. - private readonly bool IgnoreSeedOutput; + /// How to handle seeds in the hut or connected chests. + private readonly JunimoHutBehavior SeedBehavior; - /// Whether fertilizer should be ignored when selecting output. - private readonly bool IgnoreFertilizerOutput; + /// Whether the Junimo hut can automate input. + private readonly bool HasInput; - /// Whether to pull gemstones out of Junimo huts. - public bool PullGemstonesFromJunimoHuts { get; set; } + /// Whether any items are configured to be skipped when outputting. + private readonly bool HasIgnoredOutput; /// The Junimo hut's output chest. private Chest Output => this.Machine.output.Value; @@ -38,19 +38,24 @@ internal class JunimoHutMachine : BaseMachineForBuilding /// Construct an instance. /// The underlying Junimo hut. /// The location which contains the machine. - /// Whether seeds are allowed as an input. - /// Whether fertilizers are allowed as an input. - /// Whether seeds should be ignored when selecting output. - /// Whether fertilizer should be ignored when selecting output. - /// Whether to pull gemstones out of Junimo huts. - public JunimoHutMachine(JunimoHut hut, GameLocation location, bool allowSeedInput, bool allowFertilizerInput, bool ignoreSeedOutput, bool ignoreFertilizerOutput, bool pullGemstonesFromJunimoHuts) + /// How to handle gem stones in the hut or connected chests. + /// How to handle fertilizer in the hut or connected chests. + /// How to handle seeds in the hut or connected chests. + public JunimoHutMachine(JunimoHut hut, GameLocation location, JunimoHutBehavior gemBehavior, JunimoHutBehavior fertilizerBehavior, JunimoHutBehavior seedBehavior) : base(hut, location, BaseMachine.GetTileAreaFor(hut)) { - this.AllowSeedInput = allowSeedInput; - this.AllowFertilizerInput = allowFertilizerInput; - this.IgnoreSeedOutput = ignoreSeedOutput; - this.IgnoreFertilizerOutput = ignoreFertilizerOutput; - this.PullGemstonesFromJunimoHuts = pullGemstonesFromJunimoHuts; + this.GemBehavior = gemBehavior; + this.FertilizerBehavior = fertilizerBehavior; + this.SeedBehavior = seedBehavior; + + this.HasInput = + gemBehavior is JunimoHutBehavior.MoveIntoHut + || fertilizerBehavior is JunimoHutBehavior.MoveIntoHut + || seedBehavior is JunimoHutBehavior.MoveIntoHut; + this.HasIgnoredOutput = + gemBehavior is not JunimoHutBehavior.MoveIntoChests + || fertilizerBehavior is not JunimoHutBehavior.MoveIntoChests + || seedBehavior is not JunimoHutBehavior.MoveIntoChests; } /// Get the machine's processing state. @@ -58,11 +63,12 @@ public override MachineState GetState() { if (this.Machine.isUnderConstruction()) return MachineState.Disabled; - if (this.AllowSeedInput || this.AllowFertilizerInput) - return MachineState.Empty; - return this.GetNextOutput() != null - ? MachineState.Done + if (this.GetNextOutput() != null) + return MachineState.Done; + + return this.HasInput + ? MachineState.Empty : MachineState.Processing; } @@ -77,11 +83,34 @@ public override MachineState GetState() /// Returns whether the machine started processing an item. public override bool SetInput(IStorage input) { - if (!this.AllowFertilizerInput && !this.AllowSeedInput) + if (!this.HasInput) return false; // get next item - ITrackedStack? tracker = input.GetItems().FirstOrDefault(p => p.Sample is SObject obj && ((this.AllowSeedInput && (obj.Category == SObject.SeedsCategory)) || (this.AllowFertilizerInput && (obj.Category == SObject.fertilizerCategory)))); + ITrackedStack? tracker = null; + foreach (ITrackedStack stack in input.GetItems()) + { + if (stack.Sample is not SObject obj) + continue; + + switch (obj.Category) + { + case SObject.SeedsCategory when this.SeedBehavior == JunimoHutBehavior.MoveIntoHut: + tracker = stack; + break; + + case SObject.fertilizerCategory when this.FertilizerBehavior == JunimoHutBehavior.MoveIntoHut: + tracker = stack; + break; + + case (SObject.GemCategory or SObject.mineralsCategory) when this.GemBehavior == JunimoHutBehavior.MoveIntoHut: + tracker = stack; + break; + } + + if (tracker is not null) + break; + } if (tracker == null) return false; @@ -108,15 +137,22 @@ private void OnOutputTaken(Item item) { foreach (Item item in this.Output.items.Where(p => p != null)) { - // ignore gems which change Junimo colors (see JunimoHut:getGemColor) - if (!this.PullGemstonesFromJunimoHuts && item.Category is SObject.GemCategory or SObject.mineralsCategory) - continue; - - // ignore items used by another mod - if (this.IgnoreSeedOutput && item.Category == SObject.SeedsCategory) - continue; - if (this.IgnoreFertilizerOutput && item.Category == SObject.fertilizerCategory) - continue; + if (this.HasIgnoredOutput) + { + bool ignore = false; + + switch (item.Category) + { + case SObject.SeedsCategory when this.SeedBehavior is not JunimoHutBehavior.MoveIntoChests: + case SObject.fertilizerCategory when this.FertilizerBehavior is not JunimoHutBehavior.MoveIntoChests: + case (SObject.GemCategory or SObject.mineralsCategory) when this.GemBehavior is not JunimoHutBehavior.MoveIntoChests: + ignore = true; + break; + } + + if (ignore) + continue; + } return item; } diff --git a/Automate/Framework/Models/JunimoHutBehavior.cs b/Automate/Framework/Models/JunimoHutBehavior.cs new file mode 100644 index 000000000..c9b900e59 --- /dev/null +++ b/Automate/Framework/Models/JunimoHutBehavior.cs @@ -0,0 +1,18 @@ +namespace Pathoschild.Stardew.Automate.Framework.Models +{ + /// Indicates how Junimo huts should be automated for a specific item type. + internal enum JunimoHutBehavior + { + /// Apply the default logic based on the player's installed mods (e.g. leave seeds in the hut if Better Junimos is installed). + AutoDetect, + + /// Ignore items of this type, so they're not transferred either way. + Ignore, + + /// Move any items of this type from the Junimo Hut into connected chests. + MoveIntoChests, + + /// Move any items of this type from connected chests into the Junimo Hut. + MoveIntoHut + } +} diff --git a/Automate/Framework/Models/ModCompatibilityConfig.cs b/Automate/Framework/Models/ModCompatibilityConfig.cs deleted file mode 100644 index e51794c6a..000000000 --- a/Automate/Framework/Models/ModCompatibilityConfig.cs +++ /dev/null @@ -1,21 +0,0 @@ -namespace Pathoschild.Stardew.Automate.Framework.Models -{ - /// Mod compatibility options. - internal class ModCompatibilityConfig - { - /********* - ** Accessors - *********/ - /// Whether to enable compatibility with Better Junimos. If it's installed, Junimo huts won't output fertilizer or seeds. - public bool BetterJunimos { get; set; } = true; - - /// Whether to transfer seeds into Junimo huts. If true, Junimo huts will accept seeds from connected chests. Does nothing without Better Junimos mod compatibility. - public bool BetterJunimosTransferSeedsToJunimoHuts { get; set; } = false; - - /// Whether to transfer fertilizers into Junimo huts. If true, Junimo huts will accept fertilizers from connected chests. Does nothing without Better Junimos mod compatibility. - public bool BetterJunimosTransferFertilizersToJunimoHuts { get; set; } = false; - - /// Whether to log a warning if the player installs a custom-machine mod that requires a separate compatibility patch which isn't installed. - public bool WarnForMissingBridgeMod { get; set; } = true; - } -} diff --git a/Automate/Framework/Models/ModConfig.cs b/Automate/Framework/Models/ModConfig.cs index 7fcc1b00f..d3d793a92 100644 --- a/Automate/Framework/Models/ModConfig.cs +++ b/Automate/Framework/Models/ModConfig.cs @@ -15,8 +15,17 @@ internal class ModConfig /// Whether Automate is enabled. public bool Enabled { get; set; } = true; - /// Whether to pull gemstones out of Junimo huts. If true, you won't be able to change Junimo colors by placing gemstones in their hut. - public bool PullGemstonesFromJunimoHuts { get; set; } = false; + /// How Junimo huts should automate gemstones. + /// The option is equivalent to . + public JunimoHutBehavior JunimoHutBehaviorForGemStones { get; set; } = JunimoHutBehavior.AutoDetect; + + /// How Junimo huts should automate fertilizer items. + /// The option is equivalent to (if Better Junimos is installed), else . + public JunimoHutBehavior JunimoHutBehaviorForFertilizer { get; set; } = JunimoHutBehavior.AutoDetect; + + /// How Junimo huts should automate seed items. + /// The option is equivalent to (if Better Junimos is installed), else . + public JunimoHutBehavior JunimoHutBehaviorForSeeds { get; set; } = JunimoHutBehavior.AutoDetect; /// The number of ticks between each automation process (60 = once per second). public int AutomationInterval { get; set; } = 60; @@ -27,8 +36,8 @@ internal class ModConfig /// The in-game object names through which machines can connect. public HashSet ConnectorNames { get; set; } = new() { "Workbench" }; - /// Options affecting compatibility with other mods. - public ModCompatibilityConfig ModCompatibility { get; set; } = new(); + /// Whether to log a warning if the player installs a custom-machine mod that requires a separate compatibility patch which isn't installed. + public bool WarnForMissingBridgeMod { get; set; } = true; /// The configuration for specific machines by ID. public Dictionary MachineOverrides { get; set; } = new(); @@ -47,7 +56,6 @@ public void OnDeserialized(StreamingContext context) // normalize this.Controls ??= new(); this.ConnectorNames = this.ConnectorNames.ToNonNullCaseInsensitive(); - this.ModCompatibility ??= new(); this.MachineOverrides = this.MachineOverrides.ToNonNullCaseInsensitive(); // remove null values diff --git a/Automate/ModEntry.cs b/Automate/ModEntry.cs index c80efa731..ba4964b49 100644 --- a/Automate/ModEntry.cs +++ b/Automate/ModEntry.cs @@ -112,7 +112,7 @@ public override void Entry(IModHelper helper) // log info this.Monitor.VerboseLog($"Initialized with automation every {this.Config.AutomationInterval} ticks."); - if (this.Config.ModCompatibility.WarnForMissingBridgeMod) + if (this.Config.WarnForMissingBridgeMod) this.ReportMissingBridgeMods(this.Data.SuggestedIntegrations); } diff --git a/Automate/i18n/de.json b/Automate/i18n/de.json index 3c19e338a..75588e669 100644 --- a/Automate/i18n/de.json +++ b/Automate/i18n/de.json @@ -6,21 +6,10 @@ "config.title.main-options": "Haupt-Optionen", "config.enabled.name": "Aktiviert", "config.enabled.desc": "Ob automatisierte Funktionen verwendet werden sollen. Wenn deaktiviert werden Maschinen nicht automatisiert und das Overlay erscheint nicht.", - "config.junimo-huts-output-gems.name": "Junimo-Hütten geben Edelsteine aus", - "config.junimo-huts-output-gems.desc": "Ob Edelsteine aus Junimo-Hütten gezogen werden können. Ist dies der Fall, können die Farben von Junimos nicht mehr verändert werden, indem man Edelsteine in ihre Hütte legt.", "config.automation-interval.name": "Automatisierungs-Intervall", "config.automation-interval.desc": "Die Anzahl der Ticks zwischen den einzelnen Automatisierungsprozessen (60: 1x pro Sekunde, 120: alle zwei Sekunden usw.).", "config.toggle-overlay-key.name": "Taste zum Umschalten des Overlays", "config.toggle-overlay-key.desc": "Die Tasten, mit denen das Automatisierungs-Overlay umgeschaltet wird.", - - // mod compatibility - "config.title.mod-compatibility": "Mod-Kompatibilität", - "config.better-junimos.name": "Better Junimos", - "config.better-junimos.desc": "Kompatibilität mit 'Better Junimos' aktivieren. Wenn installiert, geben Junimo-Hütten weder Dünger noch Saatgut aus.", - "config.better-junimos-transfer-seeds-to-junimo-huts.name": "Better Junimos: Transfer seeds", // TODO - "config.better-junimos-transfer-seeds-to-junimo-huts.desc": "If set, Junimo huts will accept seeds from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO - "config.better-junimos-transfer-fertilizers-to-junimo-huts.name": "Better Junimos: Transfer fertilizers", // TODO - "config.better-junimos-transfer-fertilizers-to-junimo-huts.desc": "If set, Junimo huts will accept fertilizers from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO "config.warn-for-missing-bridge-mod.name": "Warnung für fehlende Brücken-Mod", "config.warn-for-missing-bridge-mod.desc": "Ob eine Warnung beim Start protokolliert werden soll, wenn eine Custom Machine-Mod installiert ist, die einen separaten, nicht installierten Kompatibilitäts-Patch erfordert.", @@ -30,6 +19,23 @@ "config.custom-connectors.name": "Benutzerdefinierte Konnektoren", "config.custom-connectors.desc": "Die exakten englischen Bezeichnungen für Gegenstände, die benachbarte Maschinen miteinander verbinden. Mehrere Elemente können mit Kommas aufgeführt werden.", // note: connector names must be English even when playing in other languages + // Junimo hut options + // TODO + "config.title.junimo-huts": "Junimo hut behavior", + "config.junimo-hut-gems.name": "Gemstones", + "config.junimo-hut-gems.desc": "What Junimo huts should do with gemstone items. 'Auto-detect' will ignore them.", + "config.junimo-hut-fertilizer.name": "Fertilizer", + "config.junimo-hut-fertilizer.desc": "What Junimo huts should do with fertilizer items. 'Auto-detect' will ignore them if Better Junimos is installed, else move them from the hut into connected chests.", + "config.junimo-hut-seeds.name": "Seeds", + "config.junimo-hut-seeds.desc": "What Junimo huts should do with seed items. 'Auto-detect' will ignore them if Better Junimos is installed, else move them from the hut into connected chests.", + + // Junimo hut dropdown values + // TODO + "config.junimo-huts.auto-detect": "Auto-detect", + "config.junimo-huts.ignore": "Ignore them", + "config.junimo-huts.move-into-chests": "Move from Junimo huts into chests", + "config.junimo-huts.move-into-huts": "Move from chests into Junimo huts", + // machine overrides "config.title.machine-overrides": "Überbrückung von Maschinen", "config.override.ShippingBin-name": "Versandbehälter", diff --git a/Automate/i18n/default.json b/Automate/i18n/default.json index 33be2ed02..e227458bc 100644 --- a/Automate/i18n/default.json +++ b/Automate/i18n/default.json @@ -6,21 +6,10 @@ "config.title.main-options": "Main options", "config.enabled.name": "Enabled", "config.enabled.desc": "Whether to enable Automate features. If this is disabled, no machines will be automated and the overlay won't appear.", - "config.junimo-huts-output-gems.name": "Junimo huts output gems", - "config.junimo-huts-output-gems.desc": "Whether to pull gems out of Junimo huts. If true, you won't be able to change Junimo colors by placing gemstones in their hut.", "config.automation-interval.name": "Automation interval", "config.automation-interval.desc": "The number of ticks between each automation process (60 for once per second, 120 for every two seconds, etc).", "config.toggle-overlay-key.name": "Toggle overlay key", "config.toggle-overlay-key.desc": "The keys which toggle the automation overlay.", - - // mod compatibility - "config.title.mod-compatibility": "Mod compatibility", - "config.better-junimos.name": "Better Junimos", - "config.better-junimos.desc": "Enable compatibility with Better Junimos. If it's installed, Junimo huts won't output fertilizer or seeds.", - "config.better-junimos-transfer-seeds-to-junimo-huts.name": "Better Junimos: Transfer seeds", - "config.better-junimos-transfer-seeds-to-junimo-huts.desc": "If set, Junimo huts will accept seeds from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", - "config.better-junimos-transfer-fertilizers-to-junimo-huts.name": "Better Junimos: Transfer fertilizers", - "config.better-junimos-transfer-fertilizers-to-junimo-huts.desc": "If set, Junimo huts will accept fertilizers from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", "config.warn-for-missing-bridge-mod.name": "Warn for missing bridge mod", "config.warn-for-missing-bridge-mod.desc": "Whether to log a warning on startup if you installed a custom-machine mod that requires a separate compatibility patch which isn't installed.", @@ -30,6 +19,21 @@ "config.custom-connectors.name": "Custom connectors", "config.custom-connectors.desc": "The exact English names for items which connect adjacent machines together. You can list multiple items with commas.", // note: connector names must be English even when playing in other languages + // Junimo hut options + "config.title.junimo-huts": "Junimo hut behavior", + "config.junimo-hut-gems.name": "Gemstones", + "config.junimo-hut-gems.desc": "What Junimo huts should do with gemstone items. 'Auto-detect' will ignore them.", + "config.junimo-hut-fertilizer.name": "Fertilizer", + "config.junimo-hut-fertilizer.desc": "What Junimo huts should do with fertilizer items. 'Auto-detect' will ignore them if Better Junimos is installed, else move them from the hut into connected chests.", + "config.junimo-hut-seeds.name": "Seeds", + "config.junimo-hut-seeds.desc": "What Junimo huts should do with seed items. 'Auto-detect' will ignore them if Better Junimos is installed, else move them from the hut into connected chests.", + + // Junimo hut dropdown values + "config.junimo-huts.auto-detect": "Auto-detect", + "config.junimo-huts.ignore": "Ignore them", + "config.junimo-huts.move-into-chests": "Move from Junimo huts into chests", + "config.junimo-huts.move-into-huts": "Move from chests into Junimo huts", + // machine overrides "config.title.machine-overrides": "Machine overrides", "config.override.ShippingBin-name": "Shipping Bin", diff --git a/Automate/i18n/es.json b/Automate/i18n/es.json index 16228c6d5..8573fa432 100644 --- a/Automate/i18n/es.json +++ b/Automate/i18n/es.json @@ -6,22 +6,11 @@ "config.title.main-options": "Opciones principales", "config.enabled.name": "Enabled", // TODO "config.enabled.desc": "Whether to enable Automate features. If this is disabled, no machines will be automated and the overlay won't appear.", // TODO - "config.junimo-huts-output-gems.name": "Cabañas de Junimos sacan gemas", - "config.junimo-huts-output-gems.desc": "Si se sacan gemas de las cabañas de Junimo. Si es cierto, no podrás cambiar los colores de Junimo colocando gemas en su cabaña.", "config.automation-interval.name": "Intervalo de automatización", "config.automation-interval.desc": "El número de ticks entre cada proceso de automatización (60 para una vez por segundo, 120 para cada dos segundos, etc.).", "config.toggle-overlay-key.name": "Tecla de activación de superposición", "config.toggle-overlay-key.desc": "Las teclas que activan la superposición de la automatización.", - - // mod compatibility - "config.title.mod-compatibility": "Compatibilidad con los mods", - "config.better-junimos.name": "Better Junimos", - "config.better-junimos.desc": "Habilitar compatibilidad con Better Junimos. Si se instala, las cabañas de Junimo no producirán abono ni semillas.", - "config.better-junimos-transfer-seeds-to-junimo-huts.name": "Better Junimos: Transfer seeds", // TODO - "config.better-junimos-transfer-seeds-to-junimo-huts.desc": "If set, Junimo huts will accept seeds from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO - "config.better-junimos-transfer-fertilizers-to-junimo-huts.name": "Better Junimos: Transfer fertilizers", // TODO - "config.better-junimos-transfer-fertilizers-to-junimo-huts.desc": "If set, Junimo huts will accept fertilizers from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO - "config.warn-for-missing-bridge-mod.name": "Warn for missing bridge mod", + "config.warn-for-missing-bridge-mod.name": "Warn for missing bridge mod", // TODO "config.warn-for-missing-bridge-mod.desc": "Si se registra una advertencia al inicio si se ha instalado un mod de máquina personalizada que requiere un parche de compatibilidad separado que no está instalado.", // connectors @@ -30,6 +19,23 @@ "config.custom-connectors.name": "Conectores personalizados", "config.custom-connectors.desc": "Los nombres exactos en inglés de los elementos que conectan máquinas adyacentes entre sí. Puede enumerar varios elementos con comas.", // note: connector names must be English even when playing in other languages + // Junimo hut options + // TODO + "config.title.junimo-huts": "Junimo hut behavior", + "config.junimo-hut-gems.name": "Gemstones", + "config.junimo-hut-gems.desc": "What Junimo huts should do with gemstone items. 'Auto-detect' will ignore them.", + "config.junimo-hut-fertilizer.name": "Fertilizer", + "config.junimo-hut-fertilizer.desc": "What Junimo huts should do with fertilizer items. 'Auto-detect' will ignore them if Better Junimos is installed, else move them from the hut into connected chests.", + "config.junimo-hut-seeds.name": "Seeds", + "config.junimo-hut-seeds.desc": "What Junimo huts should do with seed items. 'Auto-detect' will ignore them if Better Junimos is installed, else move them from the hut into connected chests.", + + // Junimo hut dropdown values + // TODO + "config.junimo-huts.auto-detect": "Auto-detect", + "config.junimo-huts.ignore": "Ignore them", + "config.junimo-huts.move-into-chests": "Move from Junimo huts into chests", + "config.junimo-huts.move-into-huts": "Move from chests into Junimo huts", + // machine overrides "config.title.machine-overrides": "Anulación de máquinas", "config.override.ShippingBin-name": "Caja de envio", diff --git a/Automate/i18n/hu.json b/Automate/i18n/hu.json index fe1a3ef22..bd35993bc 100644 --- a/Automate/i18n/hu.json +++ b/Automate/i18n/hu.json @@ -6,21 +6,10 @@ "config.title.main-options": "Fő beállítások", "config.enabled.name": "Engedélyezve", "config.enabled.desc": "Az automatizálási funkciók engedélyezése. Ha ez ki van kapcsolva, akkor egyetlen gép sem lesz automatizálva, és az átfedés sem jelenik meg.", - "config.junimo-huts-output-gems.name": "Drágakövek begyűjtése", - "config.junimo-huts-output-gems.desc": "A Junimo kunyhók begyűjtik a drágakövek. Ha igaz, akkor nem tudod majd megváltoztatni a Junimo kunyhók színét azzal, hogy drágaköveket helyezel el rajtuk.", "config.automation-interval.name": "Automatizálási időköz", "config.automation-interval.desc": "Az egyes automatizálási folyamatok közötti időközök száma (60 másodpercenként egyszer, 120 másodpercenként kétszer stb).", "config.toggle-overlay-key.name": "Átfedés váltó gomb", "config.toggle-overlay-key.desc": "Az a billentyű, amely az automatizálási átfedést váltja át, hogy láthatóak legyenek az összekapcsolások.", - - // mod compatibility - "config.title.mod-compatibility": "Mod kompatibilitás", - "config.better-junimos.name": "Jobb Junimok", - "config.better-junimos.desc": "Better Junimos mod kompatibilitás engedélyezése. Ha telepítve van, a Junimo kunyhók nem fognak kiadni műtrágyát és vetőmagvat.", - "config.better-junimos-transfer-seeds-to-junimo-huts.name": "Better Junimos: Transfer seeds", // TODO - "config.better-junimos-transfer-seeds-to-junimo-huts.desc": "If set, Junimo huts will accept seeds from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO - "config.better-junimos-transfer-fertilizers-to-junimo-huts.name": "Better Junimos: Transfer fertilizers", // TODO - "config.better-junimos-transfer-fertilizers-to-junimo-huts.desc": "If set, Junimo huts will accept fertilizers from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO "config.warn-for-missing-bridge-mod.name": "Figyelmeztetés hiányzó mod miatt", "config.warn-for-missing-bridge-mod.desc": "Naplózzon-e figyelmeztetést indításkor, ha olyan egyedi gép modot telepítesz, melyhez külön kompatibilitási javítás szükséges, ami nincs telepítve.", @@ -30,6 +19,23 @@ "config.custom-connectors.name": "Egyedi csatlakozók", "config.custom-connectors.desc": "A szomszédos gépeket összekötő elemek pontos angol neve. Több elemet is felsorolhat vesszővel elválasztva.", // Megjegyzés: A csatlakozók neveinek angolnak kell lennie, még akkor is, ha más nyelvet használsz. + // Junimo hut options + // TODO + "config.title.junimo-huts": "Junimo hut behavior", + "config.junimo-hut-gems.name": "Gemstones", + "config.junimo-hut-gems.desc": "What Junimo huts should do with gemstone items. 'Auto-detect' will ignore them.", + "config.junimo-hut-fertilizer.name": "Fertilizer", + "config.junimo-hut-fertilizer.desc": "What Junimo huts should do with fertilizer items. 'Auto-detect' will ignore them if Better Junimos is installed, else move them from the hut into connected chests.", + "config.junimo-hut-seeds.name": "Seeds", + "config.junimo-hut-seeds.desc": "What Junimo huts should do with seed items. 'Auto-detect' will ignore them if Better Junimos is installed, else move them from the hut into connected chests.", + + // Junimo hut dropdown values + // TODO + "config.junimo-huts.auto-detect": "Auto-detect", + "config.junimo-huts.ignore": "Ignore them", + "config.junimo-huts.move-into-chests": "Move from Junimo huts into chests", + "config.junimo-huts.move-into-huts": "Move from chests into Junimo huts", + // machine overrides "config.title.machine-overrides": "Gépi felülbírálások", "config.override.ShippingBin-name": "Szállítmány", diff --git a/Automate/i18n/it.json b/Automate/i18n/it.json index 3d81f6417..78b7ec2cf 100644 --- a/Automate/i18n/it.json +++ b/Automate/i18n/it.json @@ -6,21 +6,10 @@ "config.title.main-options": "Opzioni principali", "config.enabled.name": "Abilitata", "config.enabled.desc": "Scegli se abilitare l'automazione. Se disabilitata, i macchinari non saranno automatizzati e non camparirà l'overlay.", - "config.junimo-huts-output-gems.name": "Capanne Junimo producono gemme", - "config.junimo-huts-output-gems.desc": "Scegli se estrarre le gemme dalle capanne dei Junimo. Se abilitato, non sarà possibile cambiare i colori dei Junimo mettendo delle gemme nelle loro capanne.", "config.automation-interval.name": "Intervallo di automazione", "config.automation-interval.desc": "Il numero di tick tra ogni processo di automazione (60 per una volta al secondo, 120 per ogni due secondi, ecc.).", "config.toggle-overlay-key.name": "Imposta il tasto overlay", "config.toggle-overlay-key.desc": "I tasti che attivano l'overlay dell'automazione.", - - // mod compatibility - "config.title.mod-compatibility": "Compatibilità con le mod", - "config.better-junimos.name": "Better Junimos", - "config.better-junimos.desc": "Abilita la compatibilità con Better Junimos. Se è installato, le capanne Junimo non produrranno fertilizzanti o semi.", - "config.better-junimos-transfer-seeds-to-junimo-huts.name": "Better Junimos: Transfer seeds", // TODO - "config.better-junimos-transfer-seeds-to-junimo-huts.desc": "If set, Junimo huts will accept seeds from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO - "config.better-junimos-transfer-fertilizers-to-junimo-huts.name": "Better Junimos: Transfer fertilizers", // TODO - "config.better-junimos-transfer-fertilizers-to-junimo-huts.desc": "If set, Junimo huts will accept fertilizers from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO "config.warn-for-missing-bridge-mod.name": "Avvertimento per la mancanza di mod.", "config.warn-for-missing-bridge-mod.desc": "Scegli se registrare un avviso all'avvio se si è installata una macchina personalizzata che richiede una patch di compatibilità separata che non è installata.", @@ -30,6 +19,23 @@ "config.custom-connectors.name": "Connettori personalizzati", "config.custom-connectors.desc": "I nomi inglesi esatti degli elementi che collegano tra loro macchinari adiacenti. È possibile elencare più elementi con le virgole.", // note: connector names must be English even when playing in other languages + // Junimo hut options + // TODO + "config.title.junimo-huts": "Junimo hut behavior", + "config.junimo-hut-gems.name": "Gemstones", + "config.junimo-hut-gems.desc": "What Junimo huts should do with gemstone items. 'Auto-detect' will ignore them.", + "config.junimo-hut-fertilizer.name": "Fertilizer", + "config.junimo-hut-fertilizer.desc": "What Junimo huts should do with fertilizer items. 'Auto-detect' will ignore them if Better Junimos is installed, else move them from the hut into connected chests.", + "config.junimo-hut-seeds.name": "Seeds", + "config.junimo-hut-seeds.desc": "What Junimo huts should do with seed items. 'Auto-detect' will ignore them if Better Junimos is installed, else move them from the hut into connected chests.", + + // Junimo hut dropdown values + // TODO + "config.junimo-huts.auto-detect": "Auto-detect", + "config.junimo-huts.ignore": "Ignore them", + "config.junimo-huts.move-into-chests": "Move from Junimo huts into chests", + "config.junimo-huts.move-into-huts": "Move from chests into Junimo huts", + // machine overrides "config.title.machine-overrides": "Sovrascrittura macchinari", "config.override.ShippingBin-name": "Cassetta delle Spedizioni", diff --git a/Automate/i18n/ko.json b/Automate/i18n/ko.json index 87bc92bce..2a8b4eb99 100644 --- a/Automate/i18n/ko.json +++ b/Automate/i18n/ko.json @@ -6,21 +6,10 @@ "config.title.main-options": "메인 옵션", "config.enabled.name": "Enabled", // TODO "config.enabled.desc": "Whether to enable Automate features. If this is disabled, no machines will be automated and the overlay won't appear.", // TODO - "config.junimo-huts-output-gems.name": "주니모 오두막에서 보석 생산", - "config.junimo-huts-output-gems.desc": "주니모 오두막에서 보석을 꺼낼지 여부입니다.\ntrue인 경우 오두막에 보석을 놓아 주니모 색상을 변경할 수 없습니다.", "config.automation-interval.name": "자동화 간격", "config.automation-interval.desc": "각 자동화 공정 사이의 간격 수.(초당 60개, 2초당 120개 등)", "config.toggle-overlay-key.name": "오버레이 키 전환 ", "config.toggle-overlay-key.desc": "자동화 오버레이를 토글하는 키.", - - // mod compatibility - "config.title.mod-compatibility": "모드 호환성", - "config.better-junimos.name": "Better Junimos(더 나은 주니모)", - "config.better-junimos.desc": "Better Junimos 모드와의 호환성을 사용하도록 설정합니다.\n설치된 경우 주니모 오두막은 비료나 씨앗을 생산하지 않습니다.", - "config.better-junimos-transfer-seeds-to-junimo-huts.name": "Better Junimos: Transfer seeds", // TODO - "config.better-junimos-transfer-seeds-to-junimo-huts.desc": "If set, Junimo huts will accept seeds from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO - "config.better-junimos-transfer-fertilizers-to-junimo-huts.name": "Better Junimos: Transfer fertilizers", // TODO - "config.better-junimos-transfer-fertilizers-to-junimo-huts.desc": "If set, Junimo huts will accept fertilizers from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO "config.warn-for-missing-bridge-mod.name": "연결 모드 누락 경고", "config.warn-for-missing-bridge-mod.desc": "설치되지 않은 별도의 호환성 패치가 필요한 사용자 지정 모드를 설치한 경우 시작 시 경고를 기록할지 여부.", @@ -30,6 +19,23 @@ "config.custom-connectors.name": "사용자 지정 연결", "config.custom-connectors.desc": "인접한 기계를 서로 연결하는 항목의 정확한 영어 이름 입력.\n여러 항목을 쉼표로 나열할 수 있습니다.", // note: 다른 언어로 재생되는 경우에도 영어여야 합니다. + // Junimo hut options + // TODO + "config.title.junimo-huts": "Junimo hut behavior", + "config.junimo-hut-gems.name": "Gemstones", + "config.junimo-hut-gems.desc": "What Junimo huts should do with gemstone items. 'Auto-detect' will ignore them.", + "config.junimo-hut-fertilizer.name": "Fertilizer", + "config.junimo-hut-fertilizer.desc": "What Junimo huts should do with fertilizer items. 'Auto-detect' will ignore them if Better Junimos is installed, else move them from the hut into connected chests.", + "config.junimo-hut-seeds.name": "Seeds", + "config.junimo-hut-seeds.desc": "What Junimo huts should do with seed items. 'Auto-detect' will ignore them if Better Junimos is installed, else move them from the hut into connected chests.", + + // Junimo hut dropdown values + // TODO + "config.junimo-huts.auto-detect": "Auto-detect", + "config.junimo-huts.ignore": "Ignore them", + "config.junimo-huts.move-into-chests": "Move from Junimo huts into chests", + "config.junimo-huts.move-into-huts": "Move from chests into Junimo huts", + // machine overrides "config.title.machine-overrides": "기계 재설정", "config.override.ShippingBin-name": "배송 상자", diff --git a/Automate/i18n/pt.json b/Automate/i18n/pt.json index 0fd2b0cbb..0126c6a16 100644 --- a/Automate/i18n/pt.json +++ b/Automate/i18n/pt.json @@ -6,21 +6,10 @@ "config.title.main-options": "Opções Principais", "config.enabled.name": "Enabled", // TODO "config.enabled.desc": "Whether to enable Automate features. If this is disabled, no machines will be automated and the overlay won't appear.", // TODO - "config.junimo-huts-output-gems.name": "Cabanas Junimo retiram gemas", - "config.junimo-huts-output-gems.desc": "Tirar gemas de cabanas junimo. Se habilitado, você não poderá trocar cores de Junimos colocando gemas em suas cabanas.", "config.automation-interval.name": "Intervalo de Automação", "config.automation-interval.desc": "O número de ticks entre processos (60 para uma vez por segundo, 120 para cada dois segundos, etc).", "config.toggle-overlay-key.name": "Tecla de Interface", "config.toggle-overlay-key.desc": "A tecla que abrirá a interface de automação.", - - // mod compatibility - "config.title.mod-compatibility": "Compatibilidade de Mod", - "config.better-junimos.name": "Better Junimos", - "config.better-junimos.desc": "Ativa a compatibilidade com Better Junimos. Se estiver instalado, cabanas junimo não retirarão fertilizantes ou sementes.", - "config.better-junimos-transfer-seeds-to-junimo-huts.name": "Better Junimos: Transfer seeds", // TODO - "config.better-junimos-transfer-seeds-to-junimo-huts.desc": "If set, Junimo huts will accept seeds from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO - "config.better-junimos-transfer-fertilizers-to-junimo-huts.name": "Better Junimos: Transfer fertilizers", // TODO - "config.better-junimos-transfer-fertilizers-to-junimo-huts.desc": "If set, Junimo huts will accept fertilizers from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO "config.warn-for-missing-bridge-mod.name": "Aviso para falta de mod de ponte", "config.warn-for-missing-bridge-mod.desc": "Se deve ou não informar ao início caso você tenha instalado um mod de máquina customizada que requer um pacote de estabilidade que não está instalado.", @@ -30,6 +19,23 @@ "config.custom-connectors.name": "Conectores Customizados", "config.custom-connectors.desc": "Os nomes em inlgês de conectores que juntarão baús e máquinas. Você pode listar vários usando vírgulas. (Precisa ser em inglês).", // note: connector names must be English even when playing in other languages + // Junimo hut options + // TODO + "config.title.junimo-huts": "Junimo hut behavior", + "config.junimo-hut-gems.name": "Gemstones", + "config.junimo-hut-gems.desc": "What Junimo huts should do with gemstone items. 'Auto-detect' will ignore them.", + "config.junimo-hut-fertilizer.name": "Fertilizer", + "config.junimo-hut-fertilizer.desc": "What Junimo huts should do with fertilizer items. 'Auto-detect' will ignore them if Better Junimos is installed, else move them from the hut into connected chests.", + "config.junimo-hut-seeds.name": "Seeds", + "config.junimo-hut-seeds.desc": "What Junimo huts should do with seed items. 'Auto-detect' will ignore them if Better Junimos is installed, else move them from the hut into connected chests.", + + // Junimo hut dropdown values + // TODO + "config.junimo-huts.auto-detect": "Auto-detect", + "config.junimo-huts.ignore": "Ignore them", + "config.junimo-huts.move-into-chests": "Move from Junimo huts into chests", + "config.junimo-huts.move-into-huts": "Move from chests into Junimo huts", + // machine overrides "config.title.machine-overrides": "Prioridade de Máquinas", "config.override.ShippingBin-name": "Caixa de Remessas", diff --git a/Automate/i18n/ru.json b/Automate/i18n/ru.json index 3773e152f..d4f13752a 100644 --- a/Automate/i18n/ru.json +++ b/Automate/i18n/ru.json @@ -6,21 +6,10 @@ "config.title.main-options": "Основные опции", "config.enabled.name": "Включено", "config.enabled.desc": "Следует ли включать функции автоматизации. Если этот параметр отключен, никакие машины не будут автоматизированы и каналы соединения не будет работать.", - "config.junimo-huts-output-gems.name": "Хижины Джунимо могут собирать драгоценные камни", - "config.junimo-huts-output-gems.desc": "Можно ли вытаскивать драгоценные камни из хижин Джунимо. Если включено, то вы не сможете изменить цвета Джунимо, положив драгоценные камни в их хижину", "config.automation-interval.name": "Автоматизированный интервал", "config.automation-interval.desc": "Количество тиков между каждым процессом автоматизации (60 раз в секунду, 120 раз в две секунды и т.д.).", "config.toggle-overlay-key.name": "Клавиша переключения каналов соединения", "config.toggle-overlay-key.desc": "Клавиша, которая показывает каналы соединения для автоматизации.", - - // mod compatibility - "config.title.mod-compatibility": "Совместимость с модами", - "config.better-junimos.name": "Better Junimos", - "config.better-junimos.desc": "Включите совместимость с Better Junimos. Если он включен, Джунимо не будут удобрять почву или сеять семена.", - "config.better-junimos-transfer-seeds-to-junimo-huts.name": "Better Junimos: Transfer seeds", // TODO - "config.better-junimos-transfer-seeds-to-junimo-huts.desc": "If set, Junimo huts will accept seeds from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO - "config.better-junimos-transfer-fertilizers-to-junimo-huts.name": "Better Junimos: Transfer fertilizers", // TODO - "config.better-junimos-transfer-fertilizers-to-junimo-huts.desc": "If set, Junimo huts will accept fertilizers from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO "config.warn-for-missing-bridge-mod.name": "Предупреждение об отсутствии bridge mod", "config.warn-for-missing-bridge-mod.desc": "Регистрация предупреждение во время запуска, если вы установили custom-machine мод, который требует отдельного патча, если он не установлен.", @@ -30,6 +19,23 @@ "config.custom-connectors.name": "Пользовательские соединения", "config.custom-connectors.desc": "Точное название предмета на английском, который соединит соседние машины вместе. Вы можете перечислить несколько предметов с помощью запятых.", // note: названия пользовательских предметов должны быть английскими даже при воспроизведении на других языках + // Junimo hut options + // TODO + "config.title.junimo-huts": "Junimo hut behavior", + "config.junimo-hut-gems.name": "Gemstones", + "config.junimo-hut-gems.desc": "What Junimo huts should do with gemstone items. 'Auto-detect' will ignore them.", + "config.junimo-hut-fertilizer.name": "Fertilizer", + "config.junimo-hut-fertilizer.desc": "What Junimo huts should do with fertilizer items. 'Auto-detect' will ignore them if Better Junimos is installed, else move them from the hut into connected chests.", + "config.junimo-hut-seeds.name": "Seeds", + "config.junimo-hut-seeds.desc": "What Junimo huts should do with seed items. 'Auto-detect' will ignore them if Better Junimos is installed, else move them from the hut into connected chests.", + + // Junimo hut dropdown values + // TODO + "config.junimo-huts.auto-detect": "Auto-detect", + "config.junimo-huts.ignore": "Ignore them", + "config.junimo-huts.move-into-chests": "Move from Junimo huts into chests", + "config.junimo-huts.move-into-huts": "Move from chests into Junimo huts", + // machine overrides "config.title.machine-overrides": "Машины отправки товаров", "config.override.ShippingBin-name": "Ящик продажи", diff --git a/Automate/i18n/tr.json b/Automate/i18n/tr.json index f9c59a334..9b922157b 100644 --- a/Automate/i18n/tr.json +++ b/Automate/i18n/tr.json @@ -6,21 +6,10 @@ "config.title.main-options": "Ana Seçenekler", "config.enabled.name": "Etkin", "config.enabled.desc": "Otomasyon özelliklerinin aktifleştirilip aktifleştirilmeyeceği. Devre dışı bırakıldıysa hiçbir makine otomatik olarak çalışmaz.", - "config.junimo-huts-output-gems.name": "Junimo kulübelerinden değerli taş çıkar", - "config.junimo-huts-output-gems.desc": "Junimo kulübelerinden değerli taş çıkıp çıkmayacağı. Eğer etkinse, kulübelerine değerli taşlar yerleştirerek Junimo renklerini değiştiremezsiniz.", "config.automation-interval.name": "Otomasyon aralığı", "config.automation-interval.desc": "Her bir otomasyon süreci arasındaki tıklama sayısı (saniyede bir kez 60, iki saniyede bir 120, vb.).", "config.toggle-overlay-key.name": "Kaplama anahtarını aç/kapat", "config.toggle-overlay-key.desc": "Otomasyon kaplamasını değiştiren tuşlar.", - - // mod compatibility - "config.title.mod-compatibility": "Mod uyumluluğu", - "config.better-junimos.name": "Daha iyi Junimolar", - "config.better-junimos.desc": "Daha iyi Junimolar ile uyumluluğu etkinleştirir. Kuruluysa, Junimo kulübeleri gübre veya tohum vermez.", - "config.better-junimos-transfer-seeds-to-junimo-huts.name": "Better Junimos: Transfer seeds", // TODO - "config.better-junimos-transfer-seeds-to-junimo-huts.desc": "If set, Junimo huts will accept seeds from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO - "config.better-junimos-transfer-fertilizers-to-junimo-huts.name": "Better Junimos: Transfer fertilizers", // TODO - "config.better-junimos-transfer-fertilizers-to-junimo-huts.desc": "If set, Junimo huts will accept fertilizers from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO "config.warn-for-missing-bridge-mod.name": "Eksik köprü modu için uyar", "config.warn-for-missing-bridge-mod.desc": "Yüklenmemiş ayrı bir uyumluluk düzeltme eki gerektiren bir özel makine modu yüklediyseniz, başlangıçta bir uyarının günlüğe kaydedilip kaydedilmeyeceği.", @@ -30,6 +19,23 @@ "config.custom-connectors.name": "Özel bağlayıcılar", "config.custom-connectors.desc": "Bitişik makineleri birbirine bağlayan öğelerin tam İngilizce adları. Birden çok öğeyi virgülle listeleyebilirsiniz.", + // Junimo hut options + // TODO + "config.title.junimo-huts": "Junimo hut behavior", + "config.junimo-hut-gems.name": "Gemstones", + "config.junimo-hut-gems.desc": "What Junimo huts should do with gemstone items. 'Auto-detect' will ignore them.", + "config.junimo-hut-fertilizer.name": "Fertilizer", + "config.junimo-hut-fertilizer.desc": "What Junimo huts should do with fertilizer items. 'Auto-detect' will ignore them if Better Junimos is installed, else move them from the hut into connected chests.", + "config.junimo-hut-seeds.name": "Seeds", + "config.junimo-hut-seeds.desc": "What Junimo huts should do with seed items. 'Auto-detect' will ignore them if Better Junimos is installed, else move them from the hut into connected chests.", + + // Junimo hut dropdown values + // TODO + "config.junimo-huts.auto-detect": "Auto-detect", + "config.junimo-huts.ignore": "Ignore them", + "config.junimo-huts.move-into-chests": "Move from Junimo huts into chests", + "config.junimo-huts.move-into-huts": "Move from chests into Junimo huts", + // machine overrides "config.title.machine-overrides": "Makine geçersiz kılmaları", "config.override.ShippingBin-name": "Nakliye Kutusu", diff --git a/Automate/i18n/uk.json b/Automate/i18n/uk.json index 56bf788f7..82d6e6184 100644 --- a/Automate/i18n/uk.json +++ b/Automate/i18n/uk.json @@ -6,21 +6,10 @@ "config.title.main-options": "Основні налаштування", "config.enabled.name": "Увімкнено", "config.enabled.desc": "Чи треба вмикати можливості моду Automate. Якщо вимкнено, жодна з машин не буде автоматизована і не буде з'являтися накладання.", - "config.junimo-huts-output-gems.name": "Будиночки Джунімо виробляють коштовності", - "config.junimo-huts-output-gems.desc": "Збирання коштовностей з будиночків Джунімо. Якщо увімкнено, то ви не зможете змінити кольори Джунімо, поклавши коштовність в їхній будиночок.", "config.automation-interval.name": "Інтервал автоматизації", "config.automation-interval.desc": "Кількість тактів між кожним процесом автоматизації (60 разів на секунду, 120 кожні дві секунди тощо).", "config.toggle-overlay-key.name": "Клавіша перемикання накладання", "config.toggle-overlay-key.desc": "Клавіші перемикання накладання автоматизації.", - - // mod compatibility - "config.title.mod-compatibility": "Сумісність модів", - "config.better-junimos.name": "Better Junimos", - "config.better-junimos.desc": "Увімкнення сумісністі з Better Junimos. Якщо увімкнено, то будиночки Джунімо не видаватимуть добрива чи насіння.", - "config.better-junimos-transfer-seeds-to-junimo-huts.name": "Better Junimos: Transfer seeds", // TODO - "config.better-junimos-transfer-seeds-to-junimo-huts.desc": "If set, Junimo huts will accept seeds from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO - "config.better-junimos-transfer-fertilizers-to-junimo-huts.name": "Better Junimos: Transfer fertilizers", // TODO - "config.better-junimos-transfer-fertilizers-to-junimo-huts.desc": "If set, Junimo huts will accept fertilizers from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO "config.warn-for-missing-bridge-mod.name": "Попередженння про відсутність моду Bridge Mod", "config.warn-for-missing-bridge-mod.desc": "Реєстрування попередження під час запуску, якщо ви встановили спеціальний мод, котрий вимагає окремого моду, який не встановлено.", @@ -30,6 +19,23 @@ "config.custom-connectors.name": "Користувацьке з'єднання", "config.custom-connectors.desc": "Точні англійські назви предметів, які з'єднують сусідні машини разом. Ви можете перерахувати кілька предметів комами.", // note: connector names must be English even when playing in other languages + // Junimo hut options + // TODO + "config.title.junimo-huts": "Junimo hut behavior", + "config.junimo-hut-gems.name": "Gemstones", + "config.junimo-hut-gems.desc": "What Junimo huts should do with gemstone items. 'Auto-detect' will ignore them.", + "config.junimo-hut-fertilizer.name": "Fertilizer", + "config.junimo-hut-fertilizer.desc": "What Junimo huts should do with fertilizer items. 'Auto-detect' will ignore them if Better Junimos is installed, else move them from the hut into connected chests.", + "config.junimo-hut-seeds.name": "Seeds", + "config.junimo-hut-seeds.desc": "What Junimo huts should do with seed items. 'Auto-detect' will ignore them if Better Junimos is installed, else move them from the hut into connected chests.", + + // Junimo hut dropdown values + // TODO + "config.junimo-huts.auto-detect": "Auto-detect", + "config.junimo-huts.ignore": "Ignore them", + "config.junimo-huts.move-into-chests": "Move from Junimo huts into chests", + "config.junimo-huts.move-into-huts": "Move from chests into Junimo huts", + // machine overrides "config.title.machine-overrides": "Перевизначення машини", "config.override.ShippingBin-name": "Ящик для продажу", diff --git a/Automate/i18n/zh.json b/Automate/i18n/zh.json index 0d2a69b51..6b2f8b772 100644 --- a/Automate/i18n/zh.json +++ b/Automate/i18n/zh.json @@ -6,21 +6,10 @@ "config.title.main-options": "主要选项", "config.enabled.name": "启用", "config.enabled.desc": "是否启用自动化功能。如果禁用此选项,则不会自动运行任何机器,热键也不能使用", - "config.junimo-huts-output-gems.name": "祝尼魔小屋输出宝石", - "config.junimo-huts-output-gems.desc": "是否将宝石从祝尼魔小屋中拉出。 如果设置为true,你将无法通过在祝尼魔小屋中放置宝石来改变祝尼魔的颜色。", "config.automation-interval.name": "自动化间隔", "config.automation-interval.desc": "每个自动化进程之间的间隔数 (每1秒60,每2秒120,以此类推).", "config.toggle-overlay-key.name": "切换配置键位", "config.toggle-overlay-key.desc": "切换自动化配置的键位", - - // mod compatibility - "config.title.mod-compatibility": "模组兼容性", - "config.better-junimos.name": "Better Junimos(更好的祝尼魔)", - "config.better-junimos.desc": "启用与 Better Junimos 的兼容性。 如果安装该模组,祝尼魔小屋不会输出肥料或种子", - "config.better-junimos-transfer-seeds-to-junimo-huts.name": "Better Junimos: Transfer seeds", // TODO - "config.better-junimos-transfer-seeds-to-junimo-huts.desc": "If set, Junimo huts will accept seeds from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO - "config.better-junimos-transfer-fertilizers-to-junimo-huts.name": "Better Junimos: Transfer fertilizers", // TODO - "config.better-junimos-transfer-fertilizers-to-junimo-huts.desc": "If set, Junimo huts will accept fertilizers from connected chests. Does nothing if Better Junimos mod compatibility is disabled.", // TODO "config.warn-for-missing-bridge-mod.name": "缺少连接模块警告", "config.warn-for-missing-bridge-mod.desc": "如果你安装了自定义机器模组但未安装其所需要另外安装的兼容性补丁,是否在启动时记录警告", @@ -30,6 +19,23 @@ "config.custom-connectors.name": "自定义连接", "config.custom-connectors.desc": "将相邻机器连接在一起的项目的确切英文名称,您可以使用逗号列出多个项目(注意逗号的输入法)", // note: connector names must be English even when playing in other languages + // Junimo hut options + // TODO + "config.title.junimo-huts": "Junimo hut behavior", + "config.junimo-hut-gems.name": "Gemstones", + "config.junimo-hut-gems.desc": "What Junimo huts should do with gemstone items. 'Auto-detect' will ignore them.", + "config.junimo-hut-fertilizer.name": "Fertilizer", + "config.junimo-hut-fertilizer.desc": "What Junimo huts should do with fertilizer items. 'Auto-detect' will ignore them if Better Junimos is installed, else move them from the hut into connected chests.", + "config.junimo-hut-seeds.name": "Seeds", + "config.junimo-hut-seeds.desc": "What Junimo huts should do with seed items. 'Auto-detect' will ignore them if Better Junimos is installed, else move them from the hut into connected chests.", + + // Junimo hut dropdown values + // TODO + "config.junimo-huts.auto-detect": "Auto-detect", + "config.junimo-huts.ignore": "Ignore them", + "config.junimo-huts.move-into-chests": "Move from Junimo huts into chests", + "config.junimo-huts.move-into-huts": "Move from chests into Junimo huts", + // machine overrides "config.title.machine-overrides": "机器禁用", "config.override.ShippingBin-name": "出货箱",