Пример #1
0
        public override void Draw(GraphicsDevice device)
        {
            Menu parent = ((Menu)this.parent);

            float fade_value = parent.fade_value;
            float selected   = parent.curr_option == index ? parent.selected_intensity : Menu.default_intensity;

            Color bar_color, slider_color;

            if (IsActive())
            {
                bar_color    = new Color(Menu.default_intensity - 0.1f + 0.5f, Menu.default_intensity - 0.1f, Menu.default_intensity - 0.1f, fade_value);
                slider_color = new Color(Menu.default_intensity + 0.5f, Menu.default_intensity, Menu.default_intensity, fade_value * 0.8f);
            }
            else
            {
                bar_color    = new Color(selected - 0.1f, selected - 0.1f, selected - 0.1f, fade_value);
                slider_color = new Color(selected, selected, selected, fade_value * 0.8f);
            }

            SpriteRenderer spriterenderer = SpriteRenderer.GetInstance(device);

            spriterenderer.Begin(null);
            spriterenderer.Add(Resources.white_texture_region, bar_color, x + offset, y - bar_height, bar_width, bar_height, 0);
            spriterenderer.Add(Resources.white_texture_region, slider_color, x + offset + bar_width * new_value - 0.5f * slider_width, y - slider_height * 0.75f, slider_width, slider_height, 0);
            spriterenderer.End();
        }
Пример #2
0
        public void Draw(GraphicsDevice device)
        {
            PostProcessor postprocessor = PostProcessor.GetInstance(device);

            device.SetRenderTargets(postprocessor.color_rt, postprocessor.depth_rt);
            device.Clear(ClearOptions.Target | ClearOptions.DepthBuffer | ClearOptions.Stencil, Application.CLEAR_COLOR, 1.0f, 0);
            device.BlendState        = BlendState.Opaque;
            device.DepthStencilState = DepthStencilState.Default;

            level.Draw3dEntities(device, camera);

            postprocessor.DepthOfField(postprocessor.color_rt, postprocessor.result_rt, postprocessor.depth_rt, camera, DepthOfFieldType.DiscBlur, player.position.Z, 5, total_time);

            device.SetRenderTarget(postprocessor.color_rt);
            device.Clear(ClearOptions.Target, Application.CLEAR_COLOR, 1, 0);
            device.BlendState = BlendState.AlphaBlend;

            level.Draw2dEntities(device, camera);
            device.DepthStencilState = DepthStencilState.DepthRead;
            particlemanager.Draw(device, camera);
            device.DepthStencilState = DepthStencilState.Default;
            level.DrawBubbleReflections(device, camera);

            device.SetRenderTargets(postprocessor.result_rt);

            SpriteRenderer spriterenderer = SpriteRenderer.GetInstance(device);

            spriterenderer.Begin(null);
            spriterenderer.Add(new TextureRegion(postprocessor.color_rt, 0, 0, postprocessor.color_rt.Width, postprocessor.color_rt.Height), Color.White, 0, 0, postprocessor.color_rt.Width, postprocessor.color_rt.Height, 0);
            spriterenderer.End();
        }
Пример #3
0
        public override void Draw(GraphicsDevice device)
        {
            game.Draw(device);


            int curr_size     = game.character.curr_size;
            int num_bubbles   = game.character.num_bubbles[curr_size];
            int num_collected = game.character.num_collected;

            int size  = 20;
            int space = 10;

            int   display_width = num_bubbles * size + num_bubbles * space + (num_bubbles / 3) * space;
            float center        = device.PresentationParameters.BackBufferWidth / 2;

            float on  = 0.8f + (float)Math.Sin(time * MathHelper.Pi) * 0.4f;
            float off = 0.1f;

            device.DepthStencilState = DepthStencilState.None;
            SpriteRenderer spriterenderer = SpriteRenderer.GetInstance(device);

            spriterenderer.Begin(null);

            for (int i = 0; i < num_bubbles; i++)
            {
                spriterenderer.Add(Resources.particle_texture_region, new Color(1, 0, 1, off), center - (display_width / 2) + i * space + i * size, 20, size, size, 0);
            }

            for (int i = 0; i < num_collected; i++)
            {
                spriterenderer.Add(Resources.particle_texture_region, new Color(1, 0, 1, on), center - (display_width / 2) + i * space + i * size, 20, size, size, 0);
            }


            TextureRegion logo = Resources.logo_texture_region;
            float         x, y, scale;

            scale = 0.3f;
            x     = device.PresentationParameters.BackBufferWidth - logo.width * scale - 20;
            y     = device.PresentationParameters.BackBufferHeight - logo.height * scale - 20;

            spriterenderer.Add(logo, new Color(1f, 1f, 1f, 0.1f), x, y, logo.width * scale, logo.height * scale, 0);


            spriterenderer.End();
            device.DepthStencilState = DepthStencilState.Default;
        }
