예제 #1
0
        public virtual void Init()
        {
            m_initialized = true;

            // Init World
            var serializer = new TmxSerializer();
            Map map        = serializer.Deserialize(m_gameSetup.SaveFile);

            m_gameSetup.SaveFile.Close();

            World = new ToyWorld(map, m_gameSetup.TilesetFile);
            World.LuaThoroughSync = LuaThoroughSync;

            m_avatars = new Dictionary <int, IAvatar>();
            foreach (int avatarId in World.GetAvatarsIds())
            {
                m_avatars.Add(avatarId, World.GetAvatar(avatarId));
            }

            m_avatarControllers = new Dictionary <int, AvatarController>();
            foreach (KeyValuePair <int, IAvatar> avatar in m_avatars)
            {
                var avatarController = new AvatarController(avatar.Value);
                m_avatarControllers.Add(avatar.Key, avatarController);
            }

            // Init rendering
            Renderer.Init();
            Renderer.CreateWindow("TestGameWindow", 1024, 1024);
            Renderer.CreateContext();
        }
예제 #2
0
        public void WorldUpdatesAutoupdateables()
        {
            var tmxStream = FileStreams.SmallTmx();
            var tilesetTableStreamReader = new StreamReader(FileStreams.TilesetTableStream());

            TmxSerializer   serializer = new TmxSerializer();
            Map             map        = serializer.Deserialize(tmxStream);
            TestingToyWorld toyWorld   = new TestingToyWorld(map, tilesetTableStreamReader);

            toyWorld.SetRegister(new AutoupdateRegister());

            Mock <IAutoupdateableGameActor> mock1 = new Mock <IAutoupdateableGameActor>();
            Mock <IAutoupdateableGameActor> mock2 = new Mock <IAutoupdateableGameActor>();

            toyWorld.AutoupdateRegister.Register(mock1.Object, 1);
            toyWorld.AutoupdateRegister.Register(mock2.Object, 2);

            // Act
            toyWorld.Update();

            // Assert
            mock1.Verify(x => x.Update(It.IsAny <Atlas>(), It.IsAny <TilesetTable>()));
            mock2.Verify(x => x.Update(It.IsAny <Atlas>(), It.IsAny <TilesetTable>()), Times.Never());

            // Act
            toyWorld.Update();

            // Assert
            mock2.Verify(x => x.Update(It.IsAny <Atlas>(), It.IsAny <TilesetTable>()));
        }
예제 #3
0
        public void WorldWithNullTilesetThrows()
        {
            Stream tmxStream = FileStreams.SmallTmx();

            TmxSerializer serializer = new TmxSerializer();
            Map           map        = serializer.Deserialize(tmxStream);

            Assert.Throws <ArgumentNullException>(() => new ToyWorld(map, null));
        }
예제 #4
0
        public ToyWorldTests()
        {
            Stream       tmxStream = FileStreams.SmallTmx();
            StreamReader tilesetTableStreamReader = new StreamReader(FileStreams.TilesetTableStream());

            TmxSerializer serializer = new TmxSerializer();
            Map           map        = serializer.Deserialize(tmxStream);

            m_world = new ToyWorld(map, tilesetTableStreamReader);
        }
예제 #5
0
        public AtlasTests()
        {
            Stream       tmxStream = FileStreams.SmallPickupTmx();
            StreamReader tilesetTableStreamReader = new StreamReader(FileStreams.TilesetTableStream());

            TmxSerializer serializer = new TmxSerializer();
            Map           map        = serializer.Deserialize(tmxStream);
            ToyWorld      world      = new ToyWorld(map, tilesetTableStreamReader);

            m_atlas = world.Atlas;
        }
예제 #6
0
        public MapLoaderTests()
        {
            // initiate streamReaders
            var tmxMemoryStream          = FileStreams.SmallTmx();
            var tilesetTableMemoryStream = FileStreams.TilesetTableStream();

            var tilesetTableStreamReader = new StreamReader(tilesetTableMemoryStream);

            var serializer = new TmxSerializer();
            Map map        = serializer.Deserialize(tmxMemoryStream);

            var tilesetTable = new TilesetTable(map, tilesetTableStreamReader);

            // create atlas
            m_atlas = MapLoader.LoadMap(map, tilesetTable, (GameActor actor) => { });
        }
예제 #7
0
        public void AvatarLoosingEnergy()
        {
            Stream       tmxStream = FileStreams.SmallPickupTmx();
            StreamReader tilesetTableStreamReader = new StreamReader(FileStreams.TilesetTableStream());

            TmxSerializer serializer = new TmxSerializer();
            Map           map        = serializer.Deserialize(tmxStream);

            m_worldPickupWorld = new ToyWorld(map, tilesetTableStreamReader);

            m_eater = m_worldPickupWorld.GetAvatar(m_worldPickupWorld.GetAvatarsIds()[0]);

            // Act
            for (int i = 0; i < 100; i++)
            {
                m_eater.Update(m_worldPickupWorld.Atlas, It.IsAny <TilesetTable>());
            }

            // Assert
            Assert.True(m_eater.Energy < 1);
        }
예제 #8
0
        public void AvatarCanPickUp()
        {
            Stream       tmxStream = FileStreams.SmallPickupTmx();
            StreamReader tilesetTableStreamReader = new StreamReader(FileStreams.TilesetTableStream());

            TmxSerializer serializer = new TmxSerializer();
            Map           map        = serializer.Deserialize(tmxStream);

            m_worldPickupWorld = new ToyWorld(map, tilesetTableStreamReader);

            m_avatarPickuper        = m_worldPickupWorld.GetAvatar(m_worldPickupWorld.GetAvatarsIds()[0]);
            m_avatarPickuper.PickUp = true;

            Assert.Equal(null, m_avatarPickuper.Tool);

            // Act
            m_avatarPickuper.Update(m_worldPickupWorld.Atlas, It.IsAny <TilesetTable>());

            // Assert
            Assert.IsType <Apple>(m_avatarPickuper.Tool);
            Assert.False(m_avatarPickuper.PickUp);
        }