예제 #1
0
파일: CarState.cs 프로젝트: Dadle/RLBot
        public Offset <DesiredCarState> ToFlatBuffer(FlatBufferBuilder builder)
        {
            int physicsStateOffset = PhysicsState == null ? -1 : PhysicsState.ToFlatBuffer(builder).Value;

            DesiredCarState.StartDesiredCarState(builder);

            if (PhysicsState != null)
            {
                DesiredCarState.AddPhysics(builder, new Offset <DesiredPhysics>(physicsStateOffset));
            }

            if (Jumped.HasValue)
            {
                DesiredCarState.AddJumped(builder, Bool.CreateBool(builder, Jumped.Value));
            }

            if (DoubleJumped.HasValue)
            {
                DesiredCarState.AddDoubleJumped(builder, Bool.CreateBool(builder, DoubleJumped.Value));
            }

            if (Boost.HasValue)
            {
                DesiredCarState.AddBoostAmount(builder, Float.CreateFloat(builder, Boost.Value));
            }

            return(DesiredCarState.EndDesiredCarState(builder));
        }
예제 #2
0
        public Offset <DesiredGameInfoState> ToFlatBuffer(FlatBufferBuilder builder)
        {
            DesiredGameInfoState.StartDesiredGameInfoState(builder);

            if (GameSpeed.HasValue)
            {
                DesiredGameInfoState.AddGameSpeed(builder, Float.CreateFloat(builder, GameSpeed.Value));
            }

            if (WorldGravityZ.HasValue)
            {
                DesiredGameInfoState.AddWorldGravityZ(builder, Float.CreateFloat(builder, WorldGravityZ.Value));
            }

            if (Paused.HasValue)
            {
                DesiredGameInfoState.AddPaused(builder, Bool.CreateBool(builder, Paused.Value));
            }

            if (EndMatch.HasValue)
            {
                DesiredGameInfoState.AddEndMatch(builder, Bool.CreateBool(builder, EndMatch.Value));
            }

            return(DesiredGameInfoState.EndDesiredGameInfoState(builder));
        }
예제 #3
0
 public static Offset <Vector3Partial> ToFlatBufferPartial(this System.Numerics.Vector3 vector, FlatBufferBuilder builder)
 {
     Vector3Partial.StartVector3Partial(builder);
     Vector3Partial.AddX(builder, Float.CreateFloat(builder, vector.X));
     Vector3Partial.AddY(builder, Float.CreateFloat(builder, vector.Y));
     Vector3Partial.AddZ(builder, Float.CreateFloat(builder, vector.Z));
     return(Vector3Partial.EndVector3Partial(builder));
 }
예제 #4
0
 public static Offset <RotatorPartial> ToFlatBuffer(this ObjectRotation rotation, FlatBufferBuilder builder)
 {
     RotatorPartial.StartRotatorPartial(builder);
     RotatorPartial.AddPitch(builder, Float.CreateFloat(builder, rotation.Pitch));
     RotatorPartial.AddYaw(builder, Float.CreateFloat(builder, rotation.Yaw));
     RotatorPartial.AddRoll(builder, Float.CreateFloat(builder, rotation.Roll));
     return(RotatorPartial.EndRotatorPartial(builder));
 }
예제 #5
0
 public static Offset <DesiredCarState> ToFlatBuffer(this Player player, FlatBufferBuilder builder)
 {
     DesiredCarState.StartDesiredCarState(builder);
     DesiredCarState.AddPhysics(builder, player.Physics.ToFlatBuffer(builder));
     DesiredCarState.AddJumped(builder, Bool.CreateBool(builder, player.Jumped));
     DesiredCarState.AddDoubleJumped(builder, Bool.CreateBool(builder, player.DoubleJumped));
     DesiredCarState.AddBoostAmount(builder, Float.CreateFloat(builder, player.BoostAmount));
     return(DesiredCarState.EndDesiredCarState(builder));
 }
예제 #6
0
        public Offset <RotatorPartial> ToFlatBuffer(FlatBufferBuilder builder)
        {
            RotatorPartial.StartRotatorPartial(builder);

            if (Pitch.HasValue)
            {
                RotatorPartial.AddPitch(builder, Float.CreateFloat(builder, Pitch.Value));
            }

            if (Yaw.HasValue)
            {
                RotatorPartial.AddYaw(builder, Float.CreateFloat(builder, Yaw.Value));
            }

            if (Roll.HasValue)
            {
                RotatorPartial.AddRoll(builder, Float.CreateFloat(builder, Roll.Value));
            }

            return(RotatorPartial.EndRotatorPartial(builder));
        }
예제 #7
0
        public Offset <Vector3Partial> ToFlatBuffer(FlatBufferBuilder builder)
        {
            Vector3Partial.StartVector3Partial(builder);

            if (X.HasValue)
            {
                Vector3Partial.AddX(builder, Float.CreateFloat(builder, X.Value));
            }

            if (Y.HasValue)
            {
                Vector3Partial.AddY(builder, Float.CreateFloat(builder, Y.Value));
            }

            if (Z.HasValue)
            {
                Vector3Partial.AddZ(builder, Float.CreateFloat(builder, Z.Value));
            }

            return(Vector3Partial.EndVector3Partial(builder));
        }
예제 #8
0
        public static Offset <DesiredGameState> ToFlatBuffer(this WorldState worldState, FlatBufferBuilder builder)
        {
            DesiredGameState.StartDesiredGameState(builder);

            DesiredGameState.AddBallState(builder, worldState.Ball.ToFlatBuffer(builder));

            DesiredGameInfoState.StartDesiredGameInfoState(builder);
            DesiredGameInfoState.AddGameSpeed(builder, Float.CreateFloat(builder, worldState.GameSpeed));
            DesiredGameInfoState.AddWorldGravityZ(builder, Float.CreateFloat(builder, worldState.WorldGravityZ));
            DesiredGameInfoState.EndDesiredGameInfoState(builder);

            var carStates = new List <Offset <DesiredCarState> >();

            foreach (var player in worldState.Players)
            {
                carStates.Add(player.ToFlatBuffer(builder));
            }
            var carStateVector = DesiredGameState.CreateCarStatesVector(builder, carStates.ToArray());

            DesiredGameState.AddCarStates(builder, carStateVector);

            return(DesiredGameState.EndDesiredGameState(builder));
        }