Урна рабочего: вход сырья кузни держать полным (#19)
Сырьё подкладывалось, только когда переплавленного не хватало на одну штуку - кузня плавила остатки, цемент шёл по одному. Теперь отдельное дело: есть место во входе под материал рецепта образца - доложить сырьё до стака (после изготовления). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
b4335a0448
commit
cc9c0366f0
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user