Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions Localization/TranslationsNeeded.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
en-US, 255/255, 100%, missing 0
de-DE, 28/255, 11%, missing 227
it-IT, 28/255, 11%, missing 227
fr-FR, 95/255, 37%, missing 160
es-ES, 49/255, 19%, missing 206
ru-RU, 252/255, 99%, missing 3
zh-Hans, 254/255, 100%, missing 1
pt-BR, 95/255, 37%, missing 160
pl-PL, 87/255, 34%, missing 168
en-US, 260/260, 100%, missing 0
de-DE, 28/260, 11%, missing 232
it-IT, 28/260, 11%, missing 232
fr-FR, 95/260, 37%, missing 165
es-ES, 49/260, 19%, missing 211
ru-RU, 252/260, 97%, missing 8
zh-Hans, 254/260, 98%, missing 6
pt-BR, 95/260, 37%, missing 165
pl-PL, 87/260, 33%, missing 173
5 changes: 5 additions & 0 deletions Localization/de-DE.hjson
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,11 @@ Mods: {
// HistoryEmpty: There is no query history yet
// HistoryReachedStart: Query history start reached
// HistoryReachedEnd: Query history end reached
// RecipesFilteredByMod: "{0} {^0:recipe;recipes} filtered by mod filter."
// RecipesFilteredBySearch: "{0} {^0:recipe;recipes} filtered by search filter."
// RecipesFilteredByTooltip: "{0} {^0:recipe;recipes} filtered by tooltip filter."
// RecipesFilteredByCategory: "{0} {^0:recipe;recipes} filtered by category filter."
// RecipesFilteredByOtherFilters: "{0} {^0:recipe;recipes} filtered by other filters."
}

