WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Conversation

@Za-Pa-Al
Copy link

@Za-Pa-Al Za-Pa-Al commented Nov 1, 2025

No description provided.

@codengine
Copy link
Owner

Hi,
I briefly had a look at some of the changes and it mostly looks good. Due to the size of the PR I need some time to review it thoroughly. Right now I'm quite busy.

Are you done with your changes though?

@Za-Pa-Al
Copy link
Author

Hi, aren't we all... busy ... 😉
And... "mostly"?? 😁

Anyway, I found some very minor issues, would like to fix them and then be done. Hopefully this week. Btw. would you mind if I put it on Nexusmods? Ofcourse with proper credit. I think license is MIT, but still..

@codengine
Copy link
Owner

Btw. would you mind if I put it on Nexusmods? Ofcourse with proper credit. I think license is MIT, but still..

The project is already on NexusMods and Thunderstore:
https://www.nexusmods.com/sonsoftheforest/mods/41
https://thunderstore.io/c/sons-of-the-forest/p/codengine/SOTFEdit/

@Za-Pa-Al
Copy link
Author

Ahh, right, it's actually a cheating mod! I normally filter on no cheating. 🙂

- Fixed POI "done" status not refreshing when auto-reload triggers
- Fixed Area and Requirements filter persistence between sessions
- Fixed Area filter values not updating on language change
@@ -0,0 +1,9 @@
{
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove this...

/// YAML-based localization source that flattens nested YAML structures into dot-notation keys.
/// Compatible with the existing FlatExtractingJsonLocalizationSource behavior.
/// </summary>
public class FlatExtractingYamlLocalizationSource : ILocalizationSource
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because of this change, the inbuilt translation editor (which saves through TranslationViewModel.Save) will still save to JSON files.

Change it to make it compatible with the new YAML files


public IEnumerable<ComboBoxItemAndValue<RequirementsFilterType>> RequirementsFilterTypeValues { get; }

partial void OnAreaFilterChanged(IAreaFilter value)
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As soon as the user switches the application language and restarts, the stored value (e.g. “Surface only”) no longer matches the newly translated option titles (e.g. “Nur Oberfläche”), so
the filter resets back to the default and the “persist filters between sessions” fix stops working whenever the language changes.

@@ -0,0 +1,19 @@
{
// Use IntelliSense to learn about possible attributes.
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comments in a json file?

<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<TargetFramework>net6.0</TargetFramework>
<TargetFramework>net8.0</TargetFramework>
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indentation

<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<TargetFramework>net6.0</TargetFramework>
<TargetFramework>net8.0</TargetFramework>
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indentation

public override object ProvideValue(IServiceProvider serviceProvider)
{
// Check if we're being used in a context that supports bindings
if (serviceProvider.GetService(typeof(IProvideValueTarget)) is IProvideValueTarget target)
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At this point, I liked the simplicity of the original implementation. A simple restart is fine to me - your hot reload will keep breaking stuff because the App was not designed for that.

@codengine
Copy link
Owner

Can you split the changes into multiple MRs? It makes reviewing and bisecting easier.

@Za-Pa-Al
Copy link
Author

Za-Pa-Al commented Dec 4, 2025 via email

@codengine
Copy link
Owner

@Za-Pa-Al First of all, thank you for your interest and the kind words for the editor. It was a passion-driven project and it was quite fun to work on the map and figure out all the things that make it work.

However, as you already mentioned, my passion has soon dropped because Endnight stopped working on the game and to be honest - the more I worked at the editor, the less I played the game because it lost its "magic".

I already suspected that the changes were Ai driven, also hinted by the specific Claude settings. Which, to be honest, leads to trust issues on my end. Not specific because of your PR, but because everyone can create such PRs which look good on the surface but won't deliver thoroughly planned and executed changes. Its too tempting. But thank you for your honesty at least.

I will have a look which parts can be reused.

@Za-Pa-Al
Copy link
Author

Za-Pa-Al commented Dec 6, 2025 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants