Compare commits

...

8 Commits

Author SHA1 Message Date
97acc9b466 Update Frame Quarry requirements (#5)
The requirements for the frame quarry were pretty outdated, some items were only used when we did the runs on the Bedcraft server with TickThreading.

This updates the requirements to the latest version of the Mystcraft-based (eternal day, Meadow single biome, flat) frame quarry.

I haven't figured out a good design for overworld frame quarries that are protected against falling blocks or liquids from above, so this must do for now.

Co-authored-by: ThePixelbrain <19214217+ThePixelbrain@users.noreply.github.com>
Reviewed-on: #5
Co-authored-by: Pixelbrain <pixelbrain@noreply.localhost>
Co-committed-by: Pixelbrain <pixelbrain@noreply.localhost>
2024-08-11 14:50:19 +02:00
dc7d2c54f0 Update crafting cube resources 2024-05-24 20:12:09 +02:00
c277dc9623 Fix centrifuge distribution code 2024-05-19 19:55:18 +02:00
b9dc5a5d35 Fix file links in README 2024-05-18 19:01:55 +02:00
da57201c78 Fix soulcage stats 2024-05-10 20:28:46 +02:00
55fb28ee19 Add spawner statistics and plots 2024-05-04 01:35:42 +02:00
fe01e1935c Add early machine crafting order 2024-05-01 20:10:09 +02:00
76e47dffbd Add geothermal and lava calcs 2024-05-01 00:47:21 +02:00
22 changed files with 354 additions and 61 deletions

1
.gitattributes vendored
View File

@@ -1,2 +1,3 @@
*.jpg filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text

View File

@@ -80,6 +80,18 @@ Total:
- 1 Diamond
- 13 Glass
### Early EU machines
Get the following:
- Plate Bending Machine
- Singularity Compressor
- Induction Furnace
- Rotary Macerator
Also needed:
- Alloy Furnace for brass
For more details see [here](./calculations/early_machines.md)
### Early Necessary MF Machines
- MV Consumer
- Energy Bridge
@@ -98,7 +110,7 @@ Total:
- ~3 Farms needed at the end
### Autospawner Mob Farm
**Wichtige Mobs**
**Important Mobs**
- Ghast (for Safari Nets, find the small ghasts in the twilight forest, take magic map, icon is the cactus-looking white symbol)
- Enderman
- Witch (get by transformation powder on skeleton druid in the twilight forest)
@@ -114,19 +126,22 @@ Total:
### ME Automation
**5x5x5 Crafter**:
- 44 Containment Walls
- 54 Heat Vents
- 18 Crafting CPUs
- 9 Pattern Provider
**4x4x5 ME crafting cube**
- 6 pattern provider
- 6 crafting cpus
- 32 heat vent
- 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**:
- 160 Quartz
- 96 Quartz Dust
- 27 Diamonds
- 235 Gold
- 416 iron
- 176 redstone
- 12 glowstone
- 48 glass
### Blast Furnace
34x Blocks
@@ -144,6 +159,8 @@ total 32x Blast Furnaces, 4x2x4:
### Power Upgrade
- +1 stack geothermal generators
For details see [here](./calculations/geothermial_power.md).
### Plate-Bender setups:
- 4x Iron plates, limit 2048
- 2x Steel plates, limit 512
@@ -172,7 +189,7 @@ to run per layer (32 boilers):
- 4 bioreactors
- produce 5600EU/t
In 3x3 Chunk Fläche:
In 3x3 Chunk Area:
- 2 x 16 boilers per layer
- ~4 layers -> 128 boilers
@@ -200,28 +217,40 @@ In 3x3 Chunk Fläche:
## Mid Game
### Lava centrifuges
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](./calculations/lava_calcs.md).
### 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
- 16 Tube Frames
**Other Mats**:
48 Mining Wells
24 Deployer
80 Block Breaker
8 Item Tesseracts
8 Energy Tesseracts
64 Red Alloy Wire
2 Repeater
1 Timer
2 Frame Motors
9 Solar Panels
1 Battery Box
1 Wireless Receiver
1 Wireless Transmitter
20 Jacketed Wire
1 Ender Chest
3 Control Tracks
- 48 Mining Wells
- 16 Deployer
- 81 Block Breaker
- 9 Item Tesseracts
- 9 Energy Tesseracts
- 64 Red Alloy Wire
- 3 Repeater
- 1 Timer
- 1 Lever
- 2 Frame Motors
- 8 Solar Panels
- 1 Battery Box
- 17 Jacketed Wire
- ca. 128 Cobblestone Panel
- ca. 128 Cobblestone Cover
- 2 Cobblestone Cover Strip
- 1 Ender Chest / Item Tesseract
- 1 Chunk Loader
- 1 Screwdriver
### Industrial Blast
@@ -277,19 +306,19 @@ Keep enough for Assemblers making Data Control Circuits etc.
- 1 stack of centrifuges for platinum dust
- 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)
- 4 IBFs for chrome dust -> chrome ingots
- 4 electrolyzers on ruby dust -> chrome 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)
- 16 electrolyzers on bauxite dust
More details [here](./material%20calculations/titanium_calcs.md)
More details [here](./calculations/titanium_calcs.md)
### For Beryllium (need 264)
- 4 electrolyzers on ender pearl dust
@@ -358,4 +387,3 @@ Total of 57 Superconductors required (15 recipes of 4):
## 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.
- 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.

