Public feed
#378272
public void HandleUpdate(AgentUpdatePacket pack) { if(((uint)pack.AgentData.ControlFlags & (uint)MainAvatar.AgentUpdateFlags.AGENT_CONTROL_AT_POS) !=0) { Axiom.MathLib.Vector3 v3 = new Axiom.MathLib.Vector3(1, 0, 0); Axiom.MathLib.Quaternion q = new Axiom.MathLib.Quaternion(pack.AgentData.BodyRotation.W,pack.AgentData.BodyRotation.X,pack.AgentData.BodyRotation.Y, pack.AgentData.BodyRotation.Z); Axiom.MathLib.Vector3 direc = q * v3; direc.Normalize(); Axiom.MathLib.Vector3 internDirec = new Axiom.MathLib.Vector3(direc.x, direc.y, direc.z); LLVector3 newvel = new libsecondlife.LLVector3(0, 0 , 0); newvel.X = direc.x; newvel.Y = direc.y; newvel.Z = direc.z; internDirec = internDirec * (0.03f); internDirec.x += 1; internDirec.y += 1; internDirec.z += 1; newvel.X = (ushort)(32768 * internDirec.x); newvel.Y = (ushort)(32768 * internDirec.y); newvel.Z = (ushort)(32768 * internDirec.z); ImprovedTerseObjectUpdatePacket objupdate = new ImprovedTerseObjectUpdatePacket(); objupdate.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1]; objupdate.RegionData.RegionHandle = OpenSim_Main.cfg.RegionHandle; objupdate.RegionData.TimeDilation = 64096; objupdate.ObjectData[0] = CreateTerseBlock(this); ControllingClient.OutPacket(objupdate); } }