Add config file and refactor windows

This commit is contained in:
2026-08-05 14:16:01 +02:00
parent d9c1b79563
commit db5702c0a7
12 changed files with 562 additions and 344 deletions
@@ -1,5 +1,6 @@
using PamhagenSysCtrl.Helpers;
using PamhagenSysCtrl.Helpers.Pipeline;
using System.Diagnostics;
using System.Windows;
using System.Windows.Input;
@@ -12,7 +13,6 @@ namespace PamhagenSysCtrl.Windows {
private List<INode> _path = [];
private ISet<INode>? _lastSelected;
private ISet<INode>? _hover;
private bool _mouseDown;
public PlantSchemeWindow() {
InitializeComponent();
@@ -21,6 +21,28 @@ namespace PamhagenSysCtrl.Windows {
Graph.Draw(SchemeCanvas);
}
private void Menu_Settings_ManualControl_Click(object sender, RoutedEventArgs evt) {
var w = new ManualControlWindow();
w.Show();
}
private void Menu_Settings_Directory_Click(object sender, RoutedEventArgs evt) {
try {
Process.Start("explorer.exe", App.DataPath);
} catch { }
}
private void Menu_Settings_Config_Click(object sender, RoutedEventArgs evt) {
try {
Process.Start(new ProcessStartInfo {
FileName = "notepad.exe",
Arguments = App.ConfigPath,
Verb = "runas",
UseShellExecute = true,
});
} catch { }
}
private void SchemeCanvas_MouseMove(object sender, MouseEventArgs evt) {
var p = evt.GetPosition(SchemeCanvas);
UpdateScheme(evt.GetPosition(SchemeCanvas), evt.LeftButton == MouseButtonState.Pressed);
@@ -75,10 +97,10 @@ namespace PamhagenSysCtrl.Windows {
App.Plant?.StartRebler();
}
} else if (c is Switcher switcher) {
if (App.Plant?.WantA1Selected ?? false) {
App.Plant?.SelectA2();
if (App.Plant?.WantMW1Selected ?? false) {
App.Plant?.SelectMW2();
} else {
App.Plant?.SelectA1();
App.Plant?.SelectMW1();
}
} else if (c is EncasedAuger auger) {
if (auger == Graph.Auger1) {
@@ -166,7 +188,6 @@ namespace PamhagenSysCtrl.Windows {
Graph.ColorPipesAdjacientToPath(p, PamhagenBrushes.Green, p.Hops.Any(h => (h.Node as Pump)?.IsActive ?? false), PamhagenBrushes.DimOrange);
}
_hover = Graph.GetHover(pos.X, pos.Y);
_mouseDown = down;
if (_lastSource != null && (_hover.Count > 0 || _path.Count > 0)) {
List<INode> points = [_lastSource, .. _path];
if (_hover.Count > 0 && !points.Contains(_hover.First())) {