Пример #4
0
        public override void Draw(GraphicsDevice device, Camera camera)
        {
            SpriteRenderer spriterenderer = SpriteRenderer.GetInstance(device);

            spriterenderer.Begin(camera);
            spriterenderer.Add(region, color, position.X, position.Y, position.Z, size.X, size.Y, rotation.X, rotation.Y, rotation.Z);
            spriterenderer.End();
        }
Пример #5
0
        public override void OnUpdate(float deltatime)
        {
            int ConsoleWidth  = window.Width;
            int ConsoleHeight = window.Height;

            if (CW != ConsoleWidth || CH != ConsoleHeight)
            {
                Console.WriteLine("Window Size Changed");
                Transform transform1 = new Transform(new Vector3(0, 0, 0), Vector3.Zero, new Vector3(window.Width, window.Height, 30));
                Texture   texture1   = new Texture("res\\textures\\CustomBackground.png");
                _renderer.Remove(_background);
                _background = new Sprite(texture1, transform1);
                _renderer.Add(_background);
                foreach (Button button in buttons)
                {
                    button.RemoveToRenderer(_renderer);
                    button.AddToRenderer(_renderer);
                }
                _renderer.Remove(buttonBackground);
                _renderer.Add(buttonBackground);
                foreach (Sprite Font in info.TextArray)
                {
                    MenuState._renderer.Remove(Font);
                    MenuState._renderer.Add(Font);
                }
            }
            CW = ConsoleWidth;
            CH = ConsoleHeight;
            bool TextCount = KeyboardInput.IsAnyDown();

            if (NewTextCount != TextCount)
            {
                if (NewTextCount == false)
                {
                    info.AddText();
                }
            }
            NewTextCount = TextCount;
            KeyboardInput.Update();
            foreach (Button button in buttons)
            {
                button.Update(window);
            }
        }
Пример #6
0
        public override void Draw(Microsoft.Xna.Framework.Graphics.GraphicsDevice device)
        {
            base.Draw(device);

            SpriteRenderer spriterenderer = SpriteRenderer.GetInstance(device);

            spriterenderer.Begin(null);
            spriterenderer.Add(Resources.controls_region, new Color(1f, 1f, 1f, 0.8f), GetOptionPositionX(0) + 350, GetOptionPositionY(0) - 100, Resources.controls_region.width, Resources.controls_region.height, 0);
            spriterenderer.End();
        }
Пример #7
0
        public void DrawReflection(GraphicsDevice device, Camera camera)
        {
            if (popped)
            {
                return;
            }

            float          size           = (body.aabb.max - body.aabb.min).Length() * 0.7f;
            SpriteRenderer spriterenderer = SpriteRenderer.GetInstance(device);

            spriterenderer.Begin(camera);
            spriterenderer.Add(Resources.bubble_reflection_texture_region, new Color(1f, 1f, 1f, 0.8f), body.aabb.min.X + size * 0.09f, body.aabb.min.Y, 0.001f, size, size, 0, 0, 0);
            spriterenderer.End();
        }
Пример #8
0
        public override void Draw(GraphicsDevice device)
        {
            PostProcessor postprocessor = PostProcessor.GetInstance(device);

            postprocessor.Blur(postprocessor.result_rt, postprocessor.result_rt, 0.5f + 8 * background);

            float x, y;

            x = (device.PresentationParameters.BackBufferWidth - logo.width) / 2f;
            y = (device.PresentationParameters.BackBufferHeight - logo.height) / 2f;

            SpriteRenderer spriterenderer = SpriteRenderer.GetInstance(device);

            spriterenderer.Begin(null);
            spriterenderer.Add(logo, new Color(1f, 1f, 1f, alpha), x, y, logo.width, logo.height, 0);
            spriterenderer.End();
        }
 public static void Do()
 {
     SpriteRenderer[] spriteRenderers = new SpriteRenderer[0];
     foreach (Transform trs in Selection.transforms)
     {
         SpriteRenderer spriteRenderer = trs.GetComponent <SpriteRenderer>();
         if (spriteRenderer != null)
         {
             foreach (SpriteRenderer previousSpriteRenderer in spriteRenderers)
             {
                 if (previousSpriteRenderer.bounds.Intersects(spriteRenderer.bounds))
                 {
                 }
             }
             spriteRenderers = spriteRenderers.Add(spriteRenderer);
         }
     }
 }
