public override bool ParseBytesAndExecute(byte[] data) { if (data.Length != 8 + 1 + 8) { return(false); } long jid = Utilities.BytesToLong(Utilities.BytesPartial(data, 0, 8)); JointUpdateMode mode = (JointUpdateMode)data[8]; double val = Utilities.BytesToDouble(Utilities.BytesPartial(data, 8 + 1, 8)); InternalBaseJoint jointo = TheClient.TheRegion.GetJoint(jid); if (jointo == null) { return(false); } switch (mode) { case JointUpdateMode.SERVO_GOAL: (jointo as JointVehicleMotor).SetGoal(val); break; case JointUpdateMode.SERVO_SPEED: (jointo as JointVehicleMotor).SetCorrectiveSpeed(val); break; } return(true); }
public JointUpdatePacketOut(long jid, JointUpdateMode mode, double val) { UsageType = NetUsageType.ENTITIES; ID = ServerToClientPacket.JOINT_UPDATE; Data = new byte[8 + 1 + 8]; Utilities.LongToBytes(jid).CopyTo(Data, 0); Data[8] = (byte)mode; Utilities.DoubleToBytes(val).CopyTo(Data, 8 + 1); }