Files
UltimateFishing/Assets/Scripts/Assembly-CSharp/LE_LevelEditor/Example/ExampleGame_9PatchLevel.cs
2026-02-21 16:45:37 +08:00

45 lines
1.2 KiB
C#

using System;
using LE_LevelEditor.Core;
using LE_LevelEditor.Events;
using LE_LevelEditor.Logic;
using TT_TerrainTools;
using UnityEngine;
namespace LE_LevelEditor.Example
{
public class ExampleGame_9PatchLevel : MonoBehaviour
{
private TT_Terrain9Patch m_patchGroup;
private bool m_doFix = true;
private void Start()
{
m_patchGroup = UnityEngine.Object.FindObjectOfType<TT_Terrain9Patch>();
LE_EventInterface.OnChangeLevelData = (EventHandler<LE_LevelDataChangedEvent>)Delegate.Combine(LE_EventInterface.OnChangeLevelData, new EventHandler<LE_LevelDataChangedEvent>(OnChangeLevelData));
}
private void LateUpdate()
{
if (m_doFix)
{
m_doFix = false;
m_patchGroup.FixAllBorders(TT_Terrain9Patch.EFixMode.READ_FROM_BORDERS);
}
}
private void OnDestroy()
{
LE_EventInterface.OnChangeLevelData = (EventHandler<LE_LevelDataChangedEvent>)Delegate.Remove(LE_EventInterface.OnChangeLevelData, new EventHandler<LE_LevelDataChangedEvent>(OnChangeLevelData));
}
private void OnChangeLevelData(object p_obj, EventArgs p_args)
{
if (p_obj is LE_TerrainManager || (p_obj is GameObject && ((GameObject)p_obj).GetComponent<Terrain>() != null) || p_obj is LE_LogicTerrain)
{
m_doFix = true;
}
}
}
}