// 27 Slicer
// Copyright 2021 Deftly Games
// https://slicer.deftly.games/
using UnityEngine;
namespace Slicer.Core
{
///
/// This ScriptableObject is used to save custom configurations to file as an unity asset.
///
public sealed class SlicerCustomConfiguration : ScriptableObject
{
///
/// The name of the configuration file.
///
public const string FileName = "SlicerConfiguration";
///
/// The name of the configuration file including the file extension.
///
public const string FileFullName = FileName + ".asset";
///
/// The default value of .
///
public const bool SkipUnmodifiedSlicesDefault = true;
///
/// Optimization - When enabled the slicer will only update if the slicer has been modified.
/// It is recommended to leave this enabled but is useful for debugging.
///
/// The default value for this setting is set by .
[Tooltip("Optimization - When enabled the slicer will only update if the slicer has been modified.\n\nIt is recommended to leave this enabled but is useful for debugging.")]
[Header("Optimizations")]
public bool SkipUnmodifiedSlices = SkipUnmodifiedSlicesDefault;
///
/// The default value of .
///
public const bool RefreshSlicesOnUpdateDefault = false;
///
/// Optimization - When enabled the slicer will update every frame.
/// It is recommended to leave this disabled and call SlicerController.RefreshSlice() when an update is required.
///
/// The default value for this setting is set by .
[Tooltip("Optimization - When enabled the slicer will update every frame.\n\nIt is recommended to leave this disabled and call 'SlicerController.RefreshSlice()' when an update is required.")]
public bool RefreshSlicesOnUpdate = RefreshSlicesOnUpdateDefault;
///
/// The default value of .
///
public const bool FinalizeOnStartDefault = false;
///
/// When enabled all slicers will be finalized immediately after they start at runtime.
///
/// The default value for this setting is set by .
[Tooltip("When enabled all slicers will be finalized immediately after they start at runtime.")]
[Header("Sliced Mesh Finalization")]
public bool FinalizeOnStart = FinalizeOnStartDefault;
///
/// The default value of .
///
public const bool UseFinalizedSlicedMeshComponentDefault = true;
///
/// When finalizing sliced meshes also initialize a FinalizedSlicedMesh component that will manage the lifecycle of the sliced mesh.
///
/// e.g. The sliced mesh will be destroyed when the `FinalizedSlicedMesh` component is destroyed.
///
/// The default value for this setting is set by .
[Tooltip("When finalizing sliced meshes also initialize a FinalizedSlicedMesh component that will manage the lifecycle of the sliced mesh.")]
public bool UseFinalizedSlicedMeshComponent = UseFinalizedSlicedMeshComponentDefault;
///
/// The default value of .
///
public const bool SetFinalizedSlicedMeshToBeNoLongerReadableDefault = true;
///
/// When finalizing a sliced mesh also set it to be no longer readable.
///
/// The default value for this setting is set by .
[Tooltip("When finalizing a sliced mesh also set it to be no longer readable.")]
public bool SetFinalizedSlicedMeshToBeNoLongerReadable = SetFinalizedSlicedMeshToBeNoLongerReadableDefault;
///
/// The default value of .
///
public const bool OptimizeFinalizedSlicedMeshDefault = true;
///
/// When finalizing a sliced mesh also Optimize it.
///
/// The default value for this setting is set by .
[Tooltip("When finalizing a sliced mesh also Optimize it.")]
public bool OptimizeFinalizedSlicedMesh = OptimizeFinalizedSlicedMeshDefault;
}
}