Example #1
0
 public SquareSprite(string id) : base(id)
 {
     AddComponent(new SpriteComponent("Textures/square", 0, new Vector2(1, 1), Color.White, 0));
     AddComponent(new PositionComponent(new Vector3(0, 0, 0)));
     square = GetComponent <SpriteComponent>();
     pos    = GetComponent <PositionComponent>();
 }
Example #2
0
        public override void Start()
        {
            playerSprite     = Entity.Get <SpriteComponent>();
            playerController = Entity.Get <CharacterComponent>();

            //Please remember that in the GameStudio element the parameter Step Height is extremely important, it not set properly it will cause the entity to snap fast to the ground
            playerController.JumpSpeed         = 5.0f;
            playerController.Gravity           = new Vector3(0.0f, -10.0f, 0.0f);
            playerController.FallSpeed         = 10.0f;
            playerController.ProcessCollisions = true;

            if (!IsLiveReloading)
            {
                Script.AddTask(async() =>
                {
                    while (Game.IsRunning)
                    {
                        var collision = await playerController.NewCollision();
                        // Stop if we collide from side
                        foreach (var contact in collision.Contacts)
                        {
                            if (contact.Normal.X < -0.5f || contact.Normal.X > 0.5f)
                            {
                                movingToTarget = false;
                                break;
                            }
                        }
                    }
                });
                PlayIdle();
            }
        }
        public void SetupBackground()
        {
            var entityId3 = EntityManager.GetEntityManager().NewEntity();
            //var renderComponent3 = new RenderComponentBuilder()
            //    .Position(0, 0, 1)
            //    .Dimensions(1000, 1000).Build();
            //ComponentManager.Instance.AddComponentToEntity(renderComponent3, entityId3);

            var renderComponent3 = new RenderComponent()
            {
                DimensionsComponent = new DimensionsComponent()
                {
                    Height = 1000, Width = 1000
                }
            };
            var positionComponent3 = new PositionComponent()
            {
                Position = new Vector2(0, 0), ZIndex = 1
            };

            var spriteComponent3 = new SpriteComponent()
            {
                SpriteName = "Grass"
            };

            ComponentManager.Instance.AddComponentToEntity(spriteComponent3, entityId3);
            ComponentManager.Instance.AddComponentToEntity(positionComponent3, entityId3);
            ComponentManager.Instance.AddComponentToEntity(renderComponent3, entityId3);
        }
Example #4
0
        public override void Start()
        {
            var backgroundCmp = new SpriteComponent(Sprite.CreateFromTexture("Graphics/titleBackground.png"), "MenuBackground");

            Menu.Owner.Attach(backgroundCmp);

            var titleSpriteCmp = new SpriteComponent(Sprite.CreateFromTexture("Graphics/title.png"), "Menu");

            Menu.Owner.Attach(titleSpriteCmp);

            var startCmp = new SpriteComponent(Sprite.CreateFromTexture("Graphics/pressStartOff.png"), "Menu");

            startCmp.Position = new Vector2(0, -200);
            Menu.Owner.Attach(startCmp);

            m_startPulseCmp          = new SpriteComponent(Sprite.CreateFromTexture("Graphics/pressStartOn.png"), "Menu");
            m_startPulseCmp.Position = new Vector2(0, -200);
            Menu.Owner.Attach(m_startPulseCmp);

            m_startTime = Engine.RealTime.TimeMS;

            Game.GameMusic.PlayMenuMusic();
            AudioStreamPlaylist playlist = new AudioStreamPlaylist();

            //playlist.Add(Game.GameMusic.Tracks["TitleStream"]);
            //playlist.Add(Game.GameMusic.Tracks["MenuStream"]);
            Engine.AudioStreamManager.Playlist = playlist;
            Engine.AudioStreamManager.Playlist.Play();
        }
        public async Task Test()
        {
            var client = StartClient();
            await client.WaitIdleAsync();

            var prototypeManager = client.ResolveDependency <IPrototypeManager>();
            var resourceCache    = client.ResolveDependency <IResourceCache>();

            await client.WaitAssertion(() =>
            {
                foreach (var proto in prototypeManager.EnumeratePrototypes <EntityPrototype>())
                {
                    if (!proto.Components.ContainsKey("Sprite"))
                    {
                        continue;
                    }

                    Assert.DoesNotThrow(() =>
                    {
                        var _ = SpriteComponent.GetPrototypeTextures(proto, resourceCache).ToList();
                    }, "Prototype {0} threw an exception when getting its textures.",
                                        proto.ID);
                }
            });
        }
        public PlayerBullet()
        {
            SpriteComponent spriteComponent = new SpriteComponent(this);

            spriteComponent.Image = Resources.PlayerBullet;
            AddComponent(spriteComponent);

            BoxCollider boxCollider = new BoxCollider(this);

            boxCollider.Size = spriteComponent.Image.Size;
            AddComponent(boxCollider);

            ScrollingComponent scrolling = new ScrollingComponent(this);

            scrolling.Speed        = 200f;
            scrolling.ScrollY      = true;
            scrolling.YAddNegative = true;
            AddComponent(scrolling);

            LimitLocationDelete limit = new LimitLocationDelete(this);

            AddComponent(limit);

            DamageSystem damageSystem = new DamageSystem(this);

            damageSystem.HitAbleTag = "Enemy";
            AddComponent(damageSystem);
        }
Example #7
0
        public static IRsiStateLike RsiStateLike(this SpriteSpecifier specifier)
        {
            var resC = IoCManager.Resolve <IResourceCache>();

            switch (specifier)
            {
            case SpriteSpecifier.Texture tex:
                return(tex.GetTexture(resC));

            case SpriteSpecifier.Rsi rsi:
                return(rsi.GetState(resC));

            case SpriteSpecifier.EntityPrototype prototypeIcon:
                var protMgr = IoCManager.Resolve <IPrototypeManager>();
                if (!protMgr.TryIndex <EntityPrototype>(prototypeIcon.EntityPrototypeId, out var prototype))
                {
                    Logger.Error("Failed to load PrototypeIcon {0}", prototypeIcon.EntityPrototypeId);
                    return(SpriteComponent.GetFallbackState(resC));
                }

                return(SpriteComponent.GetPrototypeIcon(prototype, resC));

            default:
                throw new NotSupportedException();
            }
        }
Example #8
0
 /// <summary>
 /// Stops the animation of the provided sprite component.
 /// </summary>
 /// <param name="spriteComponent">the sprite component to stop</param>
 public void Stop(SpriteComponent spriteComponent)
 {
     spriteComponent.ElapsedTime       = 0;
     spriteComponent.CurrentIndexIndex = 0;
     spriteComponent.ClearAnimations();
     playingSprites.Remove(spriteComponent);
 }
