-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathrecipes-evolved.js
275 lines (223 loc) · 14.4 KB
/
recipes-evolved.js
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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
var techlevel = {
"no": 0,
"yes": 1
};
function console_logger(n, src, dst, comment, batchsize)
{
var s = "Craft " + n + " " + src + " using recipe " + JSON.stringify(dst);
if (batchsize)
s += " [BATCH: "+batchsize+"]";
if (comment)
s += " [COMMENT: "+comment+"]";
console.log(s);
}
function make_simpl(basket, cb) {
return function (src, dst, comment, batchsize, attr) {
if (src in basket) {
var orig_n = basket[src]
var n = orig_n;
if (batchsize !== undefined)
{
n = Math.ceil(orig_n / batchsize);
var extra = n * batchsize - orig_n;
if (extra > 0)
{
basket["recycled " + src] = -extra;
}
}
delete basket[src]
for (var k in dst) {
if (!(k in basket)) {
basket[k] = 0
}
basket[k] += dst[k] * n
}
cb(n, src, dst, comment, batchsize, attr)
}
}
}
function RUN_RECIPES(TECH, simpl)
{
function warn_if_not(techtype, level)
{
if (TECH[techtype] >= level)
return undefined;
else
return "warn";
}
// Example:
// simpl("item filter", { "raw carbon mesh": 4, "zinc foil": 16 }, "Assemble", undefined, warn_if_not("assembling machine", LV));
// simpl("energium dust", { "redstone": 5, "ruby dust": 4 }, undefined, 9);
simpl("fluxed armor plating", {"fluxed electrum nugget": 6, "flux crystal": 2, "fluxed electrum ingot": 1})
simpl("fluxed electrum nugget", {"fluxed electrum ingot": 1}, undefined, 9)
simpl("fluxed electrum ingot", {"electrum ingot": 2, "redstone": 4, "pyrotheum dust": 1}, "Alloy Smelter", 2)
simpl("flux crystal", {"diamond": 1, "destabilized redstone": 200}, "Fluid Transposer")
simpl("molecular transformer", {"advanced machine casing": 4, "ev transformer": 2, "advanced circuit": 2, "mt core": 1})
simpl("mt core", {"irradiant glass pane": 6, "thick neutron reflector": 2})
simpl("thick neutron reflector", {"neutron reflector": 4, "copper plate": 5})
simpl("neutron reflector", {"coal dust": 4, "tin dust": 4, "copper plate": 1})
simpl("irradiant glass pane", {"reinforced glass": 6, "irradiant uranium": 2, "glowstone dust": 1}, undefined, 6)
simpl("reinforced glass", {"glass": 7, "advanced alloy": 2}, undefined, 7)
simpl("ev transformer", {"insulated hv cable": 2, "lapotron crystal": 1, "advanced circuit": 1, "hv transformer": 1})
simpl("hv transformer", {"mv transformer": 1, "insulated gold cable": 2, "electronic circuit": 1, "advanced re-battery": 1})
simpl("mv transformer", {"basic machine casing": 1, "insulated copper cable": 2})
simpl("thermal centrifuge", {"mining laser": 1, "coil": 2, "iron": 4, "electric motor": 1, "advanced machine casing": 1})
simpl("mining laser", {"redstone": 2, "energy crystal": 1, "advanced circuit": 1, "advanced alloy": 3, "iron turning blank handle": 1})
simpl("iron turning blank handle", {"iron turning blank": 1}, "Turning Table: 43222")
simpl("nuclear reactor", {"reactor chamber": 3, "advanced circuit": 1, "dense lead plate": 4, "generator": 1})
simpl("reactor chamber", {"basic machine casing": 1, "lead plate": 4})
simpl("electric jetpack", {"iron item casing": 4, "glowstone": 2, "batbox": 1, "advanced circuit": 1})
simpl("batbox", {"wood": 5, "insulated tin cable": 1, "re-battery": 3})
//////
simpl("solar panel", {"generator": 1, "coal dust": 3, "glass": 3, "electronic circuit": 2})
simpl("generator", {"iron furnace": 1, "iron plate": 3, "re-battery": 1})
simpl("iron furnace", {"furnace": 1, "iron plate": 5})
// ic2reactor
simpl("reactor redstone port", {"redstone": 1, "reactor pressure vessel": 8})
simpl("reactor fluid port", {"universal fluid cell": 1, "reactor pressure vessel": 8})
simpl("reactor access hatch", {"trapdoor": 1, "reactor pressure vessel": 8})
simpl("reactor pressure vessel", {"stone": 4, "lead plate": 5}, undefined, 4)
// bigreactors
simpl("reactor controller", {"reactor casing": 4, "red pipe wire": 3, "computer": 1, "redstone comp chipset": 1})
simpl("reactor power tap", {"reactor casing": 4, "mfe": 1})
simpl("reactor control rod", {"reactor casing": 4, "graphite": 3, "yellorium": 1, "redstone": 1})
simpl("reactor access port", {"reactor casing": 4, "piston": 1, "chest": 1 })
simpl("yellorium fuel rod", {"hardened glass": 6, "pellets of rtg fuel": 1 })
simpl("reactor casing", {"steel": 4, "graphite": 2, "electrical steel": 2, "yellorium": 1}, undefined, 2)
simpl("pellets of rtg fuel", {"plutonium": 3, "dense iron plate": 6})
simpl("tesseract", {"tesseract frame full": 1 ,"silver": 4, "bronze": 4})
simpl("tesseract frame full", {"tesseract frame empty": 1 ,"resonant ender": 1000}, "Fluid Transposer")
simpl("tesseract frame empty", {"teleporter": 1 ,"ender electron tube": 2, "enderium": 4, "octadic capacitor": 2})
simpl("teleporter", {"glass fibre cable": 2, "advanced circuit": 4, "diamond": 1, "frequency transmitter": 1, "advanced machine casing": 1})
simpl("mfsu", {"lapotron crystal": 6, "mfe": 1, "advanced machine casing": 1, "advanced circuit": 1})
simpl("mfe", {"energy crystal": 4, "insulated gold cable": 4, "basic machine casing": 1})
simpl("advanced machine casing", {"advanced alloy": 2, "steel plate": 4, "carbon plate": 2, "basic machine casing": 1})
simpl("lapotron crystal", {"energy crystal": 1, "lapis dust": 6, "advanced circuit": 2})
simpl("energy crystal", {"energium dust": 9}, "Compressor")
simpl("energium dust", {"diamond dust": 4, "redstone": 5}, undefined, 9)
simpl("basic capacitor bank", { "iron": 4, "redstone block": 1, "basic capacitor": 4 })
simpl("capacitor bank", { "electrical steel": 4, "redstone block": 1, "double-layer capacitor": 4 })
simpl("redstone energy cell", {"redstone energy cell frame full": 1, "advanced circuit": 1, "diamantine electron tube": 2, "double-layer capacitor": 1})
simpl("hardened energy cell", {"hardened energy cell frame": 1, "electronic circuit": 1, "bronze electron tube": 2, "redstone conductance coil": 1})
simpl("leadstone energy cell", {"leadstone energy cell frame": 1, "electronic circuit": 1, "lead": 4, "tin electron tube": 2, "redstone conductance coil": 1})
simpl("redstone energy cell frame full", {"redstone energy cell frame empty": 1, "destabilized redstone": 4000}, "Fluid Transposer")
simpl("redstone energy cell frame empty", {"diamond": 1, "hardened glass": 4, "electrum": 4})
simpl("hardened energy cell frame", {"leadstone energy cell frame": 1, "invar": 4})
simpl("leadstone energy cell frame", {"redstone block": 1, "lead": 4, "glass": 4})
simpl("redstone conductance coil", {"redstone": 2, "electrum": 1})
simpl("mining well", {"iron plate": 2, "gold gear": 2, "mining drill": 1, "computer": 1, "diamond chipset": 1})
simpl("computer", {"iron": 7, "logic processor": 1, "iron chipset": 1})
simpl("mining drill", {"iron plate": 6, "power unit": 1})
simpl("power unit", {"electronic circuit": 1, "re-battery": 3, "copper cable": 2, "electric motor": 1, "iron item casing": 2})
simpl("advanced circuit", {"basic capacitor": 2, "redstone chipset": 4, "electronic circuit": 1, "intricate circuit board": 2})
simpl("logic processor", {"redstone": 1, "printed logic circuit": 1, "printed silicon": 1}, "Inscriber")
simpl("printed logic circuit", {"gold": 1}, "Inscriber: Logic Press")
simpl("printed silicon", {"silicon": 1}, "Inscriber: Silicon Press")
simpl("water wheel", {"waterwheel segment": 8, "shaft (iron)": 1})
simpl("waterwheel segment", {"treated wood planks": 3, "treated stick": 4})
simpl("kinetic dynamo", {"mv capacitor":1, "iron": 2, "steel": 3, "redstone": 2, "electrum coil": 1 })
simpl("electrum coil", {"iron": 1, "electrum wire coil": 8 })
simpl("electrum wire coil", {"electrum": 4, "treated stick": 1 }, undefined, 2)
simpl("hv capacitor", {"treated wood planks":2, "steel": 3, "lead block": 1, "aluminum": 2, "redstone block": 1 })
simpl("mv capacitor", {"treated wood planks":2, "iron": 3, "lead": 1, "electrum": 2, "redstone block": 1 })
simpl("lv capacitor", {"treated wood planks":2, "iron": 3, "lead": 1, "copper": 2, "redstone": 1 })
simpl("treated stick", {"treated wood planks": 2}, undefined, 4)
simpl("solid canning machine", {"electronic circuit": 2, "basic machine casing": 1, "tin can":2})
simpl("basic machine casing", {"iron plate": 8, "iron chipset": 1})
simpl("tin can", {"tin item casing": 1}, "Metal Former: Extruding")
simpl("fuel rod (uranium)", {"fuel rod (empty)": 1, "enriched uraniuim nuclear fuel": 1}, "Solid Canning Machine")
simpl("fuel rod (empty)", {"iron plate": 1}, "Metal Former: Extruding")
simpl("component heat exchanger", {"gold plate": 4, "heat exchanger": 1})
simpl("heat exchanger", {"copper plate": 5, "tin plate": 3, "electronic circuit": 1})
simpl("advanced heat vent", {"diamond": 1, "iron bars": 6, "heat vent": 2})
simpl("overclocked heat vent", {"gold plate":4, "reactor heat vent": 1})
simpl("reactor heat vent", {"copper plate":8, "heat vent": 1})
simpl("component heat vent", {"iron bars": 4, "tin plate":4, "heat vent": 1})
simpl("heat vent", {"iron plate":4, "iron bars": 4, "electric motor": 1})
simpl("electric motor", {"iron":1, "tin item casing": 2, "coil": 2})
simpl("coil", {"iron":1, "copper cable": 8})
simpl("electronic circuit", {"iron plate": 1, "redstone": 2, "insulated copper cable": 6})
simpl("re-battery", {"tin item casing": 4, "insulated tin cable": 1, "electrotine": 2})
simpl("octadic capacitor", {"double-layer capacitor": 2, "vibrant alloy": 2, "ender electron tube": 1})
simpl("double-layer capacitor", {"basic capacitor": 2, "energetic alloy": 2, "blazing electron tube": 1})
simpl("basic capacitor", {"signalum nugget": 4, "lapis electron tube": 1, "redstone chipset": 2})
simpl("insulated hv cable", {"hv cable": 1, "rubber": 3})
simpl("hv cable", {"iron": 1}, "Metal Former: Extrude", 4)
simpl("insulated gold cable", {"gold cable": 1, "rubber": 2})
simpl("gold cable", {"gold": 1 }, "Metal Former: Extrude", 4)
simpl("insulated copper cable", {"copper cable": 1, "rubber": 1})
simpl("copper cable", {"copper": 1 }, "Metal Former: Extrude", 3)
simpl("insulated tin cable", {"tin cable": 1, "rubber": 1})
simpl("tin cable", {"tin": 1 }, "Metal Former: Extrude", 3)
simpl("advanced alloy", {"mixed metal ingot":1}, "Compressor")
simpl("mixed metal ingot", {"iron plate":3, "bronze plate": 3, "tin plate": 3}, undefined, 2)
simpl("tin item casing", {"tin plate":1}, "Metal Former: Rolling", 2)
simpl("tin plate", {"tin":1}, "Metal Former: Rolling")
simpl("iron item casing", {"iron plate":1}, "Metal Former: Rolling", 2)
simpl("dense iron plate", {"iron plate":9}, "Compressor")
simpl("iron plate", {"iron":1}, "Metal Former: Rolling")
simpl("steel plate", {"steel":1}, "Metal Former: Rolling")
simpl("gold plate", {"gold":1}, "Metal Former: Rolling")
simpl("copper plate", {"copper":1}, "Metal Former: Rolling")
simpl("bronze plate", {"bronze":1}, "Metal Former: Rolling")
simpl("carbon plate", {"coal dust": 8}, "Compress a lot") // todo: expand
simpl("dense lead plate", {"lead plate": 9}, "Compressor")
simpl("lead plate", {"lead":1}, "Metal Former: Rolling")
simpl("iron bars", {"iron":6}, undefined, 16)
simpl("shaft (iron)", {"iron block":1}, "Metal Former: Extrude")
simpl("redstone block", {"redstone": 9})
simpl("iron block", {"iron": 9})
simpl("lead block", {"lead": 9})
simpl("gold gear", {"molten gold":4000}, "Smeltery: Gear Cast")
simpl("molten gold", {"gold": 1}, "Smeltery", 1000)
simpl("hardened glass", {"obsidian dust": 4, "lead": 1}, "Induction Smelter", 2)
simpl("obsidian dust", {"obsidian": 1}, "Sag Mill", 4)
simpl("diamond dust", {"diamond": 1}, "Macerator")
simpl("lapis dust", {"lapis": 1}, "Macerator")
simpl("destabilized redstone", {"redstone": 1}, "Magma Crucible", 100)
simpl("intricate circuit board", {"redstone": 6, "gold": 3, "water": 1000}, "Carpenter")
simpl("ender electron tube", {"end stone":5, "eye of ender": 2, "liquid glass": 500}, "Thermionic Fabricator", 4)
simpl("diamantine electron tube", {"diamond":5, "redstone": 2, "liquid glass": 500}, "Thermionic Fabricator", 4)
simpl("bronze electron tube", {"bronze":5, "redstone": 2, "liquid glass": 500}, "Thermionic Fabricator", 4)
simpl("tin electron tube", {"tin":5, "redstone": 2, "liquid glass": 500}, "Thermionic Fabricator", 4)
simpl("lapis electron tube", {"lapis":5, "redstone": 2, "liquid glass": 500}, "Thermionic Fabricator", 4)
simpl("blazing electron tube", {"blaze powder":5, "redstone": 2, "liquid glass": 500}, "Thermionic Fabricator", 4)
simpl("liquid glass", {"glass": 1}, "Thermionic Fabricator: Melt", 1000)
simpl("redstone chipset", {"redstone": 1}, "Assembly Table")
simpl("iron chipset", {"iron": 1, "redstone": 1}, "Assembly Table")
simpl("signalum nugget", {"signalum": 1}, undefined, 9)
simpl("signalum", {"copper": 3, "silver": 1, "redstone":10}, "Alloy Smelter", 4)
simpl("bronze", {"copper": 3, "tin": 1}, "Alloy Smelter", 4)
simpl("electrum", {"silver": 1, "gold": 1}, "Alloy Smelter", 2)
simpl("invar", {"ferrous": 1, "iron": 2}, "Alloy Smelter", 3)
simpl("electrical steel", {"iron": 1, "coal dust": 1, "silicon": 1}, "Alloy Smelter")
simpl("vibrant alloy", {"ender pearl": 1, "energetic alloy": 1}, "Alloy Smelter")
simpl("energetic alloy", {"redstone": 1, "gold": 1, "glowstone": 1}, "Alloy Smelter")
simpl("eye of ender", {"blaze powder": 1, "ender pearl": 1})
}
function basictech() {
return {
"metal former" : techlevel.yes
}
}
if (require.main === module)
{
var tech = basictech()
var cur = {"hv wiremill": 1}
RUN_RECIPES(cur, tech, make_simpl(console_logger))
console.log("=======================================INGREDIENT=========================");
for (var k in cur) {
console.log(k + ": " + cur[k]);
}
}
else
{
// required as module
module.exports = {
"run": function (cur, TECH, cb) { return RUN_RECIPES(TECH, make_simpl(cur, cb)); },
"raw_recipes": RUN_RECIPES,
"techlevel": techlevel,
"cb": console_logger,
"basictech": basictech
}
}