public contractUIObject(contractContainer c, contractMission m) { container = c; mission = m; _showParams = true; _order = null; _agencyLogo = container.RootAgent.Logo; _agencyName = container.RootAgent.Name; _difficulty = (int)container.Root.Prestige; _id = container.ID; for (int i = 0; i < c.FirstLevelParameterCount; i++) { parameterContainer p = c.getParameterLevelOne(i); if (p == null) { continue; } if (string.IsNullOrEmpty(p.Title)) { continue; } paramList.Add(new parameterUIObject(p)); } }
private void contractAccepted(Contract c) { if (c == null) { return; } if (c.ContractState != Contract.State.Active) { return; } contractContainer cC = contractParser.getActiveContract(c.ContractGuid); if (cC != null) { currentMission.addContract(cC, true, true, true); if (currentMission.ShowActiveMissions) { refreshContracts(cList); } if (!currentMission.MasterMission) { contractScenario.Instance.MasterMission.addContract(cC, true, true, true); } } }
public void Rebuild() { contractScenario.Instance.addFullMissionList(); currentMission = contractScenario.Instance.MasterMission; int l = ContractSystem.Instance.Contracts.Count; for (int i = 0; i < l; i++) { Contract c = ContractSystem.Instance.Contracts[i]; if (c == null || c.ContractState != Contract.State.Active) { continue; } contractContainer cC = contractParser.getActiveContract(c.ContractGuid); if (cC != null) { currentMission.addContract(cC, true, true); } } UIWindow.SelectMission(currentMission); }
public void NewMission(string title, Guid id) { if (string.IsNullOrEmpty(title)) { return; } if (!contractScenario.Instance.addMissionList(title)) { return; } contractMission cM = contractScenario.Instance.getMissionList(title); if (cM == null) { return; } contractContainer c = contractParser.getActiveContract(id); if (c == null) { return; } cM.addContract(c, true, true); }
internal void removeContract(contractContainer c) { if (contractScenario.ListRemove(activeMissionList, c.Root.ContractGuid) || contractScenario.ListRemove(hiddenMissionList, c.Root.ContractGuid)) { removeFromMasterList(c); } }
private void removeFromMasterList(contractContainer c) { if (contractList.ContainsKey(c.Root.ContractGuid)) { contractList.Remove(c.Root.ContractGuid); } }
private void buildMissionList(string s, bool Active) { if (string.IsNullOrEmpty(s)) { return; } else { string[] sA = s.Split(','); for (int i = 0; i < sA.Length; i++) { contractContainer c = null; contractUIObject cUI = null; string[] sB = sA[i].Split('|'); try { Guid g = new Guid(sB[0]); if (g == null) { continue; } c = contractParser.getActiveContract(g); if (c == null) { continue; } addContract(c, Active, true); cUI = getContract(g); if (cUI == null) { continue; } cUI.SetHidden(!Active); cUI.Order = stringIntParse(sB[1]); cUI.ShowParams = stringBoolParse(sB[2]); } catch (Exception e) { DMC_MBE.LogFormatted("Guid invalid: {0}", e); continue; } } } }
internal void addContract(contractContainer c, bool active, bool warn, bool addToUI = false) { if (!activeMissionList.Contains(c.Root.ContractGuid) && !hiddenMissionList.Contains(c.Root.ContractGuid)) { if (addToMasterList(c, addToUI)) { if (active) { activeMissionList.Add(c.Root.ContractGuid); } else { hiddenMissionList.Add(c.Root.ContractGuid); } } } else if (warn) { DMC_MBE.LogFormatted("Mission List Already Contains Contract: {0}", c.Title); } }
private void refreshList(Contract c) { window.refreshContracts(false); if (c == null) { return; } if (c.ContractState != Contract.State.Active) { return; } contractContainer cc = contractParser.getActiveContract(c.ContractGuid); if (cc == null) { return; } if (cc.Initialized) { return; } for (int i = 0; i < cc.ParameterCount; i++) { parameterContainer p = cc.getParameterFull(i); if (p == null) { continue; } customStartup(p); } cc.Initialized = true; }
private bool addToMasterList(contractContainer c, bool add = false) { if (!contractList.ContainsKey(c.Root.ContractGuid)) { contractUIObject cUI = new contractUIObject(c, this); contractList.Add(c.Root.ContractGuid, cUI); if (add && UIParent != null) { UIParent.AddContract(cUI); } return(true); } else { DMC_MBE.LogFormatted("Master Mission List For: [{0}] Already Contains Contract: [{1}]", _missionTitle, c.Title); } return(false); }
private void removeFromMasterList(contractContainer c) { if (contractList.ContainsKey(c.Root.ContractGuid)) contractList.Remove(c.Root.ContractGuid); }
private bool addToMasterList(contractContainer c) { if (!contractList.ContainsKey(c.Root.ContractGuid)) { contractList.Add(c.Root.ContractGuid, new contractUIObject(c)); return true; } else DMC_MBE.LogFormatted("Master Mission List For: [{0}] Already Contains Contract: [{1}]", name, c.Title); return false; }
internal void addContract(contractContainer c, bool active, bool warn) { if (!activeMissionList.Contains(c.Root.ContractGuid) && !hiddenMissionList.Contains(c.Root.ContractGuid)) { if (addToMasterList(c)) { if (active) activeMissionList.Add(c.Root.ContractGuid); else hiddenMissionList.Add(c.Root.ContractGuid); } } else if (warn) DMC_MBE.LogFormatted("Mission List Already Contains Contract: {0}", c.Title); }
internal contractUIObject(contractContainer c) { container = c; showParams = true; order = null; }
private void refreshContracts(List <Guid> list, bool sort = true) { List <Guid> removeList = new List <Guid>(); List <Guid> pinnedRemoveList = new List <Guid>(); int l = list.Count; for (int i = 0; i < l; i++) { Guid id = list[i]; contractContainer cC = contractParser.getActiveContract(id); if (cC == null) { cC = contractParser.getCompletedContract(id); } if (cC == null) { removeList.Add(id); continue; } else { if (cC.Root.ContractState != Contract.State.Active) { cC.Duration = 0; cC.DaysToExpire = "----"; cC.Title = cC.Root.Title; cC.Notes = cC.Root.Notes; foreach (parameterContainer pC in cC.AllParamList) { pC.Title = pC.CParam.Title; pC.setNotes(pC.CParam.Notes); } continue; } //Update contract timers if (cC.Root.DateDeadline <= 0) { cC.Duration = double.MaxValue; cC.DaysToExpire = "----"; } else { cC.Duration = cC.Root.DateDeadline - Planetarium.GetUniversalTime(); //Calculate time in day values using Kerbin or Earth days cC.DaysToExpire = cC.timeInDays(cC.Duration); } cC.Title = cC.Root.Title; cC.Notes = cC.Root.Notes; foreach (parameterContainer pC in cC.AllParamList) { pC.Title = pC.CParam.Title; pC.setNotes(pC.CParam.Notes); } } } foreach (Guid id in pinnedList) { contractContainer cC = contractParser.getActiveContract(id); if (cC == null) { pinnedRemoveList.Add(id); } } foreach (Guid id in removeList) { contractScenario.ListRemove(list, id); } foreach (Guid id in pinnedRemoveList) { contractScenario.ListRemove(pinnedList, id); } if (sort) { list = sortContracts(list, currentMission.OrderMode, currentMission.DescendingOrder); if (UIWindow == null) { return; } UIWindow.SortMissionChildren(list); } if (UIWindow == null) { return; } UIWindow.UpdateMissionChildren(); }
internal void removeContract(contractContainer c) { if (contractScenario.ListRemove(activeMissionList, c.Root.ContractGuid) || contractScenario.ListRemove(hiddenMissionList, c.Root.ContractGuid)) removeFromMasterList(c); }
private void buildParameterLabel(parameterContainer cP, contractContainer c, int level, int id, int size, ref Rect r) { string paramTitle = cP.Title; bool active = cP.CParam.State == ParameterState.Incomplete; bool greenState = cP.CParam.State == ParameterState.Complete || cP.CParam.State == ParameterState.Incomplete; bool redState = cP.CParam.State == ParameterState.Incomplete || cP.CParam.State == ParameterState.Failed; GUIStyle pStyle = paramState(cP); GUILayout.BeginHorizontal(); GUILayout.Space(5 + (level * 5)); r.x = 5 + (level * 5); r.y += r.height; //Note icon button if (active && !string.IsNullOrEmpty(cP.Notes(useCustomNotes))) { r.x -= 2; r.y += 4; r.width = 12 + (size * 2); r.height = 14 + (size * 4); if (!cP.ShowNote) { if (GUI.Button(r, new GUIContent(contractSkins.noteIcon, "Show Note"), contractSkins.texButtonSmall)) cP.ShowNote = !cP.ShowNote; } else { if (GUI.Button(r, new GUIContent(contractSkins.noteIconOff, "Hide Note"), contractSkins.texButtonSmall)) cP.ShowNote = !cP.ShowNote; } GUILayout.Space(12 + size * 2); } /* FIXME - Disabled For Now; Need to Figure Out Changes Made In 0.90 */ //Editor part icon button //if (cP.part != null && HighLogic.LoadedSceneIsEditor) //{ // if (GUILayout.Button(new GUIContent(contractSkins.partIcon, "Preview Part"), contractSkins.texButtonSmall, GUILayout.MaxWidth(18 + contractScenario.Instance.windowSize * 4), GUILayout.MaxHeight(18 + contractScenario.Instance.windowSize * 4))) // { // EditorLogic.fetch.Unlock(lockID); // editorLocked = false; // EditorPartList.Instance.RevealPart(cP.part, true); // } // GUILayout.Space(-3); //} //Contract parameter title if (!string.IsNullOrEmpty(cP.Notes(useCustomNotes))) GUILayout.Box(paramTitle, pStyle, GUILayout.MaxWidth(208 - (level * 5) + size * 28)); else GUILayout.Box(paramTitle, pStyle, GUILayout.MaxWidth(220 - (level * 5) + size * 30)); r = GUILayoutUtility.GetLastRect(); GUILayout.EndHorizontal(); //Parameter reward info if (WindowRect.width >= 270 + (size * 30)) { if (r.yMin >= (scroll.y - 20) && r.yMax <= (scroll.y + WindowRect.height - (30 + size * 6))) { Rect rewardsRect = r; rewardsRect.x = 230 + (size * 30); rewardsRect.y += 4; scaledContent(ref rewardsRect, cP.FundsRewString, cP.FundsPenString, Currency.Funds, size, greenState, redState); scaledContent(ref rewardsRect, cP.SciRewString, "", Currency.Science, size, greenState, redState); scaledContent(ref rewardsRect, cP.RepRewString, cP.RepPenString, Currency.Reputation, size, greenState, redState); } } //Display note if (!string.IsNullOrEmpty(cP.Notes(useCustomNotes)) && cP.ShowNote && active) { GUILayout.Space(-6); GUILayout.Box(cP.Notes(useCustomNotes), GUILayout.MaxWidth(320 + size * 60)); r.height += GUILayoutUtility.GetLastRect().height; } if (level < 4) { foreach (parameterContainer sP in cP.ParamList) { if (sP.Level == level + 1 && !string.IsNullOrEmpty(sP.Title)) { if (active) buildParameterLabel(sP, c, level + 1, id, size, ref r); } } } }