RecipeCatalogueFilters: {
Expand Down
5 changes: 5 additions & 0 deletions Localization/en-US.hjson
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,11 @@ Mods: {
HistoryEmpty: There is no query history yet
HistoryReachedStart: Query history start reached
HistoryReachedEnd: Query history end reached
RecipesFilteredByMod: "{0} {^0:recipe;recipes} filtered by mod filter."
RecipesFilteredBySearch: "{0} {^0:recipe;recipes} filtered by search filter."
RecipesFilteredByTooltip: "{0} {^0:recipe;recipes} filtered by tooltip filter."
RecipesFilteredByCategory: "{0} {^0:recipe;recipes} filtered by category filter."
RecipesFilteredByOtherFilters: "{0} {^0:recipe;recipes} filtered by other filters."
}

RecipeCatalogueFilters: {
Expand Down
5 changes: 5 additions & 0 deletions Localization/es-ES.hjson
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,11 @@ Mods: {
// HistoryEmpty: There is no query history yet
// HistoryReachedStart: Query history start reached
// HistoryReachedEnd: Query history end reached
// RecipesFilteredByMod: "{0} {^0:recipe;recipes} filtered by mod filter."
// RecipesFilteredBySearch: "{0} {^0:recipe;recipes} filtered by search filter."
// RecipesFilteredByTooltip: "{0} {^0:recipe;recipes} filtered by tooltip filter."
// RecipesFilteredByCategory: "{0} {^0:recipe;recipes} filtered by category filter."
// RecipesFilteredByOtherFilters: "{0} {^0:recipe;recipes} filtered by other filters."
}

RecipeCatalogueFilters: {
Expand Down
5 changes: 5 additions & 0 deletions Localization/fr-FR.hjson
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,11 @@ Mods: {
// HistoryEmpty: There is no query history yet
// HistoryReachedStart: Query history start reached
// HistoryReachedEnd: Query history end reached
// RecipesFilteredByMod: "{0} {^0:recipe;recipes} filtered by mod filter."
// RecipesFilteredBySearch: "{0} {^0:recipe;recipes} filtered by search filter."
// RecipesFilteredByTooltip: "{0} {^0:recipe;recipes} filtered by tooltip filter."
// RecipesFilteredByCategory: "{0} {^0:recipe;recipes} filtered by category filter."
// RecipesFilteredByOtherFilters: "{0} {^0:recipe;recipes} filtered by other filters."
}

RecipeCatalogueFilters: {
Expand Down
5 changes: 5 additions & 0 deletions Localization/it-IT.hjson
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,11 @@ Mods: {
// HistoryEmpty: There is no query history yet
// HistoryReachedStart: Query history start reached
// HistoryReachedEnd: Query history end reached
// RecipesFilteredByMod: "{0} {^0:recipe;recipes} filtered by mod filter."
// RecipesFilteredBySearch: "{0} {^0:recipe;recipes} filtered by search filter."
// RecipesFilteredByTooltip: "{0} {^0:recipe;recipes} filtered by tooltip filter."
// RecipesFilteredByCategory: "{0} {^0:recipe;recipes} filtered by category filter."
// RecipesFilteredByOtherFilters: "{0} {^0:recipe;recipes} filtered by other filters."
}

RecipeCatalogueFilters: {
Expand Down
5 changes: 5 additions & 0 deletions Localization/pl-PL.hjson
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,11 @@ Mods: {
// HistoryEmpty: There is no query history yet
// HistoryReachedStart: Query history start reached
// HistoryReachedEnd: Query history end reached
// RecipesFilteredByMod: "{0} {^0:recipe;recipes} filtered by mod filter."
// RecipesFilteredBySearch: "{0} {^0:recipe;recipes} filtered by search filter."
// RecipesFilteredByTooltip: "{0} {^0:recipe;recipes} filtered by tooltip filter."
// RecipesFilteredByCategory: "{0} {^0:recipe;recipes} filtered by category filter."
// RecipesFilteredByOtherFilters: "{0} {^0:recipe;recipes} filtered by other filters."
}

RecipeCatalogueFilters: {
Expand Down
5 changes: 5 additions & 0 deletions Localization/pt-BR.hjson
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,11 @@ Mods: {
// HistoryEmpty: There is no query history yet
// HistoryReachedStart: Query history start reached
// HistoryReachedEnd: Query history end reached
// RecipesFilteredByMod: "{0} {^0:recipe;recipes} filtered by mod filter."
// RecipesFilteredBySearch: "{0} {^0:recipe;recipes} filtered by search filter."
// RecipesFilteredByTooltip: "{0} {^0:recipe;recipes} filtered by tooltip filter."
// RecipesFilteredByCategory: "{0} {^0:recipe;recipes} filtered by category filter."
// RecipesFilteredByOtherFilters: "{0} {^0:recipe;recipes} filtered by other filters."
}

RecipeCatalogueFilters: {
Expand Down
5 changes: 5 additions & 0 deletions Localization/ru-RU.hjson
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,11 @@ Mods: {
HistoryEmpty: У вас пока нет истории поиска
HistoryReachedStart: Достигнуто начало истории поиска
HistoryReachedEnd: Достигнут конец истории поиска
// RecipesFilteredByMod: "{0} {^0:recipe;recipes} filtered by mod filter."
// RecipesFilteredBySearch: "{0} {^0:recipe;recipes} filtered by search filter."
// RecipesFilteredByTooltip: "{0} {^0:recipe;recipes} filtered by tooltip filter."
// RecipesFilteredByCategory: "{0} {^0:recipe;recipes} filtered by category filter."
// RecipesFilteredByOtherFilters: "{0} {^0:recipe;recipes} filtered by other filters."
}

RecipeCatalogueFilters: {
Expand Down
5 changes: 5 additions & 0 deletions Localization/zh-Hans.hjson
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,11 @@ Mods: {
HistoryEmpty: 尚无查询历史
HistoryReachedStart: 抵达查询历史起点
HistoryReachedEnd: 抵达查询历史终点
// RecipesFilteredByMod: "{0} {^0:recipe;recipes} filtered by mod filter."
// RecipesFilteredBySearch: "{0} {^0:recipe;recipes} filtered by search filter."
// RecipesFilteredByTooltip: "{0} {^0:recipe;recipes} filtered by tooltip filter."
// RecipesFilteredByCategory: "{0} {^0:recipe;recipes} filtered by category filter."
// RecipesFilteredByOtherFilters: "{0} {^0:recipe;recipes} filtered by other filters."
}

RecipeCatalogueFilters: {
Expand Down
76 changes: 68 additions & 8 deletions RecipeCatalogueUI.cs
Original file line number Diff line number Diff line change
Expand Up @@ -498,10 +498,11 @@ private void UpdateGrid() {

recipeGrid.Clear();
//int craftPathsCalculatedCount = 0;
var filterResults = new RecipeFilterResults();
for (int i = 0; i < Recipe.numRecipes; i++) {
//if (recipeSlots[i].craftPathsCalculated)
// craftPathsCalculatedCount++;
if (PassRecipeFilters(recipeSlots[i], Main.recipe[i], groups))
if (PassRecipeFilters(recipeSlots[i], Main.recipe[i], groups, filterResults))
// all the filters
//if (Main.projName[i].ToLower().IndexOf(searchFilter.Text, StringComparison.OrdinalIgnoreCase) != -1)
{
Expand All @@ -519,17 +520,54 @@ private void UpdateGrid() {
recipeGrid._innerList.Append(box);
}
}
if (true && filterResults.AnyFiltered) {
var panel = new UIPanel();
panel.Width.Set(0, 1f);
recipeGrid.Add(panel);
var filterMessages = new List<string>();
if (filterResults.filteredByMod > 0) {
filterMessages.Add(Language.GetTextValue("Mods.RecipeBrowser.RecipeCatalogueUI.RecipesFilteredByMod", filterResults.filteredByMod));

if (RecipeBrowserUI.ModIndex != 0)
filterMessages.Add($"Showing only recipes resulting in items from \"{Terraria.ModLoader.ModLoader.GetMod(RecipeBrowserUI.instance.mods[RecipeBrowserUI.ModIndex]).DisplayName}\"");
}
if (filterResults.filteredByCategory > 0)
filterMessages.Add(Language.GetTextValue("Mods.RecipeBrowser.RecipeCatalogueUI.RecipesFilteredByCategory", filterResults.filteredByCategory));
if (filterResults.filteredByOtherFilters > 0)
filterMessages.Add(Language.GetTextValue("Mods.RecipeBrowser.RecipeCatalogueUI.RecipesFilteredByOtherFilters", filterResults.filteredByOtherFilters));
if (filterResults.filteredBySearch > 0)
filterMessages.Add(Language.GetTextValue("Mods.RecipeBrowser.RecipeCatalogueUI.RecipesFilteredBySearch", filterResults.filteredBySearch));
if (filterResults.filteredByTooltip > 0)
filterMessages.Add(Language.GetTextValue("Mods.RecipeBrowser.RecipeCatalogueUI.RecipesFilteredByTooltip", filterResults.filteredByTooltip));

// TODO: Same for Item listing as well

string filterMessage = string.Join("\n", filterMessages);
var text = new UIText(filterMessage);
text.Width.Set(0, 1f);
text.IsWrapped = true;
text.WrappedTextBottomPadding = 0;
text.TextOriginX = 0f;
text.Recalculate();
panel.Append(text);
panel.Height.Set(text.MinHeight.Pixels + panel.PaddingTop, 0f);
}
//Main.NewText($"craftPathsCalculated: {craftPathsCalculatedCount}/{Recipe.numRecipes}");

recipeGrid.UpdateOrder();
recipeGrid._innerList.Recalculate();
}

private int ItemGridSort(UIElement x, UIElement y) {
if (x is UIPanel)
return -1;
// Place filter counts notification panel at end.
// TODO: Make similar panel for ItemCatalogueUI and make sure ArmorSetFeatureHelper panel is at top.
if (x is UIPanel)
if (y is UIPanel)
return x.UniqueId.CompareTo(y.UniqueId);
else
return 1;
if (y is UIPanel)
return 1;
return -1;
UIRecipeSlot a = x as UIRecipeSlot;
UIRecipeSlot b = y as UIRecipeSlot;
if (a.CompareToIgnoreIndex(b) == 0 && SharedUI.instance.SelectedSort != null) {
Expand All @@ -540,20 +578,24 @@ private int ItemGridSort(UIElement x, UIElement y) {
return a.CompareTo(b);
}

private bool PassRecipeFilters(UIRecipeSlot recipeSlot, Recipe recipe, List<int> groups) {
private bool PassRecipeFilters(UIRecipeSlot recipeSlot, Recipe recipe, List<int> groups, RecipeFilterResults filterResults) {
// TODO: Option to filter by source of Recipe rather than by createItem maybe?
if (RecipeBrowserUI.ModIndex != 0) {
if (!SharedUI.instance.ModFilterByFilter.button.selected) {
if (recipe.createItem.ModItem == null) {
filterResults.filteredByMod++;
return false;
}
if (recipe.createItem.ModItem.Mod.Name != RecipeBrowserUI.instance.mods[RecipeBrowserUI.ModIndex]) {
filterResults.filteredByMod++;
return false;
}
}
else {
if (!SharedUI.instance.ModFilterByFilter.recipeBelongs(recipe))
if (!SharedUI.instance.ModFilterByFilter.recipeBelongs(recipe)) {
filterResults.filteredByMod++;
return false;
}
}
}

Expand Down Expand Up @@ -635,10 +677,13 @@ private bool PassRecipeFilters(UIRecipeSlot recipeSlot, Recipe recipe, List<int>

var SelectedCategory = SharedUI.instance.SelectedCategory;
if (SelectedCategory != null) {
if (!SelectedCategory.belongs(recipe.createItem) && !SelectedCategory.subCategories.Any(x => x.belongs(recipe.createItem)))
if (!SelectedCategory.belongs(recipe.createItem) && !SelectedCategory.subCategories.Any(x => x.belongs(recipe.createItem))) {
filterResults.filteredByCategory++;
return false;
}
}
var availableFilters = SharedUI.instance.availableFilters;
filterResults.filteredByOtherFilters++; // Rather than add code to each return...
if (availableFilters != null)
foreach (var filter in SharedUI.instance.availableFilters) {
if (!filter.button.selected && filter == SharedUI.instance.DisabledFilter) {
Expand Down Expand Up @@ -672,15 +717,19 @@ private bool PassRecipeFilters(UIRecipeSlot recipeSlot, Recipe recipe, List<int>
}
}
}
filterResults.filteredByOtherFilters--;

if (recipe.createItem.Name.ToLower().IndexOf(itemNameFilter.currentString, StringComparison.OrdinalIgnoreCase) == -1)
if (recipe.createItem.Name.ToLower().IndexOf(itemNameFilter.currentString, StringComparison.OrdinalIgnoreCase) == -1) {
filterResults.filteredBySearch++;
return false;
}

if (itemDescriptionFilter.currentString.Length > 0) {
if ((recipe.createItem.ToolTip != null && GetTooltipsAsString(recipe.createItem.ToolTip).IndexOf(itemDescriptionFilter.currentString, StringComparison.OrdinalIgnoreCase) != -1) /*|| (recipe.createItem.toolTip2 != null && recipe.createItem.toolTip2.ToLower().IndexOf(itemDescriptionFilter.Text, StringComparison.OrdinalIgnoreCase) != -1)*/) {
return true;
}
else {
filterResults.filteredByTooltip++;
return false;
}
}
Expand Down Expand Up @@ -937,4 +986,15 @@ internal void InvalidateExtendedCraft() {
SharedUI.instance.ObtainableFilter.button.LeftClick(new UIMouseEvent(null, Vector2.Zero));
}
}

public class RecipeFilterResults
{
public int filteredBySearch;
public int filteredByTooltip;
public int filteredByCategory;
public int filteredByOtherFilters;
public int filteredByMod;

public bool AnyFiltered => filteredBySearch > 0 || filteredByTooltip > 0 || filteredByCategory > 0 || filteredByOtherFilters > 0 || filteredByMod > 0;
}
}