diff --git a/HarmonySrc/CinerariumCraft.cs b/HarmonySrc/CinerariumCraft.cs index e8e5782..4db5a02 100644 --- a/HarmonySrc/CinerariumCraft.cs +++ b/HarmonySrc/CinerariumCraft.cs @@ -171,6 +171,45 @@ namespace NecromancerTome } } + // 2б. Кузня: вход сырья держать полным (24.10, пользователь: «Места не должны пустовать. Нужно чтобы заполнены были + // обе ячейки»). Раньше сырьё подкладывалось, только когда переплавленного не хватало даже на одну штуку, - кузня + // плавила остатки, и дух ставил цемент по одному. Изготовление - первым делом (выше), подкладка - следующим. + if (hasSample) + { + string name = sample.itemValue.ItemClass?.GetItemName(); + foreach (Station st in stations) + { + if (!st.Te.isModuleUsed[MaterialModule] || !OutputHasRoom(st.Te, sample) && !outRoom) + { + continue; + } + foreach (Recipe r in CraftingManager.GetRecipes(name)) + { + if (r.IsScrap || !AreaFits(r, st.Areas) || owner != null && !r.IsUnlocked(owner)) + { + continue; + } + foreach (ItemStack ing in r.ingredients) + { + string iname = ing?.itemValue?.ItemClass?.GetItemName(); + if (iname == null || UnitSlot(st.Te, iname) < 0) + { + continue; + } + if (FeedMaterial(st, iname, src, _dry, out Vector3i? rawAt)) + { + _from = rawAt; + if (!_dry) + { + Ignite(st.Te, src, false); + } + return st.Pos; + } + } + } + } + } + // 3. Огонь: работа есть - топливо и огонь; нет - погасить (экономия топлива). foreach (Station st in stations) { diff --git a/NecromancerHarmony.dll b/NecromancerHarmony.dll index d0bb745..0f85262 100644 Binary files a/NecromancerHarmony.dll and b/NecromancerHarmony.dll differ diff --git a/NecromancerHarmony.pdb b/NecromancerHarmony.pdb index 3eebe71..c0cbd12 100644 Binary files a/NecromancerHarmony.pdb and b/NecromancerHarmony.pdb differ