private void setMountModuleFromEditor(CustomFuelTankMount newModule, bool updateSymmetry) { currentMountModule.destroyCurrentModel(); currentMountModule = newModule; newModule.setupModel(part, part.transform.FindRecursive("model")); currentMountType = newModule.name; updateEditorStats(true); if (updateSymmetry) { foreach (Part p in part.symmetryCounterparts) { SSTUModularFuelTank mft = p.GetComponent<SSTUModularFuelTank>(); CustomFuelTankMount mt = Array.Find(mft.mountModules, t => t.name == newModule.name); mft.setMountModuleFromEditor(mt, false); } } }
private CustomFuelTankMount getNextCap(CustomFuelTankMount[] mounts, CustomFuelTankMount currentMount, String[] nodeNames, bool iterateBackwards) { return SSTUUtils.findNextEligible<CustomFuelTankMount>(mounts, m => m == currentMount, l => l.canSwitchTo(part, nodeNames), iterateBackwards); }
/// <summary> /// If tank is uninitialized (no current tank type), will load the default values for tank type/diameter/nose/mount/fuel type into the 'current' slots. /// Will populate the 'currentModuleX' slot with the module for the loaded current-name /// </summary> private void loadTankModules() { currentMainTankModule = Array.Find(mainTankModules, m => m.name == currentTankType); currentNoseModule = Array.Find(noseModules, m => m.name == currentNoseType); currentMountModule = Array.Find(mountModules, m => m.name == currentMountType); currentFuelTypeData = Array.Find(fuelTypes, m => m.name == currentFuelType); if (currentFuelTypeData == null) { MonoBehaviour.print("ERROR: Could not locate fuel type for: " + currentFuelType + ". reverting to default fuel type of: " + defaultFuelType); currentFuelType = defaultFuelType; currentFuelTypeData = Array.Find(fuelTypes, m => m.name == currentFuelType); initializedResources = false; } }