# Rule:StickyX

@RULE stickyX

Variant with states 1 and 3 swapped to make it simpler for soups and apgsearch.

@COLORS 0 48 48 48 3 255 32 64 2 96 96 128 1 64 192 255

@TABLE n_states:4 neighborhood:Moore symmetries:rotate4reflect var a={0,3,2,1} var b=a var c=a var d=a var e=a var f=a var g=a var h=a

1. SPACE
``` #shoot
0 3,2,0,0,0,2,1,0 2
#offset
0 3,1,3,d,3,1,3,h 0
0 3,1,3,1,3,f,g,h 0
0 3,1,3,d,3,f,g,h 1
#pull
var A={0,3}
var B=A
var C=A
0 0,2,3,2,0,A,B,C 2
0 2,2,3,2,2,f,g,h 0
#construct
0 1,1,0,d,e,f,0,2 2
0 1,1,0,d,e,f,g,3 2
0 1,1,0,d,e,f,g,0 3
0 2,1,1,2,0,0,0,0 2
0 1,1,c,d,e,f,g,h 0
#push
var A={0,2}
var B=A
var C=A
var D=A
var E=A
0 1,3,A,B,C,D,E,0 2
0 2,2,3,d,e,f,g,h 3
#photon
0 1,2,c,0,1,0,g,0 2
0 1,2,c,d,e,f,g,0 0
0 1,b,c,d,e,f,g,h 1
```
1. BLOCK
``` #shoot
3 2,2,1,d,1,2,0,0 3
3 1,1,0,0,0,0,0,0 0
3 1,1,0,0,0,0,2,0 0
#construction
var A={0,3}
var B=A
var C=A
3 2,2,1,0,0,A,B,C 3
3 2,2,1,0,3,A,B,C 2
3 2,2,2,d,e,f,g,h 0
3 2,2,c,d,e,1,g,h 1
3 2,2,0,d,e,f,g,0 0
```
1. TAIL
``` #construct
2 1,1,0,0,0,0,0,0 1
#shoot
2 1,0,0,0,2,0,0,0 3
#retract
2 0,0,0,0,0,0,0,0 3
#basic
2 a,b,c,d,e,f,g,h 0
```
1. SIGNAL
``` #construct
1 1,2,0,0,2,0,0,0 2
1 1,0,2,0,0,f,0,0 1
#cancel
1 2,b,2,d,0,f,0,h 0
#photon
1 a,b,c,d,e,f,g,h 2
```