Polishes
This commit is contained in:
@@ -81,7 +81,7 @@ namespace ProjectM.Client
|
||||
SystemAPI.Query<RefRO<ResourceNode>, RefRO<LocalTransform>>().WithEntityAccess())
|
||||
{
|
||||
_seen.Add(e);
|
||||
Observe(e, node.ValueRO.Remaining, xf.ValueRO.Position, false, TintForResource(node.ValueRO.ResourceId));
|
||||
Observe(e, node.ValueRO.Remaining, xf.ValueRO.Position, false, TintForResource(node.ValueRO.ResourceId), haveLocal && math.distancesq(xf.ValueRO.Position, localPos) <= WorldFeelConfig.ProximityRange * WorldFeelConfig.ProximityRange);
|
||||
}
|
||||
|
||||
// Blight clutter — chip on damage.
|
||||
@@ -89,7 +89,7 @@ namespace ProjectM.Client
|
||||
SystemAPI.Query<RefRO<BlightClutter>, RefRO<LocalTransform>>().WithEntityAccess())
|
||||
{
|
||||
_seen.Add(e);
|
||||
Observe(e, clutter.ValueRO.Remaining, xf.ValueRO.Position, true, WorldFeelConfig.WildTint);
|
||||
Observe(e, clutter.ValueRO.Remaining, xf.ValueRO.Position, true, WorldFeelConfig.WildTint, haveLocal && math.distancesq(xf.ValueRO.Position, localPos) <= WorldFeelConfig.ProximityRange * WorldFeelConfig.ProximityRange);
|
||||
}
|
||||
|
||||
// Prune: a despawn = the server destroyed it (node depleted / clutter shattered). Gate on proximity so
|
||||
@@ -119,12 +119,17 @@ namespace ProjectM.Client
|
||||
}
|
||||
}
|
||||
|
||||
void Observe(Entity e, int remaining, float3 pos, bool isClutter, Color tint)
|
||||
void Observe(Entity e, int remaining, float3 pos, bool isClutter, Color tint, bool nearLocal)
|
||||
{
|
||||
if (_cache.TryGetValue(e, out var prev) && remaining < prev.Remaining)
|
||||
{
|
||||
EmitTinted(_chipFx, (Vector3)pos + Vector3.up * 0.6f, WorldFeelConfig.ChipBurstCount, tint);
|
||||
PlayClip(_chipClip, (Vector3)pos, WorldFeelConfig.ChipSfxVolume);
|
||||
if (nearLocal) // tiny per-hit camera impact, only for harvesting near the local player (not a teammate's far node)
|
||||
{
|
||||
if (WorldFeelConfig.ChipFovKick > 0f) PrototypeCameraRig.PunchFov(WorldFeelConfig.ChipFovKick, 90f);
|
||||
if (WorldFeelConfig.ChipShake > 0f) PrototypeCameraRig.AddShake(WorldFeelConfig.ChipShake);
|
||||
}
|
||||
}
|
||||
_cache[e] = new Cache { Remaining = remaining, Pos = pos, IsClutter = isClutter, Tint = tint };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user