コード例 #1
0
 protected void AddShip(ComponentEcs comp)
 {
     if (comp.ComponentType == ComponentTypes.ShipComp)
     {
         ApplyShipConfig((ShipComp)comp);
     }
 }
コード例 #2
0
 protected override void AddModule(ComponentEcs comp)
 {
     if (comp.ComponentType == ComponentTypes.InertialDamperModComp)
     {
         ApplyModule(comp);
     }
 }
コード例 #3
0
 public void Release(ComponentEcs obj)
 {
     if (!_componentPools.ContainsKey(obj.ComponentType))
     {
         CreateNewComponentPool(obj.ComponentType);
     }
     _componentPools[obj.ComponentType].Push(obj);
 }
コード例 #4
0
 static void SetValue(ComponentEcs component, List <FieldInfo> fields, FieldInfo field, object newValue)
 {
     if (newValue != field.GetValue(component))
     {
         field.SetValue(component, newValue);
         component._InternalOnValueChange((ushort)fields.IndexOf(field));
     }
 }
コード例 #5
0
        protected void DeactivateModule(ComponentEcs comp)
        {
            ((InertialDamperModComp)comp).ModuleEnabled = false;
            var rb = comp.GetComponent <RigidbodyComp>()?.rigidbody;

            Assert.IsNotNull(rb, "Inertial damper comp without a rigidbody");
            rb.angularDrag = 0f;
            rb.drag        = 0f;
        }
コード例 #6
0
        protected override void ApplyModule(ComponentEcs comp)
        {
            comp.Owner.GetComponent <ShipComp>().HasInertialDampers = true;

            var rb = comp.GetComponent <RigidbodyComp>().rigidbody;

            rb.angularDrag = 5f;
            rb.drag        = 1;
        }
コード例 #7
0
        protected override void RemoveModule(ComponentEcs comp)
        {
            if (comp.ComponentType != ComponentTypes.InertialDamperModComp)
            {
                return;
            }
            if (comp.Owner == null)
            {
                return;
            }

            comp.Owner.GetComponent <ShipComp>().HasInertialDampers = false;
            var rb = comp.GetComponent <RigidbodyComp>()?.rigidbody;

            if (rb == null)
            {
                return;
            }
            rb.angularDrag = 0f;
            rb.drag        = 0f;
        }
コード例 #8
0
 public void Push(ComponentEcs obj)
 {
     _pool.Push(obj);
 }
コード例 #9
0
 protected abstract void RemoveModule(ComponentEcs comp);
コード例 #10
0
 protected abstract void AddModule(ComponentEcs comp);