Фильтр логиста: семена (и кровавые) - «Семена»; новые группы «Живность» и «Транспорт» (#18)
Проверка всех предметов: кровавые семена были в «Некромантии» и уходили от сборщика; куры и сложенный транспорт падали в «Прочее». Новые группы у старых урн берут выбор «Прочего». Пятый ряд значков. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
aa26e97b71
commit
60d84ff739
@@ -64,6 +64,8 @@ necroGroup19,UI,Tooltip,,,,Blocks,,Blöcke,Bloques,Blocs,Blocchi,ブロック,
|
||||
necroGroup20,UI,Tooltip,,,,Necromancy,,Nekromantie,Nigromancia,Nécromancie,Negromanzia,降霊術,강령술,Nekromancja,Necromancia,Некромантия,Nekromansi,亡灵法术,亡靈法術
|
||||
necroGroup21,UI,Tooltip,,,,Other,,Sonstiges,Otros,Divers,Altro,その他,기타,Inne,Outros,Прочее,Diğer,其他,其他
|
||||
necroGroup22,UI,Tooltip,,,,Chicken feed,,Hühnerfutter,Pienso para gallinas,Nourriture pour poules,Mangime per galline,鶏の餌,닭 모이,Karma dla kur,Ração para galinhas,Корм для кур,Tavuk yemi,鸡饲料,雞飼料
|
||||
necroGroup23,UI,Tooltip,,,,Livestock,,Nutztiere,Animales de granja,Animaux de ferme,Animali da cortile,家畜,가축,Zwierzęta hodowlane,Criação,Живность,Çiftlik hayvanları,家畜,家畜
|
||||
necroGroup24,UI,Tooltip,,,,Vehicles,,Fahrzeuge,Vehículos,Véhicules,Veicoli,乗り物,탈것,Pojazdy,Veículos,Транспорт,Araçlar,载具,載具
|
||||
necroGroupOn,UI,Tooltip,,,,carried,,wird getragen,se transporta,transporté,si trasporta,運ぶ,옮김,przenoszone,transportado,носит,taşınır,搬运,搬運
|
||||
necroGroupOff,UI,Tooltip,,,,not carried,,wird nicht getragen,no se transporta,pas transporté,non si trasporta,運ばない,옮기지 않음,nieprzenoszone,não transportado,не носит,taşınmaz,不搬运,不搬運
|
||||
necroUrnFilterTitle,UI,Tooltip,,,,What to carry,,Was tragen,Qué llevar,Quoi porter,Cosa portare,運ぶもの,옮길 것,Co nosić,O que levar,Что носить,Ne taşınsın,搬运什么,搬運什麼
|
||||
|
||||
|
@@ -210,9 +210,9 @@
|
||||
</append>
|
||||
<!-- Фильтр урны-логиста (16.10.2026, HarmonySrc/CinerariumFilterWindow.cs, CinerariumGroups.cs): значки групп предметов
|
||||
в окне «Содержимое» рядом с ячейкой черепа. Окно в группе bagStorage (xui.xml) - контроллер прячет его, если окно
|
||||
открыто не урной-логистом (сумки транспорта и волка). f0..f21 - рамки, g0..g21 - значки (иконки ставит контроллер). -->
|
||||
открыто не урной-логистом (сумки транспорта и волка). f0..f24 - рамки, g0..g24 - значки (иконки ставит контроллер). -->
|
||||
<append xpath="/windows">
|
||||
<window name="necroUrnFilter" width="348" height="279" depth="5" panel="Left" backgroundcolor="[black]" cursor_area="true" controller="NecromancerTome.NecroUrnFilter, NecromancerHarmony">
|
||||
<window name="necroUrnFilter" width="348" height="335" depth="5" panel="Left" backgroundcolor="[black]" cursor_area="true" controller="NecromancerTome.NecroUrnFilter, NecromancerHarmony">
|
||||
<rect name="header" height="43" depth="0">
|
||||
<sprite depth="1" name="headerbackground" sprite="ui_game_panel_header" width="348" height="43" />
|
||||
<sprite depth="3" name="windowIcon" style="icon32px" pivot="center" pos="21,-21" sprite="ui_game_symbol_sort" />
|
||||
@@ -264,6 +264,10 @@
|
||||
<sprite depth="3" name="g21" pos="176,-219" width="48" height="48" atlas="ItemIconAtlas" sprite="oldCash" on_press="true" sound="[paging_click]" foregroundlayer="true" />
|
||||
<sprite depth="2" name="f22" pos="230,-217" width="52" height="52" sprite="menu_empty2px" type="sliced" fillcenter="false" />
|
||||
<sprite depth="3" name="g22" pos="232,-219" width="48" height="48" atlas="ItemIconAtlas" sprite="oldCash" on_press="true" sound="[paging_click]" foregroundlayer="true" />
|
||||
<sprite depth="2" name="f23" pos="286,-217" width="52" height="52" sprite="menu_empty2px" type="sliced" fillcenter="false" />
|
||||
<sprite depth="3" name="g23" pos="288,-219" width="48" height="48" atlas="ItemIconAtlas" sprite="oldCash" on_press="true" sound="[paging_click]" foregroundlayer="true" />
|
||||
<sprite depth="2" name="f24" pos="6,-273" width="52" height="52" sprite="menu_empty2px" type="sliced" fillcenter="false" />
|
||||
<sprite depth="3" name="g24" pos="8,-275" width="48" height="48" atlas="ItemIconAtlas" sprite="oldCash" on_press="true" sound="[paging_click]" foregroundlayer="true" />
|
||||
</window>
|
||||
</append>
|
||||
<!-- Лимит урн (#65, 23.10.2026; HarmonySrc/CinerariumLimitPanel.cs): блок справа от ячеек урны в «Содержимом» - всего,
|
||||
|
||||
@@ -355,10 +355,13 @@ namespace NecromancerTome
|
||||
known = v;
|
||||
}
|
||||
}
|
||||
// Группы, которых урна ещё не знала: корм кур раньше ехал с «Сырым» - берёт его выбор, прочие новые - включены.
|
||||
// Группы, которых урна ещё не знала, берут выбор группы, где их предметы лежали раньше: корм кур - «Сырое»,
|
||||
// живность и транспорт (23.10) - «Прочее»; остальные новые - включены.
|
||||
for (int g = known; g < CinerariumGroups.Count; g++)
|
||||
{
|
||||
bool on = g == CinerariumGroups.ChickenFeed ? (GroupMask & (1u << CinerariumGroups.Raw)) != 0 : true;
|
||||
int from = g == CinerariumGroups.ChickenFeed ? CinerariumGroups.Raw :
|
||||
g == CinerariumGroups.Livestock || g == CinerariumGroups.Vehicles ? CinerariumGroups.Other : -1;
|
||||
bool on = from < 0 || (GroupMask & (1u << from)) != 0;
|
||||
GroupMask = on ? GroupMask | (1u << g) : GroupMask & ~(1u << g);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,8 +19,10 @@ namespace NecromancerTome
|
||||
Ingots = 9, Parts = 10, Materials = 11, Chemicals = 12, Tools = 13, Weapons = 14, Ammo = 15, Armor = 16, Mods = 17,
|
||||
Books = 18, Blocks = 19, Necro = 20, Other = 21,
|
||||
// 17.10: «Корм для кур вынеси в отдельную группу» (был в «Сыром»).
|
||||
ChickenFeed = 22;
|
||||
public const int Count = 23;
|
||||
ChickenFeed = 22,
|
||||
// 23.10 (проверка всех предметов: куры и сложенный транспорт падали в «Прочее»; «Можно и добавить группы»).
|
||||
Livestock = 23, Vehicles = 24;
|
||||
public const int Count = 25;
|
||||
public const uint All = (1u << Count) - 1;
|
||||
|
||||
/// <summary>Значок группы - иконка типичного предмета (ItemIconAtlas).</summary>
|
||||
@@ -30,10 +32,10 @@ namespace NecromancerTome
|
||||
"drinkJarBoiledWater", "medicalFirstAidKit", "resourceRockSmall", "resourceForgedSteel", "resourceMechanicalParts",
|
||||
"resourceWood", "resourceGunPowder", "meleeToolPickT1IronPickaxe", "gunHandgunT1Pistol", "ammo9mmBulletBall",
|
||||
"armorMinerHelmet", "modGunLaserSight", "bookArtOfMiningLuckyStrike", "cobblestoneMaster", "necroSkull", "oldCash",
|
||||
"resourceChickenFeed"
|
||||
"resourceChickenFeed", "domesticatedChicken", "vehicleMinibikePlaceable"
|
||||
};
|
||||
|
||||
/// <summary>Ключ названия группы в Localization.csv: necroGroup0..necroGroup22.</summary>
|
||||
/// <summary>Ключ названия группы в Localization.csv: necroGroup0..necroGroup24.</summary>
|
||||
public static string NameKey(int _g) => "necroGroup" + _g;
|
||||
|
||||
static readonly HashSet<string> OreNames = new HashSet<string>
|
||||
@@ -124,6 +126,21 @@ namespace NecromancerTome
|
||||
static int Classify(ItemClass _ic, ItemValue _iv)
|
||||
{
|
||||
string n = _ic.GetItemName() ?? "";
|
||||
// 23.10: семена - раньше «Некромантии»: кровавые семена (plantedNecroBloodRose1) уходили с грядок к логисту
|
||||
// «только некромантия», и сборщику нечего было сеять. Всё, что сажается на грядку, - «Семена».
|
||||
if (_ic.IsBlock() && new ItemValue(_ic.Id).ToBlockValue().Block is BlockPlantGrowing)
|
||||
{
|
||||
return Seeds;
|
||||
}
|
||||
// 23.10: живность (куры для курятника, кролик в мешке) и сложенный транспорт - свои группы.
|
||||
if (n.StartsWith("domesticated") || n == RabbitGrab.SackItem)
|
||||
{
|
||||
return Livestock;
|
||||
}
|
||||
if (n.StartsWith("vehicle") && n.EndsWith("Placeable"))
|
||||
{
|
||||
return Vehicles;
|
||||
}
|
||||
// 23.10: жестяные банки - предметы мода, но по смыслу это стеклянные банки игры (кипятить воду) - к ним, не в «Некромантию».
|
||||
if (n.StartsWith("tinCan"))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user