Нити видны только с ножом хватом для нитей в руках
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
f5be0e7f43
commit
06155ff014
@@ -256,7 +256,8 @@ namespace NecromancerTome
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>Нити одной урны: провисающие линии и бегущие по ним огоньки (направление). Дочерний объект модели урны -
|
/// <summary>Нити одной урны: провисающие линии и бегущие по ним огоньки (направление). Видны, только пока в руках нож
|
||||||
|
/// хватом для нитей. Дочерний объект модели урны -
|
||||||
/// сдвиги Origin и выгрузка чанка его не теряют; точки - в осях модели.</summary>
|
/// сдвиги Origin и выгрузка чанка его не теряют; точки - в осях модели.</summary>
|
||||||
[Preserve]
|
[Preserve]
|
||||||
public class CinerariumThreadView : MonoBehaviour
|
public class CinerariumThreadView : MonoBehaviour
|
||||||
@@ -272,7 +273,7 @@ namespace NecromancerTome
|
|||||||
const int SparksPerThread = 3;
|
const int SparksPerThread = 3;
|
||||||
public static float SparkSpeed = 1.2f; // м/с
|
public static float SparkSpeed = 1.2f; // м/с
|
||||||
|
|
||||||
/// <summary>_pairs - концы в координатах сцены (без Origin).</summary>
|
/// <summary>_pairs - концы в координатах сцены (без Origin). Видимость - заново по ножу в руке (Update).</summary>
|
||||||
public void Build(List<(Vector3 a, Vector3 b)> _pairs)
|
public void Build(List<(Vector3 a, Vector3 b)> _pairs)
|
||||||
{
|
{
|
||||||
foreach (Transform c in transform)
|
foreach (Transform c in transform)
|
||||||
@@ -297,19 +298,37 @@ namespace NecromancerTome
|
|||||||
}
|
}
|
||||||
_threads.Add(th);
|
_threads.Add(th);
|
||||||
}
|
}
|
||||||
|
_shown = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
float _nextSleepCheck;
|
float _nextSleepCheck;
|
||||||
bool _asleep;
|
bool _asleep;
|
||||||
|
int _shown = -1;
|
||||||
|
|
||||||
|
/// <summary>16.10: «Нити должны быть видны, только когда нож в режиме нитей и в руках».</summary>
|
||||||
|
public static bool ToolInHand()
|
||||||
|
{
|
||||||
|
EntityPlayerLocal pl = GameManager.Instance?.World?.GetPrimaryPlayer();
|
||||||
|
return pl != null && CinerariumThreads.IsThreadKnife(pl.inventory?.holdingItem);
|
||||||
|
}
|
||||||
|
|
||||||
void Update()
|
void Update()
|
||||||
{
|
{
|
||||||
if (Time.time >= _nextSleepCheck)
|
if (Time.time >= _nextSleepCheck)
|
||||||
{
|
{
|
||||||
_nextSleepCheck = Time.time + 0.5f;
|
_nextSleepCheck = Time.time + 0.25f;
|
||||||
_asleep = CinerariumGenie.PlayerFar(transform.position); // засыпание (16.10): огоньки стоят
|
_asleep = CinerariumGenie.PlayerFar(transform.position); // засыпание (16.10): огоньки стоят
|
||||||
|
int show = ToolInHand() ? 1 : 0;
|
||||||
|
if (show != _shown)
|
||||||
|
{
|
||||||
|
_shown = show;
|
||||||
|
foreach (Renderer r in GetComponentsInChildren<Renderer>(true))
|
||||||
|
{
|
||||||
|
r.enabled = show == 1;
|
||||||
}
|
}
|
||||||
if (_asleep)
|
}
|
||||||
|
}
|
||||||
|
if (_asleep || _shown != 1)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user