Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Export to csv and Stuff! #462

Merged
merged 14 commits into from
Aug 17, 2022

Conversation

hguy
Copy link
Collaborator

@hguy hguy commented Aug 8, 2022

Implement CSV export as suggested in #437.

Translation : EN/FR.

Context menu

image

Settings

image

Added documentation for Arz Explorer & Save File Explorer

https://github.com/hguy/TQVaultAE/blob/export-to-csv/documentation/ARZEXPLORER.md
https://github.com/hguy/TQVaultAE/blob/export-to-csv/documentation/SAVEFILEEXPLORER.md

Added documentation for advanced search

https://github.com/hguy/TQVaultAE/blob/export-to-csv/documentation/ADVANCEDSEARCH.md

Added advanced search category filtering

image

Strongly Typed RecordId

unaltered string recordId has become more valuable over time mostly for display reasons (Prefix/Suffix).
NormalizeRecordPath(string recordId) was everywhere and string mutation was paid everytime.
The need for a structure that nullify string recordId case sensitivity during comparison (Equal, Comparable) and preserve the raw value was strong.
Now all string recordId are defined as class RecordId.
class RecordId embed the Raw value and Normalized value.
The Normalized is used for comparison and paid once, the Raw for display and persistance.
It support common operators Equals(), <, >, ==, !=.
You can produce a class RecordId instance from a string using the following.

  • fluent mystringinstance.ToRecordId(),
  • static StringHelper.ToRecordId(string recordId)
  • static RecordId.Create(string recordId)
  • implicit RecordId myrecordId = "\\record\\something.dbr"; // goes both directions
  • explicit RecordId myrecordId = (RecordId)"\\record\\something.dbr";

RecordId recommendations

  • if you need to use several time the same RecordId in your scope (method, object). instanciate it once explicitely and reuse it.
var recId = rec.ToRecordId();// Explicit - paid once
var relatedSkills = PlayerCollection.PlayerInfo.GetSkillsByBaseRecordName(recId);// Used here
var relatedPoints = relatedSkills.Sum(s => s.skillLevel);
var masteryInfo = this.Database.GetInfo(recId);// and here
  • if you need it once, just let the implicit conversion happen.
var reagentId = variable.GetString(0);// Return string
var reagentRecord = Database.GetRecordFromFile(reagentId);// Accept RecordId
  • There is some niche cases where .NET will force you to be explicit.

Improvements

Better affixes data extraction
Improved overall stability while custom map enabled

Fixes

Item relic overlay didn't show for second relic.
Advanced Search saved queries didn't persist.
Fix false positive on Item.IsImmortalThrone, Item.IsRagnarok, Item.IsAtlantis
Fix Reset Mastery problem #455
Fix #464 Empty vault directory bug
Fix #405 difficulty unlocked override
Fix #279 startup error
Fix #243 by showing icons and tooltip info

Affixes for unique

This last step allow affixes pickup for uniques. It try to suck all known Prefix/Suffix per gear type (e.g, all affixes for axe if the unique is an axe).
image
image
image

Local directory userSettings.

Old user.config settings are in sub directories of "%USERPROFILE%\AppData\Local\titanquest.net_community".
It was a pain for users and the source of too many misunderstanding during support, so i move all userSettings
into UserConfig.xml which is deployed with the executable.
From now on, it's the dedicated file for all user level configuration.

It is programmatically used in an exact similar way as the standard .NET class except we control the path.

Examples:

TQVaultAE.Config.UserSettings.Default.Scale = 1;
TQVaultAE.Config.UserSettings.Default.Save();

The FAQ is adjusted accordingly.

Note : If the user reuse the same directory with this new version, an error can happen preventing the tool to launch. Two solutions possible.

  1. Delete everything inside "%USERPROFILE%\AppData\Local\titanquest.net_community" and restart.
  2. installing the tool in a different directory.

