
using Godot;
using System.Collections.Generic;
using System;
namespace Rokojori
{  
  [Tool]
  [GlobalClass]
  public partial class FixedDepthOfFieldEffect:_XX_DepthOfFieldEffect
  {
    [Export]
    public BoolFloatValue farEnabled;

    [Export]
    public FloatDOFDistanceValue farDistance;

    [Export]
    public FloatDOFTransitionValue farTransition;

    [Export]
    public BoolFloatValue nearEnabled;

    [Export]
    public FloatDOFDistanceValue nearDistance;

    [Export]
    public FloatDOFTransitionValue nearTransition;

    [Export]
    public NormalizedValue amount;

    [Export]
    public Float8Value exposure;

    public override BoxedFloatValue[] GetFloatValues()
    {
      _values[ 0 ] = farEnabled;
      _values[ 1 ] = farDistance;
      _values[ 2 ] = farTransition;

      _values[ 3 ] = nearEnabled;
      _values[ 4 ] = nearDistance;
      _values[ 5 ] = nearTransition;

      _values[ 6 ] = amount;
      _values[ 7 ] = exposure;

      return _values;
    }

    // public override void SetFloatValues( BoxedFloatValue[] values )
    // {

    //   farEnabled = BoolFloatValue.Create( _values[ 0 ] );
    //   farDistance = FloatDOFDistanceValue.Create( _values[ 1 ] );
    //   farTransition = FloatDOFTransitionValue.Create( _values[ 2 ] );

    //   nearEnabled = BoolFloatValue.Create( _values[ 3 ] );
    //   nearDistance = FloatDOFDistanceValue.Create( _values[ 4 ] );
    //   nearTransition = FloatDOFTransitionValue.Create( _values[ 5 ] );

    //   amount = NormalizedValue.Create( _values[ 6 ] );
    //   exposure = Float8Value.Create( _values[ 7 ] );
    // }
  }
}