diff --git a/Config/recipes.xml b/Config/recipes.xml
index d94360e..ddd875b 100644
--- a/Config/recipes.xml
+++ b/Config/recipes.xml
@@ -680,13 +680,14 @@
-
+
+
@@ -694,17 +695,37 @@
+
-
-
-
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/HarmonySrc/Cinerarium.cs b/HarmonySrc/Cinerarium.cs
index efdc3b8..8a18b1c 100644
--- a/HarmonySrc/Cinerarium.cs
+++ b/HarmonySrc/Cinerarium.cs
@@ -929,6 +929,10 @@ namespace NecromancerTome
logist = w != null && IsLogistWallBlock(w.GetBlock(ToWorldPos()).Block) ? 2 : 1;
}
_genie = CinerariumGenie.Spawn(ModelTransform(), IsWorker ? CinerariumGenie.WorkerDrop : 0f, logist);
+ if (_genie != null && IsLooter)
+ {
+ _genie.GetComponent().ForwardOverride = CinerariumGenie.LootForward;
+ }
if (_genie != null && _sound)
{
Audio.Manager.BroadcastPlay(World.blockToTransformPos(ToWorldPos()), GenieSound);
diff --git a/HarmonySrc/CinerariumGenie.cs b/HarmonySrc/CinerariumGenie.cs
index 22197d6..ac282ba 100644
--- a/HarmonySrc/CinerariumGenie.cs
+++ b/HarmonySrc/CinerariumGenie.cs
@@ -82,6 +82,8 @@ namespace NecromancerTome
public static Vector3 LogistWallHome = new Vector3(0f, 0.35f, -0.22f);
/// Окна крышки - на расстоянии LogistExit от оси кадила (радиус крышки 0.21 м), по осям модели.
public static float LogistExit = 0.3f;
+ /// Лутер: сдвиг духа вперёд (подобран в Blender 18.10).
+ public static float LootForward = 0.08f;
/// _logist: 0 - обычный дух над горлышком, 1 - дух логиста в кадиле по центру, 2 - в кадиле у стены.
public static GameObject Spawn(Transform _urnModel, float _drop, int _logist = 0)
@@ -282,6 +284,9 @@ namespace NecromancerTome
float _phase;
/// Своя поправка высоты урны (CinerariumGenie.WorkerDrop у рабочего).
public float Drop;
+ /// Свой сдвиг вперёд (NaN - общий CinerariumGenie.Forward). Лутер (18.10, банка с крышкой-кадилом): 0.08 - хвост
+ /// по центру отверстия на макушке («Вот сейчас было идеально»).
+ public float ForwardOverride = float.NaN;
/// Полёт к месту работы и обратно (16.10: «возвращается задом», «делал действие не сразу, а хоть руками
/// пошевелив»): туда - лицом к месту, над местом - жест руками (дело делается в его середине, см. Visit),
/// обратно - развернувшись лицом к урне. Точка - в координатах модели урны; _t - время с начала полёта, -1 - дома.
@@ -458,7 +463,8 @@ namespace NecromancerTome
{
return Wall ? CinerariumGenie.LogistWallHome : CinerariumGenie.LogistHome;
}
- return new Vector3(0f, CinerariumGenie.OffsetY + Drop, 0f) + Quaternion.Euler(0f, _yaw, 0f) * new Vector3(0f, 0f, CinerariumGenie.Forward);
+ float fwd = float.IsNaN(ForwardOverride) ? CinerariumGenie.Forward : ForwardOverride;
+ return new Vector3(0f, CinerariumGenie.OffsetY + Drop, 0f) + Quaternion.Euler(0f, _yaw, 0f) * new Vector3(0f, 0f, fwd);
}
/// Повернуться лицом по направлению _dir (горизонтально), не быстрее 300°/с.
diff --git a/NecromancerHarmony.dll b/NecromancerHarmony.dll
index fe8668a..c3b7684 100644
Binary files a/NecromancerHarmony.dll and b/NecromancerHarmony.dll differ
diff --git a/NecromancerHarmony.pdb b/NecromancerHarmony.pdb
index 4d8b199..b7f1e06 100644
Binary files a/NecromancerHarmony.pdb and b/NecromancerHarmony.pdb differ
diff --git a/Resources/necrocinerarium b/Resources/necrocinerarium
index 12edee1..0f73d42 100644
Binary files a/Resources/necrocinerarium and b/Resources/necrocinerarium differ
diff --git a/Textures/necroTomeUrns.png b/Textures/necroTomeUrns.png
index fc82ace..55126b7 100644
Binary files a/Textures/necroTomeUrns.png and b/Textures/necroTomeUrns.png differ
diff --git a/UIAtlases/ItemIconAtlas/necroCinerariumLoot.png b/UIAtlases/ItemIconAtlas/necroCinerariumLoot.png
index 69ee17f..7690664 100644
Binary files a/UIAtlases/ItemIconAtlas/necroCinerariumLoot.png and b/UIAtlases/ItemIconAtlas/necroCinerariumLoot.png differ
diff --git a/UIAtlases/ItemIconAtlas/necroCinerariumRepair.png b/UIAtlases/ItemIconAtlas/necroCinerariumRepair.png
index de7d023..300a1c4 100644
Binary files a/UIAtlases/ItemIconAtlas/necroCinerariumRepair.png and b/UIAtlases/ItemIconAtlas/necroCinerariumRepair.png differ