-
Notifications
You must be signed in to change notification settings - Fork 16
/
Collections.cs
142 lines (126 loc) · 4.15 KB
/
Collections.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
namespace DaLion.Overhaul.Modules;
#region using directives
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
#endregion using directives
/// <summary>Holds collections which may be referenced by different modules.</summary>
internal static class Collections
{
/// <summary>Gets the recognized artisan machines.</summary>
internal static ImmutableHashSet<string> ArtisanMachines { get; } = new HashSet<string>
{
"Cheese Press",
"Keg",
"Loom",
"Mayonnaise Machine",
"Oil Maker",
"Preserves Jar",
}.Concat(ProfessionsModule.Config.CustomArtisanMachines).ToImmutableHashSet();
/// <summary>Gets the names of the legendary fish.</summary>
internal static ImmutableHashSet<string> LegendaryFishNames { get; } = new HashSet<string>
{
"Crimsonfish", // vanilla
"Angler", // vanilla
"Legend", // vanilla
"Glacierfish", // vanilla
"Mutant Carp", // vanilla
"Son of Crimsonfish", // qi extended
"Ms. Angler", // qi extended
"Legend II", // qi extended
"Glacierfish Jr.", // qi extended
"Radioactive Carp", // qi extended
"Pufferchick", // stardew aquarium
"Deep Ridge Angler", // ridgeside
"Sockeye Salmon", // ridgeside
"Waterfall Snakehead", // ridgeside
}.ToImmutableHashSet();
/// <summary>Gets the resource that should spawn from a given stone.</summary>
internal static ImmutableDictionary<int, int> ResourceFromStoneId { get; } = new Dictionary<int, int>
{
// stone
{ 668, 390 },
{ 670, 390 },
{ 845, 390 },
{ 846, 390 },
{ 847, 390 },
// ores
{ 751, 378 },
{ 849, 378 },
{ 290, 380 },
{ 850, 380 },
{ 764, 384 },
{ 765, 386 },
{ 95, 909 },
// geodes
{ 75, 535 },
{ 76, 536 },
{ 77, 537 },
{ 819, 749 },
// gems
{ 8, 66 },
{ 10, 68 },
{ 12, 60 },
{ 14, 62 },
{ 6, 70 },
{ 4, 64 },
{ 2, 72 },
// other
{ 25, 719 },
{ 816, 881 },
{ 817, 881 },
{ 818, 330 },
{ 843, 848 },
{ 844, 848 },
}.ToImmutableDictionary();
/// <summary>Gets or sets the ids of resource nodes.</summary>
internal static ImmutableHashSet<int> ResourceNodeIds { get; set; } = new HashSet<int>
{
// ores
751, // copper node
849, // copper ?
290, // silver node
850, // silver ?
764, // gold node
765, // iridium node
95, // radioactive node
// geodes
75, // geode node
76, // frozen geode node
77, // magma geode node
819, // omni geode node
// gems
8, // amethyst node
10, // topaz node
12, // emerald node
14, // aquamarine node
6, // jade node
4, // ruby node
2, // diamond node
44, // gem node
// other
25, // mussel node
816, // bone node
817, // bone node
818, // clay node
843, // cinder shard node
844, // cinder shard node
46, // mystic stone
}.ToImmutableHashSet();
/// <summary>Gets or sets the ids of (valuable) resource clumps.</summary>
internal static HashSet<int> ResourceClumpIds { get; set; } = new();
/// <summary>Gets the corresponding extended family pair by legendary fish id.</summary>
internal static ImmutableDictionary<int, int> ExtendedFamilyPairs { get; } = new Dictionary<int, int>
{
{ ItemIDs.Crimsonfish, ItemIDs.SonOfCrimsonfish },
{ ItemIDs.Angler, ItemIDs.MsAngler },
{ ItemIDs.Legend, ItemIDs.Legend2 },
{ ItemIDs.MutantCarp, ItemIDs.RadioactiveCarp },
{ ItemIDs.Glacierfish, ItemIDs.GlacierfishJr },
{ ItemIDs.SonOfCrimsonfish, ItemIDs.Crimsonfish },
{ ItemIDs.MsAngler, ItemIDs.Angler },
{ ItemIDs.Legend2, ItemIDs.Legend },
{ ItemIDs.RadioactiveCarp, ItemIDs.MutantCarp },
{ ItemIDs.GlacierfishJr, ItemIDs.Glacierfish },
}.ToImmutableDictionary();
}