示例#1
0
        public async Task TestFurnaceRecipeMatcher()
        {
            var loader = new FurnaceRecipeLoader();

            using (var sr = new StreamReader(File.OpenRead(Path.Combine(RootDir, "furnace.txt"))))
            {
                await loader.LoadRecipes(sr);
            }

            var matcher = new FurnaceRecipeMatcher(loader.Recipes, loader.Fuels);
            var recipe  = matcher.FindRecipe(
                new Slot {
                BlockId = (short)BlockStates.Wood().Id, ItemCount = 1
            });
            var fuel = matcher.FindFuel(
                new Slot {
                BlockId = (short)BlockStates.Wood().Id, ItemCount = 1
            });

            Assert.NotNull(recipe);
            Assert.Equal(ItemStates.Coal(CoalType.Charcoal), new ItemState {
                Id = (uint)recipe.Output.BlockId, MetaValue = (uint)recipe.Output.ItemDamage
            });
            Assert.Equal((short)BlockStates.Wood().Id, fuel.Slot.BlockId);
        }
        public override async Task OnActivateAsync()
        {
            var file = _fileProvider.GetFileInfo(_recipesFileName);

            var recipeLoader = new FurnaceRecipeLoader();

            using (var sr = new StreamReader(file.CreateReadStream()))
                await recipeLoader.LoadRecipes(sr);
            _recipeMatcher = new FurnaceRecipeMatcher(recipeLoader.Recipes, recipeLoader.Fuels);
        }
示例#3
0
        public async Task TestFurnaceRecipeLoader()
        {
            var loader = new FurnaceRecipeLoader();

            using (var sr = new StreamReader(File.OpenRead(Path.Combine(RootDir, "furnace.txt"))))
            {
                await loader.LoadRecipes(sr);
            }

            var recipes = loader.Recipes;

            Assert.Equal(2, recipes.Count);
            var fuels = loader.Fuels;

            Assert.Equal(4, fuels.Count);
        }