Example #9
0
        private void Initialize(Vector2 focusPosition, Vector2[] collisionMesh)
        {
            this.Transform.Position = focusPosition + offset;

            RigidBodyComponent rigidComponent = new RigidBodyComponent();
            RigidBody          r = rigidComponent.RigidBody;

            r.SetBodyType(BodyType.Dynamic);
            r.SetMaterial(Material);
            r.SetCollider(new PolygonCollider(collisionMesh));
            r.CollisionMatrix.Clear();
            r.CollisionMatrix.AddLayer((int)Layers.Cue);
            r.CollisionMatrix.AddMaskLayer((int)Layers.WhiteBall);
            //r.CollisionLayer.AddLayer((long)Layers.Cue);
            //r.CollisionMask.AddLayer((long)Layers.WhiteBall);
            r.CollisionListener = this;

            this.Add(rigidComponent);

            Texture2D       texture   = Assets.Get <Texture2D>("Textures", $"cue");
            SpriteComponent component = new SpriteComponent(new Sprite(texture)
            {
                Name = "cue"
            }, Size.X / texture.Width);

            this.Add(component);

            this.Add(new SoundComponent(Assets.Get <SoundEffect>("SoundEffects", "cue_ball_mockup")));
        }
Example #10
0
        public void OnMatchVictory(object eventParamater)
        {
            m_ball.Owner.RigidBodyCmp.SetPosition(Vector2.Zero);
            m_ball.Owner.RigidBodyCmp.Body.Enabled = false;
            SpriteComponent ballSprite = m_ball.Owner.FindComponent <SpriteComponent>();

            ballSprite.Visible = false;

            foreach (Player player in m_players)
            {
                player.ResetState();
            }

            if (m_arena.LeftGoal.Score == m_arena.RightGoal.Score)
            {
                Vector2[] playerPos = new Vector2[] {
                    new Vector2(-120, 100), new Vector2(-60, 100),
                    new Vector2(60, 100), new Vector2(120, 100)
                };

                foreach (Player player in m_players)
                {
                    player.Owner.RigidBodyCmp.SetPosition(playerPos[(int)player.PlayerIndex]);
                }
            }
            else
            {
                Team defeatedTeam;
                if (m_arena.LeftGoal.Score > m_arena.RightGoal.Score)
                {
                    defeatedTeam = m_arena.LeftGoal.Team;
                }
                else
                {
                    defeatedTeam = m_arena.RightGoal.Team;
                }

                Vector2[] playerPos = new Vector2[] {
                    new Vector2(120, 100), new Vector2(-120, 100),
                    new Vector2(200, 200), new Vector2(-200, 200)
                };

                foreach (Player player in m_players)
                {
                    if (player.Team == defeatedTeam)
                    {
                        player.Owner.RigidBodyCmp.Body.Enabled = false;
                        player.Properties.ControlDisabled.Set();
                        SpriteComponent playerSprite = player.Owner.FindComponent <SpriteComponent>();
                        playerSprite.Visible     = false;
                        player.ShadowCmp.Visible = false;
                    }

                    player.Owner.RigidBodyCmp.SetPosition(playerPos[(int)player.PlayerIndex]);
                }
            }

            //Camera.Focus(Arena.CupCamFocus);
            Camera.FocusAuto();
        }
Example #11
0
        private void AddMark()
        {
            var markColor = Player.PlayerColors[2];

            markColor = Color.Lerp(markColor, Color.White, 0.35f);

            var             sprite    = Sprite.Create("Graphics/Marks/Marks-assets/MarkSprites.lua::Dash");
            SpriteComponent spriteCmp = new SpriteComponent(sprite, "GroundOverlay3");

            spriteCmp.Orientation = -LBE.MathHelper.Angle(Vector2.UnitY, Direction);
            spriteCmp.Position    = Player.Position;
            sprite.Color          = markColor;
            sprite.AnimationIndex = Engine.Random.Next(0, 4);

            float decay    = 0.93f;
            float minAlpha = 0.01f;

            foreach (var cmp in m_sprites)
            {
                cmp.Sprite.Alpha = minAlpha + (cmp.Sprite.Alpha - minAlpha) * decay;
            }

            m_sprites.Add(spriteCmp);

            Game.GameManager.Arena.Owner.Attach(spriteCmp);
        }
        public static IDirectionalTextureProvider DirFrame0(this SpriteSpecifier specifier)
        {
            var resc = IoCManager.Resolve <IResourceCache>();

            switch (specifier)
            {
            case SpriteSpecifier.Texture tex:
                return(resc.GetResource <TextureResource>(SpriteComponent.TextureRoot / tex.TexturePath).Texture);

            case SpriteSpecifier.Rsi rsi:
                if (resc.TryGetResource <RSIResource>(SpriteComponent.TextureRoot / rsi.RsiPath, out var theRsi))
                {
                    if (theRsi.RSI.TryGetState(rsi.RsiState, out var state))
                    {
                        return(state);
                    }
                }
                return(resc.GetFallback <TextureResource>().Texture);

            case SpriteSpecifier.EntityPrototype prototypeIcon:
                var protMgr = IoCManager.Resolve <IPrototypeManager>();
                if (!protMgr.TryIndex <EntityPrototype>(prototypeIcon.EntityPrototypeId, out var prototype))
                {
                    Logger.Error("Failed to load PrototypeIcon {0}", prototypeIcon.EntityPrototypeId);
                    return(resc.GetFallback <TextureResource>().Texture);
                }
                return(SpriteComponent.GetPrototypeIcon(prototype, resc) ?? resc.GetFallback <TextureResource>().Texture);

            default:
                throw new NotImplementedException();
            }
        }
Example #13
0
        public async Task Test()
        {
            var(client, _) = await StartConnectedServerClientPair(new ClientContentIntegrationOption()
            {
                Pool = false
            }, new ServerContentIntegrationOption()
            {
                Pool = false
            });

            var prototypeManager = client.ResolveDependency <IPrototypeManager>();
            var resourceCache    = client.ResolveDependency <IResourceCache>();

            await client.WaitAssertion(() =>
            {
                foreach (var proto in prototypeManager.EnumeratePrototypes <EntityPrototype>())
                {
                    if (proto.Abstract || !proto.Components.ContainsKey("Sprite"))
                    {
                        continue;
                    }

                    Assert.DoesNotThrow(() =>
                    {
                        var _ = SpriteComponent.GetPrototypeTextures(proto, resourceCache).ToList();
                    }, "Prototype {0} threw an exception when getting its textures.",
                                        proto.ID);
                }
            });
        }
