diff --git a/AATool/AATool.csproj b/AATool/AATool.csproj index 37172e4f..5f7fbf56 100644 --- a/AATool/AATool.csproj +++ b/AATool/AATool.csproj @@ -106,6 +106,7 @@ + @@ -117,9 +118,15 @@ + + + + + + @@ -231,6 +238,7 @@ + @@ -522,12 +530,24 @@ PreserveNewest + + PreserveNewest + PreserveNewest PreserveNewest + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + PreserveNewest @@ -816,16 +836,16 @@ PreserveNewest - + PreserveNewest - + PreserveNewest - + PreserveNewest - + PreserveNewest @@ -2742,7 +2762,7 @@ PreserveNewest - + PreserveNewest @@ -2823,6 +2843,30 @@ PreserveNewest + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + PreserveNewest @@ -2907,7 +2951,7 @@ PreserveNewest - + PreserveNewest @@ -2922,6 +2966,57 @@ PreserveNewest + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + PreserveNewest @@ -3348,6 +3443,12 @@ PreserveNewest + + PreserveNewest + + + PreserveNewest + PreserveNewest @@ -3483,6 +3584,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest @@ -6984,6 +7088,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest @@ -7005,6 +7112,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest @@ -7110,6 +7220,12 @@ PreserveNewest + + PreserveNewest + + + PreserveNewest + PreserveNewest diff --git a/AATool/Configuration/PinnedObjectiveSet.cs b/AATool/Configuration/PinnedObjectiveSet.cs index d6656275..709ceebd 100644 --- a/AATool/Configuration/PinnedObjectiveSet.cs +++ b/AATool/Configuration/PinnedObjectiveSet.cs @@ -13,7 +13,7 @@ public class PinnedObjectiveSet public static readonly List AllAA = new (){ "EGap", "Trident", "NautilusShells", "WitherSkulls", "AncientDebris", "GoldBlocks", "Bees", - "Cats", "Foods", "Animals", "Monsters", "Biomes", "Cauldrons" + "Cats", "Foods", "Animals", "Monsters", "Biomes", "Cauldrons", "ArmorTrims" }; public static readonly List AllAB = new (){ @@ -37,6 +37,8 @@ public static List GetAllAvailable() if (Version.TryParse(Tracker.CurrentVersion, out Version current)) { + if (current < new Version("1.20")) + available.Remove("ArmorTrims"); if (current < new Version("1.19")) available.Remove("SculkBlocks"); if (current != new Version("1.17")) @@ -45,6 +47,8 @@ public static List GetAllAvailable() available.Remove("DeepslateEmerald"); if (current < new Version("1.16")) available.Remove("AncientDebris"); + if (current < new Version("1.15")) + available.Remove("Bees"); if (current < new Version("1.14")) available.Remove("Cats"); if (current < new Version("1.13")) @@ -64,7 +68,7 @@ public static List GetAllAvailable() [JsonProperty] public Dictionary> Pinned = new () { { "All Advancements 1.20 Snapshot", new () { - "AncientDebris", "WitherSkulls", "NautilusShells", "Trident", "EGap", + "AncientDebris", "WitherSkulls", "NautilusShells", "Trident", "EGap", "ArmorTrims", }}, { "All Advancements 1.19", new () { "AncientDebris", "WitherSkulls", "NautilusShells", "Trident", "EGap", diff --git a/AATool/Data/Categories/AdventuringTime.cs b/AATool/Data/Categories/AdventuringTime.cs index 3fc97717..0aabd23c 100644 --- a/AATool/Data/Categories/AdventuringTime.cs +++ b/AATool/Data/Categories/AdventuringTime.cs @@ -8,6 +8,7 @@ public class AdventuringTime : SingleAdvancement private const string Id = "minecraft:adventure/adventuring_time"; public static readonly List SupportedVersions = new () { + "1.20 Snapshot", "1.19", "1.18", "1.16", diff --git a/AATool/Data/Categories/AllSmithingTemplates.cs b/AATool/Data/Categories/AllSmithingTemplates.cs new file mode 100644 index 00000000..e63a6955 --- /dev/null +++ b/AATool/Data/Categories/AllSmithingTemplates.cs @@ -0,0 +1,51 @@ +using System.Collections.Generic; +using System.Xml; +using AATool.Data.Objectives; +using AATool.Data.Objectives.Complex; +using AATool.Utilities; + +namespace AATool.Data.Categories +{ + public class AllSmithingTemplates : SingleAdvancement + { + private const string Id = "custom:all_smithing_templates"; + + public static readonly List SupportedVersions = new () { + "1.20 Snapshot", + }; + + public override IEnumerable GetSupportedVersions() => SupportedVersions; + public override int GetCompletedCount() => this.RecipesObtained; + + public int RecipesObtained { get; private set; } + + public AllSmithingTemplates() : base() + { + this.Name = "All Smithing Templates"; + this.Acronym = "AST"; + this.Objective = "Templates"; + this.Action = "Obtained"; + } + + public override void LoadObjectives() + { + Tracker.Advancements.RefreshObjectives(); + Tracker.Advancements.TryGet(Id, out Advancement allSmithingTemplates); + this.Requirement = allSmithingTemplates; + } + + public override void Update() + { + base.Update(); + RecipesObtained = 0; + if (this.Requirement?.Criteria is not CriteriaSet trims) + return; + + foreach (ArmorTrimCriterion criterion in trims.All.Values) + { + if (criterion.Obtained) + RecipesObtained++; + } + } + } +} diff --git a/AATool/Data/Objectives/AdvancementManifest.cs b/AATool/Data/Objectives/AdvancementManifest.cs index 776aabe3..01e74de1 100644 --- a/AATool/Data/Objectives/AdvancementManifest.cs +++ b/AATool/Data/Objectives/AdvancementManifest.cs @@ -54,6 +54,12 @@ public virtual void RefreshObjectives() if (Tracker.Category is AllAchievements) return; + if (Tracker.Category is AllSmithingTemplates) + { + this.ParseFile(Paths.System.ArmorTrimsFile); + return; + } + //try to get list of all advancement objective files bool filesExist = Paths.TryGetAllFiles(Paths.System.AdvancementsFolder, "*.xml", SearchOption.TopDirectoryOnly, out IEnumerable files); diff --git a/AATool/Data/Objectives/ArmorTrimCriterion.cs b/AATool/Data/Objectives/ArmorTrimCriterion.cs new file mode 100644 index 00000000..7a7366d0 --- /dev/null +++ b/AATool/Data/Objectives/ArmorTrimCriterion.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml; +using AATool.Data.Progress; +using AATool.Utilities; + +namespace AATool.Data.Objectives +{ + internal class ArmorTrimCriterion : Criterion + { + public string Recipe { get; private set; } + public bool Obtained { get; private set; } + public bool Applied => base.CompletedByDesignated(); + + public override bool CompletedByDesignated() => this.Obtained || base.CompletedByDesignated(); + public override bool IsComplete() => this.Obtained || this.Applied; + + private string plainName; + + public ArmorTrimCriterion(XmlNode node, Advancement advancement) : base(node, advancement) + { + this.Recipe = XmlObject.Attribute(node, "recipe", string.Empty); + this.plainName = this.Name; + } + + public override void UpdateState(ProgressState progress) + { + base.UpdateState(progress); + Obtained = progress.Recipes.ContainsKey(this.Recipe); + //this.Name = Applied ? $"{this.plainName} (Applied)" : this.plainName; + //progress.Recipes.TryGetValue(); + } + } +} diff --git a/AATool/Data/Objectives/Complex/ArmorTrims.cs b/AATool/Data/Objectives/Complex/ArmorTrims.cs new file mode 100644 index 00000000..ebb43f2b --- /dev/null +++ b/AATool/Data/Objectives/Complex/ArmorTrims.cs @@ -0,0 +1,151 @@ +using System.Collections.Generic; +using System.Linq; +using AATool.Data.Progress; + +namespace AATool.Data.Objectives.Complex +{ + class ArmorTrims : ComplexObjective + { + public static readonly List Recipes = new () { + //required for all advancements + "minecraft:recipes/misc/silence_armor_trim_smithing_template", + "minecraft:recipes/misc/wayfinder_armor_trim_smithing_template", + "minecraft:recipes/misc/tide_armor_trim_smithing_template", + "minecraft:recipes/misc/spire_armor_trim_smithing_template", + "minecraft:recipes/misc/vex_armor_trim_smithing_template", + "minecraft:recipes/misc/ward_armor_trim_smithing_template", + "minecraft:recipes/misc/rib_armor_trim_smithing_template", + "minecraft:recipes/misc/snout_armor_trim_smithing_template", + //others + "minecraft:recipes/misc/raiser_armor_trim_smithing_template", + "minecraft:recipes/misc/sentry_armor_trim_smithing_template", + "minecraft:recipes/misc/host_armor_trim_smithing_template", + "minecraft:recipes/misc/wild_armor_trim_smithing_template", + "minecraft:recipes/misc/eye_armor_trim_smithing_template", + "minecraft:recipes/misc/shaper_armor_trim_smithing_template", + "minecraft:recipes/misc/dune_armor_trim_smithing_template", + "minecraft:recipes/misc/coast_armor_trim_smithing_template", + "minecraft:recipes/misc/netherite_upgrade_smithing_template", + }; + + public const string AdvancementId = "minecraft:adventure/trim_with_all_exclusive_armor_patterns"; + public const string CategoryId = "custom:all_smithing_templates"; + + public List Required = new (); + public List Remaining = new (); + public List Obtained = new (); + public List Applied = new (); + + private bool AllObtained => this.Obtained.Count >= Required.Count && Required.Count > 0; + private bool AllApplied => this.Applied.Count >= Required.Count && Required.Count > 0; + private bool OnLast => this.Remaining.Count is 1; + + public ArmorTrims() : base() + { + } + + protected override void UpdateAdvancedState(ProgressState progress) + { + this.Required.Clear(); + if (!Tracker.TryGetAdvancement(AdvancementId, out Advancement adv) || !adv.HasCriteria) + return; + + this.Remaining.Clear(); + this.Obtained.Clear(); + this.Applied.Clear(); + foreach (ArmorTrimCriterion criterion in adv.Criteria.All.Values) + { + this.Required.Add(criterion.Id); + if (criterion.Obtained) + this.Obtained.Add(criterion.Id); + if (criterion.Applied) + this.Applied.Add(criterion.Id); + if (!criterion.IsComplete()) + this.Remaining.Add(criterion.Id); + } + this.CompletionOverride = adv.IsComplete() || this.AllApplied || this.AllObtained; + } + + protected override void ClearAdvancedState() + { + this.Required.Clear(); + if (Tracker.TryGetAdvancement(AdvancementId, out Advancement adv) && adv.HasCriteria) + { + foreach (ArmorTrimCriterion criterion in adv.Criteria.All.Values) + this.Required.Add(criterion.Id); + } + + this.Remaining.Clear(); + this.Remaining.AddRange(this.Required); + this.Obtained.Clear(); + this.Applied.Clear(); + } + + protected override string GetShortStatus() => + $"{this.Obtained.Count}\0/\0{this.Required.Count}"; + + protected override string GetLongStatus() + { + if (this.AllApplied) + return "All\0Trims\nApplied"; + + if (this.AllObtained) + return "Obtained\nAll\0Trims"; + + if (this.OnLast) + return $"Still\0Needs\n{FriendlyName(this.Remaining.First())}"; + + return $"Trims\n{this.Obtained.Count}\0/\0{this.Required.Count}"; + } + + protected override string GetCurrentIcon() + { + if (this.OnLast) + return IconName(this.Remaining.First()); + return this.Icon; + } + + internal void UpdateDynamicIcon(Time time) + { + if (this.Remaining.Count > 1) + { + const float SecondsBetweenSwaps = 5; + int ticks = (int)(time.TotalSeconds / SecondsBetweenSwaps); + int wrappedIndex = ticks % this.Remaining.Count; + this.Icon = IconName(this.Remaining[wrappedIndex]); + } + else if (this.Remaining.Count is 0 && this.Required.Count > 0) + { + const float SecondsBetweenSwaps = 5; + int ticks = (int)(time.TotalSeconds / SecondsBetweenSwaps); + int wrappedIndex = ticks % this.Required.Count; + this.Icon = IconName(this.Required[wrappedIndex]); + } + } + + public static string IconName(string id) + { + if (string.IsNullOrEmpty(id)) + return string.Empty; + + string fullName = id.Split(':').Last(); + string shortName = fullName.Split('_').First(); + return $"trim_{shortName}"; + } + + public static string FriendlyName(string id) + { + if (string.IsNullOrEmpty(id)) + return string.Empty; + + string fullName = id.Split(':').Last(); + string shortName = fullName.Split('_').First(); + if (string.IsNullOrEmpty(shortName)) + return string.Empty; + + char[] letters = shortName.ToCharArray(); + letters[0] = char.ToUpper(letters[0]); + return new string(letters); + } + } +} diff --git a/AATool/Data/Objectives/Complex/Biomes.cs b/AATool/Data/Objectives/Complex/Biomes.cs index 86fef084..25eb41a3 100644 --- a/AATool/Data/Objectives/Complex/Biomes.cs +++ b/AATool/Data/Objectives/Complex/Biomes.cs @@ -39,7 +39,10 @@ class Biomes : MultipartObjective protected readonly HashSet RemainingIds = new (); - public override string AdvancementId => "minecraft:adventure/adventuring_time"; + public override string AdvancementId => Tracker.CurrentVersion is "1.11" + ? "achievement.exploreAllBiomes" + : "minecraft:adventure/adventuring_time"; + public override string Criterion => "Biome"; public override string Action => "Visit"; public override string PastAction => "Visited"; @@ -78,7 +81,7 @@ protected override void BuildRemainingCriteriaList(CriteriaSet criteria) private bool OnlyGroupRemaining(string[] group, int maxRemaining) { - if (Tracker.Category is not AllAdvancements or AllAchievements) + if (Tracker.Category is not (AllAdvancements or AllAchievements)) return false; if (this.RemainingCriteria.Count is 0) return false; @@ -161,9 +164,19 @@ protected override string GetCurrentIcon() } else { - return this.OnLastCriterion - ? this.LastCriterionIcon - : this.OldBaseTexture; + if (this.OnLastCriterion) + return this.LastCriterionIcon; + + if (this.onlyMegaTaigaLeft) + return "giant_tree_taiga"; + if (this.onlyMushroomLeft) + return "mushroom_fields"; + if (this.onlyBadlandsLeft) + return "badlands"; + if (this.onlyBambooLeft) + return "bamboo_jungle"; + + return this.OldBaseTexture; } } } diff --git a/AATool/Data/Objectives/Complex/NetheriteUpgrade.cs b/AATool/Data/Objectives/Complex/NetheriteUpgrade.cs new file mode 100644 index 00000000..81dc9897 --- /dev/null +++ b/AATool/Data/Objectives/Complex/NetheriteUpgrade.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using AATool.Data.Progress; + +namespace AATool.Data.Objectives.Complex +{ + internal class NetheriteUpgrade : ComplexObjective + { + public const string Recipe = "minecraft:recipes/misc/netherite_upgrade_smithing_template"; + + public bool Obtained { get; private set; } + + public NetheriteUpgrade() : base() + { + this.Icon = "upgrade_netherite"; + } + + protected override void UpdateAdvancedState(ProgressState progress) + { + this.CompletionOverride = progress.Recipes.ContainsKey(Recipe); + } + + protected override void ClearAdvancedState() + { + } + + protected override string GetLongStatus() => "Netherite Up"; + protected override string GetShortStatus() => "Netherite Up"; + } +} diff --git a/AATool/Data/Objectives/Complex/PotteryShards.cs b/AATool/Data/Objectives/Complex/PotteryShards.cs new file mode 100644 index 00000000..8d44bcb8 --- /dev/null +++ b/AATool/Data/Objectives/Complex/PotteryShards.cs @@ -0,0 +1,78 @@ +using System; +using System.Collections.Generic; +using AATool.Data.Categories; +using AATool.Data.Progress; + +namespace AATool.Data.Objectives.Complex +{ + class PotteryShards : ComplexObjective + { + public const string BrushAdvancement = "minecraft:nether/all_effects"; + public const string PotAdvancement = "minecraft:husbandry/balanced_diet"; + + public const int Required = 4; + + public readonly HashSet All = new() { + "minecraft:angler_pottery_sherd", + "minecraft:archer_pottery_sherd", + "minecraft:arms_up_pottery_sherd", + "minecraft:blade_pottery_sherd", + "minecraft:brewer_pottery_sherd", + "minecraft:burn_pottery_sherd", + "minecraft:danger_pottery_sherd", + "minecraft:explorer_pottery_sherd", + "minecraft:friend_pottery_sherd", + "minecraft:heart_pottery_sherd", + "minecraft:heartbreak_pottery_sherd", + "minecraft:howl_pottery_sherd", + "minecraft:miner_pottery_sherd", + "minecraft:mourner_pottery_sherd", + "minecraft:plenty_pottery_sherd", + "minecraft:prize_pottery_sherd", + "minecraft:sheaf_pottery_sherd", + "minecraft:shelter_pottery_sherd", + "minecraft:skull_pottery_sherd", + "minecraft:snort_pottery_sherd", + }; + + public int Obtained { get; private set; } + + private bool advancementsComplete; + + public PotteryShards() : base() + { + } + + protected override void UpdateAdvancedState(ProgressState progress) + { + this.Obtained = 0; + foreach (string id in All) + this.Obtained += GetCount(id, progress); + + this.advancementsComplete = progress.AdvancementCompleted(BrushAdvancement) + && progress.AdvancementCompleted(PotAdvancement); + + this.CompletionOverride = this.advancementsComplete || this.Obtained >= Required; + } + + private int GetCount(string id, ProgressState progress) => + Math.Max(0, progress.TimesPickedUp(id) - progress.TimesDropped(id)); + + protected override void ClearAdvancedState() + { + this.Obtained = 0; + this.advancementsComplete = false; + } + + protected override string GetShortStatus() + { + if (this.Obtained < Required && this.advancementsComplete) + return "Done"; + return $"{this.Obtained}\0/\0{Required} Shards"; + } + + protected override string GetLongStatus() => GetShortStatus(); + + protected override string GetCurrentIcon() => "pottery_shard"; + } +} diff --git a/AATool/Data/Objectives/Complex/SnifferEgg.cs b/AATool/Data/Objectives/Complex/SnifferEgg.cs new file mode 100644 index 00000000..31affc5a --- /dev/null +++ b/AATool/Data/Objectives/Complex/SnifferEgg.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using AATool.Data.Progress; + +namespace AATool.Data.Objectives.Complex +{ + internal class SnifferEgg : ComplexObjective + { + public const string ItemId = "minecraft:sniffer_egg"; + + public bool Obtained { get; private set; } + + public SnifferEgg() : base() + { + this.Icon = "obtain_sniffer_egg"; + } + + protected override void UpdateAdvancedState(ProgressState progress) + { + this.CompletionOverride = progress.WasPickedUp(ItemId); + } + + protected override void ClearAdvancedState() + { + } + + protected override string GetLongStatus() => "Sniffer Egg"; + protected override string GetShortStatus() => "Sniffer Egg"; + } +} diff --git a/AATool/Data/Objectives/Complex/WaxOnOff.cs b/AATool/Data/Objectives/Complex/WaxOnOff.cs new file mode 100644 index 00000000..444eee6b --- /dev/null +++ b/AATool/Data/Objectives/Complex/WaxOnOff.cs @@ -0,0 +1,47 @@ +using AATool.Data.Progress; + +namespace AATool.Data.Objectives.Complex +{ + public class WaxOnOff : ComplexObjective + { + private const string WaxOn = "minecraft:husbandry/wax_on"; + private const string WaxOff = "minecraft:husbandry/wax_off"; + + bool waxOnComplete; + bool waxOffComplete; + + public WaxOnOff() + { + this.Icon = "wax_on"; + } + + protected override void UpdateAdvancedState(ProgressState progress) + { + this.waxOnComplete = progress.AdvancementCompleted(WaxOn); + this.waxOffComplete = progress.AdvancementCompleted(WaxOff); + this.CompletionOverride = this.waxOnComplete && this.waxOffComplete; + } + + protected override void ClearAdvancedState() + { + this.waxOnComplete = false; + this.waxOffComplete = false; + } + + protected override string GetLongStatus() => this.GetShortStatus(); + + protected override string GetShortStatus() + { + if (this.waxOnComplete && !this.waxOffComplete) + return "Wax Off"; + + if (this.waxOffComplete && !this.waxOnComplete) + return "Wax On"; + + return "Wax On+Off"; + } + + protected override string GetCurrentIcon() + => this.waxOnComplete && !this.waxOffComplete ? "wax_off" : "wax_on"; + } +} diff --git a/AATool/Data/Objectives/ComplexObjectiveManifest.cs b/AATool/Data/Objectives/ComplexObjectiveManifest.cs index 387b094c..801ff13d 100644 --- a/AATool/Data/Objectives/ComplexObjectiveManifest.cs +++ b/AATool/Data/Objectives/ComplexObjectiveManifest.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Security.AccessControl; +using AATool.Data.Objectives.Complex; using AATool.Data.Progress; namespace AATool.Data.Objectives @@ -36,6 +37,8 @@ public void RefreshObjectives() this.AddPickup("minecraft:azure_bluet", "Azure Bluet", 1); this.AddPickup("minecraft:rabbit_foot", "Rabbit's Foot", 1); this.AddPickup("minecraft:fermented_spider_eye", "Fermented Eye", 1); + this.AddPickup("minecraft:pottery_sherd", "Pottery Shard", 4); + this.AddPickup("minecraft:sniffer_egg", "Sniffer Egg", 1); } private void AddPickup(string id, string name, int required) @@ -48,5 +51,11 @@ public void UpdateState(ProgressState progress) foreach (ComplexObjective objective in this.AllByName.Values) objective.UpdateState(progress); } + + public void UpdateDynamicIcons(Time time) + { + if (AllByName.TryGetValue(nameof(ArmorTrims).ToLower(), out ComplexObjective trims)) + (trims as ArmorTrims)?.UpdateDynamicIcon(time); + } } } diff --git a/AATool/Data/Objectives/CriteriaSet.cs b/AATool/Data/Objectives/CriteriaSet.cs index a6425cb5..0bf7f056 100644 --- a/AATool/Data/Objectives/CriteriaSet.cs +++ b/AATool/Data/Objectives/CriteriaSet.cs @@ -1,4 +1,5 @@ -using AATool.Data.Progress; +using AATool.Data.Objectives.Complex; +using AATool.Data.Progress; using AATool.Net; using AATool.Utilities; using System.Collections.Generic; @@ -28,7 +29,18 @@ public CriteriaSet(XmlNode node, Advancement owner) this.ClosestToCompletion = Uuid.Empty; this.Goal = XmlObject.Attribute(node, "goal", "Completed"); - if (node is not null) + if (node is null) + return; + + if (this.Owner.Id is ArmorTrims.AdvancementId or ArmorTrims.CategoryId) + { + foreach (XmlNode criterionNode in node.ChildNodes) + { + var criterion = new ArmorTrimCriterion(criterionNode, owner); + this.All[criterion.Id] = criterion; + } + } + else { foreach (XmlNode criterionNode in node.ChildNodes) { diff --git a/AATool/Data/Objectives/Criterion.cs b/AATool/Data/Objectives/Criterion.cs index 497af30a..912ae218 100644 --- a/AATool/Data/Objectives/Criterion.cs +++ b/AATool/Data/Objectives/Criterion.cs @@ -14,7 +14,7 @@ public class Criterion : Objective public Uuid DesignatedPlayer => this.Owner.DesignatedPlayer; public string OwnerId => this.Owner.Id; - public bool CompletedByDesignated() => this.CompletedBy(this.DesignatedPlayer); + public virtual bool CompletedByDesignated() => this.CompletedBy(this.DesignatedPlayer); public override bool IsComplete() => this.CompletedByDesignated(); diff --git a/AATool/Paths.cs b/AATool/Paths.cs index c5e51fdb..ab863f4e 100644 --- a/AATool/Paths.cs +++ b/AATool/Paths.cs @@ -69,6 +69,7 @@ public static class System public static string AdvancementsFolder => Path.Combine(ObjectiveFolder, "advancements/"); public static string AchievementsFile => Path.Combine(ObjectiveFolder, "achievements.xml"); public static string DeathMessagesFile => Path.Combine(ObjectiveFolder, "deaths.xml"); + public static string ArmorTrimsFile => Path.Combine(ObjectiveFolder, "trims.xml"); public static string PotionsFile => Path.Combine(ObjectiveFolder, "potions.xml"); //file getters diff --git a/AATool/Properties/AssemblyInfo.cs b/AATool/Properties/AssemblyInfo.cs index 8fd8a8f7..297eefab 100644 --- a/AATool/Properties/AssemblyInfo.cs +++ b/AATool/Properties/AssemblyInfo.cs @@ -33,6 +33,6 @@ // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.6.1.0")] -[assembly: AssemblyFileVersion("1.6.1.0")] +[assembly: AssemblyVersion("1.6.2.0")] +[assembly: AssemblyFileVersion("1.6.2.0")] [assembly: NeutralResourcesLanguage("en")] diff --git a/AATool/Saves/AdvancementsFolder.cs b/AATool/Saves/AdvancementsFolder.cs index 00c2bf01..db2f4393 100644 --- a/AATool/Saves/AdvancementsFolder.cs +++ b/AATool/Saves/AdvancementsFolder.cs @@ -94,6 +94,13 @@ protected override void Update(JsonStream json, WorldState state, Contribution c contribution.ObtainedGodApple = true; } + foreach (var recipe in ArmorTrims.Recipes) + { + //detect collection of armor trims + if (this.TryGetCompletionOf(recipe, json, out AdvancementCompletion trim)) + state.Recipes[recipe] = new Completion(trim.Player, trim.Timestamp); + } + //detect lapis from chest using lapis block recipe if (this.TryGetCompletionOf("minecraft:recipes/building_blocks/lapis_block", json, out _)) { diff --git a/AATool/Tracker.cs b/AATool/Tracker.cs index cb0a516a..6c52c30e 100644 --- a/AATool/Tracker.cs +++ b/AATool/Tracker.cs @@ -254,6 +254,7 @@ public static bool TrySetCategory(string category) "alldeaths" => new AllDeaths(), "halfdeaths" => new HalfDeaths(), "allportals" => new AllPortals(), + "allsmithingtemplates" => new AllSmithingTemplates(), _ => throw new ArgumentException($"Category not supported: \"{category}\"."), }; @@ -320,6 +321,7 @@ public static void Update(Time time) UpdateFileSystemWatchers(); } Category.Update(); + ComplexObjectives.UpdateDynamicIcons(time); } private static void UpdateFileSystemWatchers() diff --git a/AATool/UI/Controls/UIArmorTrimCriterion.cs b/AATool/UI/Controls/UIArmorTrimCriterion.cs new file mode 100644 index 00000000..39a45eaf --- /dev/null +++ b/AATool/UI/Controls/UIArmorTrimCriterion.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using AATool.Data.Objectives; +using AATool.UI.Screens; +using Microsoft.Xna.Framework; + +namespace AATool.UI.Controls +{ + internal class UIArmorTrimCriterion : UICriterion + { + UIPicture smithingIcon; + + float smithingBrightness; + + public UIArmorTrimCriterion() : base() + { + } + + public override void InitializeThis(UIScreen screen) + { + base.InitializeThis(screen); + smithingIcon = this.First("smithing_icon"); + } + + protected override void UpdateThis(Time time) + { + base.UpdateThis(time); + if (this.Objective is not ArmorTrimCriterion trim) + return; + + float smithingTarget = trim.Applied ? 1f : 0; + this.smithingBrightness = MathHelper.Lerp(this.smithingBrightness, smithingTarget, (float)(10 * time.Delta)); + this.smithingIcon?.SetTint(Color.White * this.smithingBrightness); + } + } +} diff --git a/AATool/UI/Controls/UIBlockPopup.cs b/AATool/UI/Controls/UIBlockPopup.cs index 476bdb5f..31810fc7 100644 --- a/AATool/UI/Controls/UIBlockPopup.cs +++ b/AATool/UI/Controls/UIBlockPopup.cs @@ -74,7 +74,9 @@ public void Finalize(Time time) x = MathHelper.Clamp(x, -32, this.Root().Width - 32); this.MoveTo(new Point(x, nextLocation.Y + 8)); this.previousLocation = nextLocation; + } + this.preview?.SetBlockOpacity(1f); } public override void InitializeThis(UIScreen screen) diff --git a/AATool/UI/Controls/UIBlockTile.cs b/AATool/UI/Controls/UIBlockTile.cs index 1ab5d444..cf2d84ce 100644 --- a/AATool/UI/Controls/UIBlockTile.cs +++ b/AATool/UI/Controls/UIBlockTile.cs @@ -72,6 +72,7 @@ public UIBlockTile(int scale = 2) : this() } public void SetActiveState(bool isActive) => this.IsActive = isActive; + public void SetBlockOpacity(float value) => this.opacityBlock = value; public bool TryToggleHighlight() { diff --git a/AATool/UI/Controls/UICriteriaGroup.cs b/AATool/UI/Controls/UICriteriaGroup.cs index e20dc624..e480c590 100644 --- a/AATool/UI/Controls/UICriteriaGroup.cs +++ b/AATool/UI/Controls/UICriteriaGroup.cs @@ -5,6 +5,7 @@ using AATool.Configuration; using AATool.Data.Categories; using AATool.Data.Objectives; +using AATool.Data.Objectives.Complex; using AATool.Net; using AATool.UI.Screens; using Microsoft.Xna.Framework; @@ -32,6 +33,7 @@ class UICriteriaGroup : UIPanel private int playersLoggedIn; private bool largePlayers; private int cellWidth; + private int spacerCells; public UICriteriaGroup() { @@ -107,13 +109,23 @@ private void PopulateCriteria() if (!Config.Main.UseCompactStyling && !Config.Main.UseVerticalStyling) this.criteriaPanel.AddControl(spacer); + for (int i = 0; i < this.spacerCells; i++) + { + this.criteriaPanel.AddControl(new UIPanel() { + FlexWidth = new(this.cellWidth), + FlexHeight = new(16), + DrawMode = DrawMode.None, + }); + } + foreach (KeyValuePair criterion in this.advancement.Criteria.All) { - var crit = new UICriterion { - HorizontalAlign = HorizontalAlign.Left, - }; + UICriterion crit = advancement.Id is ArmorTrims.AdvancementId + ? new UIArmorTrimCriterion { HorizontalAlign = HorizontalAlign.Left } + : new UICriterion { HorizontalAlign = HorizontalAlign.Left }; + crit.SetObjective(criterion.Value); - if (Config.Main.UseVerticalStyling && this.cellWidth is not 0) + if (this.cellWidth is not 0) { crit.FlexWidth = new (this.cellWidth); } @@ -360,6 +372,7 @@ public override void ReadNode(XmlNode node) base.ReadNode(node); this.advancementName = Attribute(node, "advancement", string.Empty); this.cellWidth = Attribute(node, "cell_width", 0); + this.spacerCells = Attribute(node, "spacers", 0); } } } diff --git a/AATool/UI/Controls/UILeaderboard.cs b/AATool/UI/Controls/UILeaderboard.cs index c6aa6997..683e0e08 100644 --- a/AATool/UI/Controls/UILeaderboard.cs +++ b/AATool/UI/Controls/UILeaderboard.cs @@ -315,11 +315,11 @@ private void PopuplateMultiboard() if (i < Leaderboard.ListOfMostRecords.Count - 1) mostRecordsList += ", "; } + //UIAvatar allBlocks20 = this.Root().First("ab_wr_1.20_avatar"); + //allBlocks20.SetBadge(new RankBadge(1, "All Blocks", "1.20", false)); - UIAvatar avatar = this.Root().First("most_records_avatar"); - avatar?.SetPlayer(Leaderboard.RunnerWithMostWorldRecords); - //avatar?.RegisterOnLeaderboard(this.board); - //avatar?.RefreshBadge(); + UIAvatar mostRecords = this.Root().First("most_records_avatar"); + mostRecords?.SetPlayer(Leaderboard.RunnerWithMostWorldRecords); this.Root().First("most_records_runner")?.SetText(Leaderboard.RunnerWithMostWorldRecords); this.Root().First("most_records_list")?.SetText(mostRecordsList); diff --git a/AATool/UI/Controls/UIObjectiveFrame.cs b/AATool/UI/Controls/UIObjectiveFrame.cs index 9b305a8d..14dd519e 100644 --- a/AATool/UI/Controls/UIObjectiveFrame.cs +++ b/AATool/UI/Controls/UIObjectiveFrame.cs @@ -29,7 +29,7 @@ public class UIObjectiveFrame : UIObjectiveControl }; private static Color ActiveTint = Color.White; private static Color InactiveTint = Color.Gray * 0.25f; - private static Color InactiveIconTint = ColorHelper.Fade(Color.DarkGray, 0.1f); + private static Color InactiveIconTint = ColorHelper.Fade(Color.DarkGray, 0.25f); public bool IsActive { get; private set; } public float OverlayCoverPosition { get; set; } @@ -231,7 +231,7 @@ private void UpdateAppearance(bool forceUpdate = false) { if (this.onMainScreen) { - this.Label?.SetTextColor(this.IsActive ? Config.Main.TextColor : Config.Main.TextColor.Value * 0.4f); + this.Label?.SetTextColor(this.IsActive ? Config.Main.TextColor : Config.Main.TextColor.Value * 0.6f); } else { diff --git a/AATool/assets/objectives/1.17/advancements/adventure.xml b/AATool/assets/objectives/1.17/advancements/adventure.xml index c58e34ab..b7d82ec4 100644 --- a/AATool/assets/objectives/1.17/advancements/adventure.xml +++ b/AATool/assets/objectives/1.17/advancements/adventure.xml @@ -12,9 +12,9 @@ - - - + + + diff --git a/AATool/assets/objectives/1.17/advancements/husbandry.xml b/AATool/assets/objectives/1.17/advancements/husbandry.xml index 99b5efbd..7fdcce9d 100644 --- a/AATool/assets/objectives/1.17/advancements/husbandry.xml +++ b/AATool/assets/objectives/1.17/advancements/husbandry.xml @@ -13,7 +13,7 @@ - + diff --git a/AATool/assets/objectives/1.18/advancements/adventure.xml b/AATool/assets/objectives/1.18/advancements/adventure.xml index c68c09a8..c60d0eda 100644 --- a/AATool/assets/objectives/1.18/advancements/adventure.xml +++ b/AATool/assets/objectives/1.18/advancements/adventure.xml @@ -17,9 +17,9 @@ - - - + + + diff --git a/AATool/assets/objectives/1.18/advancements/husbandry.xml b/AATool/assets/objectives/1.18/advancements/husbandry.xml index 898c37fb..2d32e0a4 100644 --- a/AATool/assets/objectives/1.18/advancements/husbandry.xml +++ b/AATool/assets/objectives/1.18/advancements/husbandry.xml @@ -13,7 +13,7 @@ - + diff --git a/AATool/assets/objectives/1.19/advancements/adventure.xml b/AATool/assets/objectives/1.19/advancements/adventure.xml index 9869cdc1..296ed22c 100644 --- a/AATool/assets/objectives/1.19/advancements/adventure.xml +++ b/AATool/assets/objectives/1.19/advancements/adventure.xml @@ -17,9 +17,9 @@ - - - + + + diff --git a/AATool/assets/objectives/1.19/advancements/husbandry.xml b/AATool/assets/objectives/1.19/advancements/husbandry.xml index 9a1957fd..c1b4ee10 100644 --- a/AATool/assets/objectives/1.19/advancements/husbandry.xml +++ b/AATool/assets/objectives/1.19/advancements/husbandry.xml @@ -13,7 +13,7 @@ - + diff --git a/AATool/assets/objectives/1.20 Snapshot/advancements/adventure.xml b/AATool/assets/objectives/1.20 Snapshot/advancements/adventure.xml index 2c19ecda..fa333c44 100644 --- a/AATool/assets/objectives/1.20 Snapshot/advancements/adventure.xml +++ b/AATool/assets/objectives/1.20 Snapshot/advancements/adventure.xml @@ -4,22 +4,47 @@ + - + - + + - - - - + + + + + + + + + + + + + + + + + + + diff --git a/AATool/assets/objectives/1.20 Snapshot/advancements/husbandry.xml b/AATool/assets/objectives/1.20 Snapshot/advancements/husbandry.xml index 33356be3..c9a60eca 100644 --- a/AATool/assets/objectives/1.20 Snapshot/advancements/husbandry.xml +++ b/AATool/assets/objectives/1.20 Snapshot/advancements/husbandry.xml @@ -9,11 +9,18 @@ - - + + + + + + + + + @@ -103,9 +110,6 @@ - - - diff --git a/AATool/assets/objectives/1.20 Snapshot/blocks.xml b/AATool/assets/objectives/1.20 Snapshot/blocks.xml index 5b89e78e..8b36c4dc 100644 --- a/AATool/assets/objectives/1.20 Snapshot/blocks.xml +++ b/AATool/assets/objectives/1.20 Snapshot/blocks.xml @@ -206,7 +206,6 @@ - @@ -372,7 +371,7 @@ - + @@ -593,7 +592,7 @@ - + @@ -607,7 +606,7 @@ - + @@ -700,16 +699,20 @@ - + - + + + + + diff --git a/AATool/assets/objectives/1.20 Snapshot/trims.xml b/AATool/assets/objectives/1.20 Snapshot/trims.xml new file mode 100644 index 00000000..1ca50f71 --- /dev/null +++ b/AATool/assets/objectives/1.20 Snapshot/trims.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/AATool/assets/sprites/ab_guide/all_heads_1.20$4x4x30.png b/AATool/assets/sprites/ab_guide/all_heads_1.20$4x4x30.png new file mode 100644 index 00000000..e5b3ae81 Binary files /dev/null and b/AATool/assets/sprites/ab_guide/all_heads_1.20$4x4x30.png differ diff --git a/AATool/assets/sprites/ab_guide/all_suspicious_blocks$2x2x30.png b/AATool/assets/sprites/ab_guide/all_suspicious_blocks$2x2x30.png new file mode 100644 index 00000000..e0f1a7e6 Binary files /dev/null and b/AATool/assets/sprites/ab_guide/all_suspicious_blocks$2x2x30.png differ diff --git a/AATool/assets/sprites/ab_guide/frogspawn.png b/AATool/assets/sprites/ab_guide/frogspawn.png new file mode 100644 index 00000000..a6adac47 Binary files /dev/null and b/AATool/assets/sprites/ab_guide/frogspawn.png differ diff --git a/AATool/assets/sprites/blocks/sculk/calibrated_sculk_sensor^32$96x24x1.25.png b/AATool/assets/sprites/blocks/sculk/calibrated_sculk_sensor^32$96x24x1.25.png deleted file mode 100644 index a601b609..00000000 Binary files a/AATool/assets/sprites/blocks/sculk/calibrated_sculk_sensor^32$96x24x1.25.png and /dev/null differ diff --git a/AATool/assets/sprites/blocks/sculk/calibrated_sculk_sensor^48$152x24x1.png b/AATool/assets/sprites/blocks/sculk/calibrated_sculk_sensor^48$152x24x1.png deleted file mode 100644 index ea6ae52c..00000000 Binary files a/AATool/assets/sprites/blocks/sculk/calibrated_sculk_sensor^48$152x24x1.png and /dev/null differ diff --git a/AATool/assets/sprites/blocks/sculk/calibrated_sculk_sensor^48$16x16x1.png b/AATool/assets/sprites/blocks/sculk/calibrated_sculk_sensor^48$16x16x1.png new file mode 100644 index 00000000..f7849b00 Binary files /dev/null and b/AATool/assets/sprites/blocks/sculk/calibrated_sculk_sensor^48$16x16x1.png differ diff --git a/AATool/assets/sprites/blocks/sculk/calibrated_sculk_sensor^48$96x24x1.25.png b/AATool/assets/sprites/blocks/sculk/calibrated_sculk_sensor^48$96x24x1.25.png deleted file mode 100644 index 53205ac1..00000000 Binary files a/AATool/assets/sprites/blocks/sculk/calibrated_sculk_sensor^48$96x24x1.25.png and /dev/null differ diff --git a/AATool/assets/sprites/blocks/bamboo/chiseled_bookshelf^32.png b/AATool/assets/sprites/blocks/special/chiseled_bookshelf^32.png similarity index 100% rename from AATool/assets/sprites/blocks/bamboo/chiseled_bookshelf^32.png rename to AATool/assets/sprites/blocks/special/chiseled_bookshelf^32.png diff --git a/AATool/assets/sprites/blocks/bamboo/chiseled_bookshelf^48.png b/AATool/assets/sprites/blocks/special/chiseled_bookshelf^48.png similarity index 100% rename from AATool/assets/sprites/blocks/bamboo/chiseled_bookshelf^48.png rename to AATool/assets/sprites/blocks/special/chiseled_bookshelf^48.png diff --git a/AATool/assets/sprites/blocks/bamboo/chiseled_bookshelf_full^32.png b/AATool/assets/sprites/blocks/special/chiseled_bookshelf_full^32.png similarity index 100% rename from AATool/assets/sprites/blocks/bamboo/chiseled_bookshelf_full^32.png rename to AATool/assets/sprites/blocks/special/chiseled_bookshelf_full^32.png diff --git a/AATool/assets/sprites/blocks/bamboo/chiseled_bookshelf_full^48.png b/AATool/assets/sprites/blocks/special/chiseled_bookshelf_full^48.png similarity index 100% rename from AATool/assets/sprites/blocks/bamboo/chiseled_bookshelf_full^48.png rename to AATool/assets/sprites/blocks/special/chiseled_bookshelf_full^48.png diff --git a/AATool/assets/sprites/blocks/special/smithing_table^48.png b/AATool/assets/sprites/blocks/special/smithing_table^48.png index e057ebcb..481bba23 100644 Binary files a/AATool/assets/sprites/blocks/special/smithing_table^48.png and b/AATool/assets/sprites/blocks/special/smithing_table^48.png differ diff --git a/AATool/assets/sprites/global/advancements/adventure/chiseled_bookshelf^32.png b/AATool/assets/sprites/global/advancements/adventure/chiseled_bookshelf^32.png new file mode 100644 index 00000000..5dac06f5 Binary files /dev/null and b/AATool/assets/sprites/global/advancements/adventure/chiseled_bookshelf^32.png differ diff --git a/AATool/assets/sprites/global/advancements/adventure/chiseled_bookshelf^48.png b/AATool/assets/sprites/global/advancements/adventure/chiseled_bookshelf^48.png new file mode 100644 index 00000000..365a8a1a Binary files /dev/null and b/AATool/assets/sprites/global/advancements/adventure/chiseled_bookshelf^48.png differ diff --git a/AATool/assets/sprites/global/advancements/adventure/craft_decorated_pot^32.png b/AATool/assets/sprites/global/advancements/adventure/craft_decorated_pot^32.png new file mode 100644 index 00000000..223d969a Binary files /dev/null and b/AATool/assets/sprites/global/advancements/adventure/craft_decorated_pot^32.png differ diff --git a/AATool/assets/sprites/global/advancements/adventure/craft_decorated_pot^48.png b/AATool/assets/sprites/global/advancements/adventure/craft_decorated_pot^48.png new file mode 100644 index 00000000..79cd0acf Binary files /dev/null and b/AATool/assets/sprites/global/advancements/adventure/craft_decorated_pot^48.png differ diff --git a/AATool/assets/sprites/global/advancements/adventure/salvage_sherd.png b/AATool/assets/sprites/global/advancements/adventure/salvage_sherd.png new file mode 100644 index 00000000..37faf3e4 Binary files /dev/null and b/AATool/assets/sprites/global/advancements/adventure/salvage_sherd.png differ diff --git a/AATool/assets/sprites/global/advancements/husbandry/feed_snifflet.png b/AATool/assets/sprites/global/advancements/husbandry/feed_snifflet.png new file mode 100644 index 00000000..69a2ffc0 Binary files /dev/null and b/AATool/assets/sprites/global/advancements/husbandry/feed_snifflet.png differ diff --git a/AATool/assets/sprites/global/advancements/husbandry/obtain_sniffer_egg.png b/AATool/assets/sprites/global/advancements/husbandry/obtain_sniffer_egg.png new file mode 100644 index 00000000..727c1993 Binary files /dev/null and b/AATool/assets/sprites/global/advancements/husbandry/obtain_sniffer_egg.png differ diff --git a/AATool/assets/sprites/global/advancements/husbandry/plant_any_sniffer_seed.png b/AATool/assets/sprites/global/advancements/husbandry/plant_any_sniffer_seed.png new file mode 100644 index 00000000..9a2fa402 Binary files /dev/null and b/AATool/assets/sprites/global/advancements/husbandry/plant_any_sniffer_seed.png differ diff --git a/AATool/assets/sprites/global/criteria/biomes/1.19/mangrove_swamp.png b/AATool/assets/sprites/global/criteria/biomes/1.19/mangrove_swamp.png index 86074268..53836a6d 100644 Binary files a/AATool/assets/sprites/global/criteria/biomes/1.19/mangrove_swamp.png and b/AATool/assets/sprites/global/criteria/biomes/1.19/mangrove_swamp.png differ diff --git a/AATool/assets/sprites/global/criteria/biomes/cherry_grove.png b/AATool/assets/sprites/global/criteria/biomes/1.20/cherry_grove.png similarity index 100% rename from AATool/assets/sprites/global/criteria/biomes/cherry_grove.png rename to AATool/assets/sprites/global/criteria/biomes/1.20/cherry_grove.png diff --git a/AATool/assets/sprites/global/criteria/trims/trim_coast.png b/AATool/assets/sprites/global/criteria/trims/trim_coast.png new file mode 100644 index 00000000..9a055e70 Binary files /dev/null and b/AATool/assets/sprites/global/criteria/trims/trim_coast.png differ diff --git a/AATool/assets/sprites/global/criteria/trims/trim_dune.png b/AATool/assets/sprites/global/criteria/trims/trim_dune.png new file mode 100644 index 00000000..046f7c30 Binary files /dev/null and b/AATool/assets/sprites/global/criteria/trims/trim_dune.png differ diff --git a/AATool/assets/sprites/global/criteria/trims/trim_eye.png b/AATool/assets/sprites/global/criteria/trims/trim_eye.png new file mode 100644 index 00000000..b2186f42 Binary files /dev/null and b/AATool/assets/sprites/global/criteria/trims/trim_eye.png differ diff --git a/AATool/assets/sprites/global/criteria/trims/trim_host.png b/AATool/assets/sprites/global/criteria/trims/trim_host.png new file mode 100644 index 00000000..6bdc74a3 Binary files /dev/null and b/AATool/assets/sprites/global/criteria/trims/trim_host.png differ diff --git a/AATool/assets/sprites/global/criteria/trims/trim_raiser.png b/AATool/assets/sprites/global/criteria/trims/trim_raiser.png new file mode 100644 index 00000000..804973a6 Binary files /dev/null and b/AATool/assets/sprites/global/criteria/trims/trim_raiser.png differ diff --git a/AATool/assets/sprites/global/criteria/trims/trim_rib.png b/AATool/assets/sprites/global/criteria/trims/trim_rib.png new file mode 100644 index 00000000..a48f4d66 Binary files /dev/null and b/AATool/assets/sprites/global/criteria/trims/trim_rib.png differ diff --git a/AATool/assets/sprites/global/criteria/trims/trim_sentry.png b/AATool/assets/sprites/global/criteria/trims/trim_sentry.png new file mode 100644 index 00000000..e00aaad4 Binary files /dev/null and b/AATool/assets/sprites/global/criteria/trims/trim_sentry.png differ diff --git a/AATool/assets/sprites/global/criteria/trims/trim_shaper.png b/AATool/assets/sprites/global/criteria/trims/trim_shaper.png new file mode 100644 index 00000000..e49b86a2 Binary files /dev/null and b/AATool/assets/sprites/global/criteria/trims/trim_shaper.png differ diff --git a/AATool/assets/sprites/global/criteria/trims/trim_silence.png b/AATool/assets/sprites/global/criteria/trims/trim_silence.png new file mode 100644 index 00000000..5a1b2ba5 Binary files /dev/null and b/AATool/assets/sprites/global/criteria/trims/trim_silence.png differ diff --git a/AATool/assets/sprites/global/criteria/trims/trim_snout.png b/AATool/assets/sprites/global/criteria/trims/trim_snout.png new file mode 100644 index 00000000..cae955a9 Binary files /dev/null and b/AATool/assets/sprites/global/criteria/trims/trim_snout.png differ diff --git a/AATool/assets/sprites/global/criteria/trims/trim_spire.png b/AATool/assets/sprites/global/criteria/trims/trim_spire.png new file mode 100644 index 00000000..6aff46d6 Binary files /dev/null and b/AATool/assets/sprites/global/criteria/trims/trim_spire.png differ diff --git a/AATool/assets/sprites/global/criteria/trims/trim_tide.png b/AATool/assets/sprites/global/criteria/trims/trim_tide.png new file mode 100644 index 00000000..e532040a Binary files /dev/null and b/AATool/assets/sprites/global/criteria/trims/trim_tide.png differ diff --git a/AATool/assets/sprites/global/criteria/trims/trim_vex.png b/AATool/assets/sprites/global/criteria/trims/trim_vex.png new file mode 100644 index 00000000..85421cdf Binary files /dev/null and b/AATool/assets/sprites/global/criteria/trims/trim_vex.png differ diff --git a/AATool/assets/sprites/global/criteria/trims/trim_ward.png b/AATool/assets/sprites/global/criteria/trims/trim_ward.png new file mode 100644 index 00000000..ca14b44f Binary files /dev/null and b/AATool/assets/sprites/global/criteria/trims/trim_ward.png differ diff --git a/AATool/assets/sprites/global/criteria/trims/trim_wayfinder.png b/AATool/assets/sprites/global/criteria/trims/trim_wayfinder.png new file mode 100644 index 00000000..c21506de Binary files /dev/null and b/AATool/assets/sprites/global/criteria/trims/trim_wayfinder.png differ diff --git a/AATool/assets/sprites/global/criteria/trims/trim_wild.png b/AATool/assets/sprites/global/criteria/trims/trim_wild.png new file mode 100644 index 00000000..549ae142 Binary files /dev/null and b/AATool/assets/sprites/global/criteria/trims/trim_wild.png differ diff --git a/AATool/assets/sprites/global/criteria/trims/upgrade_netherite.png b/AATool/assets/sprites/global/criteria/trims/upgrade_netherite.png new file mode 100644 index 00000000..226bbbfa Binary files /dev/null and b/AATool/assets/sprites/global/criteria/trims/upgrade_netherite.png differ diff --git a/AATool/assets/sprites/global/gui/icons/smithing_applied.png b/AATool/assets/sprites/global/gui/icons/smithing_applied.png new file mode 100644 index 00000000..503a3864 Binary files /dev/null and b/AATool/assets/sprites/global/gui/icons/smithing_applied.png differ diff --git a/AATool/assets/sprites/global/gui/icons/smithing_unapplied.png b/AATool/assets/sprites/global/gui/icons/smithing_unapplied.png new file mode 100644 index 00000000..8e10c41f Binary files /dev/null and b/AATool/assets/sprites/global/gui/icons/smithing_unapplied.png differ diff --git a/AATool/assets/sprites/global/items/pottery_shard.png b/AATool/assets/sprites/global/items/pottery_shard.png new file mode 100644 index 00000000..da5d373d Binary files /dev/null and b/AATool/assets/sprites/global/items/pottery_shard.png differ diff --git a/AATool/assets/templates/control_armor_trim_criterion.xml b/AATool/assets/templates/control_armor_trim_criterion.xml new file mode 100644 index 00000000..00b78381 --- /dev/null +++ b/AATool/assets/templates/control_armor_trim_criterion.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/AATool/assets/views/adventuring_time/1.16/main.xml b/AATool/assets/views/adventuring_time/1.16/main.xml index 0254d507..448cc093 100644 --- a/AATool/assets/views/adventuring_time/1.16/main.xml +++ b/AATool/assets/views/adventuring_time/1.16/main.xml @@ -70,18 +70,22 @@ - - + + - - + + + + + + diff --git a/AATool/assets/views/adventuring_time/1.20 Snapshot/main.xml b/AATool/assets/views/adventuring_time/1.20 Snapshot/main.xml new file mode 100644 index 00000000..b51514d8 --- /dev/null +++ b/AATool/assets/views/adventuring_time/1.20 Snapshot/main.xml @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/AATool/assets/views/all_advancements/1.17/main_optimized.xml b/AATool/assets/views/all_advancements/1.17/main_optimized.xml index 16b35bc5..a943e378 100644 --- a/AATool/assets/views/all_advancements/1.17/main_optimized.xml +++ b/AATool/assets/views/all_advancements/1.17/main_optimized.xml @@ -66,7 +66,7 @@ - + diff --git a/AATool/assets/views/all_advancements/1.18/main_optimized.xml b/AATool/assets/views/all_advancements/1.18/main_optimized.xml index 90167c95..e2dc312d 100644 --- a/AATool/assets/views/all_advancements/1.18/main_optimized.xml +++ b/AATool/assets/views/all_advancements/1.18/main_optimized.xml @@ -58,7 +58,7 @@ - + diff --git a/AATool/assets/views/all_advancements/1.19/main_optimized.xml b/AATool/assets/views/all_advancements/1.19/main_optimized.xml index da9e225a..9114241e 100644 --- a/AATool/assets/views/all_advancements/1.19/main_optimized.xml +++ b/AATool/assets/views/all_advancements/1.19/main_optimized.xml @@ -59,10 +59,10 @@ - - + + @@ -70,7 +70,7 @@ - + @@ -103,7 +103,7 @@ - + diff --git a/AATool/assets/views/all_advancements/1.20 Snapshot/main_compact.xml b/AATool/assets/views/all_advancements/1.20 Snapshot/main_compact.xml index 047dc1ad..015fc286 100644 --- a/AATool/assets/views/all_advancements/1.20 Snapshot/main_compact.xml +++ b/AATool/assets/views/all_advancements/1.20 Snapshot/main_compact.xml @@ -8,7 +8,7 @@ - + @@ -22,10 +22,11 @@ - - - + + + + @@ -35,7 +36,10 @@ - + + + + diff --git a/AATool/assets/views/all_advancements/1.20 Snapshot/main_optimized.xml b/AATool/assets/views/all_advancements/1.20 Snapshot/main_optimized.xml index 44f13c39..6963169e 100644 --- a/AATool/assets/views/all_advancements/1.20 Snapshot/main_optimized.xml +++ b/AATool/assets/views/all_advancements/1.20 Snapshot/main_optimized.xml @@ -8,7 +8,7 @@ - + @@ -19,7 +19,7 @@ - + @@ -30,8 +30,8 @@ - + @@ -41,9 +41,9 @@ - + @@ -52,6 +52,9 @@ + + + @@ -59,18 +62,20 @@ - - + + + + - + @@ -103,13 +108,32 @@ - + - + - + - + + + + + + + + + + + + + + + + + + + + diff --git a/AATool/assets/views/all_advancements/1.20 Snapshot/main_relaxed.xml b/AATool/assets/views/all_advancements/1.20 Snapshot/main_relaxed.xml index 5581732d..53e00348 100644 --- a/AATool/assets/views/all_advancements/1.20 Snapshot/main_relaxed.xml +++ b/AATool/assets/views/all_advancements/1.20 Snapshot/main_relaxed.xml @@ -8,7 +8,7 @@ - + @@ -26,6 +26,7 @@ + @@ -33,27 +34,28 @@ - - - + + + + - + - + - - + + @@ -62,8 +64,11 @@ - - + + + + + diff --git a/AATool/assets/views/all_advancements/1.20 Snapshot/main_vertical.xml b/AATool/assets/views/all_advancements/1.20 Snapshot/main_vertical.xml index cf629fd0..a5316018 100644 --- a/AATool/assets/views/all_advancements/1.20 Snapshot/main_vertical.xml +++ b/AATool/assets/views/all_advancements/1.20 Snapshot/main_vertical.xml @@ -3,7 +3,7 @@ - + @@ -39,10 +39,15 @@ - - + + + - + + + + + @@ -60,15 +65,16 @@ - - + + + - - + + diff --git a/AATool/assets/views/all_blocks/1.19/help.xml b/AATool/assets/views/all_blocks/1.19/help.xml index c1acd83b..27c970a6 100644 --- a/AATool/assets/views/all_blocks/1.19/help.xml +++ b/AATool/assets/views/all_blocks/1.19/help.xml @@ -669,7 +669,7 @@ - + @@ -677,7 +677,11 @@ - + + + + + @@ -692,8 +696,11 @@ - - + + + + + diff --git a/AATool/assets/views/all_blocks/1.20 Snapshot/help.xml b/AATool/assets/views/all_blocks/1.20 Snapshot/help.xml index 66d7c7b8..c8a25be6 100644 --- a/AATool/assets/views/all_blocks/1.20 Snapshot/help.xml +++ b/AATool/assets/views/all_blocks/1.20 Snapshot/help.xml @@ -60,11 +60,11 @@ - + to - + @@ -111,23 +111,23 @@ - + - + - - - + + + - - t + + @@ -143,7 +143,7 @@ - + @@ -160,7 +160,7 @@ - + @@ -551,69 +551,73 @@ - + - + - + - + - + - + - + + + + + - + - + - + - + - + - + @@ -660,7 +664,7 @@ - + @@ -668,7 +672,11 @@ - + + + + + @@ -683,8 +691,11 @@ - - + + + + + diff --git a/AATool/assets/views/all_blocks/1.20 Snapshot/main.xml b/AATool/assets/views/all_blocks/1.20 Snapshot/main.xml index 8e092b5a..bcdbdb50 100644 --- a/AATool/assets/views/all_blocks/1.20 Snapshot/main.xml +++ b/AATool/assets/views/all_blocks/1.20 Snapshot/main.xml @@ -385,6 +385,14 @@ margin_left="12 * 38" margin_top="9 * 38" width="8 * 38" height="38"/> + + + + @@ -424,13 +432,13 @@ - + - + diff --git a/AATool/assets/views/all_smithing_templates/1.20 Snapshot/main.xml b/AATool/assets/views/all_smithing_templates/1.20 Snapshot/main.xml new file mode 100644 index 00000000..41dc883d --- /dev/null +++ b/AATool/assets/views/all_smithing_templates/1.20 Snapshot/main.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/AATool/assets/views/all_smithing_templates/overlay.xml b/AATool/assets/views/all_smithing_templates/overlay.xml new file mode 100644 index 00000000..8155f722 --- /dev/null +++ b/AATool/assets/views/all_smithing_templates/overlay.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file