View difference between Paste ID: YuzqT1Vn and XHv0GLUy
SHOW: | | - or go back to the newest paste.
1
//companion snake
2-
set keepVD to true.
2+
3
set c to 6.
4-
set c to 15.
4+
5
for i in range(c) vd:add(vecdraw(facing:starvector * 15, facing:vector, hsva(1,1,1,(c-i)/c), "", 1, true, ((c-i)/c) * 0.4 + 0.15, false)).
6
set gr to 0.004. set rnd to 0.1. set dr to 0.02.
7-
set gr to 0.004. //"gravity" - the force that it pulls toward "cent" position
7+
8-
set rnd to 0.2. //random force applied every tick
8+
9-
set dr to 0.02.  //drag
9+
10
for i in range(c-1,0,1) {
11-
set cam to addons:camera:flightcamera.
11+
	set col to vd[i-1]:color. set col:a to ((c-i)/c)^2. set vd[i]:color to col.
12-
set vw to 4.
12+
	set vd[i]:vec to (vd[i-1]:start - vd[i]:start) * 1.2.
13
	set vd[i]:start to vd[i-1]:start.
14
}
15
set vd_v to vd_v + (vd[0]:start-cent) * random() * -gr + V(random()-0.5,random()-0.5,random()-0.5) * rnd + vd_v:normalized*vd_v:sqrmagnitude * -dr.
16
set vd[0]:vec to vd_v * 3.
17
set vd[0]:start to vd[0]:start + vd_v.
18
set vd[0]:color to hsva(min(1,vd_v:mag/2),1,1,1).
19
return not rcs.
20
}
21-
	set wdt to vw / (vd[0]:start-cam:position):mag.
21+
22
//companion snake 2
23-
		set col to vd[i-1]:color. set col:a to ((c-i)/c)^2. set vd[i]:color to col.
23+
24-
		set vd[i]:vec to (vd[i-1]:start - vd[i]:start) * 1.2.
24+
25-
		set vd[i]:start to vd[i-1]:start.
25+
26-
		set vd[i]:width to wdt.
26+
27
28-
	set vd_v to vd_v + (vd[0]:start-cent) * random() * -gr + V(random()-0.5,random()-0.5,random()-0.5) * rnd + 		vd_v:normalized*vd_v:sqrmagnitude * -dr.
28+
29-
	set vd[0]:vec to vd_v * 3.
29+
30-
	set vd[0]:start to vd[0]:start + vd_v.
30+
31-
	set vd[0]:color to hsva(min(1,vd_v:mag/2),1,1,1).
31+
32-
	set vd[0]:width to wdt.
32+
33
	}
34
	set vd_v2 to vd_v2 + (vd2[0]:start-vd[0]:start) * -gr2 + vd_v2:normalized*vd_v2:sqrmagnitude * -dr2.
35
	set vd2[0]:vec to vd_v2 * 3.
36
	set vd2[0]:start to vd2[0]:start + vd_v2.
37
	set vd2[0]:color to hsva(min(1,vd_v2:mag/2),1,1,1).
38-
		set vd2[i]:width to wdt.
38+
	return not rcs.
39
}
40
41
//bouncer
42
when body:geopositionof(vd[0]:start):terrainheight > (vd[0]:start-body:position):mag - body:radius then { set vd_v to up:vector * vd_v:mag. return not rcs. }
43
when body:geopositionof(vd2[0]:start):terrainheight > (vd2[0]:start-body:position):mag - body:radius then { set vd_v2 to up:vector * vd_v2:mag. return not rcs. }
44-
	set vd2[0]:width to wdt.
44+