Advertisement
Guest User

Find index based on surrounding tiles

a guest
May 20th, 2018
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.64 KB | None | 0 0
  1. int getIndex(byte surroundings) {
  2.         int index = -1;
  3.      
  4.         //set the tile index of this tile based on the surrounding space
  5.      
  6.         //  0   1   2
  7.         //  7   X   3
  8.         //  6   5   4
  9.         // where X = the current tile
  10.      
  11.         //all possible 8 bit binary combinations
  12.        
  13.         switch (surroundings){
  14.        
  15.         case (byte)0b01000000:
  16.         case (byte)0b01000010:
  17.         case (byte)0b01001000:
  18.         case (byte)0b01001010:
  19.         case (byte)0b01100000:
  20.         case (byte)0b01100010:
  21.         case (byte)0b01101000:
  22.         case (byte)0b01101010:
  23.         case (byte)0b11000000:
  24.         case (byte)0b11000010:
  25.         case (byte)0b11001000:
  26.         case (byte)0b11001010:
  27.         case (byte)0b11100000:
  28.         case (byte)0b11100010:
  29.         case (byte)0b11101000:
  30.         case (byte)0b11101010:
  31.             index = 0;
  32.             break;
  33.            
  34.         case (byte)0b01110000:
  35.         case (byte)0b01110010:
  36.         case (byte)0b01111000:
  37.         case (byte)0b01111010:
  38.         case (byte)0b11111000:
  39.         case (byte)0b11111010:
  40.         case (byte)0b11110000:
  41.         case (byte)0b11110010:
  42.             index = 1;
  43.             break;
  44.            
  45.         case (byte)0b11110001:
  46.         case (byte)0b11110011:
  47.         case (byte)0b11111001:
  48.         case (byte)0b11111011:
  49.             index = 2;
  50.             break;
  51.            
  52.         case (byte)0b11000001:
  53.         case (byte)0b11000011:
  54.         case (byte)0b11001001:
  55.         case (byte)0b11001011:
  56.         case (byte)0b11100001:
  57.         case (byte)0b11100011:
  58.         case (byte)0b11101001:
  59.         case (byte)0b11101011:
  60.             index = 3;
  61.             break;
  62.            
  63.         case (byte)0b01110001:
  64.         case (byte)0b01110011:
  65.         case (byte)0b01111001:
  66.         case (byte)0b01111011:
  67.             index = 4;
  68.             break;
  69.            
  70.         case (byte)0b11010001:
  71.         case (byte)0b11010011:
  72.         case (byte)0b11011001:
  73.         case (byte)0b11011011:
  74.             index = 6;
  75.             break;
  76.            
  77.         case (byte)0b11010101:
  78.         case (byte)0b11010111:
  79.         case (byte)0b11011101:
  80.         case (byte)0b11011111:
  81.             index = 8;
  82.             break;
  83.            
  84.         case (byte)0b01110101:
  85.         case (byte)0b01110111:
  86.         case (byte)0b01111101:
  87.         case (byte)0b01111111:
  88.             index = 9;
  89.             break;
  90.            
  91.         case (byte)0b01000100:
  92.         case (byte)0b01000110:
  93.         case (byte)0b01001100:
  94.         case (byte)0b01001110:
  95.         case (byte)0b01100100:
  96.         case (byte)0b01100110:
  97.         case (byte)0b01101100:
  98.         case (byte)0b01101110:
  99.         case (byte)0b11000100:
  100.         case (byte)0b11000110:
  101.         case (byte)0b11001100:
  102.         case (byte)0b11001110:
  103.         case (byte)0b11100100:
  104.         case (byte)0b11100110:
  105.         case (byte)0b11101100:
  106.         case (byte)0b11101110:
  107.             index = 12;
  108.             break;
  109.            
  110.         case (byte)0b01110100:
  111.         case (byte)0b01110110:
  112.         case (byte)0b01111100:
  113.         case (byte)0b01111110:
  114.         case (byte)0b11110100:
  115.         case (byte)0b11110110:
  116.         case (byte)0b11111100:
  117.         case (byte)0b11111110:
  118.             index = 13;
  119.             break;
  120.            
  121.         case (byte)0b11110101:
  122.         case (byte)0b11110111:
  123.         case (byte)0b11111101:
  124.         case (byte)0b11111111:
  125.             index = 14;
  126.             break;
  127.            
  128.         case (byte)0b11000101:
  129.         case (byte)0b11000111:
  130.         case (byte)0b11001101:
  131.         case (byte)0b11001111:
  132.         case (byte)0b11100101:
  133.         case (byte)0b11100111:
  134.         case (byte)0b11101101:
  135.         case (byte)0b11101111:
  136.             index = 15;
  137.             break;
  138.            
  139.         case (byte)0b01010100:
  140.         case (byte)0b01010110:
  141.         case (byte)0b01011100:
  142.         case (byte)0b01011110:
  143.         case (byte)0b11010100:
  144.         case (byte)0b11010110:
  145.         case (byte)0b11011100:
  146.         case (byte)0b11011110:
  147.             index = 16;
  148.             break;
  149.            
  150.         case (byte)0b00000100:
  151.         case (byte)0b00000110:
  152.         case (byte)0b00001100:
  153.         case (byte)0b00001110:
  154.         case (byte)0b00100100:
  155.         case (byte)0b00100110:
  156.         case (byte)0b00101100:
  157.         case (byte)0b00101110:
  158.         case (byte)0b10000100:
  159.         case (byte)0b10000110:
  160.         case (byte)0b10001100:
  161.         case (byte)0b10001110:
  162.         case (byte)0b10100100:
  163.         case (byte)0b10100110:
  164.         case (byte)0b10101100:
  165.         case (byte)0b10101110:
  166.             index = 24;
  167.             break;
  168.            
  169.         case (byte)0b00010100:
  170.         case (byte)0b00010110:
  171.         case (byte)0b00011100:
  172.         case (byte)0b00011110:
  173.         case (byte)0b00110100:
  174.         case (byte)0b00110110:
  175.         case (byte)0b00111100:
  176.         case (byte)0b00111110:
  177.         case (byte)0b10010100:
  178.         case (byte)0b10010110:
  179.         case (byte)0b10011100:
  180.         case (byte)0b10011110:
  181.         case (byte)0b10110100:
  182.         case (byte)0b10110110:
  183.         case (byte)0b10111100:
  184.         case (byte)0b10111110:
  185.             index = 25;
  186.             break;
  187.            
  188.         case (byte)0b00010101:
  189.         case (byte)0b00010111:
  190.         case (byte)0b00011101:
  191.         case (byte)0b00011111:
  192.         case (byte)0b00110101:
  193.         case (byte)0b00110111:
  194.         case (byte)0b00111101:
  195.         case (byte)0b00111111:
  196.         case (byte)0b10010101:
  197.         case (byte)0b10010111:
  198.         case (byte)0b10011101:
  199.         case (byte)0b10011111:
  200.         case (byte)0b10110101:
  201.         case (byte)0b10110111:
  202.         case (byte)0b10111101:
  203.         case (byte)0b10111111:
  204.             index = 26;
  205.             break;
  206.            
  207.         case (byte)0b00000101:
  208.         case (byte)0b00000111:
  209.         case (byte)0b00001101:
  210.         case (byte)0b00001111:
  211.         case (byte)0b00100101:
  212.         case (byte)0b00100111:
  213.         case (byte)0b00101101:
  214.         case (byte)0b00101111:
  215.         case (byte)0b10000101:
  216.         case (byte)0b10000111:
  217.         case (byte)0b10001101:
  218.         case (byte)0b10001111:
  219.         case (byte)0b10100101:
  220.         case (byte)0b10101101:
  221.         case (byte)0b10101111:
  222.         case (byte)0b10100111:
  223.             index = 27;
  224.             break;
  225.            
  226.         case (byte)0b01010000:
  227.         case (byte)0b01011000:
  228.         case (byte)0b01011010:
  229.         case (byte)0b11010000:
  230.         case (byte)0b11010010:
  231.         case (byte)0b11011000:
  232.         case (byte)0b11011010:
  233.         case (byte)0b01010010:
  234.             index = 28;
  235.             break;
  236.            
  237.         case (byte)0b01001011:
  238.         case (byte)0b01100001:
  239.         case (byte)0b01100011:
  240.         case (byte)0b01101001:
  241.         case (byte)0b01101011:
  242.         case (byte)0b01000011:
  243.         case (byte)0b01000001:
  244.             index = 29;
  245.             break;
  246.            
  247.         case (byte)0b01010001:
  248.         case (byte)0b01010011:
  249.         case (byte)0b01011001:
  250.         case (byte)0b01011011:
  251.             index = 30;
  252.             break;
  253.            
  254.         case (byte)0b01000111:
  255.         case (byte)0b01001101:
  256.         case (byte)0b01001111:
  257.         case (byte)0b01100101:
  258.         case (byte)0b01100111:
  259.         case (byte)0b01101101:
  260.         case (byte)0b01101111:
  261.         case (byte)0b01000101:
  262.         case (byte)0b01001001:
  263.             index = 31;
  264.             break;
  265.            
  266.         case (byte)0b00000000:
  267.         case (byte)0b00000010:
  268.         case (byte)0b00001000:
  269.         case (byte)0b00001010:
  270.         case (byte)0b00100000:
  271.         case (byte)0b00100010:
  272.         case (byte)0b00101000:
  273.         case (byte)0b00101010:
  274.         case (byte)0b10000000:
  275.         case (byte)0b10000010:
  276.         case (byte)0b10001000:
  277.         case (byte)0b10001010:
  278.         case (byte)0b10100000:
  279.         case (byte)0b10100010:
  280.         case (byte)0b10101000:
  281.         case (byte)0b10101010:
  282.             index = 11;
  283.             break;
  284.            
  285.         case (byte)0b00010000:
  286.         case (byte)0b00010010:
  287.         case (byte)0b00011000:
  288.         case (byte)0b00011010:
  289.         case (byte)0b00110000:
  290.         case (byte)0b00110010:
  291.         case (byte)0b00111000:
  292.         case (byte)0b00111010:
  293.         case (byte)0b10010000:
  294.         case (byte)0b10010010:
  295.         case (byte)0b10011000:
  296.         case (byte)0b10011010:
  297.         case (byte)0b10110000:
  298.         case (byte)0b10110010:
  299.         case (byte)0b10111000:
  300.         case (byte)0b10111010:
  301.             index = 37;
  302.             break;
  303.            
  304.         case (byte)0b00010001:
  305.         case (byte)0b00010011:
  306.         case (byte)0b00011001:
  307.         case (byte)0b00011011:
  308.         case (byte)0b00110001:
  309.         case (byte)0b00110011:
  310.         case (byte)0b00111001:
  311.         case (byte)0b00111011:
  312.         case (byte)0b10010001:
  313.         case (byte)0b10010011:
  314.         case (byte)0b10011001:
  315.         case (byte)0b10011011:
  316.         case (byte)0b10110001:
  317.         case (byte)0b10110011:
  318.         case (byte)0b10111001:
  319.         case (byte)0b10111011:
  320.             index = 38;
  321.             break;
  322.            
  323.         case (byte)0b00000001:
  324.         case (byte)0b00000011:
  325.         case (byte)0b00001001:
  326.         case (byte)0b00001011:
  327.         case (byte)0b00100001:
  328.         case (byte)0b00100011:
  329.         case (byte)0b00101001:
  330.         case (byte)0b00101011:
  331.         case (byte)0b10000001:
  332.         case (byte)0b10000011:
  333.         case (byte)0b10001001:
  334.         case (byte)0b10001011:
  335.         case (byte)0b10100001:
  336.         case (byte)0b10100011:
  337.         case (byte)0b10101001:
  338.         case (byte)0b10101011:
  339.             index = 39;
  340.             break;
  341.            
  342.         case (byte)0b01010101:
  343.         case (byte)0b01010111:
  344.         case (byte)0b01011101:
  345.         case (byte)0b01011111:
  346.             index = 45;
  347.             break;
  348.            
  349.         }
  350.      
  351.         return index;
  352.        
  353.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement