diff --git a/Assets/WL/Island/Resources/WL/WLIslandSettings.asset b/Assets/WL/Island/Resources/WL/WLIslandSettings.asset index 95e664ab7..493872b52 100644 --- a/Assets/WL/Island/Resources/WL/WLIslandSettings.asset +++ b/Assets/WL/Island/Resources/WL/WLIslandSettings.asset @@ -49,6 +49,7 @@ MonoBehaviour: dungeonEnterDelay: 1.5 gateFlowEnabled: 1 hideFarms: 1 + soilCornerRadius: 1.6 farmReHideDelaySeconds: 3 showFarmSoil: 1 hideIslandFences: 1 @@ -121,7 +122,7 @@ MonoBehaviour: sceneName: WL_Dungeon01 mapId: 901 stageIndex: 10 - gatePosition: {x: 0, y: 0, z: 3} + gatePosition: {x: 10, y: 0, z: -2} gateYaw: 180 gateScale: 1 gateColor: {r: 0.45, g: 0.32, b: 0.62, a: 1} @@ -166,4 +167,4 @@ MonoBehaviour: gateColor: {r: 0.55, g: 0.24, b: 0.3, a: 1} gatePrefabPath: Assets/WL/Island/Prefabs/WL_DungeonGate_Arch.prefab platformUseFarm: 0 - platformPosition: {x: 0, y: 0, z: 3} + platformPosition: {x: 10, y: 0, z: -2} diff --git a/Assets/WL/Island/WLIslandGateFlow.cs b/Assets/WL/Island/WLIslandGateFlow.cs index 3c3393da5..1d0193572 100644 --- a/Assets/WL/Island/WLIslandGateFlow.cs +++ b/Assets/WL/Island/WLIslandGateFlow.cs @@ -330,6 +330,27 @@ namespace WL.Island ZoneBoundsValid = true; if (cfg.platformCenterOnZone != 0 && haveCenter) center = new Vector3(zone.center.x, zone.min.y, zone.center.z); + + // 2026-09-15 PD 「흙 지역도 라운딩」 — 밭 사각형 네 모서리 근처의 흙칸을 숨겨(값 soilCornerRadius · 0 이면 무동작) + // 흙 자리가 둥글게 읽히게 한다(모서리 자리는 816za 의 풀이 채운다). 콜라이더는 이미 전부 꺼져 있다. + if (cfg.showFarmSoil != 0 && cfg.soilCornerRadius > 0f) + { + for (int i = 0; i < farms.Length; i++) + { + var f = farms[i]; + if (f == null || (scene.IsValid() && f.gameObject.scene != scene)) continue; + var rends = f.GetComponentsInChildren(true); + for (int r = 0; r < rends.Length; r++) + { + var rr = rends[r]; + if (rr == null || !rr.enabled || !IsSoilRenderer(cfg, rr)) continue; + var c = rr.bounds.center; + float dx = Mathf.Min(c.x - zone.min.x, zone.max.x - c.x); + float dz = Mathf.Min(c.z - zone.min.z, zone.max.z - c.z); + if (dx + dz < cfg.soilCornerRadius) { rr.enabled = false; s_hiddenRends.Add(rr); } + } + } + } } return haveCenter; } diff --git a/Assets/WL/Island/WLIslandSettings.cs b/Assets/WL/Island/WLIslandSettings.cs index a34337463..1e095b64e 100644 --- a/Assets/WL/Island/WLIslandSettings.cs +++ b/Assets/WL/Island/WLIslandSettings.cs @@ -289,6 +289,9 @@ namespace WL.Island [Tooltip("울타리로 판정할 오브젝트 이름 접두어(대소문자 무시).")] public string[] islandFenceNamePrefixes = new[] { "Fence" }; + [Tooltip("2026-09-15 PD 「흙 지역도 라운딩」 — 밭 사각형 모서리에서 이 거리(m · 맨해튼 dx+dz) 안의 흙칸은 숨긴다. 0 = 무동작(사각형 그대로).")] + public float soilCornerRadius = 1.6f; + [Tooltip("🔴 §1 — 1 이면 **새로 열린 타일**의 머티리얼 배열을 이미 열려 있는 타일과 **같게** 만든다. " + "실측: 바닥 색 자체는 이미 같지만(main b1e58d795), 새 타일만 외곽선 패스(WL/HullOutline)를 " + "못 받아 경계에서 테두리 유무가 갈린다. 새 머티리얼을 만들지 않고 기존 배열을 물려준다.")]