Exemplo n.º 1
0
            void InitializeAndSubscribeSuspensions()
            {
                List <IMyTerminalBlock> units = new List <IMyTerminalBlock>();

                ProgramInstance.GridTerminalSystem.GetBlocksOfType <IMyMotorSuspension>(units);
                foreach (IMyTerminalBlock unit in units)
                {
                    if (unit.IsSameConstructAs(ProgramInstance.Me) && unit.CubeGrid == ProgramInstance.Me.CubeGrid)
                    {
                        if (unit.CustomName.Contains("Right"))
                        {
                            SuspensionWrapper suspensionWrapper =
                                new SuspensionWrapper(unit as IMyMotorSuspension, ref _controller);
                            ChangeTruckSuspensionParameters += suspensionWrapper.SuspensionParametersChanged;
                            ChangeTruckSuspensionStrength   += suspensionWrapper.SuspensionStrengthChanged;
                            _suspensions.Add(suspensionWrapper);
                        }
                        else
                        {
                            SuspensionWrapper suspensionWrapper =
                                new SuspensionWrapper(unit as IMyMotorSuspension, ref _controller)
                            {
                                Side = -1
                            };
                            ChangeTruckSuspensionParameters += suspensionWrapper.SuspensionParametersChanged;
                            ChangeTruckSuspensionStrength   += suspensionWrapper.SuspensionStrengthChanged;
                            _suspensions.Add(suspensionWrapper);
                        }
                    }
                }
                units.Clear();
            }
 public VehicleWheel(SuspensionWrapper wheel, bool isFront, double steeringAngleMultiplier)
 {
     Wheel   = wheel;
     IsFront = isFront;
     SteeringAngleMultiplier = steeringAngleMultiplier;
 }