Compare commits

...

3 Commits

11 changed files with 78 additions and 30 deletions

View File

@ -197,6 +197,10 @@ namespace EliteBGS.BGS {
continue;
}
if (!objective.IsEnabled) {
continue;
}
log.AppendFormat("**Date:** {0}\n", FormatDate());
log.AppendFormat("**Location:** {0}\n", objective.ToShortString());
log.AppendFormat("**Faction:** {0}\n", objective.Faction);

View File

@ -32,5 +32,7 @@ namespace EliteBGS.BGS {
public virtual int CompareTo(LogEntry other) {
throw new NotImplementedException("not implemented");
}
public string Name => this.ToString();
}
}

View File

@ -196,6 +196,10 @@ namespace EliteBGS.BGS {
continue;
}
if (!objective.IsEnabled) {
continue;
}
log.AppendFormat(":globe_with_meridians: `Location:` {0}\n", objective.ToShortString());
log.Append(":clipboard: `Conducted:`\n");
log.Append("```\n");

View File

@ -11,11 +11,26 @@ namespace EliteBGS.BGS {
private List<LogEntry> entries = new List<LogEntry>();
[JsonIgnore]
public bool IsEnabled { get; set; }
[JsonIgnore]
public List<LogEntry> Children {
get => entries;
}
[JsonIgnore]
public string Name => this.ToString();
[JsonIgnore]
public bool IsExpanded { get; set; }
[JsonIgnore]
public List<LogEntry> LogEntries {
get => entries;
set => entries = value;
}
public void Clear() {
if (entries == null) {
return;
@ -23,6 +38,8 @@ namespace EliteBGS.BGS {
entries.RemoveAll(x => !x.ManuallyAdded);
}
public bool ManuallyAdded { get; set; }
public int Matches(LogEntry e) {
int match_count = 0;

View File

@ -48,7 +48,26 @@
<Label Content="To:" Height="26.2857142857143" VerticalAlignment="Top"/>
<DatePicker x:Name="enddate" Height="26.2857142857143" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</ToolBar>
<TreeView x:Name="entries" Margin="0,0,0,0" Grid.ColumnSpan="3" Grid.Row="2" KeyUp="entries_KeyUp"/>
<TreeView x:Name="entries" Margin="0,0,0,0" Grid.ColumnSpan="3" Grid.Row="2" KeyUp="entries_KeyUp">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type BGS:Objective}" ItemsSource="{Binding Children}">
<StackPanel Orientation="Horizontal">
<CheckBox Focusable="False" IsChecked="{Binding IsEnabled}" VerticalAlignment="Center"/>
<TextBlock Text="{Binding Name}" Margin="5,0" />
</StackPanel>
<HierarchicalDataTemplate.ItemTemplate>
<HierarchicalDataTemplate>
<TextBlock Text="{Binding Name}"/>
</HierarchicalDataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
<TreeView.ItemContainerStyle>
<Style TargetType="TreeViewItem">
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
</Style>
</TreeView.ItemContainerStyle>
</TreeView>
</Grid>
</TabItem>
<TabItem Header="Discord Report">

View File

@ -107,22 +107,10 @@ namespace EliteBGS {
return;
}
foreach (var obj in report.Objectives) {
var item_objective = new TreeViewItem {
Header = obj.ToString(),
Tag = obj
};
foreach (var log in obj.LogEntries) {
var log_objective = new TreeViewItem {
Header = log.ToString(),
Tag = log
};
item_objective.Items.Add(log_objective);
}
item_objective.IsExpanded = true;
entries.Items.Add(item_objective);
foreach (Objective obj in report.Objectives) {
entries.Items.Add(obj);
obj.IsExpanded = obj.ManuallyAdded;
obj.IsEnabled = obj.ManuallyAdded;
}
}
@ -144,7 +132,8 @@ namespace EliteBGS {
Objective objective = new Objective {
System = system.Text,
Faction = faction.Text,
Station = station.Text
Station = station.Text,
ManuallyAdded = true,
};
if (!objective.IsValid) {
@ -179,16 +168,18 @@ namespace EliteBGS {
return;
}
TreeViewItem item = entries.SelectedItem as TreeViewItem;
var obj = item.Tag;
object obj = entries.SelectedItem;
bool removed = false;
if (obj.GetType() == typeof(Objective)) {
removed = report.Objectives.Remove(obj as Objective);
} else if (obj.GetType() == typeof(LogEntry) ||
obj.GetType().IsSubclassOf(typeof(LogEntry))) {
var parent = (item.Parent as TreeViewItem).Tag as Objective;
removed = parent.LogEntries.Remove(obj as LogEntry);
foreach (Objective parent in report.Objectives) {
if (parent.LogEntries.Remove(obj as LogEntry)) {
removed = true;
}
}
}
if (removed) {

View File

@ -15,7 +15,9 @@ Binary downloads can be found here: [https://bgs.n0la.org/](https://bgs.n0la.org
Use the main tab to add objectives to the program. To do this, insert the system name,
faction, and, optionally, a station. Then press "Add Objective". Objectives can be deleted
by selecting them and pressing the "DEL" key.
by selecting them and pressing the "DEL" key. Manually added objectives like this are
enabled by default. You can always enable, and disable an objective by checking the box
next to its name. Disabled objectives are not included in the BGS discord log generation.
Once you have your objectives have been configured, you can press "Parse Journal", which
will check your Elite Dangerous player journal for completed missions. Currently the tool
@ -41,10 +43,11 @@ the combat zone entries by selecting them, and pressing "DEL".
![Main Window with entries](main-entries.png)
The window will then list all the journal entries it has found, and group them by objectives. You
can remove individual entries (if you think the tool detected soemthing you thought was wrong), by
can remove individual entries (if you think the tool detected something you thought was wrong), by
selecting the entry, and pressing the "DEL" key.
Once you are satisfied with the result, move to "Discord Report" tab, and click "Generate Report".
Once you are satisfied with the result, move to "Discord Report" tab, select a template, and click
"Generate Report".
![Generated Report](main-report.png)
@ -86,9 +89,13 @@ also an ommission from FDev:
Until this is fixed, please edit the resulting BGS log text, and manually add such entries.
The tool also currently cannot differentiate between missions you have abandoned in the transaction
tab before it was completed, and those that you have failed - either delibaretly or by time-out. So
it will find and add them all, and you simply can remove those that you have abandoned manually.
## Use EDDB information
EliteBGS can download information from EDDB to auto complete system- and station names. You can
EliteBGS can download information from EDDB to auto complete system and station names. You can
enable its use in the "Settings". Once enabled, you must also press "Download", to download and
process the current version of the EDDB database.
@ -117,6 +124,6 @@ And of course, `Newtonsoft.Json` as the JSON parser.
## About
This tool was made by CMDR Hekateh (Discord: `nola#2457`) of Vulcan Industrial Ventures.
This tool was made by CMDR Hekateh (Discord: `nola#2457`).
Long live the Empire.

View File

@ -66,11 +66,15 @@ namespace EliteBGS.Util {
public void SaveObjectives(Report report) {
var serializer = JsonSerializer.CreateDefault();
using (var file = new StreamWriter(File.OpenWrite(objectives_file), Encoding.UTF8)) {
var stream = new JsonTextWriter(file);
using (FileStream filestream = File.OpenWrite(objectives_file)) {
filestream.SetLength(0);
filestream.Flush();
using (StreamWriter file = new StreamWriter(filestream, Encoding.UTF8)) {
JsonTextWriter stream = new JsonTextWriter(file);
serializer.Serialize(stream, report.Objectives);
}
}
}
public void LoadObjectives(Report report) {
var serializer = JsonSerializer.CreateDefault();

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 21 KiB