Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Configurable variables
- // the word "const" tells the compiler that this variable will never change
- const string gravGenGroupName = "Gravdrive Coils";
- const string artMassGroupName = "Gravdrive AMUs";
- //dont touch this :P
- string GravDriveState = "Off"; //this makes a GLOBAL variable that is stored outside any code.
- //it can be accessed/written to from anywhere in the code
- public void Main(string argument)
- {
- switch (argument) //this begins comparing the argument to out accepted cases
- {
- case "fwdmax":
- if ( GravDriveState == "FMax" ) //there is no semicolon after if statenemts
- {
- SetGravityDriveStrength(gravGenGroupName, artMassGroupName, false);
- GravDriveState = "Off";
- }
- else
- {
- SetGravityDriveStrength(gravGenGroupName, artMassGroupName, true, -1f);
- GravDriveState = "FMax";
- }
- break;
- case "revmax":
- if (GravDriveState == "RMax")
- {
- SetGravityDriveStrength(gravGenGroupName, artMassGroupName, false);
- GravDriveState = "Off";
- }
- else
- {
- SetGravityDriveStrength(gravGenGroupName, artMassGroupName, true, 1f);
- GravDriveState = "RMax";
- }
- break;
- case "fwdlow":
- if (GravDriveState == "FLow")
- {
- SetGravityDriveStrength(gravGenGroupName, artMassGroupName, false);
- GravDriveState = "Off";
- }
- else
- {
- SetGravityDriveStrength(gravGenGroupName, artMassGroupName, true, -0.35f);
- GravDriveState = "FLow";
- }
- break;
- case "revlow":
- if (GravDriveState == "RLow")
- {
- SetGravityDriveStrength(gravGenGroupName, artMassGroupName, false);
- GravDriveState = "Off";
- }
- else
- {
- SetGravityDriveStrength(gravGenGroupName, artMassGroupName, true, 0.35f);
- GravDriveState = "RLow";
- }
- break;
- default:
- break;
- }
- }
- void SetGravityDriveStrength(string gravityGenGroupName, string artMassGroupName, bool turnOn, float gravityRatio = 0f)
- {
- var GravCoils = GridTerminalSystem.GetBlockGroupWithName(gravityGenGroupName);
- var GravDrive = new List<IMyGravityGenerator>();
- GravCoils.GetBlocksOfType(GravDrive);
- var GravAMU = GridTerminalSystem.GetBlockGroupWithName(artMassGroupName);
- var GravMass = new List<IMyGravityGenerator>();
- GravAMU.GetBlocksOfType(GravMass);
- if (!turnOn)
- {
- foreach (var ThisGrav in GravDrive)
- {
- ThisGrav.ApplyAction("OnOff_Off");
- }
- foreach (var ThisMass in GravMass)
- {
- ThisMass.ApplyAction("OnOff_Off");
- }
- }
- else
- {
- foreach (var ThisGrav in GravDrive)
- {
- ThisGrav.SetValue("Gravity", gravityRatio * 9.81f);
- ThisGrav.ApplyAction("OnOff_On");
- }
- foreach (var ThisMass in GravMass)
- {
- ThisMass.ApplyAction("OnOff_On");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment