//set info about the docking. if the part is docked this set's is_docked to true and sets docked_to to be the part it is docked with. public virtual void get_docked_info() { ModuleDockingNode module = this.part.FindModuleImplementing <ModuleDockingNode>(); if (module.otherNode) { docked_to = module.otherNode.part; opposite_pump = docked_to.FindModuleImplementing <DockingFuelPump>(); if (docked_to.aerodynamicArea < pump_size) { pump_size = docked_to.aerodynamicArea; } is_docked = true; } }
//setup events to stop the fuel pump when the port is undocked or it goes kaboomy public override void OnStart(StartState state) { this.part.OnJustAboutToBeDestroyed += () => { if (pump_running) { stop_fuel_pump(); if (opposite_pump) { opposite_pump.stop_fuel_pump(); } } }; GameEvents.onPartUndock.Add((part) => { DockingFuelPump module = part.FindModuleImplementing <DockingFuelPump>(); if (module && module.pump_running) { log("undocking...stopping fuel pump"); module.stop_fuel_pump(); } }); }