public override void Init(IEntity entity) { base.Init(entity); Racer = entity.AddComponent <VehicleRacer>(); Physics = entity.AddComponent <VehiclePhysics>(); entity.Bind <VehicleControl>(c => Control = c, _ => Control = null); _entity = entity; }
public static void ApplyConfig(VehicleBehavior beh, VehicleConfig cfg) { /* TODO: maybe * if (cfg.BodyLength > 0.0) * ph.BodyLength = cfg.BodyLength; * if (cfg.BodyWidth > 0.0) * ph.BodyWidth = cfg.BodyWidth; * if (cfg.DistanceBetweenAxles > 0.0) * ph.DistanceBetweenAxles = cfg.DistanceBetweenAxles; */ VehiclePhysics ph = beh.Physics; ph.BodyMass = cfg.BodyMass; ph.BodyAerodynamics = cfg.BodyAerodynamics; ph.HardImpactLossFactor = cfg.HardImpactLossFactor; ph.SoftImpactLossFactor = cfg.SoftImpactLossFactor; ph.EngineMaxPower = cfg.EngineMaxPower; ph.StillTurningVelocity = cfg.StillTurningVelocity; ph.DriftVelocityFactor = cfg.DriftVelocityFactor; VehicleControl ui = beh.Control; ui.SteeringAngle = MathHelper.DegreesToRadians(cfg.UISteeringAngle); }
public void DisableControl() { _entity.RemoveComponent <VehicleControl>(); Control = null; }