private void RelayRotationChange(object sender, ElementChangedEventArgs <Vector3> args)
 {
     if (!args.IsSync)
     {
         this.server.BroadcastPacket(ElementPacketFactory.CreateSetRotationPacket(args.Source, args.NewValue));
     }
 }
 private void RelayInteriorChange(object sender, ElementChangedEventArgs <byte> args)
 {
     if (!args.IsSync)
     {
         this.server.BroadcastPacket(ElementPacketFactory.CreateSetInteriorPacket(args.Source, args.NewValue));
     }
 }
        private void SetupTestLogic()
        {
            this.server.PlayerJoined += (player) =>
            {
                var client = player.Client;
                System.Console.WriteLine($"{player.Name} ({client.Version}) ({client.Serial}) has joined the server!");
                client.SendPacket(new SetCameraTargetPacket(player.Id));
                client.SendPacket(new SpawnPlayerPacket(
                                      player.Id,
                                      flags: 0,
                                      position: new Vector3(0, 0, 3),
                                      rotation: 0,
                                      skin: 7,
                                      teamId: 0,
                                      interior: 0,
                                      dimension: 0,
                                      timeContext: 0
                                      ));
                client.SendPacket(new FadeCameraPacket(CameraFade.In));
                client.SendPacket(new ChatEchoPacket(this.root.Id, "Hello World", Color.White));
                client.SendPacket(new ClearChatPacket());
                client.SendPacket(new ChatEchoPacket(this.root.Id, "Hello World Again", Color.White));
                client.SendPacket(new ConsoleEchoPacket("Hello Console World"));

                client.SendPacket(ElementPacketFactory.CreateSetHealthPacket(player, 50));
                client.SendPacket(ElementPacketFactory.CreateSetAlphaPacket(player, 100));

                client.SendPacket(PlayerPacketFactory.CreateShowHudComponentPacket(HudComponent.Money, false));
                client.SendPacket(PlayerPacketFactory.CreateSetFPSLimitPacket(100));
                client.SendPacket(PlayerPacketFactory.CreatePlaySoundPacket(1));
                client.SendPacket(PlayerPacketFactory.CreateSetWantedLevelPacket(4));
                client.SendPacket(PlayerPacketFactory.CreateToggleDebuggerPacket(true));
                client.SendPacket(PlayerPacketFactory.CreateDebugEchoPacket("Object reference not set to an instance of an object", 0, Color.Red));
                client.SendPacket(PlayerPacketFactory.CreateDebugEchoPacket("You successfully got banned", 3));
                //client.SendPacket(PlayerPacketFactory.CreateForcePlayerMapPacket(true));
                //client.SendPacket(PlayerPacketFactory.CreateToggleAllControlsPacket(false));

                TestPacketScopes(client);
                TestClientResource(client);
                TestPureSync(client);
                _ = TestEventTrigger(client);
                SetupTestElements(client);
            };
        }
        private void OnPlayerJoin(Player player)
        {
            var client = player.Client;

            System.Console.WriteLine($"{player.Name} ({client.Version}) ({client.Serial}) has joined the server!");
            client.SendPacket(new SetCameraTargetPacket(player.Id));
            client.SendPacket(new SpawnPlayerPacket(
                                  player.Id,
                                  flags: 0,
                                  position: new Vector3(0, 0, 3),
                                  rotation: 0,
                                  skin: 7,
                                  teamId: 0,
                                  interior: 0,
                                  dimension: 0,
                                  timeContext: 0
                                  ));
            client.SendPacket(new FadeCameraPacket(CameraFade.In));
            client.SendPacket(new ChatEchoPacket(this.root.Id, "Hello World", Color.White));
            client.SendPacket(new ClearChatPacket());
            client.SendPacket(new ChatEchoPacket(this.root.Id, "Hello World Again", Color.White));
            client.SendPacket(new ConsoleEchoPacket("Hello Console World"));

            client.SendPacket(ElementPacketFactory.CreateSetHealthPacket(player, 50));
            client.SendPacket(ElementPacketFactory.CreateSetAlphaPacket(player, 100));

            client.SendPacket(PlayerPacketFactory.CreateShowHudComponentPacket(HudComponent.Money, false));
            client.SendPacket(PlayerPacketFactory.CreateSetFPSLimitPacket(100));
            client.SendPacket(PlayerPacketFactory.CreatePlaySoundPacket(1));
            client.SendPacket(PlayerPacketFactory.CreateSetWantedLevelPacket(4));
            client.SendPacket(PlayerPacketFactory.CreateToggleDebuggerPacket(true));
            client.SendPacket(PlayerPacketFactory.CreateDebugEchoPacket("Test debug message", DebugLevel.Custom, Color.Red));
            client.SendPacket(PlayerPacketFactory.CreateDebugEchoPacket("Test debug message 2", DebugLevel.Information));
            //client.SendPacket(PlayerPacketFactory.CreateForcePlayerMapPacket(true));
            //client.SendPacket(PlayerPacketFactory.CreateToggleAllControlsPacket(false));

            TestPacketScopes(client);
            TestClientResource(client);
            TestPureSync(client);
            _ = TestEventTrigger(client);
        }
 private void RelayAttachedOffsetChanged(Element sender, ElementAttachOffsetsChangedArgs args)
 {
     this.server.BroadcastPacket(ElementPacketFactory.CreateSetElementAttachedOffsetsPacket(args.Source, args.OffsetPosition, args.OffsetRotation));
 }
 private void RelayDetached(Element sender, ElementDetachedEventArgs args)
 {
     this.server.BroadcastPacket(ElementPacketFactory.CreateDetachElementPacket(args.Source, args.Source.Position));
 }
 private void RelayAttached(Element sender, ElementAttachedEventArgs args)
 {
     this.server.BroadcastPacket(ElementPacketFactory.CreateAttachElementPacket(args.Source, args.AttachedTo, args.OffsetPosition, args.OffsetRotation));
 }
 private void RelayCallPropagationChanged(Element sender, ElementChangedEventArgs <bool> args)
 {
     this.server.BroadcastPacket(ElementPacketFactory.CreateSetCollisionsEnabledPacket(args.Source, args.NewValue));
 }
 private void RelayElementFrozenChanged(Element sender, ElementChangedEventArgs <bool> args)
 {
     this.server.BroadcastPacket(ElementPacketFactory.CreateSetElementFrozen(args.Source, args.NewValue));
 }