Example #14
0
        private void InitCup()
        {
            m_cupCamFocus          = new GameObject("CupCam Focus");
            m_cupCamFocus.Position = new Vector2(0, 200);

            Sprite spriteCupLeft = Sprite.Create("Graphics/cupSprite.lua::Sprite");

            m_cupSpriteLeftCmp = new SpriteComponent(spriteCupLeft, "GroundOverlay1");
            m_cupSpriteLeftCmp.Sprite.Scale = new Vector2(0.10f, 0.10f);
            Owner.Attach(m_cupSpriteLeftCmp);
            int    cupId             = Math.Min(LeftGoal.Team.ConsecutiveWins, 7);
            string animationNameLeft = "Cup" + cupId.ToString();

            m_cupSpriteLeftCmp.Sprite.SetAnimation(animationNameLeft);
            m_cupSpriteLeftCmp.Sprite.Playing = true;
            m_cupSpriteLeftCmp.Position       = new Vector2(-Engine.Debug.EditSingle("CupXOffset"), Engine.Debug.EditSingle("CupYOffset"));

            Sprite spriteCupRight = Sprite.Create("Graphics/cupSprite.lua::Sprite");

            m_cupSpriteRightCmp = new SpriteComponent(spriteCupRight, "GroundOverlay1");
            m_cupSpriteRightCmp.Sprite.Scale = new Vector2(0.10f, 0.10f);
            Owner.Attach(m_cupSpriteRightCmp);
            cupId = Math.Min(RightGoal.Team.ConsecutiveWins, 7);
            string animationNameRight = "Cup" + cupId.ToString();

            m_cupSpriteRightCmp.Sprite.SetAnimation(animationNameRight);
            m_cupSpriteRightCmp.Sprite.Playing = true;
            m_cupSpriteRightCmp.Position       = new Vector2(Engine.Debug.EditSingle("CupXOffset"), Engine.Debug.EditSingle("CupYOffset"));

            Engine.World.EventManager.AddListener((int)EventId.Victory, OnMatchVictory);
        }
Example #15
0
        public static void MakePlayer(Scene scene, float x, float y)
        {
            Entity          entity          = scene.NewEntity();
            RenderComponent renderComponent = new RenderComponent(20, 0, true);

            entity.AddComponent(renderComponent);
            SpriteComponent sc = new SpriteComponent(scene.GS, "player");

            /*
             * Frame frame = sc.Sprite.DefaultAnimationObject.Frames[0];
             * sc.Width = frame.Width / 2;
             * sc.Height = frame.Height / 2;
             * sc.Stretched = true;
             */
            entity.AddComponent(sc);
            entity.AddComponent(new PlayerComponent()
            {
                Lives = 5, Bombs = 2
            });
            BodyComponent body = new BodyComponent(x, y);

            body.Pen = new Vector4(0, 0, 1, 1);
            entity.AddComponent(body);
            entity.Enable();
            entity.AddToGroup("player");

            entity = scene.NewEntity();
            entity.AddComponent(new RenderComponent(2, 0, true)
            {
                Leader = renderComponent
            });
            entity.AddComponent(new SpriteComponent(scene.GS, "s_hitbox"));
            entity.Enable();
            entity.AddToGroup("hitbox");
        }
Example #16
0
        public static Particle Create(EParticles particleType, Vector3 location, Vector3 force)
        {
            Particle particle = EntityFactory.Create <Particle>(string.Format("{0}Particle", particleType.ToString()));

            particle.AddComponent <TransformComponent>().Init(location);

            PhysicsComponent physics = particle.AddComponent <PhysicsComponent>();

            physics.Init(BodyType.Dynamic, 0.94f, 0.5f);
            physics.ApplyForce(force, true);

            SpriteComponent   sprite  = particle.AddComponent <SpriteComponent>();
            LightingComponent light   = particle.AddComponent <LightingComponent>();
            DespawnComponent  despawn = particle.AddComponent <DespawnComponent>();

            switch (particleType)
            {
            case EParticles.Spark:
                float lifeTime = SeedManager.Get().NextRandF(2.0f, 5.0f);

                sprite.Init(CollisionManager.Get().PointTexture);
                sprite.Scale = new Vector2(SeedManager.Get().NextRandF(5, 15), SeedManager.Get().NextRandF(5, 15));
                sprite.AddColorFunction(x => { return(Color.Lerp(new Color(0.99f, 1.0f, 0.78f), new Color(1.0f, 0.0f, 0.0f), x)); });
                sprite.AddOpacityFunction(x => { return(1.0f - x / lifeTime); });

                light.Init(AssetManager.Get().Find <Texture2D>(ELightAssets.CircleLight), Vector2.Zero, new Vector2(0.4f, 0.4f));
                light.AddColorFunction(x => { return(Color.Lerp(new Color(0.99f, 1.0f, 0.78f), new Color(1.0f, 0.0f, 0.0f), x)); });
                light.AddBrightnessFunction(x => { return(1.0f - x / lifeTime); });

                despawn.AddTimeTrigger(x => x > lifeTime);
                break;
            }

            return(particle);
        }
Example #17
0
        public override Task <Entity> CreateEntity(EntityHierarchyItemViewModel parent)
        {
            var name      = ComputeNewName(parent, "Sprite");
            var component = new SpriteComponent();

            return(CreateEntityWithComponent(name, component));
        }
Example #18
0
        public override void Initialize()
        {
            base.Initialize();

            collidableComponent = Owner.GetComponent <CollidableComponent>();
            spriteComponent     = Owner.GetComponent <SpriteComponent>();
        }
        public async Task Test()
        {
            await using var pairTracker = await PoolManager.GetServerClient();

            var client = pairTracker.Pair.Client;

            var prototypeManager = client.ResolveDependency <IPrototypeManager>();
            var resourceCache    = client.ResolveDependency <IResourceCache>();
            await client.WaitRunTicks(5);

            await client.WaitAssertion(() =>
            {
                foreach (var proto in prototypeManager.EnumeratePrototypes <EntityPrototype>())
                {
                    if (proto.NoSpawn || proto.Abstract || !proto.Components.ContainsKey("Sprite"))
                    {
                        continue;
                    }

                    Assert.DoesNotThrow(() =>
                    {
                        var _ = SpriteComponent.GetPrototypeTextures(proto, resourceCache).ToList();
                    }, "Prototype {0} threw an exception when getting its textures.",
                                        proto.ID);
                }
            });

            await client.WaitRunTicks(5);

            await pairTracker.CleanReturnAsync();
        }
