Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
ItemTrader.cs
Go to the documentation of this file.
2
4
5public class ItemTrader
6{
7 public class TradeOption
8 {
9 public int TakingItemType;
10
11 public int TakingItemStack;
12
13 public int GivingITemType;
14
15 public int GivingItemStack;
16
18 {
20 {
21 return false;
22 }
23 return true;
24 }
25 }
26
28
30
36
38 {
39 for (int i = 0; i < typesInOrder.Length - 1; i++)
40 {
42 }
44 }
45
47 {
48 for (int i = 0; i < takingItemTypes.Length; i++)
49 {
51 }
52 }
53
55 {
57 {
58 TakingItemType = takingItemType,
59 TakingItemStack = takingItemStack,
60 GivingITemType = givingItemType,
61 GivingItemStack = givingItemStack
62 });
63 }
64
65 public bool TryGetTradeOption(Item item, out TradeOption option)
66 {
67 option = null;
68 int type = item.type;
69 int stack = item.stack;
70 for (int i = 0; i < _options.Count; i++)
71 {
73 if (tradeOption.WillTradeFor(type, stack))
74 {
75 option = tradeOption;
76 return true;
77 }
78 }
79 return false;
80 }
81
83 {
85 itemTrader.AddOption_Interchangable(12, 699);
86 itemTrader.AddOption_Interchangable(11, 700);
87 itemTrader.AddOption_Interchangable(14, 701);
88 itemTrader.AddOption_Interchangable(13, 702);
89 itemTrader.AddOption_Interchangable(56, 880);
90 itemTrader.AddOption_Interchangable(364, 1104);
91 itemTrader.AddOption_Interchangable(365, 1105);
92 itemTrader.AddOption_Interchangable(366, 1106);
93 itemTrader.AddOption_CyclicLoop(134, 137, 139);
94 itemTrader.AddOption_Interchangable(20, 703);
95 itemTrader.AddOption_Interchangable(22, 704);
96 itemTrader.AddOption_Interchangable(21, 705);
97 itemTrader.AddOption_Interchangable(19, 706);
98 itemTrader.AddOption_Interchangable(57, 1257);
99 itemTrader.AddOption_Interchangable(381, 1184);
100 itemTrader.AddOption_Interchangable(382, 1191);
101 itemTrader.AddOption_Interchangable(391, 1198);
102 itemTrader.AddOption_Interchangable(86, 1329);
103 itemTrader.AddOption_FromAny(3, 61, 836, 409);
104 itemTrader.AddOption_FromAny(169, 370, 1246, 408);
105 itemTrader.AddOption_FromAny(664, 833, 835, 834);
106 itemTrader.AddOption_FromAny(3271, 3276, 3277, 3339);
107 itemTrader.AddOption_FromAny(3272, 3274, 3275, 3338);
108 return itemTrader;
109 }
110}
void Add(TKey key, TValue value)
bool WillTradeFor(int offeredItemType, int offeredItemStack)
Definition ItemTrader.cs:17
void AddOption_CyclicLoop(params int[] typesInOrder)
Definition ItemTrader.cs:37
bool TryGetTradeOption(Item item, out TradeOption option)
Definition ItemTrader.cs:65
void AddOption_FromAny(int givingItemType, params int[] takingItemTypes)
Definition ItemTrader.cs:46
void AddOption_OneWay(int takingItemType, int takingItemStack, int givingItemType, int givingItemStack)
Definition ItemTrader.cs:54
static ItemTrader CreateChlorophyteExtractinator()
Definition ItemTrader.cs:82
static ItemTrader ChlorophyteExtractinator
Definition ItemTrader.cs:27
void AddOption_Interchangable(int itemType1, int itemType2)
Definition ItemTrader.cs:31
List< TradeOption > _options
Definition ItemTrader.cs:29