Нити видны только с ножом хватом для нитей в руках
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>
|
||||
[Preserve]
|
||||
public class CinerariumThreadView : MonoBehaviour
|
||||
@@ -272,7 +273,7 @@ namespace NecromancerTome
|
||||
const int SparksPerThread = 3;
|
||||
public static float SparkSpeed = 1.2f; // м/с
|
||||
|
||||
/// <summary>_pairs - концы в координатах сцены (без Origin).</summary>
|
||||
/// <summary>_pairs - концы в координатах сцены (без Origin). Видимость - заново по ножу в руке (Update).</summary>
|
||||
public void Build(List<(Vector3 a, Vector3 b)> _pairs)
|
||||
{
|
||||
foreach (Transform c in transform)
|
||||
@@ -297,19 +298,37 @@ namespace NecromancerTome
|
||||
}
|
||||
_threads.Add(th);
|
||||
}
|
||||
_shown = -1;
|
||||
}
|
||||
|
||||
float _nextSleepCheck;
|
||||
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()
|
||||
{
|
||||
if (Time.time >= _nextSleepCheck)
|
||||
{
|
||||
_nextSleepCheck = Time.time + 0.5f;
|
||||
_nextSleepCheck = Time.time + 0.25f;
|
||||
_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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user