コード例 #1
0
        public void SetUp()
        {
            loader = Substitute.For <IEntityDataProvider>();
            loader.GetData().Returns(new List <string>());

            engine = new EntityEngine(loader);
        }
コード例 #2
0
        private void LoadVaultData(ISystemContainer systemContainer)
        {
            var vaultFiles = _vaultDataProvider.GetData();

            foreach (var vaultFile in vaultFiles)
            {
                var vault = MapSerializer.Deserialize(systemContainer, vaultFile);
                systemContainer.MapSystem.AddVault(vault);
            }
        }
コード例 #3
0
        private void SetKeyBindings()
        {
            var keyBindingsData = keyBindingsDataProvider.GetData();

            var bindings = EntitySerializer.DeserializeAll(_systemContainer, keyBindingsData).SingleOrDefault();

            if (bindings != null)
            {
                _keyBindings = bindings.Components.OfType <KeyBinding>().ToList();
            }
            else
            {
                _keyBindings = new List <KeyBinding>();
            }
        }
コード例 #4
0
        public void Initialise_LoadsStaticEntities()
        {
            var systemContainer = new SystemContainer(new EntityDataProviders {
                PrototypeEntityDataProvider = loader
            });

            systemContainer.EntityEngine = engine;
            IEntity loadedEntity = null;

            loader.GetData().Returns(new List <string> {
                @"""TestEntity"""
            });

            engine.Initialise(systemContainer);

            (loadedEntity as Entity)?.IsStatic.Should().BeTrue();
        }
コード例 #5
0
        private ISpriteManager SetUpSpriteManager(IEntityDataProvider graphicsDataProvider)
        {
            var spriteManager = new BLTSpriteManager();

            var graphicsData = graphicsDataProvider.GetData();

            foreach (var spriteCollection in graphicsData)
            {
                var entity = EntitySerializer.DeserializeOutsideEngine(spriteCollection);

                foreach (SpriteSheet sheet in entity.Components)
                {
                    switch (sheet.Type)
                    {
                    case "SingleSprite":
                        spriteManager.AddAnimated(_spriteLoader.LoadSingleSprite(sheet.Name, sheet.Path, sheet.SpriteWidth, sheet.SpriteHeight, sheet.Scaling, TILE_SPACING, sheet.Frames.Count), sheet.Frames);
                        break;

                    case "TilesetBox":
                        spriteManager.AddAnimated(_spriteLoader.LoadTileset_BoxType(sheet.Name, sheet.Path, sheet.SpriteWidth, sheet.SpriteHeight, sheet.Scaling, TILE_SPACING, sheet.Frames.Count), sheet.Frames);
                        break;

                    case "TilesetWall":
                        spriteManager.Add(_spriteLoader.LoadTileset_WallType(sheet.Name, sheet.Path, sheet.SpriteWidth, sheet.SpriteHeight, sheet.Scaling, TILE_SPACING));
                        break;

                    case "FourDirection":
                        spriteManager.Add(_spriteLoader.LoadFourDirectionSprite(sheet.Name, sheet.Path, sheet.SpriteWidth, sheet.SpriteHeight, sheet.Scaling, TILE_SPACING));
                        break;

                    default:
                        throw new Exception($"Unknown sprite sheet type '{sheet.Type}' in SetUpSpriteManager");
                    }
                }
            }

            return(spriteManager);
        }
コード例 #6
0
        private void AddPlayerToWorld(ISystemContainer systemContainer, MapCoordinate spawnPoint, CharacterCreationForm form)
        {
            var playerData = _playerEntityDataProvider.GetData().Single();

            var player = EntitySerializer.Deserialize(systemContainer, playerData);

            systemContainer.PositionSystem.SetPosition(player, spawnPoint);
            player.Get <Description>().Name = form.Name;

            SetInitialStats(systemContainer, form, player);

            systemContainer.EntityEngine.AddComponent(player, new HasClass {
                Class = form.Class
            });

            LearnClassSkills(systemContainer, form, player);
            GiveStartingGear(systemContainer, form, player);

            SetStartDetails(systemContainer, form, player);

            PrintWelcomeMessage(systemContainer, form, player);

            systemContainer.PlayerSystem.Player = player;
        }
コード例 #7
0
        private void LoadEntityData(ISystemContainer systemContainer)
        {
            var worldData = _worldEntityDataProvider.GetData();

            EntitySerializer.DeserializeAll(systemContainer, worldData);
        }