Added Furnance and smelting

This commit is contained in:
2026-08-11 17:12:34 +03:00
parent 2a30d4d8cf
commit 67e0bcfaaf
82 changed files with 25148 additions and 7186 deletions
@@ -123,7 +123,10 @@ public sealed class NetworkPhysicalLeverInteractable :
}
if (TryCalculateTargetValue(playerObject, out float targetValue))
{
MoveTowardsValue(targetValue);
UpdateActivationAtEndpoint();
}
return;
}
@@ -198,8 +201,7 @@ public sealed class NetworkPhysicalLeverInteractable :
hasSnapTarget = false;
bool snappedToMaximum = snapTargetValue >= 0.5f;
if (isActivated.Value != snappedToMaximum)
isActivated.Value = snappedToMaximum;
SetActivation(snappedToMaximum);
bool movedAwayFromInitialPosition =
!Mathf.Approximately(snapTargetValue, InitialPositionValue);
@@ -209,6 +211,22 @@ public sealed class NetworkPhysicalLeverInteractable :
: -1f;
}
private void UpdateActivationAtEndpoint()
{
const float endpointTolerance = 0.001f;
if (synchronizedValue.Value >= 1f - endpointTolerance)
SetActivation(true);
else if (synchronizedValue.Value <= endpointTolerance)
SetActivation(false);
}
private void SetActivation(bool activated)
{
if (isActivated.Value != activated)
isActivated.Value = activated;
}
private bool IsPlayerWithinControlDistance(NetworkObject playerObject)
{
float maximumDistanceSquared = maximumControlDistance * maximumControlDistance;