Example #20
0
        public override void OnRemove()
        {
            collidableComponent = null;
            spriteComponent     = null;

            base.OnRemove();
        }
        public override void Process(Entity entity)
        {
            SpriteComponent sprite = entity.GetComponent <SpriteComponent>();

            if (sprite.Texture == null)
            {
                return;
            }

            SpriteBatch       spriteBatch = EntitySystem.BlackBoard.GetEntry <SpriteBatch>("SpriteBatch");
            PositionComponent position    = entity.GetComponent <PositionComponent>();

            int width  = sprite.Texture.Width / sprite.Speed.Length;
            int height = sprite.Texture.Height;
            int column = (int)sprite.Index;

            spriteBatch.Draw(
                sprite.Texture,
                position.Position,
                new Rectangle(width * column, 0, width, height),
                Color.White,
                0,
                sprite.Anchor,
                1,
                sprite.Effects,
                0);
        }
Example #22
0
        protected override void WaitingForTurn(float delta)
        {
            UpdateCards(delta);

            if (growEntity != null)
            {
                SpriteComponent growSpriteComponent = growEntity.GetComponent <SpriteComponent>();
                growSpriteComponent.Opacity += (0f - growSpriteComponent.Opacity) * 4f * delta;
                if (growSpriteComponent.Opacity <= 0.025f)
                {
                    growEntity.Delete();
                    growEntity = null;
                }
            }
            if (playEntity != null)
            {
                SpriteComponent playSpriteComponent = playEntity.GetComponent <SpriteComponent>();
                playSpriteComponent.Opacity += (0f - playSpriteComponent.Opacity) * 4f * delta;
                if (playSpriteComponent.Opacity <= 0.025f)
                {
                    playEntity.Delete();
                    playEntity = null;
                }
            }
        }
        public override void Initialize()
        {
            base.Initialize();

            Sprite    = Owner.GetComponent <SpriteComponent>();
            Transform = Owner.GetComponent <ITransformComponent>();
        }
Example #24
0
        public void OnHalfTimeTransition(object eventParamater)
        {
            m_ball.Owner.RigidBodyCmp.Body.Enabled        = true;
            m_ball.Owner.RigidBodyCmp.Body.LinearVelocity = Vector2.Zero;
            m_ball.BallSprite.Alpha = 255;

            if (Arena.Description.SecondHalfStartInfo != null && !Arena.Description.SecondHalfStartInfo.UseBallLauncher)
            {
                m_ball.Owner.Position = Arena.Description.SecondHalfStartInfo.BallPosition;
            }
            else
            {
                m_ball.Owner.Position = Vector2.Zero;
            }

            m_ball.SetSlowMode(false);
            m_ball.Free();
            m_ball.Reset();

            SpriteComponent ballSprite = m_ball.Owner.FindComponent <SpriteComponent>();

            ballSprite.Visible = true;

            SetPlayersInitialPos(true);
            foreach (Player player in m_players)
            {
                player.BallTrigger.Enabled  = true;
                player.MagnetSensor.Enabled = true;
            }

            foreach (LauncherComponent launcher in Arena.Launchers)
            {
                launcher.Enabled = true;
            }
        }
        //The camera cage keeps players from reaching the edge of the screen
        public int SetupCameraCage()
        {
            var cameraCage = EntityManager.GetEntityManager().NewEntity();
//            var renderComponentCage = new RenderComponentBuilder()
////                .Position((int)((int)viewportDimensions.X * 0.5), (int)(viewportDimensions.Y * 0.5), 2)
//                .Position(0, 0, 2)
//                .Dimensions((int)(viewportDimensions.X * 0.8), (int)(viewportDimensions.Y * 0.8))
//                .Fixed(true).Build();
            var cageSprite = new SpriteComponent()
            {
                SpriteName = "dot"
            };
            var collisionComponentCage = new CollisionComponent()
            {
                IsCage = true,
            };
            var offsetComponent = new RenderOffsetComponent()
            {
                Offset = new Vector2((float)(viewportDimensions.X * 0.25), (float)(viewportDimensions.Y * 0.25))
            };

            //          ComponentManager.Instance.AddComponentToEntity(renderComponentCage, cameraCage);
//            ComponentManager.Instance.AddComponentToEntity(cageSprite, cameraCage);
            ComponentManager.Instance.AddComponentToEntity(collisionComponentCage, cameraCage);
            ComponentManager.Instance.AddComponentToEntity(offsetComponent, cameraCage);
            return(cameraCage);
        }
        public override void OnAdded(Entity entity)
        {
            base.OnAdded(entity);
            SpriteComponent sprite = entity.GetComponent <SpriteComponent>();

            sprite.Name = "spr/Link/Walk";
        }
Example #27
0
        public override void LoadContent()
        {
            Gravity = new Vector2(0f, Gravity.Y * 21);

            var playerSpriteComponent = new SpriteComponent(GameCore.Content.Load <Texture2D>("_test_/3d-woman"));

            _playerBodyComponent = new BodyComponent(playerSpriteComponent.TextureSize * playerSpriteComponent.Scale, EntityType.Dynamic, EntityShape.Rectangle)
            {
                FixedRotation = true,
            };

            CreateEntity("player", ScreenWidth * 0.5f, ScreenHeight * 0.2f)
            .AddComponent(playerSpriteComponent)
            .AddComponent(_playerBodyComponent);

            var groundSpriteComponent = new SpriteComponent(GameCore.GraphicsDevice.CreateTextureRectangle(ScreenWidth, 20, Color.Black));

            CreateEntity("ground", ScreenWidth * 0.5f, groundSpriteComponent.TextureSize.Y * 0.5f)
            .AddComponent(groundSpriteComponent)
            .AddComponent(new BodyComponent(groundSpriteComponent.TextureSize, EntityType.Static, EntityShape.Rectangle));

            _textComponent = ShowText(BuildDebugText(), y: 120f);

            base.LoadContent();
        }
