Right, one eye code that I know is fully functional, albeit perhaps not as aesthetic as I'd like.[highlight=e2]@name Cronoid eye 2
@inputs Dis Focus Po:vector An:angle
@outputs [Posit Hit Ent]:array
@persist T N
@persist [Pos Hi En Vs]:array Foc State
if(first()){
T=15
Foc=Dis/4
Inc=Dis/100
N=1
holoCreate(T+2)
}
if(N>=T){
runOnTick(1)
stoptimer("interval")
State=1
}
else{interval(1000)}
#Refracted origin vectors
M=0
while(N<=T & M<=10 & !State){
B=entity():forward():rotate(-entity():angles())
Ang=ang(360/T*N,90,0)
V=vec(0,0,1):rotate(Ang)
VsushVector(V*20)
holoCreate(N)
Wh=vec(1,1,1)*255
holoColor(N,Wh*(N/T))
N++,M++
}
if(State){
#Focal point
V=vec(1,0,0):rotate(An):setZ(0)
FP=Po+(V*(Focus ? Focus : Foc))
holoPos(T+2,FP)
holoAng(T+2,FP:normalized():toAngle())
M=0
while(N<=T & M<=10){
Or=Vs[N,vector]:rotate(An)
Or=Po+Or #Origin vector
Di=(FP-Or) #Directional vector
R=rangerOffset(Dis,Or,Di)
holoPos(N,Rosition())
holoAng(N,Di:toAngle())
Pos[N,vector]=Rosition()-Po
Hi[N,number]=R:hit()
En[N,entity]=R:entity()
N++,M++
}
if(N>T){
N=1
Posit=Pos
Hit=Hi
Ent=En
}
}[/highlight]


LinkBack URL
About LinkBacks




Reply With Quote

Bookmarks