mirror of
https://github.com/BlackMATov/unity-iso-tools.git
synced 2025-12-13 06:59:46 +07:00
72 lines
1.9 KiB
C#
72 lines
1.9 KiB
C#
using System.Collections.Generic;
|
|
|
|
namespace IsoTools.Internal {
|
|
public abstract class IsoWorldBase : IsoBehaviour {
|
|
IsoAssocList<IsoObject> _isoObjects = new IsoAssocList<IsoObject>();
|
|
static List<IsoObject> _tempIsoObjects = new List<IsoObject>();
|
|
|
|
// ---------------------------------------------------------------------
|
|
//
|
|
// Private
|
|
//
|
|
// ---------------------------------------------------------------------
|
|
|
|
void RecacheIsoObjectWorlds() {
|
|
GetComponentsInChildren<IsoObject>(false, _tempIsoObjects);
|
|
for ( int i = 0, e = _tempIsoObjects.Count; i < e; ++i ) {
|
|
_tempIsoObjects[i].Internal_RecacheIsoWorld();
|
|
}
|
|
_tempIsoObjects.Clear();
|
|
}
|
|
|
|
// ---------------------------------------------------------------------
|
|
//
|
|
// Internal
|
|
//
|
|
// ---------------------------------------------------------------------
|
|
|
|
public void Internal_AddIsoObject(IsoObject iso_object) {
|
|
if ( iso_object && iso_object.IsActive() ) {
|
|
_isoObjects.Add(iso_object);
|
|
OnAddIsoObjectToWorld(iso_object);
|
|
}
|
|
}
|
|
|
|
public void Internal_RemoveIsoObject(IsoObject iso_object) {
|
|
if ( iso_object ) {
|
|
_isoObjects.Remove(iso_object);
|
|
OnRemoveIsoObjectFromWorld(iso_object);
|
|
}
|
|
}
|
|
|
|
// ---------------------------------------------------------------------
|
|
//
|
|
// Protected
|
|
//
|
|
// ---------------------------------------------------------------------
|
|
|
|
protected IsoAssocList<IsoObject> GetIsoObjects() {
|
|
return _isoObjects;
|
|
}
|
|
|
|
// ---------------------------------------------------------------------
|
|
//
|
|
// Virtual
|
|
//
|
|
// ---------------------------------------------------------------------
|
|
|
|
protected virtual void OnEnable() {
|
|
RecacheIsoObjectWorlds();
|
|
}
|
|
|
|
protected virtual void OnDisable() {
|
|
RecacheIsoObjectWorlds();
|
|
}
|
|
|
|
protected virtual void OnAddIsoObjectToWorld(IsoObject iso_object) {
|
|
}
|
|
|
|
protected virtual void OnRemoveIsoObjectFromWorld(IsoObject iso_object) {
|
|
}
|
|
}
|
|
} |