void Update()
    {
        if (!_worldLoaded || _disposing)
        {
            return;
        }

        // update meshes if iso level changed
        if (MeshGenerator.CheckIsoLevel())
        {
            WorldApi.UpdateAllMeshes();
        }

        // toggle camera mode if ALT is held
        CheckPressedAlt();

        if (_currentMode == GameMode.Camera)
        {
            _orbitCamera.UpdateCamera();
        }
        else
        {
            ProcessUserInput();
        }

        // fluid simulation
        UnityEngine.Profiling.Profiler.BeginSample("FluidUpdate");
        FluidProcessor.FluidUpdate();
        UnityEngine.Profiling.Profiler.EndSample();
    }