-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathtodos.txt
83 lines (57 loc) · 3.73 KB
/
todos.txt
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
TODO: print actually useful info on the screen
- a dot for every hopper_step retry (and debug info if the dots get too numerous)
- the stage hopper_step is currently in (for performance profiling)
- number of sources and destinations
- transfer count for the last iteration (useful with void)
- a console to type one-off hopper commands
- a better way to view dozens of commands separated by `/`
TODO TODO TODO: special error when trying to push/pull to turtles without using `self`
- currently it just silently fails???
TODO: fluid support for ME bridge
TODO: use `.getItemLimit()` to handle drawers and other things better
- and if limit is 2.1 billion then ??????
TODO: better errors with debug.traceback and xpcall
TODO: staggered startup (sleep between 0 and 20 ticks on startup)
TODO: -nap for shorter sleeps some period after a successful transfer (-nap 0 1 to -sleep 0 for 1 whole second after a success)
- naps should not reset transfer limits, thus maintain the validity of throughput calculations
- second argument should probably be number of iterations instead
TODO: have `void` also output what items were voided as an afteraction
TODO: support --flags alongside -flags (just s/--/- and you're done)
TODO: kebab-case support for flags alongside the snake_case support (again with a regex replace)
TODO: milo-style gui for using hopper.lua as a storage system
TODO: AE2-style machine autocrafting (crafting table autocrafting can be made with a turtle autocrafter)
Stage 1: have hopper.lua use AE2 for autocrafting (equivalent to an exporter with a crafting card)
Stage 2: implement a cc-based autocrafter that functions similarly to AE2 to interface with hopper.lua
- autocrafting should be a property of -storages, crafting using materials in said storage
TODO: conditional transfer
- based on redstone
- use redstone event to watch for redstone, then queue that to control the next transfer operation
- NO guarantees about transfer amount. no redstone pulses please
- "for more precise control, use the lua api."
- cli:
-redstone_enabled {side}
-redstone_disabled {side}
- {side} can be a glob, so `*` to watch all sides or | to watch multiple sides
- based on whether the previous command succeeded?
- items can block each other, thus you can make a transfer happen only if that slot is free by passing items through said slot
TODO: -volatile_storage - like -storage but without the caching (til but you throw away the caches every iteration)
TODO: aggregation similar to -volatile_storage should happen by default to all UWP item storages
FIXME: propagate and reset errors correctly
TODO: parallelism! (for massive furnace stacks and other massive logistics)
parallel scans will be easy and will go a long way on their own
precompute all operations that need to be done and add them to a queue
when the queue is full optimize the operations (merge temporary storages into one, deduplicate transfers, etc)
then have a bunch of threads then execute the entire queue at once before filling it up again
this can probably be more easily done inside TIL?
parallel transfers should be opt-in, as they can mess up transfer logic upon failure
TODO: `//` comments
TODO: hopper repl to avoid restarts when using `-storage`
TODO: TIL speed up item pulling operations by transferring full slots directly into empty slots if there are any
TODO: TIL speed up item pushing operations by transferring directly from full slots into empty slots
TODO: -spread to distribute items evenly
TODO: rice cooker functionality
cut off power when temperature rises to above 100C
TODO: negative index should count from the last slot (-1 for last slot)
TODO: request logistics (factorio requester/provider chests)
- kanban?
TODO: some way to treat chests as queues