Example #28
0
        //---------------------------------------------------------------------------

        public Weapon(string name, Guid parent) : base(name, parent)
        {
            TransformComponent transform = AddComponent <TransformComponent>();

            transform.Init(new Vector3(40, 1, 20), Vector2.One, Vector2.UnitY, 0.0f);

            SpriteComponent sprite = AddComponent <SpriteComponent>();

            sprite.Scale  = new Vector2(1.5f, 1.5f);
            sprite.Offset = new Vector2(-20, 20);

            //EngineComponent engine = AddComponent<EngineComponent>();

            //EnginePath pathRight = engine.AddPath(0, false);
            //pathRight.AddKeyframe(new Keyframe(new Vector3(15, 1, 80), 0.4f, 0.0f));
            //pathRight.AddKeyframe(new Keyframe(new Vector3(15, 1, 80), 2.0f, 0.12f));
            //pathRight.AddKeyframe(new Keyframe(new Vector3(15, 1, 80), 0.4f, 0.24f));

            //EnginePath pathLeft = engine.AddPath(1, false);
            //pathLeft.AddKeyframe(new Keyframe(new Vector3(-15, 1, 80), -0.4f, 0.0f));
            //pathLeft.AddKeyframe(new Keyframe(new Vector3(-15, 1, 80), -2.0f, 0.12f));
            //pathLeft.AddKeyframe(new Keyframe(new Vector3(-15, 1, 80), -0.4f, 0.24f));

            Init();
        }
        public void SetupBackgroundTiles(int width, int height)
        {
            for (var x = 0; x < width; x++)
            {
                for (var y = 0; y < height; y++)
                {
                    var entityId3 = EntityManager.GetEntityManager().NewEntity();
                    //var renderComponent3 = new RenderComponentBuilder()
                    //    .Position(x * 1000, y * 1000, 1)
                    //    .Dimensions(1000, 1000).Build();
                    //  ComponentManager.Instance.AddComponentToEntity(renderComponent3, entityId3);
                    var renderComponent3 = new RenderComponent()
                    {
                        DimensionsComponent = new DimensionsComponent()
                        {
                            Height = 1000, Width = 1000
                        }
                    };
                    var positionComponent3 = new PositionComponent()
                    {
                        Position = new Vector2(x * 1000, y * 1000), ZIndex = 1
                    };

                    var spriteComponent3 = new SpriteComponent()
                    {
                        SpriteName = "Grass"
                    };
                    ComponentManager.Instance.AddComponentToEntity(positionComponent3, entityId3);
                    ComponentManager.Instance.AddComponentToEntity(renderComponent3, entityId3);
                    ComponentManager.Instance.AddComponentToEntity(spriteComponent3, entityId3);
                }
            }
        }
        /// <summary>
        /// Parses an xml sprite
        /// </summary>
        /// <param name="spriteElement">The sprite element to parse.</param>
        /// <returns></returns>
        private SpriteComponent ParseSpriteComponent(XElement spriteElement)
        {
            EntityIoLogger.WriteIoInformation(spriteElement, IoType.Component, _currentComponent.LineNumber());

            var sprite = new SpriteComponent()
            {
                Height       = ParseFloat(spriteElement.Element("height"), "height"),
                Width        = ParseFloat(spriteElement.Element("width"), "width"),
                SourceRect   = ParseNullableRectangle(spriteElement.Element("texturerect"), "texturerect"),
                Color        = ParseColor(spriteElement.Element("color"), "color"),
                Rotatation   = ParseFloat(spriteElement.Element("rotation"), "rotation"),
                Scale        = ParseVector2(spriteElement.Element("scale"), "scale", Vector2.One),
                SpriteEffect = ParseSpriteEffects(spriteElement.Element("spriteeffects")),
                DepthLayer   = ParseFloat(spriteElement.Element("depth"), "depth"),
                Texture      = _renderableController.GetTextureByFilename(spriteElement.Element("texture").Value),
            };

            /* If the origin is set in the XML file, use that. Otherwise,
             * default to the middle of the sprite. */
            sprite.Origin = spriteElement.Element("origin") == null
                                ? new Vector2(sprite.Texture.Width / 2, sprite.Texture.Height / 2)
                                : ParseVector2(spriteElement.Element("origin"), "origin");

            return(sprite);
        }
Example #31
0
        public Enemy()
            : base(new Cog.Vector2(32f, 32f))
        {
            timeSinceJump = Engine.RandomFloat() * -.1f;

            sc = SpriteComponent.RegisterOn(this, Program.Pixel);
            sc.Origin = Vector2.One / 2f;
            sc.Color = Program.Foreground;
        }
Example #32
0
        public Snapshot()
        {
            Size = new Cog.Vector2(256f, 96f);
            Sprite = SpriteComponent.RegisterOn(this, Program.Pixel);
            Sprite.Origin = new Vector2(0f, 0f);
            Sprite.Color = Program.Foreground;
            Sprite.Color.A = 0;
            Sprite.Scale = Size;

            RegisterEvent<UpdateEvent>(0, Update);
        }
Example #33
0
        public Player()
            : base(new Cog.Vector2(24f, 64f))
        {
            texture = Program.Player;
            sprite = SpriteComponent.RegisterOn(this, texture);
            sprite.Origin = new Vector2(textureSize.X / 2f, textureSize.Y / 2f);
            sprite.Color = Program.Foreground;

            RegisterEvent<KeyDownEvent>((int)Keyboard.Key.R, 0, Restart);

            Depth = -1;
        }
Example #34
0
        protected override async Task LoadContent()
        {
            await base.LoadContent();
            
            // sets the virtual resolution
            areaSize = new Vector2(GraphicsDevice.BackBuffer.Width, GraphicsDevice.BackBuffer.Height);

            // Creates the camera
            CameraComponent.UseCustomProjectionMatrix = true;
            CameraComponent.ProjectionMatrix = SpriteBatch.CalculateDefaultProjection(new Vector3(areaSize, 200));

            // Load assets
            groundSprites = Asset.Load<SpriteGroup>("GroundSprite");
            ballSprite1 = Asset.Load<Texture>("Sphere1");
            ballSprite2 = Asset.Load<Texture>("Sphere2");
            ball = Asset.Load<Entity>("Ball");

            // create fore/background entities
            foreground = new Entity();
            background = new Entity();
            foreground.Add(new SpriteComponent { SpriteProvider = new SpriteFromSpriteGroup { SpriteGroup = groundSprites }, CurrentFrame = 1 });
            background.Add(new SpriteComponent { SpriteProvider = new SpriteFromSpriteGroup { SpriteGroup = groundSprites }, CurrentFrame = 0 });

            Scene.AddChild(ball);
            Scene.AddChild(foreground);
            Scene.AddChild(background);

            spriteComponent = ball.Get(SpriteComponent.Key);
            transfoComponent = ball.Get(TransformComponent.Key);

            transfoComponent.Position.X = areaSize.X / 2;
            transfoComponent.Position.Y = areaSize.Y / 2;

            var decorationScalings = new Vector3(areaSize.X, areaSize.Y, 1);
            background.Get(TransformComponent.Key).Scale = decorationScalings;
            foreground.Get(TransformComponent.Key).Scale = decorationScalings;
            background.Get(TransformComponent.Key).Position = new Vector3(0, 0, -1);
            foreground.Get(TransformComponent.Key).Position = new Vector3(0, areaSize.Y, 1);

            SpriteAnimation.Play(spriteComponent, 0, spriteComponent.SpriteProvider.SpritesCount-1, AnimationRepeatMode.LoopInfinite, 30);
        }
