default
{
on_rez(integer i) {
// avoid doing anythign if rezzed by hand
if (i) {
llSetAlpha(0.0, ALL_SIDES);

llSetPrimitiveParams([PRIM_TEMP_ON_REZ, TRUE]);
llSetStatus(STATUS_DIE_AT_EDGE, TRUE);
//llVolumeDetect(TRUE);

llSetTimerEvent(10);

llSensor("", "", AGENT, 20, 0.4);

} else {
llSetAlpha(1.0, ALL_SIDES);

llSetPrimitiveParams([PRIM_TEMP_ON_REZ, FALSE]);
}

}

sensor(integer num) {
integer i;

//llOwnerSay("Sensor");

for (i = 0;i < num; i++) {
if (llDetectedType(i) & AGENT) {
// llOwnerSay("Dropping Anvil over " + llDetectedName(i) + " at " + (string)(llDetectedPos(i) + <0, 0, 50>));

llSetStatus(STATUS_PHYSICS,FALSE);
llSetStatus(STATUS_PHANTOM, TRUE);

// now inch up to the right spot

vector targetPos = llDetectedPos(i) + <0, 0, 5>;

while(llVecDist(llGetPos(), targetPos) > 0.5)
llSetPos(targetPos);

llRezObject("Anvil", llGetPos(), ZERO_VECTOR, ZERO_ROTATION, 0);
llDie();
}
}
}

no_sensor() {
llDie();
}

timer() {
llDie();
}
}