mirror of
https://github.com/OMGeeky/ItemChecklist.git
synced 2026-02-23 15:38:25 +01:00
v0.6 release, initial 1.4 release
This commit is contained in:
@@ -22,18 +22,9 @@ namespace ItemChecklist
|
|||||||
internal ItemChecklistUI ItemChecklistUI;
|
internal ItemChecklistUI ItemChecklistUI;
|
||||||
internal event Action<int> OnNewItem;
|
internal event Action<int> OnNewItem;
|
||||||
|
|
||||||
public ItemChecklist()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void Load()
|
public override void Load()
|
||||||
{
|
{
|
||||||
// Latest uses ItemID.Sets.IsAMaterial, added 0.10.1.5
|
// Latest uses ItemID.Sets.IsAMaterial, added 0.10.1.5
|
||||||
if (BuildInfo.tMLVersion < new Version(0, 10, 1, 5))
|
|
||||||
{
|
|
||||||
throw new Exception("\nThis mod uses functionality only present in the latest tModLoader. Please update tModLoader to use this mod\n\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
instance = this;
|
instance = this;
|
||||||
ToggleChecklistHotKey = KeybindLoader.RegisterKeybind(this, "Toggle Item Checklist", "I");
|
ToggleChecklistHotKey = KeybindLoader.RegisterKeybind(this, "Toggle Item Checklist", "I");
|
||||||
MagicStorageIntegration.Load();
|
MagicStorageIntegration.Load();
|
||||||
@@ -61,7 +52,7 @@ namespace ItemChecklist
|
|||||||
UIElements.UIHorizontalGrid.moreRightTexture = null;
|
UIElements.UIHorizontalGrid.moreRightTexture = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void AddRecipes()
|
public void SetupUI()
|
||||||
{
|
{
|
||||||
if (!Main.dedServ)
|
if (!Main.dedServ)
|
||||||
{
|
{
|
||||||
@@ -69,6 +60,7 @@ namespace ItemChecklist
|
|||||||
//ItemChecklistUI.Activate();
|
//ItemChecklistUI.Activate();
|
||||||
ItemChecklistInterface = new UserInterface();
|
ItemChecklistInterface = new UserInterface();
|
||||||
ItemChecklistInterface.SetState(ItemChecklistUI);
|
ItemChecklistInterface.SetState(ItemChecklistUI);
|
||||||
|
ItemChecklistUI.Visible = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -113,6 +105,10 @@ namespace ItemChecklist
|
|||||||
|
|
||||||
public class ItemChecklistSystem : ModSystem
|
public class ItemChecklistSystem : ModSystem
|
||||||
{
|
{
|
||||||
|
public override void AddRecipes() {
|
||||||
|
ItemChecklist.instance.SetupUI();
|
||||||
|
}
|
||||||
|
|
||||||
public override void UpdateUI(GameTime gameTime)
|
public override void UpdateUI(GameTime gameTime)
|
||||||
{
|
{
|
||||||
ItemChecklist.ItemChecklistInterface?.Update(gameTime);
|
ItemChecklist.ItemChecklistInterface?.Update(gameTime);
|
||||||
|
|||||||
@@ -1,22 +0,0 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio Version 16
|
|
||||||
VisualStudioVersion = 16.0.30114.105
|
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ItemChecklist", "ItemChecklist.csproj", "{08602B6C-8E82-4BB4-A76A-606DF190C754}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|Any CPU = Debug|Any CPU
|
|
||||||
Release|Any CPU = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{08602B6C-8E82-4BB4-A76A-606DF190C754}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{08602B6C-8E82-4BB4-A76A-606DF190C754}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{08602B6C-8E82-4BB4-A76A-606DF190C754}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{08602B6C-8E82-4BB4-A76A-606DF190C754}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
||||||
@@ -74,7 +74,7 @@ namespace ItemChecklist
|
|||||||
findableItems = new bool[ItemLoader.ItemCount];
|
findableItems = new bool[ItemLoader.ItemCount];
|
||||||
for (int i = 0; i < ItemLoader.ItemCount; i++)
|
for (int i = 0; i < ItemLoader.ItemCount; i++)
|
||||||
{
|
{
|
||||||
if (i > 0 && !ItemID.Sets.Deprecated[i] && i != ItemID.Count && ItemChecklistUI.vanillaIDsInSortOrder != null && ItemChecklistUI.vanillaIDsInSortOrder[i] != -1) // TODO, is this guaranteed?
|
if (i > 0 && !ItemID.Sets.Deprecated[i] && ItemLoader.GetItem(i) is not Terraria.ModLoader.Default.UnloadedItem && ItemChecklistUI.vanillaIDsInSortOrder != null && ItemChecklistUI.vanillaIDsInSortOrder[i] != -1) // TODO, is this guaranteed?
|
||||||
{
|
{
|
||||||
totalItemsToFind++;
|
totalItemsToFind++;
|
||||||
findableItems[i] = true;
|
findableItems[i] = true;
|
||||||
|
|||||||
@@ -16,6 +16,8 @@ using Terraria.ModLoader;
|
|||||||
using Terraria.UI;
|
using Terraria.UI;
|
||||||
|
|
||||||
using UIItemSlot = ItemChecklist.UIElements.UIItemSlot;
|
using UIItemSlot = ItemChecklist.UIElements.UIItemSlot;
|
||||||
|
using Steamworks;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
|
||||||
namespace ItemChecklist
|
namespace ItemChecklist
|
||||||
{
|
{
|
||||||
@@ -206,9 +208,8 @@ namespace ItemChecklist
|
|||||||
Item[] itemSlotItems = new Item[ItemLoader.ItemCount];
|
Item[] itemSlotItems = new Item[ItemLoader.ItemCount];
|
||||||
for (int i = 0; i < ItemLoader.ItemCount; i++)
|
for (int i = 0; i < ItemLoader.ItemCount; i++)
|
||||||
{
|
{
|
||||||
Item item = new Item();
|
Item item = ContentSamples.ItemsByType[i];
|
||||||
item.SetDefaults(i, false); // 300 ms vs 30 ms
|
if (item.type == ItemID.None)
|
||||||
if (item.type == 0)
|
|
||||||
continue;
|
continue;
|
||||||
itemSlots[i] = new UIItemSlot(item, i);
|
itemSlots[i] = new UIItemSlot(item, i);
|
||||||
itemSlotItems[i] = item;
|
itemSlotItems[i] = item;
|
||||||
@@ -233,6 +234,23 @@ namespace ItemChecklist
|
|||||||
vanillaIDsInSortOrder[i] = Array.FindIndex(vanillaIDsInSortOrderTemp, x => x == i);
|
vanillaIDsInSortOrder[i] = Array.FindIndex(vanillaIDsInSortOrderTemp, x => x == i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<Item> list = ContentSamples.ItemsByType.Values.ToList();
|
||||||
|
IOrderedEnumerable<IGrouping<ContentSamples.CreativeHelper.ItemGroup, ContentSamples.CreativeHelper.ItemGroupAndOrderInGroup>> orderedEnumerable = from x in list
|
||||||
|
select new ContentSamples.CreativeHelper.ItemGroupAndOrderInGroup(x) into x
|
||||||
|
group x by x.Group into @group
|
||||||
|
orderby (int)@group.Key
|
||||||
|
select @group;
|
||||||
|
int order = 0;
|
||||||
|
foreach (IGrouping<ContentSamples.CreativeHelper.ItemGroup, ContentSamples.CreativeHelper.ItemGroupAndOrderInGroup> item2 in orderedEnumerable) {
|
||||||
|
foreach (ContentSamples.CreativeHelper.ItemGroupAndOrderInGroup item3 in item2) {
|
||||||
|
//vanillaIDsInSortOrder[order] = item3.ItemType;
|
||||||
|
// TODO...rename?
|
||||||
|
vanillaIDsInSortOrder[item3.ItemType] = order;
|
||||||
|
order++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
modnames = new List<string>() { "All", "Vanilla" };
|
modnames = new List<string>() { "All", "Vanilla" };
|
||||||
modnames.AddRange(ModLoader.Mods.Where(mod => mod.GetContent<ModItem>().Any()).Select(x => x.Name)/*.Where(x => x != "ModLoader")*/);
|
modnames.AddRange(ModLoader.Mods.Where(mod => mod.GetContent<ModItem>().Any()).Select(x => x.Name)/*.Where(x => x != "ModLoader")*/);
|
||||||
|
|
||||||
@@ -323,10 +341,13 @@ namespace ItemChecklist
|
|||||||
|
|
||||||
if (buttonsHaveDummyTextures)
|
if (buttonsHaveDummyTextures)
|
||||||
{
|
{
|
||||||
Texture2D foundFilterTexture = Utilities.ResizeImage(ItemChecklist.instance.Assets.Request<Texture2D>("Images/filterFound"), 32, 32);
|
Main.instance.LoadItem(ItemID.Megaphone);
|
||||||
|
Main.instance.LoadItem(ItemID.Book);
|
||||||
|
|
||||||
|
Texture2D foundFilterTexture = Utilities.ResizeImage(ItemChecklist.instance.Assets.Request<Texture2D>("Images/filterFound", AssetRequestMode.ImmediateLoad), 32, 32);
|
||||||
Texture2D muteButtonTexture = Utilities.ResizeImage(TextureAssets.Item[ItemID.Megaphone], 32, 32);
|
Texture2D muteButtonTexture = Utilities.ResizeImage(TextureAssets.Item[ItemID.Megaphone], 32, 32);
|
||||||
//Texture2D sortButtonTexture = Utilities.ResizeImage(Main.itemTexture[ItemID.ToxicFlask], 32, 32);
|
//Texture2D sortButtonTexture = Utilities.ResizeImage(Main.itemTexture[ItemID.ToxicFlask], 32, 32);
|
||||||
Texture2D modFilterButtonTexture = Utilities.ResizeImage(ItemChecklist.instance.Assets.Request<Texture2D>("Images/filterMod"), 32, 32);
|
Texture2D modFilterButtonTexture = Utilities.ResizeImage(ItemChecklist.instance.Assets.Request<Texture2D>("Images/filterMod", AssetRequestMode.ImmediateLoad), 32, 32);
|
||||||
Texture2D collectChestItemsButtonTexture = Utilities.ResizeImage(TextureAssets.Cursors[8], 32, 32);
|
Texture2D collectChestItemsButtonTexture = Utilities.ResizeImage(TextureAssets.Cursors[8], 32, 32);
|
||||||
Texture2D showBadgeButtonTexture = Utilities.ResizeImage(TextureAssets.Item[ItemID.Book], 32, 32); // Main.extraTexture[58]
|
Texture2D showBadgeButtonTexture = Utilities.ResizeImage(TextureAssets.Item[ItemID.Book], 32, 32); // Main.extraTexture[58]
|
||||||
|
|
||||||
@@ -451,6 +472,12 @@ namespace ItemChecklist
|
|||||||
updateNeeded = true;
|
updateNeeded = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override void Draw(SpriteBatch spriteBatch) {
|
||||||
|
if (buttonsHaveDummyTextures)
|
||||||
|
return;
|
||||||
|
base.Draw(spriteBatch);
|
||||||
|
}
|
||||||
|
|
||||||
protected override void DrawSelf(SpriteBatch spriteBatch)
|
protected override void DrawSelf(SpriteBatch spriteBatch)
|
||||||
{
|
{
|
||||||
ItemChecklistUI.hoverText = "";
|
ItemChecklistUI.hoverText = "";
|
||||||
|
|||||||
16
Properties/launchSettings.json
Normal file
16
Properties/launchSettings.json
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"profiles": {
|
||||||
|
"Terraria": {
|
||||||
|
"commandName": "Executable",
|
||||||
|
"executablePath": "dotnet",
|
||||||
|
"commandLineArgs": "$(tMLPath)",
|
||||||
|
"workingDirectory": "$(tMLSteamPath)"
|
||||||
|
},
|
||||||
|
"TerrariaServer": {
|
||||||
|
"commandName": "Executable",
|
||||||
|
"executablePath": "dotnet",
|
||||||
|
"commandLineArgs": "$(tMLServerPath)",
|
||||||
|
"workingDirectory": "$(tMLSteamPath)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
20
SharedUI.cs
20
SharedUI.cs
@@ -286,7 +286,7 @@ namespace ItemChecklist
|
|||||||
foreach (int type in itemTexturePreload)
|
foreach (int type in itemTexturePreload)
|
||||||
Main.instance.LoadItem(type);
|
Main.instance.LoadItem(type);
|
||||||
|
|
||||||
//Texture2D terrariaSort = ResizeImage(Main.inventorySortTexture[1], 24, 24);
|
Texture2D terrariaSort = ResizeImage(TextureAssets.InventorySort[0], 24, 24);
|
||||||
Texture2D rarity = ResizeImage(TextureAssets.Item[ItemID.MetalDetector], 24, 24);
|
Texture2D rarity = ResizeImage(TextureAssets.Item[ItemID.MetalDetector], 24, 24);
|
||||||
|
|
||||||
// TODO: Implement Badge text as used in Item Checklist.
|
// TODO: Implement Badge text as used in Item Checklist.
|
||||||
@@ -296,7 +296,7 @@ namespace ItemChecklist
|
|||||||
new Sort("Value", "Images/sortValue", (x,y)=>x.value.CompareTo(y.value), x=>x.value.ToString()),
|
new Sort("Value", "Images/sortValue", (x,y)=>x.value.CompareTo(y.value), x=>x.value.ToString()),
|
||||||
new Sort("Alphabetical", "Images/sortAZ", (x,y)=>x.Name.CompareTo(y.Name), x=>x.Name.ToString()),
|
new Sort("Alphabetical", "Images/sortAZ", (x,y)=>x.Name.CompareTo(y.Name), x=>x.Name.ToString()),
|
||||||
new Sort("Rarity", rarity, (x,y)=> x.rare==y.rare ? x.value.CompareTo(y.value) : Math.Abs(x.rare).CompareTo(Math.Abs(y.rare)), x=>x.rare.ToString()),
|
new Sort("Rarity", rarity, (x,y)=> x.rare==y.rare ? x.value.CompareTo(y.value) : Math.Abs(x.rare).CompareTo(Math.Abs(y.rare)), x=>x.rare.ToString()),
|
||||||
//new Sort("Terraria Sort", terrariaSort, (x,y)=> -ItemChecklistUI.vanillaIDsInSortOrder[x.type].CompareTo(ItemChecklistUI.vanillaIDsInSortOrder[y.type]), x=>ItemChecklistUI.vanillaIDsInSortOrder[x.type].ToString()),
|
new Sort("Terraria Sort", terrariaSort, ByCreativeSortingId, ByCreativeSortingIdBadgeText),
|
||||||
};
|
};
|
||||||
|
|
||||||
Texture2D materialsIcon = Utilities.StackResizeImage(new[] { TextureAssets.Item[ItemID.SpellTome] }, 24, 24);
|
Texture2D materialsIcon = Utilities.StackResizeImage(new[] { TextureAssets.Item[ItemID.SpellTome] }, 24, 24);
|
||||||
@@ -590,6 +590,22 @@ namespace ItemChecklist
|
|||||||
SelectedCategory = categories[0];
|
SelectedCategory = categories[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private string ByCreativeSortingIdBadgeText(Item x) {
|
||||||
|
return ItemChecklistUI.vanillaIDsInSortOrder[x.type].ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
private int ByCreativeSortingId(Item x, Item y) {
|
||||||
|
return ItemChecklistUI.vanillaIDsInSortOrder[x.type].CompareTo(ItemChecklistUI.vanillaIDsInSortOrder[y.type]);
|
||||||
|
|
||||||
|
ContentSamples.CreativeHelper.ItemGroupAndOrderInGroup itemGroupAndOrderInGroup = ContentSamples.ItemCreativeSortingId[x.type];
|
||||||
|
ContentSamples.CreativeHelper.ItemGroupAndOrderInGroup itemGroupAndOrderInGroup2 = ContentSamples.ItemCreativeSortingId[y.type];
|
||||||
|
int num = itemGroupAndOrderInGroup.Group.CompareTo(itemGroupAndOrderInGroup2.Group);
|
||||||
|
if (num == 0)
|
||||||
|
num = itemGroupAndOrderInGroup.OrderInGroup.CompareTo(itemGroupAndOrderInGroup2.OrderInGroup);
|
||||||
|
|
||||||
|
return num;
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: Update with new 1.4 values.
|
// TODO: Update with new 1.4 values.
|
||||||
Dictionary<int, float> vanillaGrappleRanges = new Dictionary<int, float>() {
|
Dictionary<int, float> vanillaGrappleRanges = new Dictionary<int, float>() {
|
||||||
[13] = 300f,
|
[13] = 300f,
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
author = jopojelly
|
author = jopojelly
|
||||||
version = 0.5.2
|
version = 0.6
|
||||||
displayName = Item Checklist
|
displayName = Item Checklist
|
||||||
homepage = https://forums.terraria.org/index.php?threads/item-checklist-in-game-100-item-collection-checklist.52786/
|
homepage = https://forums.terraria.org/index.php?threads/item-checklist-in-game-100-item-collection-checklist.52786/
|
||||||
hideCode = false
|
hideCode = false
|
||||||
hideResources = false
|
hideResources = false
|
||||||
includeSource = true
|
includeSource = true
|
||||||
languageVersion = 6
|
|
||||||
includePDB = true
|
includePDB = true
|
||||||
notworkingside = Client
|
notworkingside = Client
|
||||||
buildIgnore = .vs\*, Properties\*, *.csproj, *.user, obj\*, bin\*, *.config, lib\*, .gitignore, .git\*
|
buildIgnore = .vs\*, Properties\*, *.csproj, *.user, obj\*, bin\*, *.config, lib\*, .gitignore, .git\*
|
||||||
weakReferences = MagicStorage@0.4.3.1
|
weakReferences = MagicStorage@0.5.7.4
|
||||||
|
|||||||
BIN
icon_workshop.png
Normal file
BIN
icon_workshop.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.8 KiB |
Binary file not shown.
BIN
lib/MagicStorage_v0.5.7.4.dll
Normal file
BIN
lib/MagicStorage_v0.5.7.4.dll
Normal file
Binary file not shown.
Reference in New Issue
Block a user