MakeFloodBarrier() 공개 메소드

Makes an admincrete barrier, 1 block thick, around the lower half of the map.
public MakeFloodBarrier ( ) : void
리턴 void
예제 #1
0
        internal static void GenerateFlatgrass(Map map, bool hollow)
        {
            for (int i = 0; i < map.widthX; i++)
            {
                for (int j = 0; j < map.widthY; j++)
                {
                    if (!hollow)
                    {
                        for (int k = 1; k < map.height / 2 - 1; k++)
                        {
                            if (k < map.height / 2 - 5)
                            {
                                map.SetBlock(i, j, k, Block.Stone);
                            }
                            else
                            {
                                map.SetBlock(i, j, k, Block.Dirt);
                            }
                        }
                    }
                    map.SetBlock(i, j, map.height / 2 - 1, Block.Grass);
                }
            }

            map.MakeFloodBarrier();
        }
예제 #2
0
 public void Generate()
 {
     double[,] heightmap = GenerateHeightmap(map.widthX, map.widthY);
     Feedback("Filling...");
     for (int x = 0; x < map.widthX; x++)
     {
         for (int y = 0; y < map.widthY; y++)
         {
             double level = heightmap[x, y];
             if (level > water)
             {
                 level = (level - water) * smoothingOver + water;
                 map.SetBlock(x, y, (int)(level * map.height), Block.Grass);
                 if (!hollow)
                 {
                     for (int i = (int)(level * map.height) - 1; i > 0; i--)
                     {
                         if ((int)(level * map.height) - i < 5)
                         {
                             map.SetBlock(x, y, i, Block.Dirt);
                         }
                         else
                         {
                             map.SetBlock(x, y, i, Block.Stone);
                         }
                     }
                 }
             }
             else
             {
                 level = (level - water) * smoothingUnder + water;
                 map.SetBlock(x, y, (int)(water * map.height), Block.Water);
                 if (!hollow)
                 {
                     for (int i = (int)(water * map.height) - 1; i >= (int)(level * map.height); i--)
                     {
                         map.SetBlock(x, y, i, Block.Water);
                     }
                 }
                 map.SetBlock(x, y, (int)(level * map.height), Block.Sand);
                 if (!hollow)
                 {
                     for (int i = (int)(level * map.height) - 1; i > 0; i--)
                     {
                         map.SetBlock(x, y, i, Block.Stone);
                     }
                 }
             }
         }
     }
     map.MakeFloodBarrier();
     map.Save(filename);
     Feedback("Done.");
 }
예제 #3
0
        internal static void DoGenerate( Map map, Player player, string mode, string filename, Random rand, bool hollow )
        {
            switch( mode ) {
                case "flatgrass":
                    player.Message( "Generating flatgrass map..." );
                    GenerateFlatgrass( map, hollow );

                    if( map.Save( filename ) ) {
                        player.Message( "Map generation: Done." );
                    } else {
                        player.Message( Color.Red, "An error occured while generating the map." );
                    }
                    break;

                case "lag":
                    player.Message( "Generating laggy map..." );
                    for( int x = 0; x < map.widthX; x+=2 ) {
                        for( int y = 0; y < map.widthY; y+=2 ) {
                            for( int h = 0; h < map.widthY; h+=2 ) {
                                map.SetBlock( x, y, h, Block.Lava );
                            }
                        }
                    }

                    if( map.Save( filename ) ) {
                        player.Message( "Map generation: Done." );
                    } else {
                        player.Message( Color.Red, "An error occured while generating the map." );
                    }
                    break;

                case "empty":
                    player.Message( "Generating empty map..." );
                    map.MakeFloodBarrier();

                    if( map.Save( filename ) ) {
                        player.Message( "Map generation: Done." );
                    } else {
                        player.Message( Color.Red, "An error occured while generating the map." );
                    }

                    break;

                case "hills":
                    player.Message( "Generating terrain..." );
                    Tasks.Add( MapGenerator.GenerationTask, new MapGenerator( rand, map, player, filename,
                                                                              1, 1, 0.5, 0.5, 0, 0.5, hollow ), false );
                    break;

                case "mountains":
                    player.Message( "Generating terrain..." );
                    Tasks.Add( MapGenerator.GenerationTask, new MapGenerator( rand, map, player, filename,
                                                                              4, 1, 0.5, 0.5, 0.1, 0.5, hollow ), false );
                    break;

                case "lake":
                    player.Message( "Generating terrain..." );
                    Tasks.Add( MapGenerator.GenerationTask, new MapGenerator( rand, map, player, filename,
                                                                              1, 0.6, 0.9, 0.5, -0.35, 0.55, hollow ), false );
                    break;

                case "island":
                    player.Message( "Generating terrain..." );
                    Tasks.Add( MapGenerator.GenerationTask, new MapGenerator( rand, map, player, filename,
                                                                              1, 0.6, 1, 0.5, 0.3, 0.35, hollow ), false );
                    break;

                default:
                    player.Message( "Unknown map generation mode: " + mode );
                    break;
            }
        }
