Advertisement
Absol

Generator of random maps, not release!

Jul 16th, 2013
681
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 18.77 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.IO;
  7.  
  8. namespace VHE.map_generator
  9. {
  10.  
  11.     class Program
  12.     {
  13.         static void WriteColor(ConsoleColor Colour, String Text)
  14.         {
  15.  
  16.             Console.ForegroundColor = Colour;
  17.             Console.WriteLine(Text.PadRight(Console.WindowWidth - 1));
  18.  
  19.         }
  20.  
  21.  
  22.         static void WriteVheHeader()
  23.         {
  24.             string[] header = { "{", "\"classname\" \"worldspawn\"", "\"MaxRange\" \"4096\"", "\"mapversion\" \"220\"", "\"wad\" \"cstrike\\cs_assault.wad;cstrike\\cs_dust.wad;cstrike\\cstrike.wad;valve\\halflife.wad\"" };
  25.  
  26.             using (StreamWriter file = new StreamWriter("outmap.map", true))
  27.             {
  28.                 foreach (string line in header)
  29.                 {
  30.                     file.WriteLine(line);
  31.                 }
  32.             }
  33.  
  34.  
  35.         }
  36.  
  37.         static void JustWriteEnd()
  38.         {
  39.             using (StreamWriter file = new StreamWriter("outmap.map", true))
  40.             {
  41.                     file.WriteLine("}");
  42.             }
  43.         }
  44.  
  45.  
  46.  
  47.         static void JustCreateCube(Int32 X_, Int32 Y_, Int32 Z_, Int32 SizeX, Int32 SizeY, Int32 SizeZ)
  48.         {
  49.             string Texture = "AAATRIGGER";
  50.  
  51.             S_ObjList tmpobject = new S_ObjList();
  52.  
  53.             tmpobject.X = X_;
  54.             tmpobject.Y = Y_;
  55.             tmpobject.Z = Z_;
  56.             tmpobject.SizeX = SizeX;
  57.             tmpobject.SizeY = SizeY;
  58.             tmpobject.SizeZ = SizeZ;
  59.  
  60.             ObjList.Add(tmpobject);
  61.  
  62.            
  63.  
  64.             Int32[] X = new Int32[7];
  65.             Int32[] Y = new Int32[7];
  66.             Int32[] Z = new Int32[7];
  67.             Int32[] X2 = new Int32[7];
  68.             Int32[] Y2 = new Int32[7];
  69.             Int32[] Z2 = new Int32[7];
  70.             Int32[] X3 = new Int32[7];
  71.             Int32[] Y3 = new Int32[7];
  72.             Int32[] Z3 = new Int32[7];
  73.  
  74.             X[1] = X_;
  75.             Y[1] = Y_;
  76.             Z[1] = SizeZ + Z_;
  77.  
  78.             X2[1] = X_;
  79.             Y2[1] = SizeY + Y_;
  80.             Z2[1] = SizeZ + Z_;
  81.  
  82.             X3[1] = SizeX + X_;
  83.             Y3[1] = SizeY + Y_;
  84.             Z3[1] = SizeZ + Z_;
  85.  
  86.             X[2] = X_;
  87.             Y[2] = SizeY + Y_;
  88.             Z[2] = Z_;
  89.  
  90.             X2[2] = X_;
  91.             Y2[2] = Y_;
  92.             Z2[2] = Z_;
  93.  
  94.             X3[2] = SizeX + X_;
  95.             Y3[2] = Y_;
  96.             Z3[2] = Z_;
  97.  
  98.             X[3] = X_;
  99.             Y[3] = Y_;
  100.             Z[3] = Z_;
  101.  
  102.             X2[3] = X_;
  103.             Y2[3] = SizeY + Y_;
  104.             Z2[3] = Z_;
  105.  
  106.             X3[3] = X_;
  107.             Y3[3] = SizeY + Y_;
  108.             Z3[3] = SizeZ + Z_;
  109.  
  110.             X[4] = SizeX + X_;
  111.             Y[4] = SizeY + Y_;
  112.             Z[4] = Z_;
  113.  
  114.             X2[4] = SizeX + X_;
  115.             Y2[4] = Y_;
  116.             Z2[4] = Z_;
  117.  
  118.             X3[4] = SizeX + X_;
  119.             Y3[4] = Y_;
  120.             Z3[4] = SizeZ + Z_;
  121.  
  122.             X[5] = X_;
  123.             Y[5] = SizeY + Y_;
  124.             Z[5] = Z_;
  125.  
  126.             X2[5] = SizeX + X_;
  127.             Y2[5] = SizeY + Y_;
  128.             Z2[5] = Z_;
  129.  
  130.             X3[5] = SizeX + X_;
  131.             Y3[5] = SizeY + Y_;
  132.             Z3[5] = SizeZ + Z_;
  133.  
  134.             X[6] = SizeX + X_;
  135.             Y[6] = Y_;
  136.             Z[6] = Z_;
  137.  
  138.             X2[6] = X_;
  139.             Y2[6] = Y_;
  140.             Z2[6] = Z_;
  141.  
  142.             X3[6] = X_;
  143.             Y3[6] = Y_;
  144.             Z3[6] = SizeZ + Z_;
  145.  
  146.             using (StreamWriter file = new StreamWriter("outmap.map", true))
  147.             {
  148.                 file.WriteLine("{");
  149.                 file.WriteLine("( " + X[1] + " " + Y[1] + " " + Z[1] + " ) ( " + X2[1] + " " + Y2[1] + " " + Z2[1] + " ) ( " + X3[1] + " " + Y3[1] + " " + Z3[1] + " ) " + Texture + " [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ");
  150.                 file.WriteLine("( " + X[2] + " " + Y[2] + " " + Z[2] + " ) ( " + X2[2] + " " + Y2[2] + " " + Z2[2] + " ) ( " + X3[2] + " " + Y3[2] + " " + Z3[2] + " ) " + Texture + " [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ");
  151.                 file.WriteLine("( " + X[3] + " " + Y[3] + " " + Z[3] + " ) ( " + X2[3] + " " + Y2[3] + " " + Z2[3] + " ) ( " + X3[3] + " " + Y3[3] + " " + Z3[3] + " ) " + Texture + " [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1 ");
  152.                 file.WriteLine("( " + X[4] + " " + Y[4] + " " + Z[4] + " ) ( " + X2[4] + " " + Y2[4] + " " + Z2[4] + " ) ( " + X3[4] + " " + Y3[4] + " " + Z3[4] + " ) " + Texture + " [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1 ");
  153.                 file.WriteLine("( " + X[5] + " " + Y[5] + " " + Z[5] + " ) ( " + X2[5] + " " + Y2[5] + " " + Z2[5] + " ) ( " + X3[5] + " " + Y3[5] + " " + Z3[5] + " ) " + Texture + " [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1 ");
  154.                 file.WriteLine("( " + X[6] + " " + Y[6] + " " + Z[6] + " ) ( " + X2[6] + " " + Y2[6] + " " + Z2[6] + " ) ( " + X3[6] + " " + Y3[6] + " " + Z3[6] + " ) " + Texture + " [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1 ");
  155.                 file.WriteLine("}");
  156.             }
  157.  
  158.  
  159.         }
  160.  
  161.  
  162.         static bool CheckCollision(Int32 X, Int32 Y, Int32 Z, Int32 SizeX, Int32 SizeY, Int32 SizeZ)
  163.         {
  164.             bool ret = false;
  165.  
  166.  
  167.             for (int i = 0; i < ObjList.Count; i++)
  168.             {
  169.  
  170.                 if (Z > ObjList[i].Z + ObjList[i].SizeZ || Z + SizeZ < ObjList[i].Z)
  171.                     ;
  172.                 else if (Y + SizeY < ObjList[i].Y || Y > ObjList[i].Y + ObjList[i].SizeY)
  173.                     ;
  174.                 else if (X + SizeX < ObjList[i].X || X > ObjList[i].X + ObjList[i].SizeX)
  175.                     ;
  176.                 else
  177.                 {
  178.                     ret = true;
  179.                 }
  180.             }
  181.  
  182.  
  183.             //   Console.Write("\n" + ret+"\n");
  184.  
  185.  
  186.             return ret;
  187.         }
  188.            /* foreach (S_ObjList MyObject in ObjList)
  189.             {
  190.  
  191.                 if ((Z + SizeZ > MyObject.Z && Z + SizeZ < MyObject.Z + MyObject.SizeZ) || (Z + SizeZ > MyObject.Z + MyObject.SizeZ && Z > MyObject.Z) || (Z + SizeZ > MyObject.Z + MyObject.SizeZ && Z < MyObject.Z + MyObject.SizeZ))
  192.                     if ((Y + SizeY > MyObject.Y && Y + SizeY < MyObject.Y + MyObject.SizeY) || (Y + SizeY > MyObject.Y + MyObject.SizeY && Y > MyObject.Y) || (Y + SizeY > MyObject.Y + MyObject.SizeY && Y < MyObject.Y + MyObject.SizeY))
  193.                         if ((X + SizeX > MyObject.X && X + SizeX < MyObject.X + MyObject.SizeX) || (X + SizeX > MyObject.X + MyObject.SizeX && X > MyObject.X) || (X + SizeX > MyObject.X + MyObject.SizeX && X < MyObject.X + MyObject.SizeX))
  194.                             ret = false;
  195.  
  196.  
  197.             }
  198.  
  199.            foreach (S_ObjList MyObject in ObjList)
  200.             {
  201.  
  202.                 if ((Z + SizeZ > MyObject.Z || Z < MyObject.Z + MyObject.SizeZ) && (X + SizeX > MyObject.X || X < MyObject.X + MyObject.SizeX) && (Y + SizeY > MyObject.Y || Y < MyObject.Y + MyObject.SizeY))
  203.                 {
  204.  
  205.                     return true;
  206.  
  207.                 }
  208.  
  209.             }
  210.                 if (Z > ObjList[i].Z + ObjList[i].SizeZ || Z + SizeZ < ObjList[i].Z)
  211.                     ;
  212.                 else if (Y + SizeY < ObjList[i].Y || Y > ObjList[i].Y + ObjList[i].SizeY)
  213.                     ;
  214.                 else if (X + SizeX < ObjList[i].X || X > ObjList[i].X + ObjList[i].SizeX)
  215.                     ;
  216.                 else
  217.                 {
  218.                     ret = true;
  219.                     i = ObjList.Count;
  220.                 }
  221.                
  222.  
  223.             }
  224.            
  225.  
  226.          //   Console.Write("\n" + ret+"\n");
  227.  
  228.  
  229.             return false;
  230.         }*/
  231.  
  232.  
  233.         static void JustCreateCubeW(Int32 X_, Int32 Y_, Int32 Z_, Int32 SizeX, Int32 SizeY, Int32 SizeZ, String Texture)
  234.         {
  235.  
  236.  
  237.  
  238.  
  239.  
  240.             Int32[] X = new Int32[7];
  241.             Int32[] Y = new Int32[7];
  242.             Int32[] Z = new Int32[7];
  243.             Int32[] X2 = new Int32[7];
  244.             Int32[] Y2 = new Int32[7];
  245.             Int32[] Z2 = new Int32[7];
  246.             Int32[] X3 = new Int32[7];
  247.             Int32[] Y3 = new Int32[7];
  248.             Int32[] Z3 = new Int32[7];
  249.  
  250.             X[1] = X_;
  251.             Y[1] = Y_;
  252.             Z[1] = SizeZ + Z_;
  253.  
  254.             X2[1] = X_;
  255.             Y2[1] = SizeY + Y_;
  256.             Z2[1] = SizeZ + Z_;
  257.  
  258.             X3[1] = SizeX + X_;
  259.             Y3[1] = SizeY + Y_;
  260.             Z3[1] = SizeZ + Z_;
  261.  
  262.             X[2] = X_;
  263.             Y[2] = SizeY + Y_;
  264.             Z[2] = Z_;
  265.  
  266.             X2[2] = X_;
  267.             Y2[2] = Y_;
  268.             Z2[2] = Z_;
  269.  
  270.             X3[2] = SizeX + X_;
  271.             Y3[2] = Y_;
  272.             Z3[2] = Z_;
  273.  
  274.             X[3] = X_;
  275.             Y[3] = Y_;
  276.             Z[3] = Z_;
  277.  
  278.             X2[3] = X_;
  279.             Y2[3] = SizeY + Y_;
  280.             Z2[3] = Z_;
  281.  
  282.             X3[3] = X_;
  283.             Y3[3] = SizeY + Y_;
  284.             Z3[3] = SizeZ + Z_;
  285.  
  286.             X[4] = SizeX + X_;
  287.             Y[4] = SizeY + Y_;
  288.             Z[4] = Z_;
  289.  
  290.             X2[4] = SizeX + X_;
  291.             Y2[4] = Y_;
  292.             Z2[4] = Z_;
  293.  
  294.             X3[4] = SizeX + X_;
  295.             Y3[4] = Y_;
  296.             Z3[4] = SizeZ + Z_;
  297.  
  298.             X[5] = X_;
  299.             Y[5] = SizeY + Y_;
  300.             Z[5] = Z_;
  301.  
  302.             X2[5] = SizeX + X_;
  303.             Y2[5] = SizeY + Y_;
  304.             Z2[5] = Z_;
  305.  
  306.             X3[5] = SizeX + X_;
  307.             Y3[5] = SizeY + Y_;
  308.             Z3[5] = SizeZ + Z_;
  309.  
  310.             X[6] = SizeX + X_;
  311.             Y[6] = Y_;
  312.             Z[6] = Z_;
  313.  
  314.             X2[6] = X_;
  315.             Y2[6] = Y_;
  316.             Z2[6] = Z_;
  317.  
  318.             X3[6] = X_;
  319.             Y3[6] = Y_;
  320.             Z3[6] = SizeZ + Z_;
  321.  
  322.             using (StreamWriter file = new StreamWriter("outmap.map", true))
  323.             {
  324.                 file.WriteLine("{");
  325.                 file.WriteLine("( " + X[1] + " " + Y[1] + " " + Z[1] + " ) ( " + X2[1] + " " + Y2[1] + " " + Z2[1] + " ) ( " + X3[1] + " " + Y3[1] + " " + Z3[1] + " ) " + Texture + " [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ");
  326.                 file.WriteLine("( " + X[2] + " " + Y[2] + " " + Z[2] + " ) ( " + X2[2] + " " + Y2[2] + " " + Z2[2] + " ) ( " + X3[2] + " " + Y3[2] + " " + Z3[2] + " ) " + Texture + " [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ");
  327.                 file.WriteLine("( " + X[3] + " " + Y[3] + " " + Z[3] + " ) ( " + X2[3] + " " + Y2[3] + " " + Z2[3] + " ) ( " + X3[3] + " " + Y3[3] + " " + Z3[3] + " ) " + Texture + " [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1 ");
  328.                 file.WriteLine("( " + X[4] + " " + Y[4] + " " + Z[4] + " ) ( " + X2[4] + " " + Y2[4] + " " + Z2[4] + " ) ( " + X3[4] + " " + Y3[4] + " " + Z3[4] + " ) " + Texture + " [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1 ");
  329.                 file.WriteLine("( " + X[5] + " " + Y[5] + " " + Z[5] + " ) ( " + X2[5] + " " + Y2[5] + " " + Z2[5] + " ) ( " + X3[5] + " " + Y3[5] + " " + Z3[5] + " ) " + Texture + " [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1 ");
  330.                 file.WriteLine("( " + X[6] + " " + Y[6] + " " + Z[6] + " ) ( " + X2[6] + " " + Y2[6] + " " + Z2[6] + " ) ( " + X3[6] + " " + Y3[6] + " " + Z3[6] + " ) " + Texture + " [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1 ");
  331.                 file.WriteLine("}");
  332.             }
  333.  
  334.  
  335.         }
  336.        
  337.  
  338.         static void JustCreateCube(Int32 X_, Int32 Y_, Int32 Z_, Int32 SizeX, Int32 SizeY, Int32 SizeZ, String Texture)
  339.         {
  340.  
  341.             S_ObjList tmpobject = new S_ObjList();
  342.  
  343.             tmpobject.X = X_;
  344.             tmpobject.Y = Y_;
  345.             tmpobject.Z = Z_;
  346.             tmpobject.SizeX = SizeX;
  347.             tmpobject.SizeY = SizeY;
  348.             tmpobject.SizeZ = SizeZ;
  349.  
  350.             ObjList.Add(tmpobject);
  351.  
  352.            
  353.  
  354.             Int32[] X = new Int32[7];
  355.             Int32[] Y = new Int32[7];
  356.             Int32[] Z = new Int32[7];
  357.             Int32[] X2 = new Int32[7];
  358.             Int32[] Y2 = new Int32[7];
  359.             Int32[] Z2 = new Int32[7];
  360.             Int32[] X3 = new Int32[7];
  361.             Int32[] Y3 = new Int32[7];
  362.             Int32[] Z3 = new Int32[7];
  363.  
  364.             X[1] = X_;
  365.             Y[1] = Y_;
  366.             Z[1] = SizeZ + Z_;
  367.  
  368.             X2[1] = X_;
  369.             Y2[1] = SizeY + Y_;
  370.             Z2[1] = SizeZ + Z_;
  371.  
  372.             X3[1] = SizeX + X_;
  373.             Y3[1] = SizeY + Y_;
  374.             Z3[1] = SizeZ + Z_;
  375.  
  376.             X[2] = X_;
  377.             Y[2] = SizeY + Y_;
  378.             Z[2] = Z_;
  379.  
  380.             X2[2] = X_;
  381.             Y2[2] = Y_;
  382.             Z2[2] = Z_;
  383.  
  384.             X3[2] = SizeX + X_;
  385.             Y3[2] = Y_;
  386.             Z3[2] = Z_;
  387.  
  388.             X[3] = X_;
  389.             Y[3] = Y_;
  390.             Z[3] = Z_;
  391.  
  392.             X2[3] = X_;
  393.             Y2[3] = SizeY + Y_;
  394.             Z2[3] = Z_;
  395.  
  396.             X3[3] = X_;
  397.             Y3[3] = SizeY + Y_;
  398.             Z3[3] = SizeZ + Z_;
  399.  
  400.             X[4] = SizeX + X_;
  401.             Y[4] = SizeY + Y_;
  402.             Z[4] = Z_;
  403.  
  404.             X2[4] = SizeX + X_;
  405.             Y2[4] = Y_;
  406.             Z2[4] = Z_;
  407.  
  408.             X3[4] = SizeX + X_;
  409.             Y3[4] = Y_;
  410.             Z3[4] = SizeZ + Z_;
  411.  
  412.             X[5] = X_;
  413.             Y[5] = SizeY + Y_;
  414.             Z[5] = Z_;
  415.  
  416.             X2[5] = SizeX + X_;
  417.             Y2[5] = SizeY + Y_;
  418.             Z2[5] = Z_;
  419.  
  420.             X3[5] = SizeX + X_;
  421.             Y3[5] = SizeY + Y_;
  422.             Z3[5] = SizeZ + Z_;
  423.  
  424.             X[6] = SizeX + X_;
  425.             Y[6] = Y_;
  426.             Z[6] = Z_;
  427.  
  428.             X2[6] = X_;
  429.             Y2[6] = Y_;
  430.             Z2[6] = Z_;
  431.  
  432.             X3[6] = X_;
  433.             Y3[6] = Y_;
  434.             Z3[6] = SizeZ + Z_;
  435.  
  436.             using (StreamWriter file = new StreamWriter("outmap.map", true))
  437.             {
  438.                 file.WriteLine("{");
  439.                 file.WriteLine("( " + X[1] + " " + Y[1] + " " + Z[1] + " ) ( " + X2[1] + " " + Y2[1] + " " + Z2[1] + " ) ( " + X3[1] + " " + Y3[1] + " " + Z3[1] + " ) " + Texture + " [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ");
  440.                 file.WriteLine("( " + X[2] + " " + Y[2] + " " + Z[2] + " ) ( " + X2[2] + " " + Y2[2] + " " + Z2[2] + " ) ( " + X3[2] + " " + Y3[2] + " " + Z3[2] + " ) " + Texture + " [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1 ");
  441.                 file.WriteLine("( " + X[3] + " " + Y[3] + " " + Z[3] + " ) ( " + X2[3] + " " + Y2[3] + " " + Z2[3] + " ) ( " + X3[3] + " " + Y3[3] + " " + Z3[3] + " ) " + Texture + " [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1 ");
  442.                 file.WriteLine("( " + X[4] + " " + Y[4] + " " + Z[4] + " ) ( " + X2[4] + " " + Y2[4] + " " + Z2[4] + " ) ( " + X3[4] + " " + Y3[4] + " " + Z3[4] + " ) " + Texture + " [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1 ");
  443.                 file.WriteLine("( " + X[5] + " " + Y[5] + " " + Z[5] + " ) ( " + X2[5] + " " + Y2[5] + " " + Z2[5] + " ) ( " + X3[5] + " " + Y3[5] + " " + Z3[5] + " ) " + Texture + " [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1 ");
  444.                 file.WriteLine("( " + X[6] + " " + Y[6] + " " + Z[6] + " ) ( " + X2[6] + " " + Y2[6] + " " + Z2[6] + " ) ( " + X3[6] + " " + Y3[6] + " " + Z3[6] + " ) " + Texture + " [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1 ");
  445.                 file.WriteLine("}");
  446.             }
  447.  
  448.  
  449.         }
  450.  
  451.  
  452.         /* Cube from cubes / Создаем "куб" из "кубов"  */
  453.  
  454.         static void CreateSky(Int32 X__, Int32 Y__, Int32 Z__, Int32 SizeX_, Int32 SizeY_, Int32 SizeZ_)
  455.         {
  456.  
  457.            /* S_ObjList tmpobject = new S_ObjList();
  458.  
  459.             tmpobject.X = X__;
  460.             tmpobject.Y = Y__;
  461.             tmpobject.Z = Z__;
  462.             tmpobject.SizeX = SizeX_;
  463.             tmpobject.SizeY = SizeY_;
  464.             tmpobject.SizeZ = SizeZ_;
  465.  
  466.             ObjList.Add(tmpobject);
  467.             */
  468.  
  469.  
  470.             JustCreateCube(X__, Y__, Z__, 32, SizeY_, SizeZ_, "SKY");
  471.  
  472.             JustCreateCube(X__, Y__, Z__ + SizeZ_, SizeX_, SizeY_, 32, "SKY");
  473.  
  474.             JustCreateCube(X__, Y__ + SizeY_, Z__, SizeX_ + 32, 32, SizeZ_ + 32, "SKY");
  475.  
  476.             JustCreateCube(X__ + SizeX_, Y__, Z__, 32, SizeY_, SizeZ_ + 32, "SKY");
  477.  
  478.             JustCreateCube(X__ + 32, Y__, Z__, SizeX_ - 32, 32, SizeZ_, "SKY");
  479.  
  480.             JustCreateCube(X__ + 32, Y__ + 32, Z__, SizeX_ - 32, SizeY_ - 32, 32, "SKY");
  481.  
  482.         }
  483.  
  484.         /* Objects list / Список объектов */
  485.         private struct S_ObjList
  486.         {
  487.             public Int32 X;
  488.             public Int32 Y;
  489.             public Int32 Z;
  490.             public Int32 SizeX;
  491.             public Int32 SizeY;
  492.             public Int32 SizeZ;
  493.         }
  494.  
  495.         static List<S_ObjList> ObjList = new List<S_ObjList>();
  496.  
  497.         static void Main(string[] args)
  498.         {
  499.             if (File.Exists("outmap.map"))
  500.             {
  501.                 File.Delete("outmap.bak.map");
  502.                 File.Move("outmap.map", "outmap.bak.map");
  503.             }
  504.             else
  505.                 File.Create("outmap.map");
  506.  
  507.             /* TEST */
  508.  
  509.             WriteVheHeader();
  510.            CreateSky(-500, 1000, 500, 2000, 3000, 2500);
  511.  
  512.  
  513.  
  514.             /* args 1:SKY_X+32+1   2:SKY_Y+32+1   3:SKY_Z+32+1   4:SIZE_X < SKY_SIZE_X - SKY_X && SIZE_X > SKY_X
  515.              5: SIZE_Y < SKY_SIZE_Y - SKY_Y && SIZE_Y > SKY_Y  6: SIZE_Z < SKY_SIZE_Z - SKY_Z && SIZE_Z > SKY_Z */
  516.  
  517.             Random rnd = new Random();
  518.  
  519.             for (int i = 0; i < 100; )
  520.             {
  521.                 int _x = rnd.Next(-467, 1467);
  522.                 int _y = rnd.Next(1033, 3967);
  523.                 int _z = rnd.Next(532, 600);
  524.                 int _sx = rnd.Next(10, 200);
  525.                 int _sy = rnd.Next(10, 200);
  526.                 int _sz = rnd.Next(5, 500);
  527.  
  528.                 if (!CheckCollision(_x, _y, _z, _sx, _sy, _sz))
  529.                 {
  530.                     ++i;
  531.                     JustCreateCube(_x, _y, _z, _sx, _sy, _sz);
  532.                 }
  533.  
  534.             }
  535.           /*  CheckCollision(0, 0, 0, 10, 20, 30);
  536.  
  537.             JustCreateCube(0, 0, 0, 10, 20, 30);
  538.  
  539.             CheckCollision(0, 0, 0, 10, 20, 30);
  540.  
  541.             CheckCollision(10, 0, 0, 10, 20, 30);*/
  542.  
  543.  
  544.             JustWriteEnd();
  545.  
  546.             /* END TEST */
  547.  
  548.             Int32 Size = -1, Objects = -1;
  549.  
  550.             ConsoleKey CKey;
  551.  
  552.             Console.Title = "VHE .map generator by Absol";
  553.  
  554.             WriteColor(ConsoleColor.Red, "Console C# OpenSource valve random .map generator");
  555.  
  556.             WriteColor(ConsoleColor.Green, "Select the necessary map settings:\n\n\n");
  557.  
  558.             WriteColor(ConsoleColor.Blue, "\nMap size:\n 1 - Big \n 2 - Medium \n 3 - Small\n");
  559.  
  560.             Retry1:
  561.             CKey = Console.ReadKey(true).Key;
  562.             if (CKey == ConsoleKey.D1 || CKey == ConsoleKey.D2 || CKey == ConsoleKey.D3)
  563.                 Size = (Int32)CKey - 48;
  564.             else
  565.                 goto Retry1;
  566.  
  567.  
  568.             WriteColor(ConsoleColor.Cyan, "\nNumber of objects:\n 1 - Many \n 2 - Less \n 3 - Little\n");
  569.  
  570.             Retry2:
  571.             CKey = Console.ReadKey(true).Key;
  572.             if (CKey == ConsoleKey.D1 || CKey == ConsoleKey.D2 || CKey == ConsoleKey.D3)
  573.                 Objects = (Int32)CKey - 48;
  574.             else
  575.                 goto Retry2;
  576.  
  577.             Console.Write("\n\n\n\n");
  578.  
  579.  
  580.  
  581.  
  582.             Console.Read();
  583.         }
  584.     }
  585. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement