private void btnSave_Click(object sender, EventArgs e) { var settings = new WorkSettings { TargetPath = TargetPath, TargetArgs = TargetArgs, TargetWorkingDir = TargetWorkingDir, FileNameForReport = FileNameForReport, LogLevel = ((int)LogLevel), DisableFlattenDomains = ckbFlattenDomains.Checked }; settings.IncludeRules(IncludeItems); settings.ExcludeRules(ExcludeItems); dlgSave.Filter = "Settings files (*.xml)|*.xml"; if (dlgSave.ShowDialog(this) != DialogResult.OK) { return; } try { settings.GenerateSettingsFileName = dlgSave.FileName; settings.GenerateSettingsFile(); ShowInformation("Settings were saved!"); } catch (Exception ex) { ShowInformation("Cannot save settings (" + ex.Message + ")"); } }
public static bool IsDisabledByLabor(IntVec3 pos, Pawn pawn, WorkTypeDef workType) { if (pos != null && pawn.Map.areaManager.Get <Area_Labor>() != null && !WorkSettings.WorkDisabled(workType)) { return(pawn.Map.areaManager.Get <Area_Labor>()[pos]); } return(false); }
public static bool canWorkHere(IntVec3 pos, Pawn pawn, WorkTypeDef workType) { if (!pawn.IsPrisonerOfColony && pos != null && pawn.Map.areaManager.Get <Area_Labor>() != null && !WorkSettings.WorkDisabled(workType)) { return(!pawn.Map.areaManager.Get <Area_Labor>()[pos]); } return(true); }
public void ViewAllCommands(WorkSettings ws) { Console.WriteLine("Доступные команды:"); foreach (KeyValuePair <string, Dictionary <string, string> > command in ws.Settings.Commands) { Console.WriteLine(" " + command.Value["Command"] + " - " + command.Value["Description"] + "."); } Console.WriteLine(); }
private void btnLoad_Click(object sender, EventArgs e) { dlgOpen.Filter = "Settings files (*.xml)|*.xml"; if (dlgOpen.ShowDialog(this) != DialogResult.OK) { return; } var settings = new WorkSettings { SettingsFile = dlgOpen.FileName }; try { settings.ReadSettingsFile(); } catch (Exception ex) { ShowInformation("Cannot load settings (" + ex.Message + ")"); return; } tbPath.Text = settings.TargetPath; tbWorkingDir.Text = settings.TargetWorkingDir; tbArgs.Text = settings.TargetArgs; SetLoggingEnabled(chkLoggingDumpMethod, settings.LogLevel, Logging.DumpMethod); SetLoggingEnabled(chkLoggingDumpInstrumentation, settings.LogLevel, Logging.DumpInstrumentation); SetLoggingEnabled(chkLoggingInstrumentMessages, settings.LogLevel, Logging.MethodInstrumentation); SetLoggingEnabled(chkLoggingMethodInner, settings.LogLevel, Logging.MethodInner); SetLoggingEnabled(chkLoggingSkipByRule, settings.LogLevel, Logging.SkipByRules); SetLoggingEnabled(chkLoggingSkipByState, settings.LogLevel, Logging.SkipByState); ckbFlattenDomains.Checked = settings.DisableFlattenDomains; tbRules.Text = string.Empty; foreach (var s in settings.IncludeItems) { if (tbRules.Text.Length > 0) { tbRules.Text = tbRules.Text + "\r\n"; } tbRules.Text = tbRules.Text + "+" + s; } foreach (var s in settings.ExcludeItems) { if (tbRules.Text.Length > 0) { tbRules.Text = tbRules.Text + "\r\n"; } tbRules.Text = tbRules.Text + "-" + s; } }
public string takeCommand(string enterCommand, WorkSettings ws) { enterCommand = enterCommand.Trim(); foreach (KeyValuePair <string, Dictionary <string, string> > command in ws.Settings.Commands) { if (enterCommand == command.Value["Command"]) { return(command.Key); } } return(null); }
private static IReportWriter GetReportWriter(WorkSettings settings) { IReportWriter reportWriter; if (settings.ReportFormat == "ncover") { reportWriter = new NCoverReportWriter(); } else { reportWriter = new DefaultReportWriter(); } return reportWriter; }
public void LoadSettingsFile_FullPath() { // arrange var settings = new WorkSettings(); settings.SettingsFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "FullPath.config"); // act settings.ReadSettingsFile(); // assert Assert.AreEqual(@"C:\TEMP\TARGET.EXE", settings.TargetPath); Assert.AreEqual(@"C:\TEMP", settings.TargetWorkingDir); Assert.AreEqual(@"C:\TEMP\OUTPUT.TXT", settings.FileNameForReport); }
private static void CalculateDifficulty() { var value = 1000; if (!enableMotivationMechanics) { value -= 300; } if (advancedGrowing) { value -= 50; } value -= 500; if (!allowAllWorktypes) { var delta = 500 + 7 * 50 + (DefDatabase <WorkTypeDef> .DefCount - 20) * 25; foreach (var wtd in WorkSettings.AvailableWorkTypes) { if (!WorkSettings.WorkDisabled(wtd)) { delta -= 50; } } if (delta > 0) { value += delta; } } if (value >= 1000) { difficulty = value / 10 + " (" + "PrisonLabor_DifficultyNormal".Translate() + ")"; } else if (value >= 800) { difficulty = value / 10 + " (" + "PrisonLabor_DifficultyCasual".Translate() + ")"; } else if (value >= 500) { difficulty = value / 10 + " (" + "PrisonLabor_DifficultyEasy".Translate() + ")"; } else if (value >= 300) { difficulty = value / 10 + " (" + "PrisonLabor_DifficultyPeaceful".Translate() + ")"; } else { difficulty = value / 10 + " (" + "PrisonLabor_DifficultyJoke".Translate() + ")"; } }
internal static void Pre_v0_9_4() { if (WorkSettings.AllowedWorkTypes.Contains(WorkTypeDefOf.Warden)) { WorkSettings.AllowedWorkTypes.Remove(WorkTypeDefOf.Warden); } if (WorkSettings.AllowedWorkTypes.Contains(PL_DefOf.PrisonLabor_Jailor)) { WorkSettings.AllowedWorkTypes.Remove(PL_DefOf.PrisonLabor_Jailor); } WorkSettings.Apply(); PrisonLaborPrefs.Save(); }
public void LoadSettingsFile_RelPath() { // arrange var newPath = Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"..\")); var settings = new WorkSettings(); settings.SettingsFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "RelPath.config"); // act settings.ReadSettingsFile(); // assert Assert.AreEqual(Path.Combine(newPath, "TARGET.EXE"), Path.GetFullPath(settings.TargetPath)); Assert.AreEqual(newPath, Path.GetFullPath(settings.TargetWorkingDir)); Assert.AreEqual(Path.Combine(newPath, "OUTPUT.TXT"), Path.GetFullPath(settings.FileNameForReport)); }
public static bool CanWorkHere(IntVec3 pos, Pawn pawn, WorkTypeDef workType) { if (!pawn.IsPrisonerOfColony && pos != null && pawn.Map.areaManager.Get <Area_Labor>() != null && !WorkSettings.WorkDisabled(workType)) { bool result = true; try { result = !pawn.Map.areaManager.Get <Area_Labor>()[pos]; } catch (IndexOutOfRangeException e) { Log.Message($"IndexOutOfRangeException for {workType.label} calling pos {pos}"); } return(result); } return(true); }
public static IEnumerable <Pawn> Pawns(MainTabWindow mainTabWindow) { foreach (var p in Find.VisibleMap.mapPawns.FreeColonists) { yield return(p); } if (mainTabWindow is MainTabWindow_Work || mainTabWindow is MainTabWindow_Restrict || mainTabWindow.GetType().ToString().Contains("MainTabWindow_WorkTab")) { foreach (var pawn in Find.VisibleMap.mapPawns.PrisonersOfColony) { if (PrisonLaborUtility.LaborEnabled(pawn)) { WorkSettings.InitWorkSettings(pawn); yield return(pawn); } } } }
public SelectWorkTypesDialog() { absorbInputAroundWindow = true; doCloseX = true; doCloseButton = true; workTypes = new Dictionary <WorkTypeDef, bool>(); foreach (var workType in WorkSettings.AvailableWorkTypes) { if (!WorkSettings.WorkDisabled(workType)) { workTypes.Add(workType, true); } else { workTypes.Add(workType, false); } } }
static void Main(string[] args) { WorkSettings settings = new WorkSettings(); DataBase dataBase = new DataBase(settings); dataBase.CreateRecordsTable(); Commands commands = new Commands(); Console.WriteLine("Начало программы"); bool workProgram = true; while (workProgram) { Console.WriteLine(); bool noCorrectCommandEntry = true; string command = null; while (noCorrectCommandEntry) { Console.Write("Введите команду: "); string enteredCommand = Console.ReadLine(); command = commands.takeCommand(enteredCommand, settings); if (command == null) { Text.WriteLineRedText("Ошибка: Такой команды не существует!"); commands.ViewAllCommands(settings); } else { noCorrectCommandEntry = false; } } switch (command) { case "AddNote": dataBase.AddRecordToTable(); break; case "ViewAll": dataBase.ViewAllNotes(); break; case "EditNote": dataBase.EditNote(); break; case "DeleteNote": dataBase.DeleteNote(); break; case "TaskCompleted": dataBase.ChangeStatusOnDone(); break; case "TaskNoComleted": dataBase.ChangeStatusOnNoDone(); break; case "ViewAllCompleted": dataBase.ViewAllCompleted(); break; case "ViewAllNoCompleted": dataBase.ViewAllNoCompleted(); break; case "Exit": Console.WriteLine("Выход."); workProgram = false; break; default: Console.WriteLine("Команда в разработке"); break; } } /*Console.Write("Введите запись: "); * string record = Console.ReadLine(); * * * WorkWithDB db = new WorkWithDB(); * * //Вставка записей в тиблицу * if(record != ""){ * string date = DateTime.Now.ToString(); * db.ExecuteQueryNoReturn( * $@"INSERT INTO records (record, date) * VALUES('{record}', '{date}');"); * } * Console.WriteLine("Все записи:"); * //Вывод всех записей * * db.ViewAllNotes();*/ }
public override ThinkResult TryIssueJobPackage(Pawn pawn, JobIssueParams jobParams) { var need = pawn.needs.TryGetNeed <Need_Motivation>(); if (pawn.timetable == null) { WorkSettings.InitWorkSettings(pawn); } if (HealthAIUtility.ShouldHaveSurgeryDoneNow(pawn)) { return(ThinkResult.NoJob); } if (PrisonLaborPrefs.EnableFullHealRest && (HealthAIUtility.ShouldBeTendedNowByPlayer(pawn) || HealthAIUtility.ShouldSeekMedicalRest(pawn))) { return(ThinkResult.NoJob); } //Check medical assistance, fed, and rest if not override if (!PrisonLaborUtility.WorkTime(pawn)) { Other.Tutorials.Timetable(); if (need != null) { need.IsPrisonerWorking = false; } return(ThinkResult.NoJob); } //Check motivation if (PrisonLaborPrefs.EnableMotivationMechanics && (need == null || need.IsLazy)) { return(ThinkResult.NoJob); } //Work prisoners will do WorkSettings.InitWorkSettings(pawn); var workList = pawn.workSettings.WorkGiversInOrderNormal; //TODO check this //workList.RemoveAll(workGiver => workGiver.def.defName == "GrowerSow"); if (need != null) { need.IsPrisonerWorking = false; } var num = -999; var targetInfo = TargetInfo.Invalid; WorkGiver_Scanner workGiver_Scanner = null; for (var j = 0; j < workList.Count; j++) { var workGiver = workList[j]; if (workGiver.def.priorityInType != num && targetInfo.IsValid) { break; } if (PawnCanUseWorkGiver(pawn, workGiver)) { try { var job2 = workGiver.NonScanJob(pawn); if (job2 != null) { if (need != null) { need.IsPrisonerWorking = true; } return(new ThinkResult(job2, this, workList[j].def.tagToGive)); } var scanner = workGiver as WorkGiver_Scanner; if (scanner != null) { if (workGiver.def.scanThings) { Predicate <Thing> predicate = t => !t.IsForbidden(pawn) && scanner.HasJobOnThing(pawn, t, false); var enumerable = scanner.PotentialWorkThingsGlobal(pawn); Thing thing; if (scanner.Prioritized) { var enumerable2 = enumerable; if (enumerable2 == null) { enumerable2 = pawn.Map.listerThings.ThingsMatching(scanner.PotentialWorkThingRequest); } var validator = predicate; thing = GenClosest.ClosestThing_Global_Reachable(pawn.Position, pawn.Map, enumerable2, scanner.PathEndMode, TraverseParms.For(pawn, Danger.Deadly, TraverseMode.ByPawn, false), 9999f, validator, x => scanner.GetPriority(pawn, x)); } else { var validator = predicate; var forceGlobalSearch = enumerable != null; thing = GenClosest.ClosestThingReachable(pawn.Position, pawn.Map, scanner.PotentialWorkThingRequest, scanner.PathEndMode, TraverseParms.For(pawn, Danger.Deadly, TraverseMode.ByPawn, false), 9999f, validator, enumerable, 0, scanner.MaxRegionsToScanBeforeGlobalSearch, forceGlobalSearch, RegionType.Set_Passable, false); } if (thing != null) { targetInfo = thing; workGiver_Scanner = scanner; } } if (workGiver.def.scanCells) { var position = pawn.Position; var num2 = 99999f; var num3 = -3.40282347E+38f; var prioritized = scanner.Prioritized; foreach (var current in scanner.PotentialWorkCellsGlobal(pawn)) { var flag = false; float num4 = (current - position).LengthHorizontalSquared; if (prioritized) { if (!current.IsForbidden(pawn) && scanner.HasJobOnCell(pawn, current)) { var priority = scanner.GetPriority(pawn, current); if (priority > num3 || priority == num3 && num4 < num2) { flag = true; num3 = priority; } } } else if (num4 < num2 && !current.IsForbidden(pawn) && scanner.HasJobOnCell(pawn, current)) { flag = true; } if (flag) { targetInfo = new TargetInfo(current, pawn.Map, false); workGiver_Scanner = scanner; num2 = num4; } } } } } catch (Exception ex) { Log.Error(string.Concat(pawn, " threw exception in WorkGiver ", workGiver.def.defName, ": ", ex.ToString())); } finally { } if (targetInfo.IsValid) { Job job3; if (targetInfo.HasThing) { job3 = workGiver_Scanner.JobOnThing(pawn, targetInfo.Thing, false); } else { job3 = workGiver_Scanner.JobOnCell(pawn, targetInfo.Cell); } if (job3 != null) { job3.workGiverDef = workGiver.def; if (need != null) { need.IsPrisonerWorking = true; } return(new ThinkResult(job3, this, workList[j].def.tagToGive)); } Log.ErrorOnce( string.Concat(workGiver_Scanner, " provided target ", targetInfo, " but yielded no actual job for pawn ", pawn, ". The CanGiveJob and JobOnX methods may not be synchronized."), 6112651); } num = workGiver.def.priorityInType; } } return(ThinkResult.NoJob); }
static int Main(string[] args) { try { var settings = new WorkSettings(); if (!settings.InitializeFromCommandLine(args)) { return(-1); } if (settings.ErrorsToStdout) { Console.SetError(Console.Out); } using (Registration.Create(settings.Register ? System.Reflection.Assembly.GetExecutingAssembly().Location : null)) { //Console.ReadLine(); var connector = new Connector(); connector.StatusMessageReceived += connector_StatusMessageReceived; connector.LogEntryReceived += connector_LogEntryReceived; connector.UseFileLogging(true); connector.UsePipeLogging(true); connector.SetLogging((Logging)settings.LogLevel); foreach (var item in settings.IncludeItems) { try { connector.IncludeItem(item); } catch (ArgumentException) { Console.Error.WriteLine("Item '" + item + "' have wrong format"); } } foreach (var item in settings.ExcludeItems) { try { connector.ExcludeItem(item); } catch (ArgumentException) { Console.Error.WriteLine("Item '" + item + "' have wrong format"); } } var options = new SessionRunOptions { TargetPath = settings.TargetPath, TargetDirectory = settings.TargetWorkingDir, TargetArguments = settings.TargetArgs, RedirectOutput = true, DelayClose = false, FlattenDomains = !settings.DisableFlattenDomains }; connector.Options = options; connector.StartTarget(); try { var writer = settings.OutputToFile ? new XmlTextWriter(File.CreateText(settings.FileNameForReport)) : new XmlTextWriter(Console.Out); using (writer) { writer.Formatting = Formatting.Indented; writer.Indentation = 1; writer.IndentChar = ' '; ReportSerializer.Save(writer, connector.Report); } } catch (Exception ex) { Console.Error.WriteLine("Can't save report (" + ex.Message + ")"); } #if DEBUG WriteListOfSkippedItems(connector.Report); #endif if (connector.TargetExitCode.HasValue) { return(connector.TargetExitCode.Value); } } // end using } catch (SettingsException ex) { Console.Error.WriteLine(ex.Message); return(-1); } catch (Exception ex) { Console.Error.WriteLine(ex.Message); Console.Error.WriteLine(ex.StackTrace); return(-1); } return(0); }
private static void SetupLoggingForConnector(WorkSettings settings, Connector connector) { connector.UseFileLogging(true); connector.UsePipeLogging(false); connector.SetLogging((Logging) settings.LogLevel); }
private static void SetupIncludedItemsForConnector(WorkSettings settings, Connector connector) { foreach (string item in settings.IncludeItems) { try { connector.IncludeItem(item); } catch (ArgumentException) { LogError("Item '{0}' has wrong format", item); } } }
public WorkQueue(WorkSettings settings) { Work = new ObservableCollection <BatchWork>(); WorkSettings = settings; }
private void btnSave_Click(object sender, EventArgs e) { WorkSettings settings = new WorkSettings(); settings.TargetPath = TargetPath; settings.TargetArgs = TargetArgs; settings.TargetWorkingDir = TargetWorkingDir; settings.FileNameForReport = FileNameForReport; settings.LogLevel = (int)LogLevel; settings.IncludeRules(IncludeItems); settings.ExcludeRules(ExcludeItems); dlgSave.Filter = "Settings files (*.xml)|*.xml"; if (dlgSave.ShowDialog(this) == DialogResult.OK) { try { settings.GenerateSettingsFileName = dlgSave.FileName; settingsWriter.GenerateSettingsFile(settings); ShowInformation("Settings were saved!"); } catch (Exception ex) { ShowInformation("Cannot save settings (" + ex.Message + ")"); } } }
private void MainForm_Load(object sender, EventArgs e) { Settings = new WorkSettings(); // Создание экземпляра настроек startControl.BackgroundColor = Settings.BackgroundColor; // Добавление созданных контролов на главную форму this.Controls.Add(startControl); this.Controls.Add(login); this.Controls.Add(customSelect); this.Controls.Add(settings); this.Controls.Add(payment); this.Controls.Add(finish); // Настройка контролов и подписка на события от них foreach (Control ctrl in this.Controls) { var ac = ctrl as IActivControl; // Если контрол if (ac != null) // реализует интерфейс IActivControl { ctrl.Visible = false; ctrl.Location = ctrl.Align(HorizontalAlign.Centre, VerticalAlign.Centre); // Подписка на событие ActivControl ac.ActivControl += new EventHandler <WorkEventArgs> (Set_ActivControl); } var dm = ctrl as IDeadMouse; // Если контрол if (dm != null) // реализует интерфейс IDeadMouse, подписываемся // на событие DeadMouse { dm.DeadMouse += new EventHandler(On_Dead_Mouse); } if (ctrl is IGoHome) { ((IGoHome)ctrl).GoHomeEvent += new EventHandler(startControl.Start); } var sr = ctrl as ISettingsIsRead; if (sr != null) { Settings.WorkSettingsIsRead += new EventHandler (sr.SettingsIsRead); } } // Подписка на события контролов startControl.AdminClick += new EventHandler(login.Start); startControl.UserClick += new EventHandler(customSelect.Start); login.btnCancel.Click += new EventHandler(startControl.Start); login.LogOK += new EventHandler(settings.Start); settings.btnCancel.Click += new EventHandler(startControl.Start); customSelect.ProductSelected += new EventHandler(payment.Start); payment.ProductIsPaid += new EventHandler(finish.Start); // Чтение настроек из файла Settings.Read("Settings.dat"); // Запуск стартового контрола startControl.Start(this, new EventArgs()); }
public DataBase(WorkSettings ws) { db = new WorkWithDB(ws.Settings.LocalDB); }