View File

@@ -0,0 +1,26 @@
# Early EU machines
Assuming a geothermal generator already exists
## Suggested Crafting order:
### First
- Craft 9 electronic circuits, one of them to advanced
- Craft 1 battery
- Craft 7 machine blocks
- Craft 3 compressors
- Craft plate bending machine
### Second
- Use leftover cable to connect compressor and plate bending machine to power
- Make invar through dust mixing (2 iron + 1 nickel/ferrous)
- Make brass in alloy furnace (3 copper ingots + 1 tin ingot)
- Make 6 mixed metal ingots from 3 invar plates + 3 brass plates + 3 tin plates
- Make 6 carbon plates from 48 coal dust
### Third
- Take the compressor
- Craft singularity compressor
- Craft rotary macerator
- Craft induction furnace
- Put levers on them

View File

@@ -0,0 +1,31 @@
# Power from lava in geothermial generators
## Production
1 Geothermal Generator produces 20EU/t with lava and consumes 1 bucket of lava in 50s at max capacity. 32 Generators produce 640EU/t and 64 produce 1280EU/t.
## Cost
1 Geothermal Generator needs:
- 10 refined iron
- 6 tin
- 4 glass
- 2 redstone
- 1/2 copper
- 1 rubber
32 need:
- 5 stacks of iron (320)
- 3 stacks of tin (192)
- 2 stacks of glass (128)
- 1 stack of redstone (64)
- 18 copper -> 36x cable
- 36 rubber -> 36x cable
64 need:
- 10 stacks of iron (640)
- 6 stacks of tin (384)
- 4 stacks of glass (256)
- 2 stacks of redstone (128)
- 33 copper -> 66x cable
- 66 rubber -> 66x cable

View File

@@ -0,0 +1,29 @@
# Lava centrifuging to Copper and Tin
## Production
One centrifuge converts 16 Lava buckets to 4 Copper Ingots, 2 Tin Ingots, 1 Electrum Ingot and 2 tiny piles of Tungsten in 500 seconds, using 5EU/t.
| Item | 1 centrifuge | 64 | 128 | 192 | 256 | 6 stacks | 8 stacks | 10 stacks |
|------|--------------|----|-----|-----|-----|----------|----------|-----------|
| Lava per Minute | 1.92 | 123 | 246 | 369 | 492 | 737 | 983 | 1229 |
| Copper per Minute | 0.48 | 31 | 61 | 92 | 123 | 184 | 246 | 307 |
| Tin per Minute | 0.24 | 15 | 31 | 46 | 61 | 92 | 123 | 154 |
| Electrum per Minute | 0.12 | 7.7 | 15 | 23 | 31 | 46 | 61 | 77 |
| EU/t | 5 | 320 | 640 | 960 | 1280 | 1920 | 2560 | 3200 |
Roughly one pair of boilers needed per stack of centrifuges, or 16 Geothermal Generators.
## Centrifuge cost
| Item | For 1 Centrifuge | For 1 Stack | For 3 Stacks |
---|---|---|---
refined iron | 31 | 1984 | 5952
redstone | 14 | 896 | 2688
copper | 9 | 576 | 1728
rubber | 18 | 1152 | 3456
glowstone | 4 | 256 | 768
lapis | 4 | 256 | 768
advanced alloys | 4 | 256 | 768
coal dust (for carbon plates) | 32 | 2048 | 6144
planks | 20 | 1280 | 3840

View 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
1 spawners redstone glowstone sugar sticks bottles gunpowder eyes
2 1 134 128 175 324 135 149 170
3 2 313 339 333 575 339 322 279
4 3 466 468 506 940 469 504 463
5 4 627 620 599 1171 558 644 601
6 5 773 710 791 1451 736 782 741
7 6 768 815 800 1735 863 889 854
8 7 976 890 963 2054 966 951 916
9 8 997 977 1015 2102 1024 1071 1078
10 9 1089 1053 1112 2137 1093 1057 1052
11 10 1084 1052 1108 2226 1143 1128 1128
12 11 1154 1152 1223 2342 1194 1150 1130
13 12 1232 1188 1151 2236 1215 1190 1135
14 13 1292 1232 1273 2432 1264 1273 1223
15 14 1358 1308 1360 2536 1284 1350 1357
16 15 1251 1356 1236 2742 1233 1334 1263
17 16 1321 1395 1393 2768 1345 1440 1346
18 17 1495 1379 1472 2764 1440 1456 1408
19 18 1506 1496 1382 2829 1450 1528 1416
20 19 1526 1314 1455 2988 1574 1453 1469
21 20 1559 1602 1471 2942 1531 1577 1531

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