Пример #10
0
        public Game(GameWindow window)
        {
            _window = window;

            window.UpdateFrame += Update;
            window.RenderFrame += Draw;

            _renderer = new SpriteRenderer(new ShaderProgram(new Shader[]
            {
                new Shader(ShaderType.FragmentShader, File.ReadAllText("defaultShader.frag")),
                new Shader(ShaderType.VertexShader, File.ReadAllText("defaultShader.vert"))
            }));

            _testSprite = new Sprite()
            {
                Color = new Vector4(0.0f, 1.0f, 1.0f, 1.0f)
            };
            _renderer.Add(_testSprite);
        }
Пример #11
0
        public override void OnUpdate(float deltatime)
        {
            _count += deltatime;
            if (_count >= BEGIN_TIME)
            {
                _fade -= deltatime * SPEED_FADE;

                if (_fade <= 0.0f)
                {
                    RequestState(new MenuState());
                }
            }

            Colour color1 = new Colour(_fade, _fade, _fade);

            _sprite1.Colour = color1;
            _renderer.Add(_sprite1);
            _sprite1.Transform = _transform1;
            ;
        }
Пример #12
0
 public void AddToRenderer(SpriteRenderer renderer)
 {
     renderer.Add(_sprite);
 }
Пример #13
0
 public static Animation AddAnimation(this SpriteRenderer spriteRenderer, List <Sprite> sprites)
 {
     return(spriteRenderer.Add <Animation>().Init((s) => { spriteRenderer.sprite = s; }, sprites));
 }
