Compare commits
6 Commits
fe01e1935c
...
main
Author | SHA1 | Date | |
---|---|---|---|
97acc9b466 | |||
dc7d2c54f0 | |||
c277dc9623 | |||
b9dc5a5d35 | |||
da57201c78 | |||
55fb28ee19 |
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -1,2 +1,3 @@
|
|||||||
*.jpg filter=lfs diff=lfs merge=lfs -text
|
*.jpg filter=lfs diff=lfs merge=lfs -text
|
||||||
*.png filter=lfs diff=lfs merge=lfs -text
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
65
README.md
65
README.md
@@ -126,19 +126,22 @@ For more details see [here](./calculations/early_machines.md)
|
|||||||
|
|
||||||
### ME Automation
|
### ME Automation
|
||||||
|
|
||||||
**5x5x5 Crafter**:
|
**4x4x5 ME crafting cube**
|
||||||
- 44 Containment Walls
|
- 6 pattern provider
|
||||||
- 54 Heat Vents
|
- 6 crafting cpus
|
||||||
- 18 Crafting CPUs
|
- 32 heat vent
|
||||||
- 9 Pattern Provider
|
- 36 containment walls
|
||||||
|
|
||||||
*probably balance more towards more crafting CPUs, fewer pattern providers*
|
**Total resources**:
|
||||||
|
- 96 quartz
|
||||||
|
- 56 quartz dust (32 for silicone -> 12 adv. + 20. basic circuits)
|
||||||
|
- 164 gold
|
||||||
|
- 12 diamonds
|
||||||
|
|
||||||
**Total**:
|
- 416 iron
|
||||||
- 160 Quartz
|
- 176 redstone
|
||||||
- 96 Quartz Dust
|
- 12 glowstone
|
||||||
- 27 Diamonds
|
- 48 glass
|
||||||
- 235 Gold
|
|
||||||
|
|
||||||
### Blast Furnace
|
### Blast Furnace
|
||||||
34x Blocks
|
34x Blocks
|
||||||
@@ -217,30 +220,37 @@ In 3x3 Chunk Area:
|
|||||||
### Lava centrifuges
|
### Lava centrifuges
|
||||||
At some point, start building centrifuges for lava producing copper and tin! Start with 32 or 64, then expand later.
|
At some point, start building centrifuges for lava producing copper and tin! Start with 32 or 64, then expand later.
|
||||||
|
|
||||||
For more details [see here](./material_calculations/lava_calcs.md).
|
For more details [see here](./calculations/lava_calcs.md).
|
||||||
|
|
||||||
### Frame Quarry
|
### Frame Quarry
|
||||||
- 144 Support Frames (+32-64 later)
|
|
||||||
|
This material list is optimized for running in a eternal day, Meadow single biome, flat Mystcraft world.
|
||||||
|
It's not protected against falling gravel or flowing liquids from above.
|
||||||
|
|
||||||
|
- 128 Support Frames
|
||||||
- 120 Redstone Tube Frames
|
- 120 Redstone Tube Frames
|
||||||
- 16 Tube Frames
|
- 16 Tube Frames
|
||||||
|
|
||||||
**Other Mats**:
|
**Other Mats**:
|
||||||
- 48 Mining Wells
|
- 48 Mining Wells
|
||||||
- 24 Deployer
|
- 16 Deployer
|
||||||
- 80 Block Breaker
|
- 81 Block Breaker
|
||||||
- 8 Item Tesseracts
|
- 9 Item Tesseracts
|
||||||
- 8 Energy Tesseracts
|
- 9 Energy Tesseracts
|
||||||
- 64 Red Alloy Wire
|
- 64 Red Alloy Wire
|
||||||
- 2 Repeater
|
- 3 Repeater
|
||||||
- 1 Timer
|
- 1 Timer
|
||||||
|
- 1 Lever
|
||||||
- 2 Frame Motors
|
- 2 Frame Motors
|
||||||
- 9 Solar Panels
|
- 8 Solar Panels
|
||||||
- 1 Battery Box
|
- 1 Battery Box
|
||||||
- 1 Wireless Receiver
|
- 17 Jacketed Wire
|
||||||
- 1 Wireless Transmitter
|
- ca. 128 Cobblestone Panel
|
||||||
- 20 Jacketed Wire
|
- ca. 128 Cobblestone Cover
|
||||||
- 1 Ender Chest
|
- 2 Cobblestone Cover Strip
|
||||||
- 3 Control Tracks
|
- 1 Ender Chest / Item Tesseract
|
||||||
|
- 1 Chunk Loader
|
||||||
|
- 1 Screwdriver
|
||||||
|
|
||||||
### Industrial Blast
|
### Industrial Blast
|
||||||
|
|
||||||
@@ -296,19 +306,19 @@ Keep enough for Assemblers making Data Control Circuits etc.
|
|||||||
- 1 stack of centrifuges for platinum dust
|
- 1 stack of centrifuges for platinum dust
|
||||||
- Keep ~300 platinum for circuit boards for the fusion
|
- Keep ~300 platinum for circuit boards for the fusion
|
||||||
|
|
||||||
More details [here](./material%20calculations/iridium_calcs.md)
|
More details [here](./calculations/iridium_calcs.md)
|
||||||
|
|
||||||
### For Chrome (need 526)
|
### For Chrome (need 526)
|
||||||
- 4 IBFs for chrome dust -> chrome ingots
|
- 4 IBFs for chrome dust -> chrome ingots
|
||||||
- 4 electrolyzers on ruby dust -> chrome dust
|
- 4 electrolyzers on ruby dust -> chrome dust
|
||||||
- 3 stacks centrifuges for redstone -> ruby dust
|
- 3 stacks centrifuges for redstone -> ruby dust
|
||||||
|
|
||||||
More details [here](./material%20calculations/chrome_calcs.md)
|
More details [here](./calculations/chrome_calcs.md)
|
||||||
|
|
||||||
### For Titanium (need 280)
|
### For Titanium (need 280)
|
||||||
- 16 electrolyzers on bauxite dust
|
- 16 electrolyzers on bauxite dust
|
||||||
|
|
||||||
More details [here](./material%20calculations/titanium_calcs.md)
|
More details [here](./calculations/titanium_calcs.md)
|
||||||
|
|
||||||
### For Beryllium (need 264)
|
### For Beryllium (need 264)
|
||||||
- 4 electrolyzers on ender pearl dust
|
- 4 electrolyzers on ender pearl dust
|
||||||
@@ -377,4 +387,3 @@ Total of 57 Superconductors required (15 recipes of 4):
|
|||||||
## Charging the Reactor:
|
## Charging the Reactor:
|
||||||
- Assuming full throughput, the 4 Energy Injectors can accept 32768EU/t, taking about 1 minute to fully charge the required 40 million EU.
|
- Assuming full throughput, the 4 Energy Injectors can accept 32768EU/t, taking about 1 minute to fully charge the required 40 million EU.
|
||||||
- This would require 64 boiler pairs (4 layers) with at least partially charged MFSUs, or 85 boiler pairs without any buffer dedicated to the charging.
|
- This would require 64 boiler pairs (4 layers) with at least partially charged MFSUs, or 85 boiler pairs without any buffer dedicated to the charging.
|
||||||
|
|
||||||
|
21
soulcage_statistics/data.csv
Normal file
21
soulcage_statistics/data.csv
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
spawners,redstone,glowstone,sugar,sticks,bottles,gunpowder,eyes
|
||||||
|
1,134,128,175,324,135,149,170
|
||||||
|
2,313,339,333,575,339,322,279
|
||||||
|
3,466,468,506,940,469,504,463
|
||||||
|
4,627,620,599,1171,558,644,601
|
||||||
|
5,773,710,791,1451,736,782,741
|
||||||
|
6,768,815,800,1735,863,889,854
|
||||||
|
7,976,890,963,2054,966,951,916
|
||||||
|
8,997,977,1015,2102,1024,1071,1078
|
||||||
|
9,1089,1053,1112,2137,1093,1057,1052
|
||||||
|
10,1084,1052,1108,2226,1143,1128,1128
|
||||||
|
11,1154,1152,1223,2342,1194,1150,1130
|
||||||
|
12,1232,1188,1151,2236,1215,1190,1135
|
||||||
|
13,1292,1232,1273,2432,1264,1273,1223
|
||||||
|
14,1358,1308,1360,2536,1284,1350,1357
|
||||||
|
15,1251,1356,1236,2742,1233,1334,1263
|
||||||
|
16,1321,1395,1393,2768,1345,1440,1346
|
||||||
|
17,1495,1379,1472,2764,1440,1456,1408
|
||||||
|
18,1506,1496,1382,2829,1450,1528,1416
|
||||||
|
19,1526,1314,1455,2988,1574,1453,1469
|
||||||
|
20,1559,1602,1471,2942,1531,1577,1531
|
|
BIN
soulcage_statistics/individual_items_rates.pdf
(Stored with Git LFS)
Normal file
BIN
soulcage_statistics/individual_items_rates.pdf
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
soulcage_statistics/individual_items_rates.png
(Stored with Git LFS)
Normal file
BIN
soulcage_statistics/individual_items_rates.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
soulcage_statistics/item_ratios.pdf
(Stored with Git LFS)
Normal file
BIN
soulcage_statistics/item_ratios.pdf
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
soulcage_statistics/item_ratios.png
(Stored with Git LFS)
Normal file
BIN
soulcage_statistics/item_ratios.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
soulcage_statistics/items_per_tower.pdf
(Stored with Git LFS)
Normal file
BIN
soulcage_statistics/items_per_tower.pdf
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
soulcage_statistics/items_per_tower.png
(Stored with Git LFS)
Normal file
BIN
soulcage_statistics/items_per_tower.png
(Stored with Git LFS)
Normal file
Binary file not shown.
105
soulcage_statistics/main.jl
Normal file
105
soulcage_statistics/main.jl
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
using Plots
|
||||||
|
using CSV
|
||||||
|
using DataFrames
|
||||||
|
|
||||||
|
df = CSV.read("data.csv", DataFrame)
|
||||||
|
|
||||||
|
@. df.total = (df.redstone + df.glowstone + df.sugar + df.sticks + df.bottles + df.gunpowder + df.eyes)
|
||||||
|
@. df.total_rate = df.total / 5
|
||||||
|
|
||||||
|
scatter(
|
||||||
|
df.spawners,
|
||||||
|
df.total_rate,
|
||||||
|
title="Total items per minute",
|
||||||
|
label="Single drop tower",
|
||||||
|
xlabel="Spawners",
|
||||||
|
ylabel="Items per Minute",
|
||||||
|
ylim=(0, :auto),
|
||||||
|
xticks=[1, 4, 8, 12, 16, 20]
|
||||||
|
)
|
||||||
|
savefig("total.pdf")
|
||||||
|
savefig("total.png")
|
||||||
|
|
||||||
|
@. df.per_spawner = df.total_rate / df.spawners
|
||||||
|
|
||||||
|
scatter(
|
||||||
|
df.spawners,
|
||||||
|
df.per_spawner,
|
||||||
|
title="Items per minute per spawner",
|
||||||
|
label="Single drop tower",
|
||||||
|
xlabel="Spawners",
|
||||||
|
ylabel="Items per Minute",
|
||||||
|
ylim=(0, :auto),
|
||||||
|
xticks=[1, 4, 8, 12, 16, 20]
|
||||||
|
)
|
||||||
|
savefig("per_spawner.pdf")
|
||||||
|
savefig("per_spawner.png")
|
||||||
|
|
||||||
|
@. df.redstone_rate_per_spawner = df.redstone / df.spawners / 5
|
||||||
|
@. df.glowstone_rate_per_spawner = df.glowstone / df.spawners / 5
|
||||||
|
@. df.bottles_rate_per_spawner = df.bottles / df.spawners / 5
|
||||||
|
@. df.sugar_rate_per_spawner = df.sugar / df.spawners / 5
|
||||||
|
@. df.gunpowder_rate_per_spawner = df.gunpowder / df.spawners / 5
|
||||||
|
@. df.sticks_rate_per_spawner = df.sticks / df.spawners / 5
|
||||||
|
@. df.eyes_rate_per_spawner = df.eyes / df.spawners / 5
|
||||||
|
|
||||||
|
scatter(
|
||||||
|
df.spawners,
|
||||||
|
[df.redstone_rate_per_spawner df.glowstone_rate_per_spawner df.bottles_rate_per_spawner df.sugar_rate_per_spawner df.gunpowder_rate_per_spawner df.sticks_rate_per_spawner df.eyes_rate_per_spawner],
|
||||||
|
title="Individual items per minute per spawner",
|
||||||
|
label=["Redstone" "Glowstone" "Bottles" "Sugar" "Gunpowder" "Sticks" "Eyes"],
|
||||||
|
xlabel="Spawners",
|
||||||
|
ylabel="Items per minute per spawner",
|
||||||
|
ylim=(0, :auto),
|
||||||
|
xticks=[1, 4, 8, 12, 16, 20]
|
||||||
|
)
|
||||||
|
|
||||||
|
savefig("individual_items_rates.pdf")
|
||||||
|
savefig("individual_items_rates.png")
|
||||||
|
|
||||||
|
@. df.redstone_ratio = df.redstone / df.total * 100
|
||||||
|
@. df.glowstone_ratio = df.glowstone / df.total * 100
|
||||||
|
@. df.bottles_ratio = df.bottles / df.total * 100
|
||||||
|
@. df.sugar_ratio = df.sugar / df.total * 100
|
||||||
|
@. df.gunpowder_ratio = df.gunpowder / df.total * 100
|
||||||
|
@. df.sticks_ratio = df.sticks / df.total * 100
|
||||||
|
@. df.eyes_ratio = df.eyes / df.total * 100
|
||||||
|
|
||||||
|
scatter(
|
||||||
|
df.spawners,
|
||||||
|
[df.redstone_ratio df.glowstone_ratio df.bottles_ratio df.sugar_ratio df.gunpowder_ratio df.sticks_ratio df.eyes_ratio],
|
||||||
|
title="Item share",
|
||||||
|
label=["Redstone" "Glowstone" "Bottles" "Sugar" "Gunpowder" "Sticks" "Eyes"],
|
||||||
|
xlabel="Spawners",
|
||||||
|
ylabel="Percentage",
|
||||||
|
ylim=(0, :auto),
|
||||||
|
xticks=[1, 4, 8, 12, 16, 20]
|
||||||
|
)
|
||||||
|
|
||||||
|
savefig("item_ratios.pdf")
|
||||||
|
savefig("item_ratios.png")
|
||||||
|
|
||||||
|
@. df.redstone_rate = df.redstone / 5
|
||||||
|
@. df.glowstone_rate = df.glowstone / 5
|
||||||
|
@. df.bottles_rate = df.bottles / 5
|
||||||
|
@. df.sugar_rate = df.sugar / 5
|
||||||
|
@. df.gunpowder_rate = df.gunpowder / 5
|
||||||
|
@. df.sticks_rate = df.sticks / 5
|
||||||
|
@. df.eyes_rate = df.eyes / 5
|
||||||
|
|
||||||
|
@. df.low_rate_items_rate = (df.redstone_rate + df.glowstone_rate + df.bottles_rate + df.sugar_rate + df.gunpowder_rate + df.eyes_rate) / 6
|
||||||
|
@. df.high_rate_items_rate = df.sticks_rate
|
||||||
|
|
||||||
|
scatter(
|
||||||
|
df.spawners,
|
||||||
|
[df.low_rate_items_rate df.high_rate_items_rate],
|
||||||
|
title="Items per tower",
|
||||||
|
label=["Low rate items" "High rate items"],
|
||||||
|
xlabel="Spawners",
|
||||||
|
ylabel="Items per minute per tower",
|
||||||
|
ylim=(0, :auto),
|
||||||
|
xticks=[1, 4, 8, 12, 16, 20]
|
||||||
|
)
|
||||||
|
|
||||||
|
savefig("items_per_tower.pdf")
|
||||||
|
savefig("items_per_tower.png")
|
BIN
soulcage_statistics/per_spawner.pdf
(Stored with Git LFS)
Normal file
BIN
soulcage_statistics/per_spawner.pdf
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
soulcage_statistics/per_spawner.png
(Stored with Git LFS)
Normal file
BIN
soulcage_statistics/per_spawner.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
soulcage_statistics/total.pdf
(Stored with Git LFS)
Normal file
BIN
soulcage_statistics/total.pdf
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
soulcage_statistics/total.png
(Stored with Git LFS)
Normal file
BIN
soulcage_statistics/total.png
(Stored with Git LFS)
Normal file
Binary file not shown.
@@ -201,9 +201,14 @@ function moveTo(x, y)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function resupplyItem(slot, num)
|
function resupplyItem(slot, num)
|
||||||
|
module = peripheral.wrap("right")
|
||||||
|
|
||||||
turtle.select(slot)
|
turtle.select(slot)
|
||||||
while (turtle.getItemCount(slot) < num) do
|
items = turtle.getItemCount(slot)
|
||||||
turtle.suck(num - turtle.getItemCount(slot))
|
while (items < num) do
|
||||||
|
module.suckSneaky(1, num - items)
|
||||||
|
sleep(1)
|
||||||
|
items = turtle.getItemCount(slot)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -246,6 +251,7 @@ function supplyCentrifuge()
|
|||||||
module = peripheral.wrap("right")
|
module = peripheral.wrap("right")
|
||||||
|
|
||||||
-- drop cells from below (side 0)
|
-- drop cells from below (side 0)
|
||||||
|
if (cells_drop > 0) then
|
||||||
turtle.select(slot_cells_cur)
|
turtle.select(slot_cells_cur)
|
||||||
drop = cells_drop
|
drop = cells_drop
|
||||||
if (turtle.getItemCount(slot_cells_cur) < drop) then
|
if (turtle.getItemCount(slot_cells_cur) < drop) then
|
||||||
@@ -255,6 +261,7 @@ function supplyCentrifuge()
|
|||||||
turtle.select(slot_cells_cur)
|
turtle.select(slot_cells_cur)
|
||||||
end
|
end
|
||||||
module.dropSneakyUp(0, drop)
|
module.dropSneakyUp(0, drop)
|
||||||
|
end
|
||||||
|
|
||||||
-- drop input from above (side 1)
|
-- drop input from above (side 1)
|
||||||
turtle.select(slot_input_cur)
|
turtle.select(slot_input_cur)
|
||||||
@@ -357,16 +364,19 @@ function setupSlots(cells, input, output_1, output_2, output_3, output_4)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function enterSupplyLoop()
|
function enterSupplyLoop()
|
||||||
|
module = peripheral.wrap("right")
|
||||||
|
|
||||||
while true do
|
while true do
|
||||||
print("Resupplying...")
|
print("Resupplying...")
|
||||||
resupplyAll()
|
resupplyAll()
|
||||||
|
|
||||||
-- go to first centrifuge and wait to start
|
-- go to first centrifuge and wait to start (by checking ingredient)
|
||||||
moveTo(1, 0)
|
moveTo(1, 0)
|
||||||
turtle.select(16)
|
turtle.select(16)
|
||||||
while turtle.suckUp() do
|
while module.suckSneakyUp(1, input_drop) do
|
||||||
putBack = turtle.getItemCount(16)
|
putBack = turtle.getItemCount(16)
|
||||||
turtle.dropUp(putBack)
|
sleep(1)
|
||||||
|
module.dropSneakyUp(1, putBack)
|
||||||
sleep(5)
|
sleep(5)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -411,4 +421,5 @@ function platinumLoop()
|
|||||||
end
|
end
|
||||||
|
|
||||||
print("Centrifuges even item distribution program")
|
print("Centrifuges even item distribution program")
|
||||||
platinumLoop()
|
|
||||||
|
redstoneLoop()
|
||||||
|
@@ -201,9 +201,14 @@ function moveTo(x, y)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function resupplyItem(slot, num)
|
function resupplyItem(slot, num)
|
||||||
|
module = peripheral.wrap("right")
|
||||||
|
|
||||||
turtle.select(slot)
|
turtle.select(slot)
|
||||||
while (turtle.getItemCount(slot) < num) do
|
items = turtle.getItemCount(slot)
|
||||||
turtle.suck(num - turtle.getItemCount(slot))
|
while (items < num) do
|
||||||
|
module.suckSneaky(1, num - items)
|
||||||
|
sleep(1)
|
||||||
|
items = turtle.getItemCount(slot)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -246,6 +251,7 @@ function supplyCentrifuge()
|
|||||||
module = peripheral.wrap("right")
|
module = peripheral.wrap("right")
|
||||||
|
|
||||||
-- drop cells from below (side 0)
|
-- drop cells from below (side 0)
|
||||||
|
if (cells_drop > 0) then
|
||||||
turtle.select(slot_cells_cur)
|
turtle.select(slot_cells_cur)
|
||||||
drop = cells_drop
|
drop = cells_drop
|
||||||
if (turtle.getItemCount(slot_cells_cur) < drop) then
|
if (turtle.getItemCount(slot_cells_cur) < drop) then
|
||||||
@@ -255,6 +261,7 @@ function supplyCentrifuge()
|
|||||||
turtle.select(slot_cells_cur)
|
turtle.select(slot_cells_cur)
|
||||||
end
|
end
|
||||||
module.dropSneakyUp(0, drop)
|
module.dropSneakyUp(0, drop)
|
||||||
|
end
|
||||||
|
|
||||||
-- drop input from above (side 1)
|
-- drop input from above (side 1)
|
||||||
turtle.select(slot_input_cur)
|
turtle.select(slot_input_cur)
|
||||||
@@ -357,16 +364,19 @@ function setupSlots(cells, input, output_1, output_2, output_3, output_4)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function enterSupplyLoop()
|
function enterSupplyLoop()
|
||||||
|
module = peripheral.wrap("right")
|
||||||
|
|
||||||
while true do
|
while true do
|
||||||
print("Resupplying...")
|
print("Resupplying...")
|
||||||
resupplyAll()
|
resupplyAll()
|
||||||
|
|
||||||
-- go to first centrifuge and wait to start
|
-- go to first centrifuge and wait to start (by checking ingredient)
|
||||||
moveTo(1, 0)
|
moveTo(1, 0)
|
||||||
turtle.select(16)
|
turtle.select(16)
|
||||||
while turtle.suckUp() do
|
while module.suckSneakyUp(1, input_drop) do
|
||||||
putBack = turtle.getItemCount(16)
|
putBack = turtle.getItemCount(16)
|
||||||
turtle.dropUp(putBack)
|
sleep(1)
|
||||||
|
module.dropSneakyUp(1, putBack)
|
||||||
sleep(5)
|
sleep(5)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -411,4 +421,5 @@ function redstoneLoop()
|
|||||||
end
|
end
|
||||||
|
|
||||||
print("Centrifuges even item distribution program")
|
print("Centrifuges even item distribution program")
|
||||||
|
|
||||||
redstoneLoop()
|
redstoneLoop()
|
||||||
|
Reference in New Issue
Block a user