Example #1
0
        public void WritePhysics(BitWriter writer)
        {
            if (writer.Flag(!GravityMultiplier.Equals(1) || !SpeedMultiplier.Equals(1)))
            {
                writer.Write(GravityMultiplier);
                writer.Write(SpeedMultiplier);
            }

            writer.WriteBit(true);
            writer.Write <float>(0);
            writer.WriteBit(false);

            writer.WriteBit(true);
            writer.WriteBit(false);

            writer.WriteBit(HasPosition);

            if (!HasPosition)
            {
                return;
            }

            writer.Write(Transform.Position);
            writer.Write(Transform.Rotation);

            writer.WriteBit(IsOnGround);
            writer.WriteBit(NegativeAngularVelocity);

            writer.WriteBit(HasVelocity);

            if (HasVelocity)
            {
                writer.Write(Velocity);
            }

            writer.WriteBit(HasAngularVelocity);

            if (HasAngularVelocity)
            {
                writer.Write(AngularVelocity);
            }

            var hasPlatform = Platform != null;

            writer.WriteBit(hasPlatform);

            if (!hasPlatform)
            {
                return;
            }

            writer.Write(Platform);

            writer.Write(PlatformPosition);

            writer.WriteBit(false);
        }
Example #2
0
        /// <summary>
        /// Creates the Serialize packet for the replica component.
        /// </summary>
        /// <returns>The Serialize packet for the replica component.</returns>
        public override ControllablePhysicsSerialization GetSerializePacket()
        {
            var packet = base.GetSerializePacket();

            packet.HasSpeedOrGravityMultiplier = (!GravityMultiplier.Equals(1) || !SpeedMultiplier.Equals(1));
            packet.UnknownFlag1 = true;
            packet.UnknownUint1 = 0;
            packet.UnknownFlag2 = false;
            packet.UnknownFlag3 = true;
            packet.UnknownFlag4 = false;
            packet.Position     = Transform.Position;
            packet.Rotation     = Transform.Rotation;
            packet.IsOnRail     = NegativeAngularVelocity;
            packet.HasPlatform  = (Platform != null);
            packet.UnknownFlag6 = false;
            packet.UnknownFlag7 = false;
            return(packet);
        }
Example #3
0
        /// <summary>
        /// Creates the Construct packet for the replica component.
        /// </summary>
        /// <returns>The Construct packet for the replica component.</returns>
        public override ControllablePhysicsConstruct GetConstructPacket()
        {
            var packet = base.GetConstructPacket();

            packet.HasJetpackEffect            = (JetpackEffectId != 0);
            packet.BypassFlyingChecks          = false;
            packet.UnknownFlag1                = true;
            packet.HasSpeedOrGravityMultiplier = (!GravityMultiplier.Equals(1) || !SpeedMultiplier.Equals(1));
            packet.UnknownFlag2                = true;
            packet.UnknownUint8                = 0;
            packet.UnknownFlag3                = false;
            packet.UnknownFlag4                = true;
            packet.UnknownFlag5                = false;
            packet.Position     = Transform.Position;
            packet.Rotation     = Transform.Rotation;
            packet.IsOnRail     = NegativeAngularVelocity;
            packet.HasPlatform  = (Platform != null);
            packet.UnknownFlag7 = false;
            return(packet);
        }