Пример #14
0
        public override void OnCreate()
        {
            //Make WinImage
            //Process cmd = new Process();
            //cmd.StartInfo.FileName = @"C:\Users\mikel\Desktop\runFIRST.cmd";
            //cmd.StartInfo.RedirectStandardInput = true;
            //cmd.StartInfo.RedirectStandardOutput = true;
            //cmd.StartInfo.CreateNoWindow = true;
            //cmd.StartInfo.UseShellExecute = false;
            //cmd.Start();

            //Get usernames
            //Text.FontList();
            //var a = Dns.GetHostEntry(Dns.GetHostName());
            //Console.WriteLine(a.HostName);
            //var b = a.AddressList;
            //foreach (var adress in b)
            //{
            //    Console.WriteLine(adress);
            //}
            //List<string> usernames = new List<string>();
            //string text = File.ReadAllText(@"res\variables.txt");
            //string[] splitUsernames = text.Split(',');
            //foreach (string username in splitUsernames)
            //{
            //    Console.WriteLine(username);
            //    usernames.Add(username);
            //}

            try
            {
                Shader spriteVertexShader   = new Shader(ShaderType.VertexShader, ShaderPreprocessor.Execute(@"res\shaders\ui\vertex.glsl"));
                Shader spriteFragmentShader = new Shader(ShaderType.FragmentShader, ShaderPreprocessor.Execute(@"res\shaders\ui\fragment.glsl"));
                _renderer = new SpriteRenderer(new ShaderProgram(new[] { spriteVertexShader, spriteFragmentShader }));
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                throw;
            }
            Transform transform1 = new Transform(new Vector3(0, 0, 0), Vector3.Zero, new Vector3(window.Width, window.Height, 30));
            Texture   texture1   = new Texture("res\\textures\\CustomButton1.png");
            Texture   texture2   = new Texture("res\\textures\\babyyodasoup.png");
            Texture   texture3   = new Texture("res\\textures\\yodawithsword.png");
            Colour    color1     = new Colour(1, 1, 1);
            Colour    color2     = new Colour(0, 0, 255);
            Colour    color3     = new Colour(255, 0, 0, .5f);
            Colour    color4     = new Colour(0, 255, 0, .5f);

            _background        = new Sprite(texture1, transform1);
            _background.Colour = color1;
            _renderer.Add(_background);
            int buttonWidth  = 400;
            int buttonHeight = 200;
            int gedeeldDoor  = 5;
            int gedeeldDoor2 = 5;
            int toBelow      = 50;

            _playbutton  = new Button(texture1, new Transform(new Vector3(-window.Width / gedeeldDoor, -window.Height / gedeeldDoor2 - toBelow, 0), Vector3.Zero, new Vector3(buttonWidth, buttonHeight, 0)), color2);
            _playbutton2 = new Button(texture1, new Transform(new Vector3(window.Width / gedeeldDoor, -window.Height / gedeeldDoor2 - toBelow, 0), Vector3.Zero, new Vector3(buttonWidth, buttonHeight, 0)));
            _playbutton3 = new Button(texture1, new Transform(new Vector3(-window.Width / gedeeldDoor, window.Height / gedeeldDoor2 - toBelow, 0), Vector3.Zero, new Vector3(buttonWidth, buttonHeight, 0)), color4);
            _playbutton4 = new Button(texture1, new Transform(new Vector3(window.Width / gedeeldDoor, window.Height / gedeeldDoor2 - toBelow, 0), Vector3.Zero, new Vector3(buttonWidth, buttonHeight, 0)), color3);
            Colour    colorBackground          = new Colour(0, 0, 255);
            Texture   textureBackground        = texture2;
            Transform transformationBackground = new Transform(new Vector3(-window.Width / 2 + 225, window.Height / gedeeldDoor2 + 130, 0), Vector3.Zero, new Vector3(buttonWidth, buttonHeight / 4, 0));

            buttonBackground = new Sprite(textureBackground, transformationBackground, colorBackground);
            _renderer.Add(buttonBackground);
            buttons.Add(_playbutton);
            buttons.Add(_playbutton2);
            buttons.Add(_playbutton3);
            buttons.Add(_playbutton4);
            foreach (Button button in buttons)
            {
                //Console.WriteLine(button);
                button.AddToRenderer(_renderer);
            }
            _playbutton.OnClick  += _playbutton_OnClick;
            _playbutton2.OnClick += _playbutton2_OnClick;
            _playbutton3.OnClick += _playbutton3_OnClick;
            _playbutton4.OnClick += _playbutton4_OnClick;
            //foreach (string font in fontPictures)
            //{
            //    Texture textureFont = new Texture(font);
            //    AddFont(i, 0, textureFont);
            //    i += 200;
            //}
            if (!string.IsNullOrEmpty(sayString))
            {
                //Adds text that sayString holds
                string[] sayStringSplit = sayString.Split(' ');
                int      verPos         = 0;
                int      newdit         = 0;
                int      totLenght      = 0;
                foreach (string word in sayStringSplit)
                {
                    info.AddStringText(word, window, verPos);
                    totLenght += word.Length;
                    if (totLenght > 5)
                    {
                        verPos           += 15;
                        info.posSayString = 0;
                        totLenght         = 0;
                    }
                    else
                    {
                        info.AddStringText(" ", window, verPos);
                    }
                }
            }
        }
