protected void AddShip(ComponentEcs comp) { if (comp.ComponentType == ComponentTypes.ShipComp) { ApplyShipConfig((ShipComp)comp); } }
protected override void AddModule(ComponentEcs comp) { if (comp.ComponentType == ComponentTypes.InertialDamperModComp) { ApplyModule(comp); } }
public void Release(ComponentEcs obj) { if (!_componentPools.ContainsKey(obj.ComponentType)) { CreateNewComponentPool(obj.ComponentType); } _componentPools[obj.ComponentType].Push(obj); }
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)); } }
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; }
protected override void ApplyModule(ComponentEcs comp) { comp.Owner.GetComponent <ShipComp>().HasInertialDampers = true; var rb = comp.GetComponent <RigidbodyComp>().rigidbody; rb.angularDrag = 5f; rb.drag = 1; }
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; }
public void Push(ComponentEcs obj) { _pool.Push(obj); }
protected abstract void RemoveModule(ComponentEcs comp);
protected abstract void AddModule(ComponentEcs comp);