Example #35
0
        protected override async Task LoadContent()
        {
            await base.LoadContent();
            
            // sets the virtual resolution
            areaSize = new Vector2(GraphicsDevice.BackBuffer.Width, GraphicsDevice.BackBuffer.Height);

            // Creates the camera
            CameraComponent.UseCustomProjectionMatrix = true;
            CameraComponent.ProjectionMatrix = Matrix.OrthoRH(areaSize.X, areaSize.Y, -2, 2);

            // Load assets
            groundSprites = Asset.Load<SpriteSheet>("GroundSprite");
            ballSprite1 = Asset.Load<SpriteSheet>("BallSprite1");
            ballSprite2 = Asset.Load<SpriteSheet>("BallSprite2");
            ball = new Entity { new SpriteComponent { SpriteProvider = new SpriteFromSheet { Sheet = Asset.Load<SpriteSheet>("BallSprite1") } } };

            // create fore/background entities
            foreground = new Entity();
            background = new Entity();
            foreground.Add(new SpriteComponent { SpriteProvider = new SpriteFromSheet { Sheet = groundSprites }, CurrentFrame = 1 });
            background.Add(new SpriteComponent { SpriteProvider = new SpriteFromSheet { Sheet = groundSprites }, CurrentFrame = 0 });

            Scene.Entities.Add(ball);
            Scene.Entities.Add(foreground);
            Scene.Entities.Add(background);

            spriteComponent = ball.Get<SpriteComponent>();
            transfoComponent = ball.Get<TransformComponent>();
            
            var decorationScalings = new Vector3(areaSize.X, areaSize.Y, 1);
            background.Get<TransformComponent>().Scale = decorationScalings;
            foreground.Get<TransformComponent>().Scale = decorationScalings/2;
            background.Get<TransformComponent>().Position = new Vector3(0, 0, -1);
            foreground.Get<TransformComponent>().Position = new Vector3(0, 0, 1);

            SpriteAnimation.Play(spriteComponent, 0, spriteComponent.SpriteProvider.SpritesCount-1, AnimationRepeatMode.LoopInfinite, 30);
        }
