Черепа-ретрансляторы отменены: череп-декор нить не передаёт, нити через черепа снимаются при загрузке; тексты на 13 языках
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
8a5f4fa0e3
commit
54cafab4f1
File diff suppressed because one or more lines are too long
@@ -405,6 +405,7 @@ namespace NecromancerTome
|
||||
}
|
||||
}
|
||||
AlignVia();
|
||||
DropRelayThreads();
|
||||
ZoneSide = 0;
|
||||
ZoneRunning = false;
|
||||
ZoneCursor = 0;
|
||||
@@ -548,6 +549,43 @@ namespace NecromancerTome
|
||||
return n;
|
||||
}
|
||||
|
||||
/// <summary>Черепа-ретрансляторы отменены (23.10, пользователь: «черепа как удлинитель не работают. Думаю нам стоит
|
||||
/// отказаться от их функции ретрансляторов»): нити, протянутые через черепа, при загрузке снимаются; прямые остаются.
|
||||
/// Списки Via в сейве остаются (формат не меняется), но всегда пустые.</summary>
|
||||
void DropRelayThreads()
|
||||
{
|
||||
int n = 0;
|
||||
for (int i = ThreadFrom.Count - 1; i >= 0; i--)
|
||||
{
|
||||
if (FromVia[i].Count > 0)
|
||||
{
|
||||
ThreadFrom.RemoveAt(i);
|
||||
FromVia.RemoveAt(i);
|
||||
n++;
|
||||
}
|
||||
}
|
||||
for (int i = ThreadOut.Count - 1; i >= 0; i--)
|
||||
{
|
||||
if (OutVia[i].Count > 0)
|
||||
{
|
||||
ThreadOut.RemoveAt(i);
|
||||
OutVia.RemoveAt(i);
|
||||
n++;
|
||||
}
|
||||
}
|
||||
if (HasThreadTo && ToVia.Count > 0)
|
||||
{
|
||||
HasThreadTo = false;
|
||||
ToVia.Clear();
|
||||
n++;
|
||||
}
|
||||
if (n > 0)
|
||||
{
|
||||
_threadsDirty = true;
|
||||
Debug.Log("[NecromancerTome] Cinerarium: урна " + ToWorldPos() + " - снято нитей через черепа: " + n);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>Снять нити, у которых конец (_end) или череп на пути (_via) - в клетке _p.</summary>
|
||||
int RemoveWhere(Vector3i _p, bool _end, bool _via)
|
||||
{
|
||||
|
||||
@@ -152,8 +152,7 @@ namespace NecromancerTome
|
||||
{
|
||||
if (IsRelay(w.GetBlock(_pos).Block))
|
||||
{
|
||||
ClickRelay(_pl, w, _pos, _connect);
|
||||
return;
|
||||
return; // 23.10: черепа-ретрансляторы отменены - череп-декор нитью не задевается
|
||||
}
|
||||
bool ok = Resolve(w, _pos, out Vector3i owner, out TEFeatureCinerarium urn);
|
||||
bool station = false;
|
||||
@@ -290,53 +289,6 @@ namespace NecromancerTome
|
||||
_pl.PlayOneShot("wiretool_place");
|
||||
}
|
||||
|
||||
/// <summary>Щелчок ножом по черепу-ретранслятору: ПКМ при тянущейся нити - провести её через череп; ЛКМ - снять все нити
|
||||
/// через него (или бросить тянущуюся).</summary>
|
||||
static void ClickRelay(EntityPlayerLocal _pl, World _w, Vector3i _skull, bool _connect)
|
||||
{
|
||||
if (!_connect)
|
||||
{
|
||||
if (_start.HasValue)
|
||||
{
|
||||
Cancel();
|
||||
GameManager.ShowTooltip(_pl, Localization.Get("necroThreadCancel"));
|
||||
return;
|
||||
}
|
||||
int n = 0;
|
||||
foreach (Vector3i p in CinerariumRegistry.All())
|
||||
{
|
||||
TEFeatureCinerarium u = UrnAt(_w, p);
|
||||
if (u != null)
|
||||
{
|
||||
n += u.RemoveThreadsVia(_skull);
|
||||
}
|
||||
}
|
||||
if (n > 0)
|
||||
{
|
||||
_pl.PlayOneShot("wiretool_grab");
|
||||
GameManager.ShowTooltip(_pl, Localization.Get("necroThreadRemoved"));
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (!_start.HasValue)
|
||||
{
|
||||
GameManager.ShowTooltip(_pl, Localization.Get("necroThreadRelayFirst"));
|
||||
return;
|
||||
}
|
||||
if (_via.Contains(_skull))
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (Vector3.Distance(LastPoint.Value.ToVector3(), _skull.ToVector3()) > MaxLength)
|
||||
{
|
||||
GameManager.ShowTooltip(_pl, Localization.Get("necroThreadTooFar"));
|
||||
return;
|
||||
}
|
||||
_via.Add(_skull);
|
||||
_pl.PlayOneShot("wiretool_place");
|
||||
GameManager.ShowTooltip(_pl, Localization.Get("necroThreadRelay"));
|
||||
}
|
||||
|
||||
/// <summary>Нить урны _urn к _end через черепа _via (по порядку от урны) - пролётами в _pairs, огоньки бегут по направлению
|
||||
/// нити: _toUrn - от конца к урне (нить «откуда»), иначе от урны к концу.</summary>
|
||||
public static void AddPath(List<(Vector3 a, Vector3 b)> _pairs, Vector3i _urn, List<Vector3i> _via, Vector3i _end, bool _toUrn)
|
||||
|
||||
Reference in New Issue
Block a user