Пример #1
0
 public string PlaceAt(DefinitionId blockDefinitionId, PlainVec3D position, PlainVec3D orientationForward,
                       PlainVec3D orientationUp)
 {
     Definitions.CheckDefinitionIdExists(blockDefinitionId.ToMyDefinitionId());
     return(m_blockPlacer.PlaceSingleBlock(m_session.CurrentCharacterId, blockDefinitionId, position.ToVector3(), orientationForward.ToVector3(),
                                           orientationUp.ToVector3()).BlockId().ToString());
 }
Пример #2
0
        public CharacterObservation Teleport(PlainVec3D position, PlainVec3D?orientationForward,
                                             PlainVec3D?orientationUp)
        {
            var vecPosition = new Vector3D(position.ToVector3());

            if (orientationForward == null && orientationUp == null)
            {
                GetEntityController().ControlledEntity.Entity.PositionComp.SetPosition(vecPosition);
                return(m_observer.Observe());
            }

            if (orientationForward == null || orientationUp == null)
            {
                throw new InvalidOperationException("Either both or none of the orientations are supposed to be set");
            }

            var matrix = MatrixD.CreateWorld(
                vecPosition,
                orientationForward?.ToVector3() ?? Vector3.Zero,
                orientationUp?.ToVector3() ?? Vector3.Zero
                );

            GetEntityController().Player.Character.PositionComp.SetWorldMatrix(ref matrix);
            return(m_observer.Observe());
        }
Пример #3
0
 public CharacterObservation MoveAndRotate(PlainVec3D movement, PlainVec2F rotation3, float roll = 0, int ticks = 1)
 {
     return(Enqueue(() =>
     {
         m_character.MoveAndRotate(movement, rotation3, roll, ticks);
         return m_observer.Observe();
     }));
 }
Пример #4
0
 public CharacterObservation Teleport(PlainVec3D position, PlainVec3D?orientationForward,
                                      PlainVec3D?orientationUp)
 {
     return(Enqueue(() =>
     {
         m_character.Teleport(position, orientationForward, orientationUp);
         return m_observer.Observe();
     }));
 }
Пример #5
0
        public void ConvertsCorrectlyFromVector3D()
        {
            var vector3D = new Vector3D(1, 2, 3);

            var plainVec          = new PlainVec3D(1, 2, 3);
            var convertedPlainVec = vector3D.ToPlain();

            var jsoner = new Jsoner();

            Assert.Equal(jsoner.ToJson(plainVec), jsoner.ToJson(convertedPlainVec));
        }
Пример #6
0
        public void DeserializesPlainVec3DIntoVector3D()
        {
            var originalVector = new PlainVec3D(1, 2, -3);

            var json = m_jsoner.ToJson(originalVector);

            var vector3 = m_jsoner.ToObject <Vector3D>(json);

            Assert.Equal(originalVector.X, vector3.X);
            Assert.Equal(originalVector.Y, vector3.Y);
            Assert.Equal(originalVector.Z, vector3.Z);
        }
Пример #7
0
        public CharacterObservation MoveAndRotate(PlainVec3D movement, PlainVec2F rotation3, float roll, int ticks)
        {
            var vector3d = movement.ToVector3D();

            if (vector3d == Vector3D.Down && Character.CurrentMovementState == MyCharacterMovementEnum.Standing && !Character.JetpackRunning)
            {
                Character.Crouch();
            }
            else if (vector3d == Vector3D.Up && Character.CurrentMovementState == MyCharacterMovementEnum.Crouching && !Character.JetpackRunning)
            {
                Character.Stand();
            }

            IvxrPlugin.Context.ContinuousMovementController.ChangeMovement(
                new ContinuousMovementContext()
            {
                MoveVector = movement, RotationVector = rotation3, Roll = roll, TicksLeft = ticks
            }
                );

            return(m_observer.Observe());
        }
 CharacterObservation Create(string id, PlainVec3D position, PlainVec3D orientationForward, PlainVec3D orientationUp)
 {
     return(m_se.Admin.Character.Create(id, position, orientationForward, orientationUp));
 }
Пример #9
0
 public string PlaceAt(DefinitionId blockDefinitionId, PlainVec3D position, PlainVec3D orientationForward,
                       PlainVec3D orientationUp)
 {
     return(m_blockPlacer.PlaceBlock(blockDefinitionId, position.ToVector3(), orientationForward.ToVector3(),
                                     orientationUp.ToVector3()).BlockId().ToString());
 }
 CharacterObservation MoveAndRotate(PlainVec3D movement, PlainVec2F rotation3, float roll = 0, int ticks = 1)
 {
     return(m_se.Character.MoveAndRotate(movement, rotation3, roll, ticks));
 }
 CharacterObservation Teleport(PlainVec3D position, PlainVec3D?orientationForward = null, PlainVec3D?orientationUp = null)
 {
     return(m_se.Admin.Character.Teleport(position, orientationForward, orientationUp));
 }
Пример #12
0
 public static Vector3D ToVector3D(this PlainVec3D vector)
 {
     return(new Vector3D(vector.X, vector.Y, vector.Z));
 }
 string PlaceAt(DefinitionId blockDefinitionId, PlainVec3D position, PlainVec3D orientationForward, PlainVec3D orientationUp)
 {
     return(m_se.Admin.Blocks.PlaceAt(blockDefinitionId, position, orientationForward, orientationUp));
 }
Пример #14
0
 public CharacterObservation Teleport(PlainVec3D position, PlainVec3D?orientationForward, PlainVec3D?orientationUp)
 {
     throw new NotImplementedException();
 }
Пример #15
0
 /// <summary>
 /// Use in a single thread only.
 /// </summary>
 public FatNode Create(PlainVec3D position)
 {
     return(new FatNode(GenerateId(), position));
 }
Пример #16
0
 public string PlaceAt(DefinitionId blockDefinitionId, PlainVec3D position, PlainVec3D orientationForward,
                       PlainVec3D orientationUp)
 {
     return(Enqueue(() => m_blocks.PlaceAt(blockDefinitionId, position, orientationForward, orientationUp)));
 }
Пример #17
0
 public void Reset()
 {
     TicksLeft      = 0;
     MoveVector     = PlainVec3DConst.Zero;
     RotationVector = PlainVec2FConst.Zero;
 }
Пример #18
0
 public CharacterObservation Create(string id, PlainVec3D position, PlainVec3D orientationForward, PlainVec3D orientationUp)
 {
     return(Enqueue(() => m_character.Create(id, position, orientationForward, orientationUp)));
 }
Пример #19
0
 public FatNode(int id, PlainVec3D position)
 {
     Id       = id;
     Position = position;
 }
Пример #20
0
 public CharacterObservation Create(string name, PlainVec3D position, PlainVec3D orientationForward, PlainVec3D orientationUp)
 {
     m_session.CreateCharacter(name, position.ToVector3D(), orientationForward.ToVector3D(), orientationUp.ToVector3D());
     return(m_observer.Observe());
 }
Пример #21
0
 public void PlaceAt(string blockType, PlainVec3D position, PlainVec3D orientationForward, PlainVec3D orientationUp)
 {
     throw new System.NotImplementedException();
 }
Пример #22
0
 public CharacterObservation MoveAndRotate(PlainVec3D movement, PlainVec2F rotation3, float roll, int ticks)
 {
     throw new NotImplementedException();
 }