Example #36
0
        private void LoadEntity(XElement xml)
        {
            GameEntity entity = new GameEntity();
            string name = xml.RequireAttribute("name").Value;

            if (entities.ContainsKey(name)) throw new GameXmlException(xml, "You have defined two entities both named \"" + name + "\".");

            entity.Name = name;
            entity.MaxAlive = xml.TryAttribute<int>("limit", 50);

            SpriteComponent spritecomp = null;
            PositionComponent poscomp = null;
            StateComponent statecomp = new StateComponent();
            entity.AddComponent(statecomp);

            try
            {
                foreach (XElement xmlComp in xml.Elements())
                {
                    switch (xmlComp.Name.LocalName)
                    {
                        case "EditorData":
                            break;

                        case "Tilesheet":
                            if (spritecomp == null)
                            {
                                spritecomp = new SpriteComponent();
                                entity.AddComponent(spritecomp);
                            }
                            if (poscomp == null)
                            {
                                poscomp = new PositionComponent();
                                entity.AddComponent(poscomp);
                            }
                            spritecomp.LoadTilesheet(xmlComp);
                            break;

                        case "Trigger":
                            statecomp.LoadStateTrigger(xmlComp);
                            break;

                        case "Sprite":
                            if (spritecomp == null)
                            {
                                spritecomp = new SpriteComponent();
                                entity.AddComponent(spritecomp);
                            }
                            if (poscomp == null)
                            {
                                poscomp = new PositionComponent();
                                entity.AddComponent(poscomp);
                            }
                            spritecomp.LoadXml(xmlComp);
                            break;

                        case "Position":
                            if (poscomp == null)
                            {
                                poscomp = new PositionComponent();
                                entity.AddComponent(poscomp);
                            }
                            poscomp.LoadXml(xmlComp);
                            break;

                        case "Death":
                            entity.OnDeath += EffectParser.LoadTriggerEffect(xmlComp);
                            break;

                        case "GravityFlip":
                            entity.IsGravitySensitive = xmlComp.GetValue<bool>();
                            break;

                        default:
                            entity.GetOrCreateComponent(xmlComp.Name.LocalName).LoadXml(xmlComp);
                            break;
                    }
                }
            }
            catch (GameXmlException ex)
            {
                ex.Entity = name;
                throw;
            }

            entities.Add(name, entity);
        }
 public void SetSprite(string spriteName)
 {
     if(sprite)
         sprite.spriteName = spriteName;
     else
         sprite = new SpriteComponent(spriteName, this);
 }
        /// <summary>
        /// Allows the game to perform any initialization it needs to before starting to run.
        /// This is where it can query for any required services and load any non-graphic
        /// related content.  Calling base.Initialize will enumerate through any components
        /// and initialize them as well.
        /// </summary>
        protected override void Initialize()
        {
            AggregateFactory = new AggregateFactory(this);
            WeaponFactory = new WeaponFactory(this);
            DoorFactory = new DoorFactory(this);
            RoomFactory = new RoomFactory(this);
            CollectableFactory = new CollectibleFactory(this);
            WallFactory = new WallFactory(this);
            EnemyFactory = new EnemyFactory(this);

            // Initialize Components
            PlayerComponent = new PlayerComponent();
            LocalComponent = new LocalComponent();
            RemoteComponent = new RemoteComponent();
            PositionComponent = new PositionComponent();
            MovementComponent = new MovementComponent();
            MovementSpriteComponent = new MovementSpriteComponent();
            SpriteComponent = new SpriteComponent();
            DoorComponent = new DoorComponent();
            RoomComponent = new RoomComponent();
            HUDSpriteComponent = new HUDSpriteComponent();
            HUDComponent = new HUDComponent();
            InventoryComponent = new InventoryComponent();
            InventorySpriteComponent = new InventorySpriteComponent();
            ContinueNewGameScreen = new ContinueNewGameScreen(graphics, this);
            EquipmentComponent = new EquipmentComponent();
            WeaponComponent = new WeaponComponent();
            BulletComponent = new BulletComponent();
            PlayerInfoComponent = new PlayerInfoComponent();
            WeaponSpriteComponent = new WeaponSpriteComponent();
            StatsComponent = new StatsComponent();
            EnemyAIComponent = new EnemyAIComponent();
            CollectibleComponent = new CollectibleComponent();
            CollisionComponent = new CollisionComponent();
            TriggerComponent = new TriggerComponent();
            EnemyComponent = new EnemyComponent();
            QuestComponent = new QuestComponent();
            LevelManager = new LevelManager(this);
            SpriteAnimationComponent = new SpriteAnimationComponent();
            SkillProjectileComponent = new SkillProjectileComponent();
            SkillAoEComponent = new SkillAoEComponent();
            SkillDeployableComponent = new SkillDeployableComponent();

            //TurretComponent = new TurretComponent();
            //TrapComponent = new TrapComponent();
            //PortableShopComponent = new PortableShopComponent();
            //PortableShieldComponent = new PortableShieldComponent();
            //MotivateComponent =  new MotivateComponent();
            //FallbackComponent = new FallbackComponent();
            //ChargeComponent = new ChargeComponent();
            //HealingStationComponent = new HealingStationComponent();
            //ExplodingDroidComponent = new ExplodingDroidComponent();

            base.Initialize();
        }
        /// <summary>
        /// Allows the game to perform any initialization it needs to before starting to run.
        /// This is where it can query for any required services and load any non-graphic
        /// related content.  Calling base.Initialize will enumerate through any components
        /// and initialize them as well.
        /// </summary>
        protected override void Initialize()
        {
            AggregateFactory = new AggregateFactory(this);
            WeaponFactory = new WeaponFactory(this);
            DoorFactory = new DoorFactory(this);
            RoomFactory = new RoomFactory(this);
            CollectableFactory = new CollectibleFactory(this);
            WallFactory = new WallFactory(this);
            EnemyFactory = new EnemyFactory(this);
            SkillEntityFactory = new SkillEntityFactory(this);
            NPCFactory = new NPCFactory(this);

            // Initialize Components
            PlayerComponent = new PlayerComponent();
            LocalComponent = new LocalComponent();
            RemoteComponent = new RemoteComponent();
            PositionComponent = new PositionComponent();
            MovementComponent = new MovementComponent();
            MovementSpriteComponent = new MovementSpriteComponent();
            SpriteComponent = new SpriteComponent();
            DoorComponent = new DoorComponent();
            RoomComponent = new RoomComponent();
            HUDSpriteComponent = new HUDSpriteComponent();
            HUDComponent = new HUDComponent();
            InventoryComponent = new InventoryComponent();
            InventorySpriteComponent = new InventorySpriteComponent();
            ContinueNewGameScreen = new ContinueNewGameScreen(graphics, this);
            EquipmentComponent = new EquipmentComponent();
            WeaponComponent = new WeaponComponent();
            BulletComponent = new BulletComponent();
            PlayerInfoComponent = new PlayerInfoComponent();
            WeaponSpriteComponent = new WeaponSpriteComponent();
            StatsComponent = new StatsComponent();
            EnemyAIComponent = new EnemyAIComponent();
            NpcAIComponent = new NpcAIComponent();

            CollectibleComponent = new CollectibleComponent();
            CollisionComponent = new CollisionComponent();
            TriggerComponent = new TriggerComponent();
            EnemyComponent = new EnemyComponent();
            NPCComponent = new NPCComponent();
            //QuestComponent = new QuestComponent();
            LevelManager = new LevelManager(this);
            SpriteAnimationComponent = new SpriteAnimationComponent();
            SkillProjectileComponent = new SkillProjectileComponent();
            SkillAoEComponent = new SkillAoEComponent();
            SkillDeployableComponent = new SkillDeployableComponent();
            SoundComponent = new SoundComponent();
            ActorTextComponent = new ActorTextComponent();
            TurretComponent = new TurretComponent();
            TrapComponent = new TrapComponent();
            ExplodingDroidComponent = new ExplodingDroidComponent();
            HealingStationComponent = new HealingStationComponent();
            PortableShieldComponent = new PortableShieldComponent();
            PortableStoreComponent = new PortableStoreComponent();
            ActiveSkillComponent = new ActiveSkillComponent();
            PlayerSkillInfoComponent = new PlayerSkillInfoComponent();

            Quests = new List<Quest>();

            #region Initialize Effect Components
            AgroDropComponent = new AgroDropComponent();
            AgroGainComponent = new AgroGainComponent();
            BuffComponent = new BuffComponent();
            ChanceToSucceedComponent = new ChanceToSucceedComponent();
            ChangeVisibilityComponent = new ChangeVisibilityComponent();
            CoolDownComponent = new CoolDownComponent();
            DamageOverTimeComponent = new DamageOverTimeComponent();
            DirectDamageComponent = new DirectDamageComponent();
            DirectHealComponent = new DirectHealComponent();
            FearComponent = new FearComponent();
            HealOverTimeComponent = new HealOverTimeComponent();
            InstantEffectComponent = new InstantEffectComponent();
            KnockBackComponent = new KnockBackComponent();
            TargetedKnockBackComponent = new TargetedKnockBackComponent();
            ReduceAgroRangeComponent = new ReduceAgroRangeComponent();
            ResurrectComponent = new ResurrectComponent();
            StunComponent = new StunComponent();
            TimedEffectComponent = new TimedEffectComponent();
            EnslaveComponent = new EnslaveComponent();
            CloakComponent = new CloakComponent();
            #endregion

            base.Initialize();
        }