# Conflicts:
#	TQVaultAE.sln
#	documentation/FORGE.md
#	documentation/HIGHLIGHT.md
#	documentation/highlight_ui_extended.png
#	src/TQVaultAE.Data/ItemProvider.cs
#	src/TQVaultAE.Data/LootTableCollectionProvider.cs
#	src/TQVaultAE.Domain/Contracts/Providers/IItemProvider.cs
#	src/TQVaultAE.Domain/Contracts/Providers/ILootTableCollectionProvider.cs
#	src/TQVaultAE.Domain/Contracts/Services/ITranslationService.cs
#	src/TQVaultAE.Domain/Entities/GameExtension.cs
#	src/TQVaultAE.Domain/Entities/GearLevel.cs
#	src/TQVaultAE.Domain/Entities/HighlightFilterValues.cs
#	src/TQVaultAE.Domain/Entities/Item.cs
#	src/TQVaultAE.Domain/Entities/RelicAndCharm.cs
#	src/TQVaultAE.Domain/Entities/SessionContext.cs
#	src/TQVaultAE.Domain/Entities/Variable.cs
#	src/TQVaultAE.Domain/Heplers/RelicAndCharmExtension.cs
#	src/TQVaultAE.Domain/Heplers/StringHelper.cs
#	src/TQVaultAE.Domain/Results/ToFriendlyNameResult.cs
#	src/TQVaultAE.GUI/Components/EquipmentPanel.cs
#	src/TQVaultAE.GUI/Components/ForgePanel.cs
#	src/TQVaultAE.GUI/Components/HighlightFilters.Designer.cs
#	src/TQVaultAE.GUI/Components/HighlightFilters.cs
#	src/TQVaultAE.GUI/Components/SackPanel.cs
#	src/TQVaultAE.GUI/Components/VaultPanel.cs
#	src/TQVaultAE.GUI/MainForm.Forge.cs
#	src/TQVaultAE.GUI/MainForm.cs
#	src/TQVaultAE.GUI/SearchDialogAdvanced.cs
#	src/TQVaultAE.Presentation/Resources.fr.resx
#	src/TQVaultAE.Presentation/Resources.resx
#	src/TQVaultAE.Presentation/TranslationService.cs
@hguy hguy force-pushed the export-to-csv-rebased branch 2 times, most recently from ef861d1 to ef39a98 Compare August 8, 2022 22:27
@hguy hguy changed the title Export to csv rebased Export to csv and Stuff! Aug 10, 2022
@hguy hguy force-pushed the export-to-csv-rebased branch 3 times, most recently from 9689e30 to a1968d4 Compare August 11, 2022 13:44
Item relic overlay didn't show for second relic.
Advanced Search saved queries didn't persist.
Fix false positive on `Item.IsImmortalThrone, Item.IsRagnarok, Item.IsAtlantis`
Better affixes data extraction
Item relic overlay didn't show for second relic.
Advanced Search saved queries didn't persist.
Fix false positive on `Item.IsImmortalThrone, Item.IsRagnarok, Item.IsAtlantis`
Better affixes data extraction
# Conflicts:
#	src/ARZExplorer/MainForm.cs
#	src/TQVaultAE.Data/ArcFileProvider.cs
#	src/TQVaultAE.Data/Database.cs
#	src/TQVaultAE.Data/ItemProvider.cs
#	src/TQVaultAE.Data/LootTableCollectionProvider.cs
#	src/TQVaultAE.Domain/Entities/BagButtonIconInfo.cs
#	src/TQVaultAE.Domain/Entities/Info.cs
#	src/TQVaultAE.Domain/Entities/RecordId.cs
#	src/TQVaultAE.Domain/Entities/RelicAndCharm.cs
#	src/TQVaultAE.Domain/Heplers/StringHelper.cs
#	src/TQVaultAE.GUI/Components/ForgePanel.cs
#	src/TQVaultAE.Presentation/UIService.cs
#	src/TQVaultAE.Services.Win32/SoundServiceWin.cs
@hguy hguy force-pushed the export-to-csv-rebased branch 2 times, most recently from f0d7499 to bc25338 Compare August 14, 2022 20:48
@hguy hguy force-pushed the export-to-csv-rebased branch 2 times, most recently from d56a562 to 1b03d6b Compare August 15, 2022 11:18
@EtienneLamoureux EtienneLamoureux merged commit 18d8adb into EtienneLamoureux:master Aug 17, 2022
@hguy hguy deleted the export-to-csv-rebased branch August 17, 2022 14:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants