void Start() { rigidbody = GetComponent <Rigidbody> (); lastLinearPosition = Vector3.zero; lastAngularPosition = 0f; paused = false; startTime = Time.time; startPosition = transform.position; if (FinishCanvas != null) { FinishCanvas.gameObject.SetActive(false); } //SETTINGS squaredMovement = PlayerPrefs.GetInt("SquaredMovement") == 1 ? true : false; speedLinear = PlayerPrefs.GetFloat("RobotSpeed"); speedAngular = speedLinear * 10f; driveMode = PlayerPrefs.GetString("DefaultDriveMode").Equals("Tank") ? DriveModes.Tank : DriveModes.Mecanum; uiController.UpdateDriveMode(PlayerPrefs.GetString("DefaultDriveMode").Equals("Tank") ? "Tank Drive" : "Mecanum Drive"); PauseCanvas.transform.GetChild(1).GetComponent <Dropdown> ().value = driveMode == DriveModes.Tank ? 0 : 1; }
public TP(ushort id, SubP p) : base(id, p) { loopturn = false; NormWhAng = 35; Tangle = 0; switchingsusp = false; SuspensionMode = SuspensionModes.sport; DriveMode = DriveModes.full; FirstStr = ""; SecondStr = ""; Wheels = new List <IMyMotorSuspension>(); if ( (DriverLCD = OS.GTS.GetBlockWithName("Screen Driver") as IMyTextPanel) == null || (WheelLF = OS.GTS.GetBlockWithName("Wheel Suspension 3x3 LF") as IMyMotorSuspension) == null || (WheelRF = OS.GTS.GetBlockWithName("Wheel Suspension 3x3 RF") as IMyMotorSuspension) == null || (WheelLB = OS.GTS.GetBlockWithName("Wheel Suspension 3x3 LB") as IMyMotorSuspension) == null || (WheelRB = OS.GTS.GetBlockWithName("Wheel Suspension 3x3 RB") as IMyMotorSuspension) == null || (RemoteDriver = OS.GTS.GetBlockWithName("Control car") as IMyRemoteControl) == null || (RotorRull = OS.GTS.GetBlockWithName("Rotor rull") as IMyMotorStator) == null ) { Terminate("Kontur blocks not found."); return; } Wheels = new List <IMyMotorSuspension>() { WheelLF, WheelRF, WheelLB, WheelRB }; string saved = DriverLCD.GetText(); if (string.IsNullOrEmpty(saved)) { if (saved.Contains("front")) { DriveMode = DriveModes.front; } else if (saved.Contains("rear")) { DriveMode = DriveModes.rear; } if (saved.Contains("off-road")) { SuspensionMode = SuspensionModes.offroad; } if (saved.Contains("looper")) { loopturn = true; } } ChangeFirst(); AddAct(ref MA, Main, 1); SetCmd(new Dictionary <string, Cmd> { { "sdm", new Cmd(CmdSDM, "Switch drive mode Full/Front/Rear.") }, { "ssm", new Cmd(CmdSSM, "Switch suspension mode Sport/Off road.") }, { "sl", new Cmd(CmdSL, "Switch loopturn mode.") } }); }
public void setDriveMode() { int index = PauseCanvas.transform.GetChild(1).GetComponent <Dropdown> ().value; if (index == 0) { driveMode = DriveModes.Tank; } else if (index == 1) { driveMode = DriveModes.Mecanum; } uiController.UpdateDriveMode(index == 0 ? "Tank" : "Mecanum"); }
public void UpdateDriveModes() { DriveModes driveMode; foreach (Subsystem subsystem in DiscoveredSubsystems) { foreach (Node node in subsystem.NodeList) { foreach (Component component in node.ComponentList) { foreach (BaseService service in component.Services) { switch (service.ServiceName) { case LocalVectorDriver.SERVICE_NAME: driveMode = new DriveModes(this, component, remoteVelocityStateDriverService, LocalVectorDriver.SERVICE_NAME); discoveredDriveModes.Add(component.JausAddress.Value, driveMode); observableDriveModes.Add(driveMode); break; case VelocityStateDriver.SERVICE_NAME: if (discoveredDriveModes.ContainsKey(component.JausAddress.Value)) { break; } driveMode = new DriveModes(this, component, remoteVelocityStateDriverService, VelocityStateDriver.SERVICE_NAME); discoveredDriveModes.Add(component.JausAddress.Value, driveMode); observableDriveModes.Add(driveMode); break; case PrimitiveDriver.SERVICE_NAME: if (discoveredDriveModes.ContainsKey(component.JausAddress.Value)) { break; } driveMode = new DriveModes(this, component, remotePrimitiveDriverService, PrimitiveDriver.SERVICE_NAME); discoveredDriveModes.Add(component.JausAddress.Value, driveMode); observableDriveModes.Add(driveMode); break; } } } } } }
string CmdSDM(List <string> a) { if (DriveMode == DriveModes.rear) { DriveMode = DriveModes.full; } else { DriveMode++; } switch (DriveMode) { case DriveModes.full: WheelLB.Propulsion = true; WheelRB.Propulsion = true; WheelLF.Propulsion = true; WheelRF.Propulsion = true; break; case DriveModes.front: WheelLB.Propulsion = false; WheelRB.Propulsion = false; // Turn off rear WheelLF.Propulsion = true; WheelRF.Propulsion = true; // Turn on front break; case DriveModes.rear: WheelLB.Propulsion = true; WheelRB.Propulsion = true; // Turn on rear WheelLF.Propulsion = false; WheelRF.Propulsion = false; // Turn off front break; } ChangeFirst(); return(""); }
/// <summary> /// Set the drive mode of the robot to the one given /// </summary> /// <param name="driveMode">The drive mode to set the robot to</param> public static void SetDriveMode(DriveModes driveMode) { EnsureJavaClassExists(); genieInterfaceJavaClass.CallStatic("SetDriveMode", (int)driveMode); }