private static Part[] LoadParts(GameSaving.VesselSave vesselToLoad) { int num = vesselToLoad.parts.Length; PartData[] array = new PartData[num]; Part[] array2 = new Part[num]; for (int i = 0; i < num; i++) { array[i] = Ref.controller.partDatabase.GetPartByName(vesselToLoad.parts[i].partName); array2[i] = UnityEngine.Object.Instantiate <Transform>(array[i].prefab, Vector3.zero, Quaternion.identity).GetComponent <Part>(); array2[i].orientation = vesselToLoad.parts[i].orientation; } for (int j = 0; j < vesselToLoad.joints.Length; j++) { Part.Joint.Save save = vesselToLoad.joints[j]; if (save.fromPartId != -1 && save.toPartId != -1) { new Part.Joint(save.anchor, array2[save.fromPartId], array2[save.toPartId], save.fromSurfaceIndex, save.toSurfaceIndex, save.fuelFlow); } } for (int k = 0; k < num; k++) { array2[k].UpdateConnected(); } return(array2); }
private static Part[] LoadParts(GameSaving.VesselSave vesselToLoad) { int num = vesselToLoad.parts.Length; Part[] array = new Part[num]; for (int i = 0; i < num; i++) { PartData partByName = Ref.controller.partDatabase.GetPartByName(vesselToLoad.parts[i].partName); bool flag = !(partByName == null); if (flag) { array[i] = Instantiate(partByName.prefab, Vector3.zero, Quaternion.identity).GetComponent <Part>(); array[i].orientation = vesselToLoad.parts[i].orientation; array[i].partData.tags = new Dictionary <string, object>(); try { array[i].partData.GUID = new Guid(vesselToLoad.parts[i].GUID); } catch { array[i].partData.GUID = Guid.NewGuid(); } try { if (vesselToLoad.parts[i].tagsString != null) { foreach (string text in vesselToLoad.parts[i].tagsString.Split('|')) { if (!(text == "")) { Type type = Type.GetType(text.Split('#')[0]); string key = text.Split('#')[1]; object obj = JsonUtility.FromJson(text.Split('#')[2], type); array[i].partData.tags.Add(key, obj); } } } } catch (Exception e) { ModLoader.mainConsole.logError(e); } } } for (int j = 0; j < vesselToLoad.joints.Length; j++) { Part.Joint.Save save = vesselToLoad.joints[j]; bool flag2 = save.fromPartId != -1 && save.toPartId != -1; if (flag2) { bool flag3 = !(array[save.fromPartId] == null) && !(array[save.toPartId] == null); if (flag3) { new Part.Joint(save.anchor, array[save.fromPartId], array[save.toPartId], save.fromSurfaceIndex, save.toSurfaceIndex, save.fuelFlow); } } } return(array); }