diff --git a/Config/Localization.csv b/Config/Localization.csv
index 66803e7..5628016 100644
--- a/Config/Localization.csv
+++ b/Config/Localization.csv
@@ -104,6 +104,8 @@ necroCinerariumDesc,blocks,Block,,,,"A funeral urn that houses a skull taken fro
necroCinerariumSkull,blocks,Block,,,,Harvest Cinerarium (with skull),,Ernte-Cinerarium (mit Schädel),Cinerario de cosecha (con cráneo),Cinéraire des moissons (avec crâne),Cinerario del raccolto (con teschio),収穫の納骨壺(頭蓋骨入り),수확의 유골함 (두개골 포함),Cinerarium żniw (z czaszką),Cinerário da colheita (com crânio),Цинерарий с черепом,Hasat Küllüğü (kafatasıyla),丰收骨灰瓮(含头骨),豐收骨灰甕(含頭骨)
blockcommand_TEFeatureCinerarium:trunk,blocks,Block,,,,Trunk,,Kofferraum,Maletero,Coffre,Bagagliaio,トランク,트렁크,Bagażnik,Porta-malas,Багажник,Bagaj,后备箱,後車廂
blockcommand_trunk,blocks,Block,,,,Trunk,,Kofferraum,Maletero,Coffre,Bagagliaio,トランク,트렁크,Bagażnik,Porta-malas,Багажник,Bagaj,后备箱,後車廂
+blockcommand_TEFeatureCinerarium:bag,blocks,Block,,,,Bag,,Tasche,Bolsa,Sac,Borsa,鞄,가방,Torba,Bolsa,Сумка,Çanta,背包,背包
+blockcommand_bag,blocks,Block,,,,Bag,,Tasche,Bolsa,Sac,Borsa,鞄,가방,Torba,Bolsa,Сумка,Çanta,背包,背包
blockcommand_TEFeatureCinerarium:urn_repair,blocks,Block,,,,Repair,,Reparieren,Reparar,Réparer,Riparare,修理,수리,Napraw,Reparar,Починить,Onar,修理,修理
blockcommand_urn_repair,blocks,Block,,,,Repair,,Reparieren,Reparar,Réparer,Riparare,修理,수리,Napraw,Reparar,Починить,Onar,修理,修理
necroCinerariumNoBones,UI,Tooltip,,,,Repair needs 5 bones,,Zum Reparieren braucht es 5 Knochen,Reparar requiere 5 huesos,Réparer demande 5 os,Per riparare servono 5 ossa,修理には骨が5本必要,수리에는 뼈 5개가 필요하다,Naprawa wymaga 5 kości,Reparar exige 5 ossos,Для починки нужно 5 костей,Onarmak için 5 kemik gerekir,修理需要5根骨头,修理需要5根骨頭
diff --git a/HarmonySrc/Cinerarium.cs b/HarmonySrc/Cinerarium.cs
index c206c04..6f74096 100644
--- a/HarmonySrc/Cinerarium.cs
+++ b/HarmonySrc/Cinerarium.cs
@@ -117,10 +117,14 @@ namespace NecromancerTome
/// Меню как у велосипеда (EntityVehicle.InitLocalActivationCommands): «service» - багажник (у транспорта
/// «Обслуживание», окно модификаций), «wrench» - починить, «frames» - границы, как у земельного камня. Сумку даёт
- /// TEFeatureStorage («Search»), подъём - TEFeaturePickup («Take»), обе детали игры.
+ /// TEFeatureStorage, подъём - TEFeaturePickup («Take»), обе детали игры. «Сумка» (16.10: «переименуй в Сумка») -
+ /// своя команда с иконкой мешка, как «Хранилище» у транспорта: открывает то же хранилище командой
+ /// TEFeatureStorage:Search (составной блок выполняет команду по имени, не глядя на enabled), а «Обыскать» игры у
+ /// урны спрятан. Стоит первой - короткое E открывает сумку.
public override void InitBlockActivationCommands(Action _addCallback)
{
base.InitBlockActivationCommands(_addCallback);
+ _addCallback(new BlockActivationCommand("bag", "loot_sack", _enabled: false), TileEntityComposite.EBlockCommandOrder.First, FeatureData);
_addCallback(new BlockActivationCommand("trunk", "service", _enabled: false), TileEntityComposite.EBlockCommandOrder.Normal, FeatureData);
_addCallback(new BlockActivationCommand("urn_repair", "wrench", _enabled: false), TileEntityComposite.EBlockCommandOrder.Normal, FeatureData);
_addCallback(new BlockActivationCommand("bounds_show", "frames", _enabled: false), TileEntityComposite.EBlockCommandOrder.Normal, FeatureData);
@@ -430,10 +434,14 @@ namespace NecromancerTome
{
continue;
}
- if (text.EndsWith(":trunk") || text == "trunk")
+ if (text.EndsWith(":trunk") || text == "trunk" || text.EndsWith(":bag"))
{
_commands[i].enabled = true;
}
+ else if (text == "TEFeatureStorage:Search")
+ {
+ _commands[i].enabled = false; // вместо него - «Сумка»
+ }
else if (text.EndsWith("urn_repair"))
{
_commands[i].enabled = _world != null && _world.GetBlock(_blockPos).damage > 0;
@@ -469,8 +477,9 @@ namespace NecromancerTome
}
bool skull = _commandName.EndsWith(":trunk") || _commandName == "trunk";
bool repair = _commandName.EndsWith("urn_repair");
+ bool bag = _commandName.EndsWith("TEFeatureCinerarium:bag");
bool bounds = _commandName.EndsWith("bounds_show") || _commandName.EndsWith("bounds_hide");
- if (!skull && !bounds && !repair)
+ if (!skull && !bounds && !repair && !bag)
{
return true;
}
@@ -480,6 +489,11 @@ namespace NecromancerTome
{
return true;
}
+ if (bag)
+ {
+ __result = composite.OnBlockActivated(null, "TEFeatureStorage:Search", world, _blockPos, world.GetBlock(_blockPos), _player);
+ return false;
+ }
if (skull)
{
XUiC_NecroCinerariumSkullGrid.Open(_player, urn);
diff --git a/NecromancerHarmony.dll b/NecromancerHarmony.dll
index 9ecb36c..8c6ca6b 100644
Binary files a/NecromancerHarmony.dll and b/NecromancerHarmony.dll differ