mirror of
https://github.com/Xevion/factorio-achievements-fixer.git
synced 2025-12-11 08:07:15 -06:00
InitialWindow, design ideas, README troubleshooting
This commit is contained in:
13
DESIGN.md
Normal file
13
DESIGN.md
Normal file
@@ -0,0 +1,13 @@
|
||||
- Offer tools for manual editing of bytes, decoding of zstd compressed level files
|
||||
- Logging into appdata/temp
|
||||
- Drag and drop
|
||||
- Manual byte editing
|
||||
- Suggestion-based editing (e.g. "I think this is the achievement flag")
|
||||
- Launch Factorio button (select save file automatically)
|
||||
|
||||
FLOW
|
||||
|
||||
- Open app
|
||||
- Either drag and drop
|
||||
- Or press 'Open File'
|
||||
- Or select from list
|
||||
15
README.md
15
README.md
@@ -14,9 +14,20 @@ This is a WPF-based tool that can be used to re-enable achievements in [Factorio
|
||||
|
||||
If you're having trouble getting _any_ tools to work in this space, that's because this is an experimental and highly volatile method of fixing achievements.
|
||||
|
||||
All we are able to do is use best-effort pattern matching with trial and error to attempt to re-enable achievements.
|
||||
All we are able to do is use best-effort pattern matching with trial and error to attempt to re-enable achievements. This means that it's not guaranteed to work, and could easily break in the future.
|
||||
|
||||
I recommend that you
|
||||
This tool aims to be slightly more configurable and offer a trial-and-error approach that could be more complicated, but works better for a wider range of scenarios.
|
||||
|
||||
I made this tool and developed my method from the following sources/discussions online:
|
||||
|
||||
- https://www.reddit.com/r/factorio/comments/rlprxh/text_tutorial_for_reenabling_achievements_after/
|
||||
- https://forums.factorio.com/viewtopic.php?p=623016#p623016
|
||||
- https://github.com/0x796935/factorio-achievement-restore
|
||||
- https://0x796935.github.io/
|
||||
- https://github.com/Rainson12/FactorioSaveGameEnableAchievements
|
||||
- https://github.com/Rainson12/FactorioSaveGameEnableAchievements/issues/1
|
||||
- https://github.com/pooreboy/factorio-achievement-restore
|
||||
- https://www.reddit.com/r/factorio/comments/1gacff0/enabling_achievements_after_using_console_commands/
|
||||
|
||||
## Compiling
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="clr-namespace:factorio_achievements_fixer"
|
||||
StartupUri="MainWindow.xaml">
|
||||
StartupUri="InitialWindow.xaml">
|
||||
<Application.Resources>
|
||||
|
||||
</Application.Resources>
|
||||
|
||||
45
factorio-achievements-fixer/InitialWindow.xaml
Normal file
45
factorio-achievements-fixer/InitialWindow.xaml
Normal file
@@ -0,0 +1,45 @@
|
||||
<Window x:Class="factorio_achievements_fixer.InitialWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:local="clr-namespace:factorio_achievements_fixer"
|
||||
mc:Ignorable="d"
|
||||
Title="Achievements Fixer"
|
||||
Height="450"
|
||||
Width="800">
|
||||
<Grid HorizontalAlignment="Stretch"
|
||||
DockPanel.Dock="Top"
|
||||
Height="Auto"
|
||||
AllowDrop="True"
|
||||
Drop="Grid_Drop"
|
||||
DragOver="Grid_DragOver"
|
||||
Background="Transparent">
|
||||
<StackPanel Orientation="Vertical"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center">
|
||||
<TextBlock Text="Select a Save File, or Drag and Drop it here..."
|
||||
FontSize="16"
|
||||
Margin="10"/>
|
||||
<Button Content="Select File..."
|
||||
Width="150"
|
||||
Height="30"
|
||||
Margin="10"
|
||||
Click="FixAchievements_Click"/>
|
||||
<ListView Name="SaveList"
|
||||
Margin="5"
|
||||
Height="Auto"
|
||||
Width="Auto">
|
||||
<ListView.View>
|
||||
<GridView>
|
||||
<GridViewColumn Header="Filename"
|
||||
DisplayMemberBinding="{Binding Name}"/>
|
||||
<GridViewColumn Header="Last Modified"
|
||||
DisplayMemberBinding="{Binding Description}"/>
|
||||
</GridView>
|
||||
</ListView.View>
|
||||
</ListView>
|
||||
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Window>
|
||||
71
factorio-achievements-fixer/InitialWindow.xaml.cs
Normal file
71
factorio-achievements-fixer/InitialWindow.xaml.cs
Normal file
@@ -0,0 +1,71 @@
|
||||
using System.Text;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace factorio_achievements_fixer;
|
||||
|
||||
/// <summary>
|
||||
/// Interaction logic for MainWindow.xaml
|
||||
/// </summary>
|
||||
public partial class InitialWindow : Window
|
||||
{
|
||||
public InitialWindow()
|
||||
{
|
||||
// InitializeComponent();
|
||||
|
||||
var listView = new ListView
|
||||
{
|
||||
Margin = new Thickness(10)
|
||||
};
|
||||
|
||||
var gridView = new GridView();
|
||||
gridView.Columns.Add(new GridViewColumn
|
||||
{
|
||||
Header = "File Name",
|
||||
DisplayMemberBinding = new Binding("FileName")
|
||||
});
|
||||
|
||||
listView.View = gridView;
|
||||
|
||||
var grid = new Grid();
|
||||
grid.Children.Add(listView);
|
||||
|
||||
Content = grid;
|
||||
}
|
||||
|
||||
private void Grid_Drop(object sender, DragEventArgs e)
|
||||
{
|
||||
if (!e.Data.GetDataPresent(DataFormats.FileDrop))
|
||||
return;
|
||||
|
||||
var files = (string[])e.Data.GetData(DataFormats.FileDrop) ?? Array.Empty<string>();
|
||||
if (files.Length != 1)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void Grid_DragOver(object sender, DragEventArgs e)
|
||||
{
|
||||
if (e.Data.GetDataPresent(DataFormats.FileDrop))
|
||||
{
|
||||
e.Effects = DragDropEffects.Copy;
|
||||
}
|
||||
else
|
||||
{
|
||||
e.Effects = DragDropEffects.None;
|
||||
}
|
||||
}
|
||||
|
||||
private void FixAchievements_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
// handle the fix achievements button click here!
|
||||
}
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
<Window x:Class="factorio_achievements_fixer.MainWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:local="clr-namespace:factorio_achievements_fixer"
|
||||
mc:Ignorable="d"
|
||||
Title="MainWindow" Height="450" Width="800">
|
||||
<Grid>
|
||||
|
||||
</Grid>
|
||||
</Window>
|
||||
@@ -1,23 +0,0 @@
|
||||
using System.Text;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace factorio_achievements_fixer;
|
||||
|
||||
/// <summary>
|
||||
/// Interaction logic for MainWindow.xaml
|
||||
/// </summary>
|
||||
public partial class MainWindow : Window
|
||||
{
|
||||
public MainWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user