Ремонтник и лутер: зона из 3x3 квадратов, лишние выключаются (#84)

Сетка «Где работать» в «Содержимом» урны, квадраты очерчены линиями при
показе границ; выключенные квадраты обход пропускает. Сохраняется пятым
числом v6 (старая DLL его пропустит). Консоль: necrourn x y z sectors.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
AlexCube
2026-10-28 10:21:39 +03:00
co-authored by Claude Opus 5.5
parent 9a567b6ac0
commit 96d930e5bb
9 changed files with 302 additions and 17 deletions
File diff suppressed because one or more lines are too long
+32
View File
@@ -272,6 +272,38 @@
<sprite depth="3" name="g25" pos="64,-275" width="48" height="48" atlas="ItemIconAtlas" sprite="oldCash" on_press="true" sound="[paging_click]" foregroundlayer="true" />
</window>
</append>
<!-- Квадраты зоны ремонтника и лутера (#84, 28.10.2026, HarmonySrc/CinerariumZoneWindow.cs): сетка 3x3 в окне «Содержимое»,
север сверху, урна в среднем. Окно в группе bagStorage (xui.xml), вне урн с большой зоной скрыто. s0..s8 - квадраты
(столбец + строка * 3, строка 0 - юг), f0..f8 - их рамки; цвета ставит контроллер. -->
<append xpath="/windows">
<window name="necroUrnZone" width="228" height="296" depth="5" panel="Left" backgroundcolor="[black]" cursor_area="true" controller="NecromancerTome.NecroUrnZone, NecromancerHarmony">
<rect name="header" height="43" depth="0">
<sprite depth="1" name="headerbackground" sprite="ui_game_panel_header" width="228" height="43" />
<sprite depth="3" name="windowIcon" style="icon32px" pivot="center" pos="21,-21" sprite="ui_game_symbol_frames" />
<label depth="2" name="title" pos="39,-6" width="183" height="32" text_key="necroUrnZoneTitle" font_size="26" />
</rect>
<label depth="2" name="north" pos="0,-49" width="228" height="22" justify="center" font_size="20" color="200,200,205" text_key="necroUrnZoneNorth" />
<sprite depth="2" name="f6" pos="10,-74" width="68" height="68" sprite="menu_empty2px" type="sliced" fillcenter="false" />
<sprite depth="3" name="s6" pos="12,-76" width="64" height="64" sprite="menu_empty2px" type="sliced" on_press="true" sound="[paging_click]" />
<sprite depth="2" name="f7" pos="80,-74" width="68" height="68" sprite="menu_empty2px" type="sliced" fillcenter="false" />
<sprite depth="3" name="s7" pos="82,-76" width="64" height="64" sprite="menu_empty2px" type="sliced" on_press="true" sound="[paging_click]" />
<sprite depth="2" name="f8" pos="150,-74" width="68" height="68" sprite="menu_empty2px" type="sliced" fillcenter="false" />
<sprite depth="3" name="s8" pos="152,-76" width="64" height="64" sprite="menu_empty2px" type="sliced" on_press="true" sound="[paging_click]" />
<sprite depth="2" name="f3" pos="10,-144" width="68" height="68" sprite="menu_empty2px" type="sliced" fillcenter="false" />
<sprite depth="3" name="s3" pos="12,-146" width="64" height="64" sprite="menu_empty2px" type="sliced" on_press="true" sound="[paging_click]" />
<sprite depth="2" name="f4" pos="80,-144" width="68" height="68" sprite="menu_empty2px" type="sliced" fillcenter="false" />
<sprite depth="3" name="s4" pos="82,-146" width="64" height="64" sprite="menu_empty2px" type="sliced" on_press="true" sound="[paging_click]" />
<sprite depth="2" name="f5" pos="150,-144" width="68" height="68" sprite="menu_empty2px" type="sliced" fillcenter="false" />
<sprite depth="3" name="s5" pos="152,-146" width="64" height="64" sprite="menu_empty2px" type="sliced" on_press="true" sound="[paging_click]" />
<sprite depth="2" name="f0" pos="10,-214" width="68" height="68" sprite="menu_empty2px" type="sliced" fillcenter="false" />
<sprite depth="3" name="s0" pos="12,-216" width="64" height="64" sprite="menu_empty2px" type="sliced" on_press="true" sound="[paging_click]" />
<sprite depth="2" name="f1" pos="80,-214" width="68" height="68" sprite="menu_empty2px" type="sliced" fillcenter="false" />
<sprite depth="3" name="s1" pos="82,-216" width="64" height="64" sprite="menu_empty2px" type="sliced" on_press="true" sound="[paging_click]" />
<sprite depth="2" name="f2" pos="150,-214" width="68" height="68" sprite="menu_empty2px" type="sliced" fillcenter="false" />
<sprite depth="3" name="s2" pos="152,-216" width="64" height="64" sprite="menu_empty2px" type="sliced" on_press="true" sound="[paging_click]" />
<sprite depth="4" name="urn" pos="114,-178" width="36" height="36" pivot="center" sprite="ui_game_symbol_skull" color="[white]" />
</window>
</append>
<!-- Лимит урн (#65, 23.10.2026; HarmonySrc/CinerariumLimitPanel.cs): блок справа от ячеек урны в «Содержимом» - всего,
доступно, до следующей. Позицию по числу ячеек ставит контроллер; вне урны блок скрыт. -->
<append xpath="/windows/window[@name='windowBagStorage']">
+1
View File
@@ -62,5 +62,6 @@
<!-- Фильтр урны-логиста - в окне хранилища игры (bagStorage), рядом с ячейкой «Содержимого» (windows.xml). -->
<append xpath="/xui/window_group[@name='bagStorage']">
<window name="necroUrnFilter" />
<window name="necroUrnZone" />
</append>
</xui>