예제 #4
0
        internal static void GenerateFlatgrass( Map map, bool hollow )
        {
            for ( int i = 0; i < map.widthX; i++ ) {
                for ( int j = 0; j < map.widthY; j++ ) {
                    if ( !hollow ) {
                        for ( int k = 1; k < map.height / 2 - 1; k++ ) {
                            if ( k < map.height / 2 - 5 ) {
                                map.SetBlock( i, j, k, Block.Stone );
                            } else {
                                map.SetBlock( i, j, k, Block.Dirt );
                            }
                        }
                    }
                    map.SetBlock( i, j, map.height / 2 - 1, Block.Grass );
                }
            }

            map.MakeFloodBarrier();
        }
예제 #5
0
        void DoGenerate(Map map, Player player, string mode, string filename, Random rand, bool hollow)
        {
            switch (mode)
            {
            case "flatgrass":
                player.Message("Generating flatgrass map...");
                GenerateFlatgrass(map, hollow);

                if (map.Save(filename))
                {
                    player.Message("Map generation: Done.");
                }
                else
                {
                    player.Message(Color.Red, "An error occured while generating the map.");
                }
                break;

            case "lag":
                player.Message("Generating laggy map...");
                for (int x = 0; x < map.widthX; x += 2)
                {
                    for (int y = 0; y < map.widthY; y += 2)
                    {
                        for (int h = 0; h < map.widthY; h += 2)
                        {
                            map.SetBlock(x, y, h, Block.Lava);
                        }
                    }
                }

                if (map.Save(filename))
                {
                    player.Message("Map generation: Done.");
                }
                else
                {
                    player.Message(Color.Red, "An error occured while generating the map.");
                }
                break;

            case "empty":
                player.Message("Generating empty map...");
                map.MakeFloodBarrier();

                if (map.Save(filename))
                {
                    player.Message("Map generation: Done.");
                }
                else
                {
                    player.Message(Color.Red, "An error occured while generating the map.");
                }

                break;

            case "hills":
                player.Message("Generating terrain...");
                world.tasks.Add(MapGenerator.GenerationTask, new MapGenerator(rand, map, player, filename,
                                                                              1, 1, 0.5, 0.45, 0, 0.5, hollow), false);
                break;

            case "mountains":
                player.Message("Generating terrain...");
                world.tasks.Add(MapGenerator.GenerationTask, new MapGenerator(rand, map, player, filename,
                                                                              4, 1, 0.5, 0.45, 0.1, 0.5, hollow), false);
                break;

            case "lake":
                player.Message("Generating terrain...");
                world.tasks.Add(MapGenerator.GenerationTask, new MapGenerator(rand, map, player, filename,
                                                                              1, 0.6, 0.9, 0.45, -0.35, 0.55, hollow), false);
                break;

            case "island":
                player.Message("Generating terrain...");
                world.tasks.Add(MapGenerator.GenerationTask, new MapGenerator(rand, map, player, filename,
                                                                              1, 0.6, 1, 0.45, 0.3, 0.35, hollow), false);
                break;

            default:
                player.Message("Unknown map generation mode: " + mode);
                break;
            }
        }