using System.Collections;
using System.Collections.Generic;
using Godot;
using System;
using System.Threading.Tasks;
namespace Rokojori
{
/**
Resource to define foliage data
*/
[Tool]
[GlobalClass, Icon("res://addons/rokojori_action_library/Icons/Scatterer.svg") ]
public partial class FoliageData:Resource
{
[Export]
public bool enabled = true;
[Export]
public float cellSize = 1.0f;
[Export]
public float visibilityRange = 50f;
[Export]
public float visibilityFadeRelative = 0.2f;
[Export]
public float visibilityFadeAbsolute = 0f;
[Export]
public float visibilityFadeHidingOffset = -0.7f;
/** Render priority, only for transparent objects*/
[Export]
public int renderPriority;
[Export]
public FoliageQualitySettings[] qualitySettings;
[Export]
public string layerName;
[Export]
public Vector3 positionVarianceMaxOffset = Vector3.Zero;
[Export]
public float positionVarianceScale = 1f;
[Export]
public Vector2 positionVarianceOffset = Vector2.Zero;
[Export]
public Vector3 rotationMin = Vector3.Zero;
[Export]
public Vector3 rotationMax = new Vector3( 0, 1, 0 );
[Export]
public float rotationVarianceScale = 1f;
[Export]
public Vector2 rotationVarianceOffset = Vector2.Zero;
[Export]
public Vector3 scaleVarianceMinScale = Vector3.One;
[Export]
public Vector3 scaleVarianceMaxScale = Vector3.One;
[Export]
public float scaleVarianceScale = 1f;
[Export]
public Vector2 scaleVarianceOffset = Vector2.Zero;
[Export(PropertyHint.Range,"0,1")]
public float occupancyVarianceAmount = 0f;
[Export(PropertyHint.Range,"0,50")]
public float occupancyVariancePower = 1f;
[Export(PropertyHint.Range,"0,1")]
public float occupancyTreshold = 0.5f;
[Export]
public float occupancyHideOffset = -2f;
[Export]
public float occupancyHideScale = 0.1f;
[Export]
public float occupancyVarianceScale = 1f;
[Export]
public Vector2 occupancyVarianceOffset = Vector2.Zero;
public virtual void Initialize( FoliageRenderLayer renderLayer )
{
}
}
}