wip: HouseOfLeaves & BodiesInWater Blocking

This commit is contained in:
Alexandre Coirier
2026-05-20 21:39:54 +02:00
parent 85c17e49b5
commit 55e19eb959
32 changed files with 4125 additions and 326 deletions
@@ -310,7 +310,7 @@ namespace OctoCore.Components
else
moveDelta.y -= _settings.Gravity * Time.deltaTime;
if (_references.Controller)
if (_references.Controller && _references.Controller.enabled)
_references.Controller.Move(moveDelta);
else
transform.position += moveDelta;
@@ -48,11 +48,14 @@ namespace OctoCore.Components
[Tooltip("Play on Awake")]
public bool PlayOnAwake = true;
[Tooltip("Random Time Offset")]
public bool RandomOffset = true;
[Tooltip("Animation speed multiplier")]
public float Duration = 4;
[Tooltip("Time offset to desynchronize multiple animations")]
public float TimeOffset = 0;
[Tooltip("Cycle offset to desynchronize multiple animations")]
[Range(0, 1)] public float CycleOffset = 0;
[Tooltip("Translation amount in local space (meters)")]
public Vector3 Translation = Vector3.zero;
@@ -97,11 +100,14 @@ namespace OctoCore.Components
void Start()
{
Debug.Log("Start");
_state.InitialPosition = transform.localPosition;
_state.InitialRotation = transform.localRotation;
_state.InitialScale = transform.localScale;
_state.CurrentTime = _settings.TimeOffset;
_state.CurrentTime = _settings.CycleOffset;
_state.IsFinished = false;
_timeOffset = Time.timeSinceLevelLoad;
}
void Update()
@@ -109,7 +115,7 @@ namespace OctoCore.Components
if (_state.IsFinished || !_started)
return;
_state.CurrentTime = Time.timeSinceLevelLoad + _settings.TimeOffset * _settings.Duration - _timeOffset;
_state.CurrentTime = Time.timeSinceLevelLoad + _settings.CycleOffset * _settings.Duration - _timeOffset + (_settings.RandomOffset ? transform.GetSiblingIndex() * 6.7f : 0);
float normalizedTime = GetNormalizedTime(_state.CurrentTime);
float easedTime = ApplyEasing(normalizedTime);
@@ -136,7 +142,7 @@ namespace OctoCore.Components
/// </summary>
public void ResetAnimation()
{
_state.CurrentTime = _settings.TimeOffset;
_state.CurrentTime = _settings.CycleOffset;
_state.IsFinished = false;
transform.localPosition = _state.InitialPosition;
transform.localRotation = _state.InitialRotation;