using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Scripting.APIUpdating; namespace DCFApixels.DragonECS { [Serializable] [DebugColor(255 / 3, 255, 0)] public struct UnityComponent : IEcsComponent, IEnumerable//IntelliSense hack where T : class { public T obj; IEnumerator IEnumerable.GetEnumerator() => throw new NotImplementedException(); //IntelliSense hack IEnumerator IEnumerable.GetEnumerator() => throw new NotImplementedException(); //IntelliSense hack } [Serializable] [MovedFrom(false, "Client", null, "RefRigitBodyInitializer")] public sealed class UnityComponentRigitBodyInitializer : TemplateComponentInitializer> { public override void Add(EcsWorld w, int e) => w.GetPool>().Add(e) = component; } [Serializable] [MovedFrom(false, "Client", null, "RefAnimatorInitializer")] public sealed class UnityComponentAnimatorInitializer : TemplateComponentInitializer> { public override void Add(EcsWorld w, int e) => w.GetPool>().Add(e) = component; } [Serializable] public sealed class UnityComponentCharacterControllerInitializer : TemplateComponentInitializer> { public override void Add(EcsWorld w, int e) => w.GetPool>().Add(e) = component; } #region Colliders [Serializable] public sealed class UnityComponentColliderInitializer : TemplateComponentInitializer> { public override string Name => "UnityComponent/Collider/" + nameof(Collider); public override void Add(EcsWorld w, int e) => w.GetPool>().Add(e) = component; } [Serializable] public sealed class UnityComponentBoxColliderInitializer : TemplateComponentInitializer> { public override string Name => "UnityComponent/Collider/" + nameof(BoxCollider); public override void Add(EcsWorld w, int e) => w.GetPool>().Add(e) = component; } [Serializable] public sealed class UnityComponentSphereColliderInitializer : TemplateComponentInitializer> { public override string Name => "UnityComponent/Collider/" + nameof(SphereCollider); public override void Add(EcsWorld w, int e) => w.GetPool>().Add(e) = component; } [Serializable] public sealed class UnityComponentCapsuleColliderInitializer : TemplateComponentInitializer> { public override string Name => "UnityComponent/Collider/" + nameof(CapsuleCollider); public override void Add(EcsWorld w, int e) => w.GetPool>().Add(e) = component; } [Serializable] public sealed class UnityComponentMeshColliderInitializer : TemplateComponentInitializer> { public override string Name => "UnityComponent/Collider/" + nameof(MeshCollider); public override void Add(EcsWorld w, int e) => w.GetPool>().Add(e) = component; } #endregion #region Joints [Serializable] public sealed class UnityComponentJointInitializer : TemplateComponentInitializer> { public override string Name => "UnityComponent/Joint/" + nameof(Joint); public override void Add(EcsWorld w, int e) => w.GetPool>().Add(e) = component; } [Serializable] public sealed class UnityComponentFixedJointInitializer : TemplateComponentInitializer> { public override string Name => "UnityComponent/Joint/" + nameof(FixedJoint); public override void Add(EcsWorld w, int e) => w.GetPool>().Add(e) = component; } [Serializable] public sealed class UnityComponentCharacterJointInitializer : TemplateComponentInitializer> { public override string Name => "UnityComponent/Joint/" + nameof(CharacterJoint); public override void Add(EcsWorld w, int e) => w.GetPool>().Add(e) = component; } [Serializable] public sealed class UnityComponentConfigurableJointInitializer : TemplateComponentInitializer> { public override string Name => "UnityComponent/Joint/" + nameof(ConfigurableJoint); public override void Add(EcsWorld w, int e) => w.GetPool>().Add(e) = component; } #endregion }