示例#1
0
        private static void TestCalculate()
        {
            WorldParser        world       = new WorldParser(@"Jsons\World.json");
            LoginResultParser  loginResult = new LoginResultParser(@"Jsons\LoginResult.json", false);
            LocalizationParser dict        = new LocalizationParser(@"Jsons\Runes.json");
            DropRateCalculator calc        = new DropRateCalculator();
            var result = calc.Calculate(loginResult.pChests, world, dict);

            List <dynamic> output = new List <dynamic>();

            foreach (var r in result)
            {
                var     key         = r.Key.Split('|');
                int     chestNumber = int.Parse(key[0]);
                string  type        = key[1];
                string  name        = key[2];
                var     value       = r.Value;
                dynamic e           = new ExpandoObject();
                e.ChestNumber = chestNumber;
                e.Name        = name;
                e.Type        = type;
                e.Expectation = value.ExpectationInAll;
                e.Chance      = value.ChanceInAll;
                e.Stars       = value.Stars;
                output.Add(e);
            }
            var arr  = output.Select(e => $"{e.ChestNumber},{e.Name},{e.Type},{e.Chance},{e.Expectation},{e.Stars}").ToArray();
            var text = string.Join(Environment.NewLine, arr);

            text = "ChestNumber,Name,Type,Chance,Expectation,Stars" + Environment.NewLine + text;
            File.WriteAllText(@"c:\temp\output.csv", text);
        }
    // Call start to locate the world parser.
    private void Start()
    {
        // Locate the world parser in the scene.
        world = FindObjectOfType <WorldParser>();

        // Add this instance to the world so other magnets can see it.
        world.magneticObjects.Add(this);
    }
示例#3
0
        public void GenerateNewWorld()
        {
            var parser = new WorldParser(@"../../../../Testfiles/world-1.14");

            var textureProvider = new MapTools.TextureProvider(new MapTools.Models.TextureOptions {
                BlockColorsFilePath = "../../../../Mineman.WorldParsing/Resources/blockcolors.json",
                BiomeColorsFilePath = "../../../../Mineman.WorldParsing/Resources/biomecolors.json"
            });

            var factory  = new MapTools.MapRendererFactory(textureProvider);
            var renderer = factory.Create2DRender(parser, null);

            var x = renderer.GenerateBlockBitmap(RegionType.Overworld);

            x.Bitmap.SaveAsJpeg(System.IO.File.OpenWrite("C:/users/nojan/Desktop/test.jpg"));
        }
示例#4
0
        private void Load()
        {
            try
            {
                var body = GetLoginBody("QqZ5d1kWkz1D", "GQWLAycpxwFo");
                if (_worldFilePath == null)
                {
                    _worldFilePath = HttpContext.Current.Server.MapPath(@"~\Jsons\World.json");
                }
                if (_runeFilePath == null)
                {
                    _runeFilePath = HttpContext.Current.Server.MapPath(@"~\Jsons\Runes.json");
                }
                WorldParser world = new WorldParser(_worldFilePath);

                LoginResultParser  loginResult = new LoginResultParser(body, true);
                LocalizationParser dict        = new LocalizationParser(_runeFilePath);
                DropRateCalculator calc        = new DropRateCalculator();
                var            result          = calc.Calculate(loginResult.pChests, world, dict);
                List <dynamic> output          = new List <dynamic>();
                foreach (var r in result)
                {
                    var     key         = r.Key.Split('|');
                    int     chestNumber = int.Parse(key[0]);
                    string  type        = key[1];
                    string  name        = key[2];
                    var     value       = r.Value;
                    dynamic e           = new ExpandoObject();
                    e.ChestNumber = chestNumber;
                    e.Chest       = Enum.GetName(typeof(ChestType), chestNumber);
                    e.Name        = name;
                    e.Type        = type;
                    e.Expectation = value.ExpectationInAll;
                    e.Chance      = value.ChanceInAll;
                    e.Stars       = value.Stars;
                    output.Add(e);
                }
                CalculationResult = output;
                LastUpdated       = DateTime.Now;
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex);
                CalculationResult = null;
            }
        }
