Advertisement
Guest User

Untitled

a guest
May 22nd, 2015
268
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 20.53 KB | None | 0 0
  1. using UnityEngine;
  2.  
  3. internal static class CubeData{
  4. //56 vertex positions
  5.     private static readonly Vector3[] Positions =
  6.     {
  7.         new Vector3(-0.4000f, 0.5000f, -0.4000f),
  8.         new Vector3(-0.4000f, 0.5000f, 0.4000f),
  9.         new Vector3(0.4000f, 0.5000f, 0.4000f),
  10.         new Vector3(0.4000f, 0.5000f, -0.4000f),
  11.         new Vector3(-0.4000f, 0.4707f, -0.4707f),
  12.         new Vector3(-0.4500f, 0.4707f, -0.4500f),
  13.         new Vector3(-0.4707f, 0.4707f, -0.4000f),
  14.         new Vector3(-0.4707f, 0.4707f, 0.4000f),
  15.         new Vector3(-0.4500f, 0.4707f, 0.4500f),
  16.         new Vector3(-0.4000f, 0.4707f, 0.4707f),
  17.         new Vector3(0.4000f, 0.4707f, 0.4707f),
  18.         new Vector3(0.4500f, 0.4707f, 0.4500f),
  19.         new Vector3(0.4707f, 0.4707f, 0.4000f),
  20.         new Vector3(0.4707f, 0.4707f, -0.4000f),
  21.         new Vector3(0.4500f, 0.4707f, -0.4500f),
  22.         new Vector3(0.4000f, 0.4707f, -0.4707f),
  23.         new Vector3(-0.4000f, 0.4000f, -0.5000f),
  24.         new Vector3(-0.4707f, 0.4000f, -0.4707f),
  25.         new Vector3(-0.5000f, 0.4000f, -0.4000f),
  26.         new Vector3(-0.5000f, 0.4000f, 0.4000f),
  27.         new Vector3(-0.4707f, 0.4000f, 0.4707f),
  28.         new Vector3(-0.4000f, 0.4000f, 0.5000f),
  29.         new Vector3(0.4000f, 0.4000f, 0.5000f),
  30.         new Vector3(0.4707f, 0.4000f, 0.4707f),
  31.         new Vector3(0.5000f, 0.4000f, 0.4000f),
  32.         new Vector3(0.5000f, 0.4000f, -0.4000f),
  33.         new Vector3(0.4707f, 0.4000f, -0.4707f),
  34.         new Vector3(0.4000f, 0.4000f, -0.5000f),
  35.         new Vector3(-0.4000f, 0.1000f, -0.5000f),
  36.         new Vector3(-0.4707f, 0.1000f, -0.4707f),
  37.         new Vector3(-0.5000f, 0.1000f, -0.4000f),
  38.         new Vector3(-0.5000f, 0.1000f, 0.4000f),
  39.         new Vector3(-0.4707f, 0.1000f, 0.4707f),
  40.         new Vector3(-0.4000f, 0.1000f, 0.5000f),
  41.         new Vector3(0.4000f, 0.1000f, 0.5000f),
  42.         new Vector3(0.4707f, 0.1000f, 0.4707f),
  43.         new Vector3(0.5000f, 0.1000f, 0.4000f),
  44.         new Vector3(0.5000f, 0.1000f, -0.4000f),
  45.         new Vector3(0.4707f, 0.1000f, -0.4707f),
  46.         new Vector3(0.4000f, 0.1000f, -0.5000f),
  47.         new Vector3(-0.4000f, 0.0293f, -0.4707f),
  48.         new Vector3(-0.4500f, 0.0293f, -0.4500f),
  49.         new Vector3(-0.4707f, 0.0293f, -0.4000f),
  50.         new Vector3(-0.4707f, 0.0293f, 0.4000f),
  51.         new Vector3(-0.4500f, 0.0293f, 0.4500f),
  52.         new Vector3(-0.4000f, 0.0293f, 0.4707f),
  53.         new Vector3(0.4000f, 0.0293f, 0.4707f),
  54.         new Vector3(0.4500f, 0.0293f, 0.4500f),
  55.         new Vector3(0.4707f, 0.0293f, 0.4000f),
  56.         new Vector3(0.4707f, 0.0293f, -0.4000f),
  57.         new Vector3(0.4500f, 0.0293f, -0.4500f),
  58.         new Vector3(0.4000f, 0.0293f, -0.4707f),
  59.         new Vector3(-0.4000f, 0.0000f, -0.4000f),
  60.         new Vector3(-0.4000f, 0.0000f, 0.4000f),
  61.         new Vector3(0.4000f, 0.0000f, 0.4000f),
  62.         new Vector3(0.4000f, 0.0000f, -0.4000f),
  63.     };
  64. //56 vertex normals
  65.     private static readonly Vector3[] Normals =
  66.     {
  67.         new Vector3(-0.1657f, 0.9721f, -0.1657f),
  68.         new Vector3(-0.1657f, 0.9721f, 0.1657f),
  69.         new Vector3(0.1657f, 0.9721f, 0.1657f),
  70.         new Vector3(0.1657f, 0.9721f, -0.1657f),
  71.         new Vector3(-0.1448f, 0.6794f, -0.7194f),
  72.         new Vector3(-0.5294f, 0.6630f, -0.5294f),
  73.         new Vector3(-0.7194f, 0.6794f, -0.1448f),
  74.         new Vector3(-0.7194f, 0.6794f, 0.1448f),
  75.         new Vector3(-0.5294f, 0.6630f, 0.5294f),
  76.         new Vector3(-0.1448f, 0.6794f, 0.7194f),
  77.         new Vector3(0.1448f, 0.6794f, 0.7194f),
  78.         new Vector3(0.5294f, 0.6630f, 0.5294f),
  79.         new Vector3(0.7194f, 0.6794f, 0.1448f),
  80.         new Vector3(0.7194f, 0.6794f, -0.1448f),
  81.         new Vector3(0.5294f, 0.6630f, -0.5294f),
  82.         new Vector3(0.1448f, 0.6794f, -0.7194f),
  83.         new Vector3(-0.1877f, 0.1877f, -0.9641f),
  84.         new Vector3(-0.6947f, 0.1866f, -0.6947f),
  85.         new Vector3(-0.9641f, 0.1877f, -0.1877f),
  86.         new Vector3(-0.9641f, 0.1877f, 0.1877f),
  87.         new Vector3(-0.6947f, 0.1866f, 0.6947f),
  88.         new Vector3(-0.1877f, 0.1877f, 0.9641f),
  89.         new Vector3(0.1877f, 0.1877f, 0.9641f),
  90.         new Vector3(0.6947f, 0.1866f, 0.6947f),
  91.         new Vector3(0.9641f, 0.1877f, 0.1877f),
  92.         new Vector3(0.9641f, 0.1877f, -0.1877f),
  93.         new Vector3(0.6947f, 0.1866f, -0.6947f),
  94.         new Vector3(0.1877f, 0.1877f, -0.9641f),
  95.         new Vector3(-0.1877f, -0.1877f, -0.9641f),
  96.         new Vector3(-0.6947f, -0.1866f, -0.6947f),
  97.         new Vector3(-0.9641f, -0.1877f, -0.1877f),
  98.         new Vector3(-0.9641f, -0.1877f, 0.1877f),
  99.         new Vector3(-0.6947f, -0.1866f, 0.6947f),
  100.         new Vector3(-0.1877f, -0.1877f, 0.9641f),
  101.         new Vector3(0.1877f, -0.1877f, 0.9641f),
  102.         new Vector3(0.6947f, -0.1866f, 0.6947f),
  103.         new Vector3(0.9641f, -0.1877f, 0.1877f),
  104.         new Vector3(0.9641f, -0.1877f, -0.1877f),
  105.         new Vector3(0.6947f, -0.1866f, -0.6947f),
  106.         new Vector3(0.1877f, -0.1877f, -0.9641f),
  107.         new Vector3(-0.1448f, -0.6794f, -0.7194f),
  108.         new Vector3(-0.5294f, -0.6630f, -0.5294f),
  109.         new Vector3(-0.7194f, -0.6794f, -0.1448f),
  110.         new Vector3(-0.7194f, -0.6794f, 0.1448f),
  111.         new Vector3(-0.5294f, -0.6630f, 0.5294f),
  112.         new Vector3(-0.1448f, -0.6794f, 0.7194f),
  113.         new Vector3(0.1448f, -0.6794f, 0.7194f),
  114.         new Vector3(0.5294f, -0.6630f, 0.5294f),
  115.         new Vector3(0.7194f, -0.6794f, 0.1448f),
  116.         new Vector3(0.7194f, -0.6794f, -0.1448f),
  117.         new Vector3(0.5294f, -0.6630f, -0.5294f),
  118.         new Vector3(0.1448f, -0.6794f, -0.7194f),
  119.         new Vector3(-0.1657f, -0.9721f, -0.1657f),
  120.         new Vector3(-0.1657f, -0.9721f, 0.1657f),
  121.         new Vector3(0.1657f, -0.9721f, 0.1657f),
  122.         new Vector3(0.1657f, -0.9721f, -0.1657f),
  123.     };
  124. // 120 texture coordinates
  125.     private static readonly Vector2[] Textures =
  126.     {new Vector2(0.4511f, 0.4511f),
  127.     new Vector2(0.0412f, 0.4511f),
  128.     new Vector2(0.0412f, 0.0412f),
  129.     new Vector2(0.4511f, 0.0412f),
  130.     new Vector2(0.4904f, 0.4511f),
  131.     new Vector2(0.4805f, 0.4771f),
  132.     new Vector2(0.4771f, 0.4805f),
  133.     new Vector2(0.4511f, 0.4904f),
  134.     new Vector2(0.0412f, 0.4904f),
  135.     new Vector2(0.0153f, 0.4805f),
  136.     new Vector2(0.0118f, 0.4771f),
  137.     new Vector2(0.0020f, 0.4511f),
  138.     new Vector2(0.0020f, 0.0412f),
  139.     new Vector2(0.0118f, 0.0153f),
  140.     new Vector2(0.0153f, 0.0118f),
  141.     new Vector2(0.0412f, 0.0020f),
  142.     new Vector2(0.4511f, 0.0020f),
  143.     new Vector2(0.4771f, 0.0118f),
  144.     new Vector2(0.4805f, 0.0153f),
  145.     new Vector2(0.4904f, 0.0412f),
  146.     new Vector2(0.9645f, 0.2337f),
  147.     new Vector2(0.9588f, 0.1949f),
  148.     new Vector2(0.9980f, 0.1949f),
  149.     new Vector2(0.9923f, 0.2337f),
  150.     new Vector2(0.5154f, 0.9928f),
  151.     new Vector2(0.5096f, 0.9540f),
  152.     new Vector2(0.5489f, 0.9540f),
  153.     new Vector2(0.5431f, 0.9928f),
  154.     new Vector2(0.5489f, 0.9932f),
  155.     new Vector2(0.9588f, 0.9540f),
  156.     new Vector2(0.9588f, 0.9932f),
  157.     new Vector2(0.9645f, 0.9928f),
  158.     new Vector2(0.9980f, 0.9540f),
  159.     new Vector2(0.9923f, 0.9928f),
  160.     new Vector2(0.5154f, 0.7414f),
  161.     new Vector2(0.5096f, 0.7026f),
  162.     new Vector2(0.5489f, 0.7026f),
  163.     new Vector2(0.5431f, 0.7414f),
  164.     new Vector2(0.5489f, 0.7418f),
  165.     new Vector2(0.9588f, 0.7026f),
  166.     new Vector2(0.9588f, 0.7418f),
  167.     new Vector2(0.9645f, 0.7414f),
  168.     new Vector2(0.9980f, 0.7026f),
  169.     new Vector2(0.9923f, 0.7414f),
  170.     new Vector2(0.5154f, 0.4852f),
  171.     new Vector2(0.5096f, 0.4464f),
  172.     new Vector2(0.5489f, 0.4464f),
  173.     new Vector2(0.5431f, 0.4852f),
  174.     new Vector2(0.5489f, 0.4856f),
  175.     new Vector2(0.9588f, 0.4464f),
  176.     new Vector2(0.9588f, 0.4856f),
  177.     new Vector2(0.9645f, 0.4852f),
  178.     new Vector2(0.9980f, 0.4464f),
  179.     new Vector2(0.9923f, 0.4852f),
  180.     new Vector2(0.5154f, 0.2337f),
  181.     new Vector2(0.5096f, 0.1949f),
  182.     new Vector2(0.5489f, 0.1949f),
  183.     new Vector2(0.5431f, 0.2337f),
  184.     new Vector2(0.5489f, 0.2342f),
  185.     new Vector2(0.9588f, 0.2342f),
  186.     new Vector2(0.9588f, 0.0412f),
  187.     new Vector2(0.9980f, 0.0412f),
  188.     new Vector2(0.5096f, 0.8003f),
  189.     new Vector2(0.5489f, 0.8003f),
  190.     new Vector2(0.9588f, 0.8003f),
  191.     new Vector2(0.9980f, 0.8003f),
  192.     new Vector2(0.5096f, 0.5489f),
  193.     new Vector2(0.5489f, 0.5489f),
  194.     new Vector2(0.9588f, 0.5489f),
  195.     new Vector2(0.9980f, 0.5489f),
  196.     new Vector2(0.5096f, 0.2927f),
  197.     new Vector2(0.5489f, 0.2927f),
  198.     new Vector2(0.9588f, 0.2927f),
  199.     new Vector2(0.9980f, 0.2927f),
  200.     new Vector2(0.5096f, 0.0412f),
  201.     new Vector2(0.5489f, 0.0412f),
  202.     new Vector2(0.9645f, 0.0024f),
  203.     new Vector2(0.9923f, 0.0024f),
  204.     new Vector2(0.5154f, 0.7615f),
  205.     new Vector2(0.5431f, 0.7615f),
  206.     new Vector2(0.5489f, 0.7611f),
  207.     new Vector2(0.9588f, 0.7611f),
  208.     new Vector2(0.9645f, 0.7615f),
  209.     new Vector2(0.9923f, 0.7615f),
  210.     new Vector2(0.5154f, 0.5101f),
  211.     new Vector2(0.5431f, 0.5101f),
  212.     new Vector2(0.5489f, 0.5096f),
  213.     new Vector2(0.9588f, 0.5096f),
  214.     new Vector2(0.9645f, 0.5101f),
  215.     new Vector2(0.9923f, 0.5101f),
  216.     new Vector2(0.5154f, 0.2539f),
  217.     new Vector2(0.5431f, 0.2539f),
  218.     new Vector2(0.5489f, 0.2534f),
  219.     new Vector2(0.9588f, 0.2534f),
  220.     new Vector2(0.9645f, 0.2539f),
  221.     new Vector2(0.9923f, 0.2539f),
  222.     new Vector2(0.5154f, 0.0024f),
  223.     new Vector2(0.5431f, 0.0024f),
  224.     new Vector2(0.5489f, 0.0020f),
  225.     new Vector2(0.9588f, 0.0020f),
  226.     new Vector2(0.0020f, 0.9588f),
  227.     new Vector2(0.0412f, 0.9588f),
  228.     new Vector2(0.0118f, 0.9847f),
  229.     new Vector2(0.0153f, 0.9882f),
  230.     new Vector2(0.0412f, 0.9980f),
  231.     new Vector2(0.4511f, 0.9588f),
  232.     new Vector2(0.4511f, 0.9980f),
  233.     new Vector2(0.4771f, 0.9882f),
  234.     new Vector2(0.4805f, 0.9847f),
  235.     new Vector2(0.4904f, 0.9588f),
  236.     new Vector2(0.4511f, 0.5489f),
  237.     new Vector2(0.4904f, 0.5489f),
  238.     new Vector2(0.4805f, 0.5229f),
  239.     new Vector2(0.4771f, 0.5194f),
  240.     new Vector2(0.4511f, 0.5096f),
  241.     new Vector2(0.0412f, 0.5489f),
  242.     new Vector2(0.0412f, 0.5096f),
  243.     new Vector2(0.0153f, 0.5194f),
  244.     new Vector2(0.0118f, 0.5229f),
  245.     new Vector2(0.0020f, 0.5489f)
  246.     };
  247. //108 vertex position triangles
  248.     private static readonly int[,] BlockFacePositions =
  249.     {
  250.         { 1, 2, 3  },
  251.         { 1, 3, 4  },
  252.         { 1, 5, 6  },
  253.         { 1, 6, 7  },
  254.         { 1, 7, 8  },
  255.         { 1, 8, 2  },
  256.         { 2, 8, 9  },
  257.         { 2, 9, 10  },
  258.         { 2, 10, 11  },
  259.         { 2, 11, 3  },
  260.         { 3, 11, 12  },
  261.         { 3, 12, 13  },
  262.         { 3, 13, 14  },
  263.         { 3, 14, 4  },
  264.         { 4, 14, 15  },
  265.         { 4, 15, 16  },
  266.         { 4, 16, 5  },
  267.         { 4, 5, 1  },
  268.         { 5, 17, 18  },
  269.         { 5, 18, 6  },
  270.         { 6, 18, 19  },
  271.         { 6, 19, 7  },
  272.         { 7, 19, 20  },
  273.         { 7, 20, 8  },
  274.         { 8, 20, 21  },
  275.         { 8, 21, 9  },
  276.         { 9, 21, 22  },
  277.         { 9, 22, 10  },
  278.         { 10, 22, 23  },
  279.         { 10, 23, 11  },
  280.         { 11, 23, 24  },
  281.         { 11, 24, 12  },
  282.         { 12, 24, 25  },
  283.         { 12, 25, 13  },
  284.         { 13, 25, 26  },
  285.         { 13, 26, 14  },
  286.         { 14, 26, 27  },
  287.         { 14, 27, 15  },
  288.         { 15, 27, 28  },
  289.         { 15, 28, 16  },
  290.         { 16, 28, 17  },
  291.         { 16, 17, 5  },
  292.         { 17, 29, 30  },
  293.         { 17, 30, 18  },
  294.         { 18, 30, 31  },
  295.         { 18, 31, 19  },
  296.         { 19, 31, 32  },
  297.         { 19, 32, 20  },
  298.         { 20, 32, 33  },
  299.         { 20, 33, 21  },
  300.         { 21, 33, 34  },
  301.         { 21, 34, 22  },
  302.         { 22, 34, 35  },
  303.         { 22, 35, 23  },
  304.         { 23, 35, 36  },
  305.         { 23, 36, 24  },
  306.         { 24, 36, 37  },
  307.         { 24, 37, 25  },
  308.         { 25, 37, 38  },
  309.         { 25, 38, 26  },
  310.         { 26, 38, 39  },
  311.         { 26, 39, 27  },
  312.         { 27, 39, 40  },
  313.         { 27, 40, 28  },
  314.         { 28, 40, 29  },
  315.         { 28, 29, 17  },
  316.         { 29, 41, 42  },
  317.         { 29, 42, 30  },
  318.         { 30, 42, 43  },
  319.         { 30, 43, 31  },
  320.         { 31, 43, 44  },
  321.         { 31, 44, 32  },
  322.         { 32, 44, 45  },
  323.         { 32, 45, 33  },
  324.         { 33, 45, 46  },
  325.         { 33, 46, 34  },
  326.         { 34, 46, 47  },
  327.         { 34, 47, 35  },
  328.         { 35, 47, 48  },
  329.         { 35, 48, 36  },
  330.         { 36, 48, 49  },
  331.         { 36, 49, 37  },
  332.         { 37, 49, 50  },
  333.         { 37, 50, 38  },
  334.         { 38, 50, 51  },
  335.         { 38, 51, 39  },
  336.         { 39, 51, 52  },
  337.         { 39, 52, 40  },
  338.         { 40, 52, 41  },
  339.         { 40, 41, 29  },
  340.         { 41, 53, 42  },
  341.         { 42, 53, 43  },
  342.         { 43, 53, 54  },
  343.         { 43, 54, 44  },
  344.         { 44, 54, 45  },
  345.         { 45, 54, 46  },
  346.         { 46, 54, 55  },
  347.         { 46, 55, 47  },
  348.         { 47, 55, 48  },
  349.         { 48, 55, 49  },
  350.         { 49, 55, 56  },
  351.         { 49, 56, 50  },
  352.         { 50, 56, 51  },
  353.         { 51, 56, 52  },
  354.         { 52, 56, 53  },
  355.         { 52, 53, 41  },
  356.         { 56, 55, 54  },
  357.         { 56, 54, 53  }
  358.     };
  359. //108 texture triangles
  360.     private static readonly int[,] BlockFaceTextures =
  361.     {
  362.         {1, 2, 3},
  363.         {1, 3, 4},
  364.         {1, 5, 6},
  365.         {1, 7, 8},
  366.         {1, 8, 9},
  367.         {1, 9, 2},
  368.         {2, 9, 10},
  369.         {2, 11, 12},
  370.         {2, 12, 13},
  371.         {2, 13, 3},
  372.         {3, 13, 14},
  373.         {3, 15, 16},
  374.         {3, 16, 17},
  375.         {3, 17, 4},
  376.         {4, 17, 18},
  377.         {4, 19, 20},
  378.         {4, 20, 5},
  379.         {4, 5, 1},
  380.         {21, 22, 23},
  381.         {21, 23, 24},
  382.         {25, 26, 27},
  383.         {25, 27, 28},
  384.         {29, 27, 30},
  385.         {29, 30, 31},
  386.         {32, 30, 33},
  387.         {32, 33, 34},
  388.         {35, 36, 37},
  389.         {35, 37, 38},
  390.         {39, 37, 40},
  391.         {39, 40, 41},
  392.         {42, 40, 43},
  393.         {42, 43, 44},
  394.         {45, 46, 47},
  395.         {45, 47, 48},
  396.         {49, 47, 50},
  397.         {49, 50, 51},
  398.         {52, 50, 53},
  399.         {52, 53, 54},
  400.         {55, 56, 57},
  401.         {55, 57, 58},
  402.         {59, 57, 22},
  403.         {59, 22, 60},
  404.         {22, 61, 62},
  405.         {22, 62, 23},
  406.         {26, 63, 64},
  407.         {26, 64, 27},
  408.         {27, 64, 65},
  409.         {27, 65, 30},
  410.         {30, 65, 66},
  411.         {30, 66, 33},
  412.         {36, 67, 68},
  413.         {36, 68, 37},
  414.         {37, 68, 69},
  415.         {37, 69, 40},
  416.         {40, 69, 70},
  417.         {40, 70, 43},
  418.         {46, 71, 72},
  419.         {46, 72, 47},
  420.         {47, 72, 73},
  421.         {47, 73, 50},
  422.         {50, 73, 74},
  423.         {50, 74, 53},
  424.         {56, 75, 76},
  425.         {56, 76, 57},
  426.         {57, 76, 61},
  427.         {57, 61, 22},
  428.         {61, 77, 78},
  429.         {61, 78, 62},
  430.         {63, 79, 80},
  431.         {63, 80, 64},
  432.         {64, 81, 82},
  433.         {64, 82, 65},
  434.         {65, 83, 84},
  435.         {65, 84, 66},
  436.         {67, 85, 86},
  437.         {67, 86, 68},
  438.         {68, 87, 88},
  439.         {68, 88, 69},
  440.         {69, 89, 90},
  441.         {69, 90, 70},
  442.         {71, 91, 92},
  443.         {71, 92, 72},
  444.         {72, 93, 94},
  445.         {72, 94, 73},
  446.         {73, 95, 96},
  447.         {73, 96, 74},
  448.         {75, 97, 98},
  449.         {75, 98, 76},
  450.         {76, 99, 100},
  451.         {76, 100, 61},
  452.         {101, 102, 103},
  453.         {104, 102, 105},
  454.         {105, 102, 106},
  455.         {105, 106, 107},
  456.         {107, 106, 108},
  457.         {109, 106, 110},
  458.         {110, 106, 111},
  459.         {110, 111, 112},
  460.         {112, 111, 113},
  461.         {114, 111, 115},
  462.         {115, 111, 116},
  463.         {115, 116, 117},
  464.         {117, 116, 118},
  465.         {119, 116, 120},
  466.         {120, 116, 102},
  467.         {120, 102, 101},
  468.         {116, 111, 106},
  469.         {116, 106, 102}
  470.     };
  471. //108 vertex normal triangles
  472.     private static readonly int[,] BlockFaceNormals =
  473.     {
  474.         { 1, 2, 3  },
  475.         { 1, 3, 4  },
  476.         { 1, 5, 6  },
  477.         { 1, 6, 7  },
  478.         { 1, 7, 8  },
  479.         { 1, 8, 2  },
  480.         { 2, 8, 9  },
  481.         { 2, 9, 10  },
  482.         { 2, 10, 11  },
  483.         { 2, 11, 3  },
  484.         { 3, 11, 12  },
  485.         { 3, 12, 13  },
  486.         { 3, 13, 14  },
  487.         { 3, 14, 4  },
  488.         { 4, 14, 15  },
  489.         { 4, 15, 16  },
  490.         { 4, 16, 5  },
  491.         { 4, 5, 1  },
  492.         { 5, 17, 18  },
  493.         { 5, 18, 6  },
  494.         { 6, 18, 19  },
  495.         { 6, 19, 7  },
  496.         { 7, 19, 20  },
  497.         { 7, 20, 8  },
  498.         { 8, 20, 21  },
  499.         { 8, 21, 9  },
  500.         { 9, 21, 22  },
  501.         { 9, 22, 10  },
  502.         { 10, 22, 23  },
  503.         { 10, 23, 11  },
  504.         { 11, 23, 24  },
  505.         { 11, 24, 12  },
  506.         { 12, 24, 25  },
  507.         { 12, 25, 13  },
  508.         { 13, 25, 26  },
  509.         { 13, 26, 14  },
  510.         { 14, 26, 27  },
  511.         { 14, 27, 15  },
  512.         { 15, 27, 28  },
  513.         { 15, 28, 16  },
  514.         { 16, 28, 17  },
  515.         { 16, 17, 5  },
  516.         { 17, 29, 30  },
  517.         { 17, 30, 18  },
  518.         { 18, 30, 31  },
  519.         { 18, 31, 19  },
  520.         { 19, 31, 32  },
  521.         { 19, 32, 20  },
  522.         { 20, 32, 33  },
  523.         { 20, 33, 21  },
  524.         { 21, 33, 34  },
  525.         { 21, 34, 22  },
  526.         { 22, 34, 35  },
  527.         { 22, 35, 23  },
  528.         { 23, 35, 36  },
  529.         { 23, 36, 24  },
  530.         { 24, 36, 37  },
  531.         { 24, 37, 25  },
  532.         { 25, 37, 38  },
  533.         { 25, 38, 26  },
  534.         { 26, 38, 39  },
  535.         { 26, 39, 27  },
  536.         { 27, 39, 40  },
  537.         { 27, 40, 28  },
  538.         { 28, 40, 29  },
  539.         { 28, 29, 17  },
  540.         { 29, 41, 42  },
  541.         { 29, 42, 30  },
  542.         { 30, 42, 43  },
  543.         { 30, 43, 31  },
  544.         { 31, 43, 44  },
  545.         { 31, 44, 32  },
  546.         { 32, 44, 45  },
  547.         { 32, 45, 33  },
  548.         { 33, 45, 46  },
  549.         { 33, 46, 34  },
  550.         { 34, 46, 47  },
  551.         { 34, 47, 35  },
  552.         { 35, 47, 48  },
  553.         { 35, 48, 36  },
  554.         { 36, 48, 49  },
  555.         { 36, 49, 37  },
  556.         { 37, 49, 50  },
  557.         { 37, 50, 38  },
  558.         { 38, 50, 51  },
  559.         { 38, 51, 39  },
  560.         { 39, 51, 52  },
  561.         { 39, 52, 40  },
  562.         { 40, 52, 41  },
  563.         { 40, 41, 29  },
  564.         { 41, 53, 42  },
  565.         { 42, 53, 43  },
  566.         { 43, 53, 54  },
  567.         { 43, 54, 44  },
  568.         { 44, 54, 45  },
  569.         { 45, 54, 46  },
  570.         { 46, 54, 55  },
  571.         { 46, 55, 47  },
  572.         { 47, 55, 48  },
  573.         { 48, 55, 49  },
  574.         { 49, 55, 56  },
  575.         { 49, 56, 50  },
  576.         { 50, 56, 51  },
  577.         { 51, 56, 52  },
  578.         { 52, 56, 53  },
  579.         { 52, 53, 41  },
  580.         { 56, 55, 54  },
  581.         { 56, 54, 53  }
  582.     };
  583. // calculate a contiguous list of normals, texture and vertex vectors so the indices match up (because you can only assign 1 set of indices in a mesh)
  584.     internal static readonly Vector3[] finalNormals = getNormals();
  585.     internal static readonly Vector2[] finalTex = getTex();
  586.     internal static readonly Vector3[] finalVert = getVerts();
  587.  
  588.     private static Vector3[] getNormals()
  589.     {
  590.         Vector3[] normals = new Vector3[BlockFaceNormals.Length];
  591.         for ( int i = 0; i < normals.Length; i+=3 )
  592.         {
  593.             normals[i] = Normals[BlockFaceNormals[i / 3, 0] - 1];
  594.             normals[i + 1] = Normals[BlockFaceNormals[i / 3, 1] - 1];
  595.             normals[i + 2] = Normals[BlockFaceNormals[i / 3, 2] - 1];
  596.         }
  597.         return normals;
  598.     }
  599.     private static Vector2[] getTex()
  600.     {
  601.         Vector2[] normals = new Vector2[BlockFaceTextures.Length];
  602.         for (int i = 0; i < normals.Length; i += 3)
  603.         {
  604.             normals[i] = Textures[BlockFaceTextures[i / 3, 0] - 1];
  605.             normals[i + 1] = Textures[BlockFaceTextures[i / 3, 1] - 1];
  606.             normals[i + 2] = Textures[BlockFaceTextures[i / 3, 2] - 1];
  607.         }
  608.         return normals;
  609.     }
  610.     private static Vector3[] getVerts()
  611.     {
  612.         Vector3[] normals = new Vector3[BlockFacePositions.Length];
  613.         for (int i = 0; i < normals.Length; i += 3)
  614.         {
  615.             normals[i] = Positions[BlockFacePositions[i / 3, 0] - 1];
  616.             normals[i + 1] = Positions[BlockFacePositions[i / 3, 1] - 1];
  617.             normals[i + 2] = Positions[BlockFacePositions[i / 3, 2] - 1];
  618.         }
  619.         return normals;
  620.     }
  621. // because the smooth mesh is only needed for aesthetic purposes, create a simple cube version of the mesh for the collider
  622.     internal static readonly Vector3[ ] ColVerts =
  623.     {
  624.         new Vector3(-0.5f,0.5f,-0.5f), new Vector3(-0.5f,0.5f,0.5f), new Vector3(0.5f,0.5f,-0.5f), new Vector3(0.5f,0.5f,0.5f),
  625.         new Vector3(-0.5f,0,-0.5f), new Vector3(-0.5f,0,0.5f), new Vector3(0.5f,0,-0.5f), new Vector3(0.5f,0,0.5f)
  626.     };
  627. // because the cube doesn't have weird geometry, just create the cube using an index array
  628.     internal static readonly int[ ] ColTris =
  629.     {
  630.         3,7,6,
  631.         3,6,2,
  632.         0,4,5,
  633.         0,5,1,
  634.         1,3,2,
  635.         1,2,0,
  636.         4,6,7,
  637.         4,7,5,
  638.         1,5,7,
  639.         1,7,3,
  640.         2,6,4,
  641.         2,4,0
  642.     };
  643. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement