-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcg.txt
55 lines (31 loc) · 1.31 KB
/
cg.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
warn!("Placement of causal blocks will cause a causal group merge scan at end of tick.");
cts block placement
hold block places until receive user migration
then, operate front to back until inv count == 0
cts collision
keep copy of other thread blocks (configurable radius)
a bit of desync ok, not very exploitable
cts redstone
bound whole circuit (or circuits) to cts
debug!("CTS highest priority given to new redstone circuit")
warn("Redstone circuits grow causality groups to ensure correctness, and performance will suffer if they get too big.
Avoid making circuits spread out, in high-traffic areas, and try to group pistons together.")
cts redstone other
debug!("CTS new redstone object, causality radius 2")
cts piston
debug!("CTS new piston, causality radius 10")
trace for other circuits/pistons within 10 blocks and include in group
cts merge
data CausalGroup = [
chunks Vec<Chunk>
entities Vec<Entity>
oob_hold_for_merge Vec<Entity>
]
let cg_merge(x, y): (wg, wg) -> wg =
let cg_move(x, y, c): (cg, cg, chunk) =
determine when to merge
everytime causality block created, send to main
main will merge as necessary
merge on near cg edge
"entity near cg edge" will never happen in this case so don't worry about unknown collision
gobble chunk or merge cgs