示例#5
0
        public void Test()
        {
            var parser = new WorldParser(@"../../../../Testfiles/world-1.14");

            foreach (var region in parser.GetRegions(RegionType.Overworld))
            {
                foreach (var column in region.Columns)
                {
                    if (!column.TerrainPopulated)
                    {
                        continue;
                    }

                    foreach (var chunk in column.Chunks)
                    {
                        foreach (var block in chunk.Blocks)
                        {
                            Console.WriteLine($"X: {block.WorldX} Z: {block.WorldZ} Y: {block.WorldY} - {block.Code}");
                        }
                    }
                }
            }
        }
示例#6
0
 // Use this for initialization
 void Start()
 {
     world = FindObjectOfType <WorldParser>();
 }
示例#7
0
文件: temp.cs 项目: nojan1/Mineman
        public void lsdgj()
        {
            //var databaseOptions = new DbContextOptionsBuilder<DatabaseContext>()
            //    .UseInMemoryDatabase()
            //    .Options;

            //var context = new DatabaseContext(databaseOptions);

            //var serviceCollection = new ServiceCollection();
            //serviceCollection.AddTransient<DatabaseContext>(services => context);

            //var scopeFactory = new Mock<IServiceScopeFactory>();
            //scopeFactory.Setup(x => x.CreateScope())
            //    .Returns(() =>
            //    {
            //        var scope = new Mock<IServiceScope>();
            //        scope.SetupGet(s => s.ServiceProvider)
            //            .Returns(new DefaultServiceProviderFactory().CreateServiceProvider(serviceCollection));

            //        return scope.Object;
            //    });

            //var hostingEnvironment = new Mock<IHostingEnvironment>();
            //var options = new Mock<IOptions<Configuration>>();
            //options.SetupGet(x => x.Value)
            //    .Returns(new Configuration
            //    {
            //        WorldDirectory = @"C:\Users\hedlundn\Desktop\worlds\"
            //    });

            //var logger = new Mock<ILogger<WorldInfoService>>();

            //context.Servers.Add(new Common.Database.Models.Server
            //{
            //    World = new Common.Database.Models.World
            //    {
            //        Path = "604b2298e89a4733ad54f607ab83948e"
            //    }
            //});
            //context.SaveChanges();

            //var worldInfoService = new WorldInfoService(scopeFactory.Object,
            //                                            new WorldParserFactory(),
            //                                            hostingEnvironment.Object,
            //                                            options.Object,
            //                                            logger.Object);

            //worldInfoService.GenerateForAllWorlds().Wait();

            //var region = parser.GetRegions(RegionType.Overworld).First();
            //var column = region.Columns.First();
            //var blockEnties = region.Columns.SelectMany(c => c.BlockEntities).ToList();
            //var chunk = column.Chunks.First();
            //var blocks = chunk.Blocks.ToList();

            //var blocks = parser.GetRegions(RegionType.Overworld).SelectMany(r => r.Columns)
            //                           .SelectMany(c => c.Entities)
            //                           .ToList();

            var worldPath            = @"../../../../Testfiles/world";
            var parser               = new WorldParser(worldPath);
            var fileBasedRegionCache = new FileBasedRegionCache(worldPath);

            var renderer = new MapRenderer2D(parser, new TextureProvider(new WorldParsing.MapTools.Models.TextureOptions
            {
                BlockColorsFilePath = "../../../../Mineman.WorldParsing/Resources/blockcolors.json",
                BiomeColorsFilePath = "../../../../Mineman.WorldParsing/Resources/biomecolors.json"
            }), fileBasedRegionCache);

            var result = renderer.GenerateBlockBitmap(RegionType.Overworld);

            result.Bitmap.Save(@"C:\Users\hedlundn\Desktop\map-overworld.png");

            renderer.GenerateBiomeBitmap(RegionType.Overworld).Bitmap.Save(@"C:\Users\hedlundn\Desktop\map-overworld-biome.png");
        }