Пример #1
0
        public MapComponent(D3DEngine engine,
                            InputsManager inputManager,
                            MainScreen screen,
                            ServerComponent server,
                            WorldPlan plan,
                            IPlayerManager playerManager)
        {
            this.IsDefferedLoadContent = true;

            _playerManager = playerManager;
            _engine        = engine;
            _inputManager  = inputManager;
            _screen        = screen;
            _server        = server;

            _mapWindow        = new WindowControl();
            _mapWindow.Name   = "Map";
            _mapWindow.Title  = "World map";
            _mapWindow.Bounds = new UniRectangle(100, 100, 711, 400);


            _planGenerator = plan;
            _playerManager = playerManager;
            //_planGenerator.Parameters = _server.GameInformations.PlanGenerationParameters;
        }
Пример #2
0
        private void button1_Click(object sender, EventArgs e)
        {
            _map = new WorldPlan(new GenerationParameters {
                MapSize         = new Vector2I((int)numericUpDown1.Value, (int)numericUpDown2.Value),
                CenterElevation = centerElevationCheck.Checked,
                ElevationSeed   = (int)voronoiSeedNumeric.Value,
                GridSeed        = (int)voronoiSeedNumeric.Value,
                PolygonsCount   = (int)voronoiPolyNumeric.Value,
                RelaxCount      = 3
            });

            //_map.RenderMapTemplate = Resources.mapbg;
            //_map.RenderContinentTemplate = Resources.brush;
            //_map.RenderWavePatterns = new [] { Resources.wavePattern, Resources.wavePattern1, Resources.wavePattern2};
            //_map.RenderForest = Resources.forest;
            //_map.RenderTropicalForest = Resources.tropicForest;

            var sw = Stopwatch.StartNew();

            _map.Generate();
            sw.Stop();
            genTimeLabel.Text = sw.Elapsed.TotalMilliseconds.ToString() + " ms";

            pictureBox1.Image = _map.Render();
        }
Пример #3
0
        private static void GenerateSampleWorldPlan()
        {
            TerrainDefinition ground = ScriptableObject.CreateInstance <TerrainDefinition>();

            ground.name = "Terrain_StoneFloor";
            TerrainDefinition wall = ScriptableObject.CreateInstance <TerrainDefinition>();

            wall.name = "Terrain_StoneWall";
            Tile mockTile = ScriptableObject.CreateInstance <Tile>();

            mockTile.name = "StoneStairs_Up";

            Builder builder = new Builder
            {
                ID = "SAMPLE_ID"
            };

            WorldPlan plan = new WorldPlan()
            {
                Builders = new Dictionary <string, Builder>()
            };

            plan.Builders.Add(builder.ID, builder);

            string path = Application.dataPath + $"/Sample/sample_plan.json";

            if (File.Exists(path))
            {
                File.Delete(path);
            }

            JsonSerializerSettings settings = new JsonSerializerSettings()
            {
                TypeNameHandling    = TypeNameHandling.Auto,
                SerializationBinder = Binders._entity,
                Formatting          = Formatting.Indented,
                Converters          = new List <JsonConverter>()
                {
                    new WorldPlanConverter()
                },
                ReferenceLoopHandling = ReferenceLoopHandling.Ignore
            };

            File.AppendAllText(path, JsonConvert.SerializeObject(plan, settings));
            AssetDatabase.Refresh();
            Debug.Log($"Wrote sample world plan to {path}.");
        }
Пример #4
0
 private void button2_Click(object sender, EventArgs e)
 {
     openFileDialog1.Filter = "*.umap|*.umap";
     openFileDialog1.Title  = "Select map to load";
     if (openFileDialog1.ShowDialog() == DialogResult.OK)
     {
         using (var fs = File.OpenRead(openFileDialog1.FileName))
         {
             using (GZipStream zip = new GZipStream(fs, CompressionMode.Decompress))
             {
                 XmlSerializer serializer = new XmlSerializer(typeof(WorldPlan));
                 _map = (WorldPlan)serializer.Deserialize(zip);
             }
         }
         pictureBox1.Image = _map.Render();
     }
 }