Project_WL/Assets/WL/Look/Farm/WLFarmLookSettings.cs

56 lines
2.7 KiB
C#

// ─────────────────────────────────────────────────────────────────────────────
// WLFarmLookSettings.cs — FarmingIsland 맵을 데모 아트풍으로 통일하는 값의 단일 출처
// (WL-816a · #816)
//
// PD 지시(2026-09-13) 「나는 우선 FarmingIsland 맵의 배경을 지금 데모 씬처럼 통일시키고 싶어」
//
// ■ C45 — 값은 코드 상수가 아니라 이 에셋(`Resources/WL/WLFarmLookSettings.asset`)
// ■ C8 — `enabled_ = 0` 이면 `WLFarmLook` 이 **원본 머티리얼·원본 조명으로 되돌린다** = 100 % 원복
//
// 🔴 어셈블리 주의: Assets/WL/Look/ 에 .asmdef 를 만들지 말 것(Assembly-CSharp 단일).
// ─────────────────────────────────────────────────────────────────────────────
using UnityEngine;
namespace WL.Look.Farm
{
[CreateAssetMenu(fileName = "WLFarmLookSettings", menuName = "WL/Farm Look Settings", order = 38)]
public sealed class WLFarmLookSettings : ScriptableObject
{
public const string ResourcesPath = "WL/WLFarmLookSettings";
private static WLFarmLookSettings s_instance;
private static bool s_tried;
/// <summary>에셋이 없으면 null — 호출부는 전부 건너뛴다(C8 롤백).</summary>
public static WLFarmLookSettings Instance
{
get
{
if (s_instance == null && !s_tried)
{
s_tried = true;
s_instance = Resources.Load<WLFarmLookSettings>(ResourcesPath);
}
return s_instance;
}
}
[Header("마스터 (C8)")]
[Tooltip("0 이면 씬에 저장된 통일 룩을 전부 되돌린다 = FarmingIsland 원본 머티리얼·원본 조명 100 %.")]
public int enabled_ = 1;
[Tooltip("1 이면 적용 결과를 콘솔에 1줄 남긴다.")]
public int verboseLog = 0;
[Header("머티리얼")]
[Tooltip("1 = 텍스처 유지안(Palette.png 를 Toon `_BaseMap` 에 그대로 꽂는다 · 권장) " +
"· 2 = 단색안(데모처럼 텍스처 없이 메시별 팔레트 평균색).")]
public int mode = 1;
[Header("조명 · 앰비언트 · 스카이박스")]
[Tooltip("1 이면 씬에 저장된 데모/아레나 조명값을 쓴다. 0 이면 FarmingIsland 원본 조명으로 되돌린다.")]
public int applyLighting = 1;
}
}