entity* molen_arm;
var gcon;
action swing_gondela {
var con;
var aang[3];
while(molen_arm==null) {
wait(1);
}
phent_settype(my,PH_RIGID,PH_SPHERE);
phent_setmass(my,1,PH_SPHERE);
con = phcon_add(PH_HINGE,my,molen_arm);
vec_set(aang,molen_arm.x);
vec_sub(aang,my.x);
vec_normalize(aang,1);
vec_rotate(aang,vector(90,0,0));// there is error, i just forget rotate axis in previous code :p
phcon_setparams1(con,vector(my.x,my.y,molen_arm.z),vector(aang.x,aang.y,0),nullvector);
phcon_setparams2(con,vector(-360,360,0),nullvector,nullvector);
//debug
var pos[3];
vec_set(pos,vector(my.x,my.y,molen_arm.z));
while (1)
{
vec_set(aang,pos);vec_rotate(aang,molen_arm.pan);
draw_line3d(aang,NULL,100);draw_line3d(my.x,vector(0,0,255),100);
wait(1);
}
}
action molen {
my.passable = on;
phent_settype(my,PH_RIGID,PH_BOX);
phent_setmass(my,1,PH_SPHERE);
gcon = phcon_add(PH_HINGE,my,NULL);
phcon_setparams1(gcon,my.x,vector(0,0,1),nullvector);
phcon_setparams2(gcon,vector(-360,360,0),nullvector,nullvector);
molen_arm = my;
}
function main ()
{
level_load ("map.wmb");
ph_setgravity (vector(0,0,-300));
while(molen_arm==null) {wait(1);}
while (1)
{
phcon_setmotor (gcon,vector(3,10,0),nullvector,nullvector);
wait(1);
}
}