update connectors

This commit is contained in:
Mikhail 2024-03-10 10:24:58 +08:00
parent 3f1c38a510
commit 1d8b693cca

View File

@ -9,12 +9,27 @@ namespace DCFApixels.DragonECS
public static class EcsConnect public static class EcsConnect
{ {
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void Connect(GameObject go, entlong entity, bool applyTemplates) public static void Connect(this Component cmp, entlong entity, bool applyTemplates)
{
Connect(entity, cmp, applyTemplates);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void Connect(this entlong entity, Component cmp, bool applyTemplates)
{
if (cmp.TryGetComponent(out EcsEntityConnect connect) == false)
{
connect = cmp.gameObject.AddComponent<EcsEntityConnect>();
}
connect.ConnectWith(entity, applyTemplates);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void Connect(this GameObject go, entlong entity, bool applyTemplates)
{ {
Connect(entity, go, applyTemplates); Connect(entity, go, applyTemplates);
} }
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void Connect(entlong entity, GameObject go, bool applyTemplates) public static void Connect(this entlong entity, GameObject go, bool applyTemplates)
{ {
if (go.TryGetComponent(out EcsEntityConnect connect) == false) if (go.TryGetComponent(out EcsEntityConnect connect) == false)
{ {
@ -22,17 +37,19 @@ namespace DCFApixels.DragonECS
} }
connect.ConnectWith(entity, applyTemplates); connect.ConnectWith(entity, applyTemplates);
} }
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void Connect(EcsEntityConnect connect, entlong entity, bool applyTemplates) public static void Connect(this EcsEntityConnect connect, entlong entity, bool applyTemplates)
{ {
Connect(entity, connect, applyTemplates); Connect(entity, connect, applyTemplates);
} }
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void Connect(entlong entity, EcsEntityConnect connect, bool applyTemplates) public static void Connect(this entlong entity, EcsEntityConnect connect, bool applyTemplates)
{ {
connect.ConnectWith(entity, applyTemplates); connect.ConnectWith(entity, applyTemplates);
} }
} }
[DisallowMultipleComponent] [DisallowMultipleComponent]
public class EcsEntityConnect : MonoBehaviour public class EcsEntityConnect : MonoBehaviour
{ {