using System; namespace ET { public class LSEntity: Entity { public new K AddComponent(bool isFromPool = false) where K : LSEntity, IAwake, new() { return this.AddComponentWithId(this.GetId(), isFromPool); } public new K AddComponent(P1 p1, bool isFromPool = false) where K : LSEntity, IAwake, new() { return this.AddComponentWithId(this.GetId(), p1, isFromPool); } public new K AddComponent(P1 p1, P2 p2, bool isFromPool = false) where K : LSEntity, IAwake, new() { return this.AddComponentWithId(this.GetId(), p1, p2, isFromPool); } public new K AddComponent(P1 p1, P2 p2, P3 p3, bool isFromPool = false) where K : LSEntity, IAwake, new() { return this.AddComponentWithId(this.GetId(), p1, p2, p3, isFromPool); } public new T AddChild(bool isFromPool = false) where T : LSEntity, IAwake { return this.AddChildWithId(this.GetId(), isFromPool); } public new T AddChild(A a, bool isFromPool = false) where T : LSEntity, IAwake { return this.AddChildWithId(this.GetId(), a, isFromPool); } public new T AddChild(A a, B b, bool isFromPool = false) where T : LSEntity, IAwake { return this.AddChildWithId(this.GetId(), a, b, isFromPool); } public new T AddChild(A a, B b, C c, bool isFromPool = false) where T : LSEntity, IAwake { return this.AddChildWithId(this.GetId(), a, b, c, isFromPool); } public override void Dispose() { base.Dispose(); this.Id = 0; } public override IScene Domain { get { return this.domain; } protected set { bool oldIsRegister = this.IsRegister; base.Domain = value; bool newIsRegister = this.IsRegister; if (oldIsRegister == newIsRegister) { return; } LSWorld lsWorld = this.DomainScene(); if (newIsRegister) { lsWorld.RegisterSystem(this); } } } } }