45 lines
1.2 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
}
|