Example #40
0
        /// <summary>
        /// LoadContent will be called once per game and is the place to load
        /// all of your content.
        /// </summary>
        protected override void LoadContent()
        {
            // Create a new SpriteBatch, which can be used to draw textures.
            spriteBatch = new SpriteBatch(GraphicsDevice);
            camera = new Camera2D(new Vector2(0f, 0f), new Vector2(1f), new Vector2(3f));

            this.Services.AddService(typeof(SpriteBatch), spriteBatch);
            this.Services.AddService(typeof(Camera2D), camera);

            texture1 = this.Content.Load<Texture2D>("tex");
            TileCatalog cat1 = new TileCatalog(texture1, 15, 15);

            Random rand = new Random(DateTime.Now.Millisecond);
            TileMap map1 = new TileMap(100, 100);
            for (int i = 0; i < 100; i++)
            {
                for (int j = 0; j < 100; j++)
                {
                    map1.SetTile(i, j, new Tile(rand.Next(1, cat1.TilePositions.Count)));
                }
            }

            TileLayer layer1 = new TileLayer(cat1, map1, 0.5f, false, new Vector2(0, 0), new Vector2(1f, 1f), new Vector2(3f), false, LayerMovementDirection.None);

            texture2 = this.Content.Load<Texture2D>("tiles2");

            TileCatalog cat2 = new TileCatalog(texture2, 48, 48);
            TileMap map2 = new TileMap(10, 500);
            for (int i = 0; i < 10; i++)
            {
                for (int j = 0; j < 500; j++)
                {
                    map2.SetTile(i, j, new Tile(rand.Next(1, cat2.TilePositions.Count)));
                }
            }
            TileLayer layer2 = new TileLayer(cat2, map2, 1.0f, false, new Vector2(0, 0), new Vector2(1f, 1f), new Vector2(3f), true, LayerMovementDirection.Up);

            scene = new TileScene();
            scene.AddLayer(layer2);
            scene.AddLayer(layer1);

            TileComponent component = new TileComponent(this, scene, baseScreenSize, resultionIndependent);
            this.Components.Add(component);

            TextureLayer tLayer1 = new TextureLayer(this.texture1, 1f, false, new Vector2(20f), Vector2.One, new Vector2(1.5f,1.5f), true, Anchor.LowerRight);
            TextureLayer tLayer2 = new TextureLayer(this.texture2, 0.5f, false, new Vector2(10f), Vector2.One, new Vector2(5f), true, Anchor.LowerLeft);

            TextureScene tScene = new TextureScene();
            tScene.AddLayer(tLayer1);
            tScene.AddLayer(tLayer2);
            TextureComponent tComponent = new TextureComponent(this, tScene, baseScreenSize, resultionIndependent);
            this.Components.Add(tComponent);

            texture1 = this.Content.Load<Texture2D>("megax");
            SpriteCatalog scatalog = new SpriteCatalog(texture1, 36, 42);

            SpriteSequence[] spriteSecuences = new SpriteSequence[2];

            SpriteSequence spriteSecuence1 = new SpriteSequence(7, 0);
            spriteSecuence1.StepTime = 400;
            spriteSecuence1.SetFrame(0,new SpriteFrame(1));
            spriteSecuence1.SetFrame(1, new SpriteFrame(1));
            spriteSecuence1.SetFrame(2, new SpriteFrame(1));
            spriteSecuence1.SetFrame(3, new SpriteFrame(1));
            spriteSecuence1.SetFrame(4, new SpriteFrame(2));
            spriteSecuence1.SetFrame(5, new SpriteFrame(3));
            spriteSecuence1.SetFrame(6, new SpriteFrame(1));
            spriteSecuences[0] = spriteSecuence1;

            SpriteSequence spriteSecuence2 = new SpriteSequence(10, 0);
            spriteSecuence2.StepTime = 90;
            spriteSecuence2.SetFrame(0, new SpriteFrame(5));
            spriteSecuence2.SetFrame(1, new SpriteFrame(6));
            spriteSecuence2.SetFrame(2, new SpriteFrame(7));
            spriteSecuence2.SetFrame(3, new SpriteFrame(8));
            spriteSecuence2.SetFrame(4, new SpriteFrame(9));
            spriteSecuence2.SetFrame(5, new SpriteFrame(10));
            spriteSecuence2.SetFrame(6, new SpriteFrame(11));
            spriteSecuence2.SetFrame(7, new SpriteFrame(12));
            spriteSecuence2.SetFrame(8, new SpriteFrame(13));
            spriteSecuence2.SetFrame(9, new SpriteFrame(14));

            spriteSecuences[1] = spriteSecuence2;

            SpriteLayer spLayer = new SpriteLayer(scatalog, spriteSecuences, 1.0f, true, new Vector2(10f), Vector2.One, Vector2.Zero, SpriteEffects.None, true, Anchor.None);
            spLayer.CurrentSequence = 2;
            SpriteScene spScene = new SpriteScene();
            spScene.AddLayer(spLayer);
            SpriteComponent spComponent = new SpriteComponent(this, spScene, baseScreenSize, resultionIndependent);
            this.Components.Add(spComponent);
        }
Example #41
0
        private static SpriteComponent CreateSpriteComponent(int nbOfFrames)
        {
            var spriteGroup = new SpriteGroup { Images = new List<Sprite>() };
            var sprite = new SpriteComponent { SpriteProvider = new SpriteFromSpriteGroup { SpriteGroup = spriteGroup } };

            // add a few sprites
            for (int i = 0; i < nbOfFrames; i++)
            {
                spriteGroup.Images.Add(new Sprite(Guid.NewGuid().ToString()));
            }

            return sprite;
        }
Example #42
0
 public RotateAnimation(SpriteComponent i_BoundSprite)
     : base(i_BoundSprite)
 {
     m_TimeLeft = r_FadeEffectTimeSpan;
     m_AnimationTime = r_FadeEffectTimeSpan;
 }
        /// <summary>
        /// Allows the game to perform any initialization it needs to before starting to run.
        /// This is where it can query for any required services and load any non-graphic
        /// related content.  Calling base.Initialize will enumerate through any components
        /// and initialize them as well.
        /// </summary>
        protected override void Initialize()
        {
            AggregateFactory = new AggregateFactory(this);

            // Initialize Components
            PlayerComponent = new PlayerComponent();
            LocalComponent = new LocalComponent();
            RemoteComponent = new RemoteComponent();
            PositionComponent = new PositionComponent();
            MovementComponent = new MovementComponent();
            MovementSpriteComponent = new MovementSpriteComponent();
            SpriteComponent = new SpriteComponent();
            DoorComponent = new DoorComponent();
            RoomComponent = new RoomComponent();
            HUDSpriteComponent = new HUDSpriteComponent();
            HUDComponent = new HUDComponent();

            CharacterSelectionScreen = new CharacterSelectionScreen(graphics, this);

            LevelManager = new LevelManager(this);

            base.Initialize();
        }
        private void LoadSpriteComponent(GameEntity entity, SpriteComponentInfo componentInfo)
        {
            var spritecomp = new SpriteComponent();
            entity.AddComponent(spritecomp);

            spritecomp.LoadInfo(componentInfo);
        }
        /// <summary>
        /// Allows the game to perform any initialization it needs to before starting to run.
        /// This is where it can query for any required services and load any non-graphic
        /// related content.  Calling base.Initialize will enumerate through any components
        /// and initialize them as well.
        /// </summary>
        protected override void Initialize()
        {
            AggregateFactory = new AggregateFactory(this);

            // Initialize Components
            PlayerComponent = new PlayerComponent();
            LocalComponent = new LocalComponent();
            RemoteComponent = new RemoteComponent();
            PositionComponent = new PositionComponent();
            MovementComponent = new MovementComponent();
            MovementSpriteComponent = new MovementSpriteComponent();
            SpriteComponent = new SpriteComponent();

            base.Initialize();
        }