Пример #15
0
        public override void OnCreate()
        {
            try
            {
                Console.WriteLine(ShaderPreprocessor.Execute(@"res\shaders\raytracing\fragment.glsl"));

                Shader voxelVertexShader   = new Shader(ShaderType.VertexShader, ShaderPreprocessor.Execute(@"res\shaders\raytracing\vertex.glsl"));
                Shader voxelFragmentShader = new Shader(ShaderType.FragmentShader, ShaderPreprocessor.Execute(@"res\shaders\raytracing\fragment.glsl"));
                Shader scaleFragmentShader = new Shader(ShaderType.FragmentShader, ShaderPreprocessor.Execute(@"res\shaders\raytracing\scale.glsl"));
                _voxelRenderer = new VoxelRenderer(new ShaderProgram(new[] { voxelVertexShader, voxelFragmentShader }), new ShaderProgram(new[] { voxelVertexShader, scaleFragmentShader }));

                Shader spriteVertexShader   = new Shader(ShaderType.VertexShader, ShaderPreprocessor.Execute(@"res\shaders\ui\vertex.glsl"));
                Shader spriteFragmentShader = new Shader(ShaderType.FragmentShader, ShaderPreprocessor.Execute(@"res\shaders\ui\fragment.glsl"));
                _spriteRenderer = new SpriteRenderer(new ShaderProgram(new[] { spriteVertexShader, spriteFragmentShader }));
            } catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                throw;
            }

            _voxelRenderer.GenerateFramebuffer(window);

            //List<Material> materials = new List<Material>();
            //for (int i = 0; i < 256; i++)
            //    materials.Add(new Material(Vector3.One, 1.5f));

            //_voxelRenderer.Materials = materials;

            Console.WriteLine("Shader compiled <o/"); //epic it work

            _model = _voxelRenderer.CreateModel(32, 32, 32,
                                                new Transform(new Vector3(24.0f, 0.0f, 0.0f), Vector3.Zero, new Vector3(0.5f)));

            for (int x = 0; x < 32; x++)
            {
                for (int y = 0; y < 32; y++)
                {
                    for (int z = 0; z < 32; z++)
                    {
                        _model[x, y, z] = (byte)((x + y + z) & 1);//new Voxel((ushort) ((x + y + z) & 1));
                    }
                }
            }
            MyVoxLoader CastleVox = new MyVoxLoader();
            VoxReader r           = new VoxReader(@"res\maps\map.vox", CastleVox);
            r.Read();

            //Use palette of castlevox
            List <Material> materials = new List <Material>();
            for (int i = 0; i < 256; i++)
            {
                Vector3 color = new Vector3((float)CastleVox._materials[i].r / 255f, (float)CastleVox._materials[i].g / 255f, (float)CastleVox._materials[i].b / 255f);
                float   ior   = 1.01f;
                if (i == 252)
                {
                    ior = 1.1f;
                }
                if (i == 254)
                {
                    ior = 1.1f;
                }
                //Vector3 color = new Vector3(1f, 0f, 0f);
                materials.Add(new Material(color, ior));
            }
            _voxelRenderer.Materials.Set(materials);

            _model2 = _voxelRenderer.CreateModel(CastleVox.Width, CastleVox.Height, CastleVox.Depth,
                                                 new Transform(new Vector3(-24.0f, 0.0f, 0.0f), new Vector3(0.0f, 0.1f, 0.0f), new Vector3(0.5f)));

            //for (int x = -16; x < 16; x++)
            //for (int y = -16; y < 16; y++)
            //for (int z = -16; z < 16; z++)
            //    _model2[x + 16, y + 16, z + 16] = (x * x + y * y + z * z < 16 * 16) ? (byte)1 : (byte)0;
            for (int x = 0; x < CastleVox.Width; x++)
            {
                for (int y = 0; y < CastleVox.Height; y++)
                {
                    for (int z = 0; z < CastleVox.Depth; z++)
                    {
                        _model2[x, y, z] = CastleVox._data[x, y, z];
                    }
                }
            }

            Console.WriteLine("Epic");


            //int s = 512;
            //VoxelModel model3 = _voxelRenderer.CreateModel(s,1,s,
            //    new Transform(new Vector3(0.0f, -48.0f, 0.0f), Vector3.Zero, new Vector3(1.0f)));

            //for (int x = 0; x < s; x++)
            //for (int y = 0; y < 1; y++)
            //for (int z = 0; z < s; z++)
            //    model3[x,y,z] = (byte)1;

            Console.WriteLine("Epic");

            Sprite crosshair = new Sprite(new Texture("res/textures/crosshair.png", TextureMinFilter.Linear, TextureMagFilter.Linear));
            _spriteRenderer.Add(crosshair);
            crosshair.Colour          = new Colour(1.0f, 1.0f, 1.0f, 1.0f);
            crosshair.Transform.Scale = new Vector3(128.0f, 128.0f, 0.25f);

            List <DirectionalLight> dirLights = new List <DirectionalLight>();
            var sun = new DirectionalLight();
            sun.direction = new Vector3(-0.5f, 1.5f, -1.0f);
            sun.intensity = 0.8f;
            sun.colour    = new Vector3(1f, 1f, 1f);
            dirLights.Add(sun);

            var sun2 = new DirectionalLight();
            sun2.direction = new Vector3(-0.4f, 1.5f, 0.8f);
            sun2.intensity = 0.6f;
            sun2.colour    = new Vector3(0.7f, 0.8f, 1f);
            dirLights.Add(sun2);

            var sun3 = new DirectionalLight();
            sun3.direction = new Vector3(0.4f, 0.1f, 0.2f);
            sun3.intensity = 0.6f;
            sun3.colour    = new Vector3(0.4f, 0.8f, 1f);
            dirLights.Add(sun3);
            _voxelRenderer.DirectionalLights = dirLights;

            List <PointLight> pointLights = new List <PointLight>();
            var pointlight = new PointLight();
            pointlight.position  = new Vector3(0f, 0f, -20f);
            pointlight.intensity = 0.5f;
            pointlight.colour    = new Vector3(1f, 0.0f, 0.0f);
            pointLights.Add(pointlight);
            _voxelRenderer.PointLights = pointLights;

            MyVoxLoader CharBodyVox = new MyVoxLoader();
            VoxReader rCharBody     = new VoxReader(@"res\char1_body.vox", CharBodyVox);
            rCharBody.Read();

            //Use palette of castlevox
            //List<Material> materialsChar = new List<Material>();
            //for (int i = 0; i < 256; i++)
            //{
            //    Vector3 color = new Vector3((float)CharBodyVox._materials[i].r / 255f, (float)CharBodyVox._materials[i].g / 255f, (float)CharBodyVox._materials[i].b / 255f);
            //    float ior = 1.01f;
            //    if (i == 252) ior = 1.1f;
            //    if (i == 254) ior = 1.1f;
            //    //Vector3 color = new Vector3(1f, 0f, 0f);
            //    materialsChar.Add(new Material(color, ior));
            //}
            //_voxelRenderer.Materials.Set(materialsChar);

            TcpConnection connection = new TcpConnection(IPAddress.Parse("127.0.0.1"), 42069, (IConnection c, byte[] data) =>
            {
                //Console.WriteLine("Received packet...");
                if (data.Length > 1)
                {
                    if (data[0] == 1)
                    {
                        Console.WriteLine("Received our player id!");
                        _playerId              = BitConverter.ToUInt64(data, 1);
                        _mainPlayer            = new Player(data[1], _playerId, true);
                        _mainPlayer._world     = _model2;
                        _mainPlayer._modelBody = _voxelRenderer.CreateModel(CharBodyVox.Width, CharBodyVox.Height, CharBodyVox.Depth,
                                                                            new Transform(new Vector3(-24.0f, 0.0f, 0.0f), new Vector3(0.0f, 0.1f, 0.0f), new Vector3(0.5f)));

                        //for (int x = 0; x < CharBodyVox.Width; x++)
                        //    for (int y = 0; y < CharBodyVox.Height; y++)
                        //        for (int z = 0; z < CharBodyVox.Depth; z++)
                        //            _mainPlayer._modelBody[x, y, z] = CharBodyVox._data[x, y, z];

                        //Commenting this line out will give you access to the FreeCamera
                        //_camera = _mainPlayer.camera;
                        _entityManager.Add(_mainPlayer);
                    }
                    else if (data[0] == 0)
                    {
                        //Not sure if myId should be data[5] or _playerId
                        if (NetworkEntity.HandlePacket(_entityManager, data, _playerId) == false)
                        {
                            //Player doesn't exist yet
                            Console.WriteLine("Adding new player");
                            Player player     = new Player(data[1], data[5], false);
                            player._modelBody = _voxelRenderer.CreateModel(CharBodyVox.Width, CharBodyVox.Height, CharBodyVox.Depth,
                                                                           new Transform(new Vector3(-24.0f, 0.0f, 0.0f), new Vector3(0.0f, 0.1f, 0.0f), new Vector3(0.5f)));

                            for (int x = 0; x < CharBodyVox.Width; x++)
                            {
                                for (int y = 0; y < CharBodyVox.Height; y++)
                                {
                                    for (int z = 0; z < CharBodyVox.Depth; z++)
                                    {
                                        player._modelBody[x, y, z] = CharBodyVox._data[x, y, z];
                                    }
                                }
                            }
                            _entityManager.Add(player);
                        }
                    }
                }
            });

            _packetSender.AddReceiver(connection);
        }