105
soulcage_statistics/main.jl Normal file
View 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

Binary file not shown.

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

Binary file not shown.

BIN
soulcage_statistics/total.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -201,9 +201,14 @@ function moveTo(x, y)
end
function resupplyItem(slot, num)
module = peripheral.wrap("right")
turtle.select(slot)
while (turtle.getItemCount(slot) < num) do
turtle.suck(num - turtle.getItemCount(slot))
items = turtle.getItemCount(slot)
while (items < num) do
module.suckSneaky(1, num - items)
sleep(1)
items = turtle.getItemCount(slot)
end
end
@@ -246,15 +251,17 @@ function supplyCentrifuge()
module = peripheral.wrap("right")
-- drop cells from below (side 0)
turtle.select(slot_cells_cur)
drop = cells_drop
if (turtle.getItemCount(slot_cells_cur) < drop) then
drop = drop - turtle.getItemCount(slot_cells_cur)
module.dropSneakyUp(0)
slot_cells_cur = slot_cells_cur + 1
if (cells_drop > 0) then
turtle.select(slot_cells_cur)
end
module.dropSneakyUp(0, drop)
drop = cells_drop
if (turtle.getItemCount(slot_cells_cur) < drop) then
drop = drop - turtle.getItemCount(slot_cells_cur)
module.dropSneakyUp(0)
slot_cells_cur = slot_cells_cur + 1
turtle.select(slot_cells_cur)
end
module.dropSneakyUp(0, drop)
end
-- drop input from above (side 1)
turtle.select(slot_input_cur)
@@ -357,16 +364,19 @@ function setupSlots(cells, input, output_1, output_2, output_3, output_4)
end
function enterSupplyLoop()
module = peripheral.wrap("right")
while true do
print("Resupplying...")
resupplyAll()
-- go to first centrifuge and wait to start
-- go to first centrifuge and wait to start (by checking ingredient)
moveTo(1, 0)
turtle.select(16)
while turtle.suckUp() do
while module.suckSneakyUp(1, input_drop) do
putBack = turtle.getItemCount(16)
turtle.dropUp(putBack)
sleep(1)
module.dropSneakyUp(1, putBack)
sleep(5)
end
@@ -411,4 +421,5 @@ function platinumLoop()
end
print("Centrifuges even item distribution program")
platinumLoop()
redstoneLoop()

View File

@@ -201,9 +201,14 @@ function moveTo(x, y)
end
function resupplyItem(slot, num)
module = peripheral.wrap("right")
turtle.select(slot)
while (turtle.getItemCount(slot) < num) do
turtle.suck(num - turtle.getItemCount(slot))
items = turtle.getItemCount(slot)
while (items < num) do
module.suckSneaky(1, num - items)
sleep(1)
items = turtle.getItemCount(slot)
end
end
@@ -246,15 +251,17 @@ function supplyCentrifuge()
module = peripheral.wrap("right")
-- drop cells from below (side 0)
turtle.select(slot_cells_cur)
drop = cells_drop
if (turtle.getItemCount(slot_cells_cur) < drop) then
drop = drop - turtle.getItemCount(slot_cells_cur)
module.dropSneakyUp(0)
slot_cells_cur = slot_cells_cur + 1
if (cells_drop > 0) then
turtle.select(slot_cells_cur)
end
module.dropSneakyUp(0, drop)
drop = cells_drop
if (turtle.getItemCount(slot_cells_cur) < drop) then
drop = drop - turtle.getItemCount(slot_cells_cur)
module.dropSneakyUp(0)
slot_cells_cur = slot_cells_cur + 1
turtle.select(slot_cells_cur)
end
module.dropSneakyUp(0, drop)
end
-- drop input from above (side 1)
turtle.select(slot_input_cur)
@@ -357,16 +364,19 @@ function setupSlots(cells, input, output_1, output_2, output_3, output_4)
end
function enterSupplyLoop()
module = peripheral.wrap("right")
while true do
print("Resupplying...")
resupplyAll()
-- go to first centrifuge and wait to start
-- go to first centrifuge and wait to start (by checking ingredient)
moveTo(1, 0)
turtle.select(16)
while turtle.suckUp() do
while module.suckSneakyUp(1, input_drop) do
putBack = turtle.getItemCount(16)
turtle.dropUp(putBack)
sleep(1)
module.dropSneakyUp(1, putBack)
sleep(5)
end
@@ -411,4 +421,5 @@ function redstoneLoop()
end
print("Centrifuges even item distribution program")
redstoneLoop()