Esempio n. 1
0
        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);
        }
Esempio n. 2
0
 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);
 }