public FuncDoor(Entity entity, GameWorld world, FuncDoorFactory factory) : base(entity, world) { this.world = world; fxStart = factory.FXStart; fxMove = factory.FXMove; fxStop = factory.FXStop; model = world.Atoms[factory.Model]; kinematic = world.Physics.AddKinematicModel(model, entity); once = factory.Once; doorMode = factory.DoorMode; framesPerSecond = factory.FramesPerSecond; openingStartFrame = factory.OpeningStartFrame; openingEndFrame = factory.OpeningEndFrame; closingStartFrame = factory.ClosingStartFrame; closingEndFrame = factory.ClosingEndFrame; waitingDelay = factory.WaitingDelay; frame = openingStartFrame; Reset(); }
public StandardWorld(ITrack track, TimeSpan simulationTime, double safetyMargin = 1) { Track = track; VehicleModel = new Porsche911VehicleModel(track.Circuit.Radius / 3); MotionModel = new KinematicModel(VehicleModel, simulationTime); CollisionDetector = new AccurateCollisionDetector(track, VehicleModel, safetyMargin); WayPoints = track.Circuit.WayPoints.Count > 4 ? new[] { track.Circuit.WayPoints[0], track.Circuit.WayPoints.ElementAt(track.Circuit.WayPoints.Count / 3), track.Circuit.WayPoints.ElementAt(2 * track.Circuit.WayPoints.Count / 3), track.Circuit.WayPoints.Last() }.ToList().AsReadOnly() : track.Circuit.WayPoints.ToList().AsReadOnly(); StateClassificator = new StateClassificator(CollisionDetector, WayPoints.Last()); InitialState = track.Circuit.StartingPosition; Actions = new SteeringInputs(throttleSteps: 7, steeringSteps: 31); }
public FuncMotor(Entity entity, GameWorld world, FuncMotorFactory factory) : base(entity, world) { fxStart = factory.FXStart; fxMove = factory.FXMove; fxStop = factory.FXStop; model = world.Atoms[factory.Model]; kinematic = world.Physics.AddKinematicModel(model, entity); once = factory.Once; enabled = factory.Start; startFrame = factory.StartFrame; endFrame = factory.EndFrame; animLength = (short)(endFrame - startFrame); framesPerSecond = factory.FramesPerSecond; Reset(); }