Advertisement
Guest User

refienry

a guest
Aug 28th, 2015
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.71 KB | None | 0 0
  1. <?php
  2.  
  3. /**
  4. * Class for converting minerals to ore
  5. *
  6. * Uses mathmatical functions to convert minerals into ore
  7. *
  8. * @author AliasXNeo
  9. * @package IndyPal
  10. */
  11.  
  12. class Conversion
  13. {
  14. public static $isLeftover = FALSE;
  15. public static $leftOver = array();
  16.  
  17. public static function convert($minerals)
  18. {
  19. $ore = array();
  20. $leftOver = array();
  21.  
  22. foreach ($minerals as $mineral)
  23. {
  24. $keys = array_keys($mineral);
  25. $name = $keys[0];
  26. $amount = $mineral[$name];
  27.  
  28.  
  29.  
  30. $sql = "SELECT * FROM `conversion` WHERE `{$name}` > 0 ORDER BY `{$name}` DESC";
  31.  
  32. $oResult = mysql_query($sql);
  33. $result = mysql_fetch_assoc($oResult);
  34.  
  35. //$batches = intval($amount / $result[$name]);
  36. $batches = ceil($amount / $result[$name]);
  37.  
  38. $res1=intval($batches * $result['batch']);
  39.  
  40.  
  41. if (($res1 > $ore[$result['name']])) {
  42. $ore[$result['name']] = $res1;
  43. }
  44.  
  45. if ($ore[$result['name']] == 0)
  46. {
  47. $ore[$result['name']] = 1;
  48. }
  49.  
  50. //echo $result['name']."<br>";
  51. /*echo "ore:<br>";
  52. print_r($ore);
  53. echo "<br>";*/
  54.  
  55. $mins = array_keys($result);
  56. //print_r($mins);
  57. //echo "<br>";
  58. unset($mins[0]);
  59. unset($mins[1]);
  60. unset($mins[2]);
  61.  
  62. /*print_r($mins);
  63. echo "<br>";
  64. echo "name: ".$name."<br>";*/
  65.  
  66. foreach($mins as $min)
  67. {
  68. /*echo "min: ".$min."<br>";
  69. echo "result[$min]: ".$result[$min]."<br>";*/
  70. if (intval($result[$min]) > 0 && $min != $name)
  71. {
  72. /*echo "leftover: ".intval($result[$min])."<br>";*/
  73. //$leftOver[$min] += intval($result[$min]);
  74. $leftOver[$min] = intval($result[$min]);
  75. }
  76. /*echo "<br><br>";*/
  77. }
  78. }
  79.  
  80. $mins = array_keys($leftOver);
  81. /*print_r($mins);
  82. echo "<br>";*/
  83.  
  84. /*print_r($leftOver);
  85. echo "<br>";*/
  86.  
  87. foreach($mins as $min)
  88. {
  89. foreach($minerals as $mineral)
  90. {
  91. if (in_array($min, array_keys($mineral)))
  92. {
  93. $sql = "SELECT * FROM `conversion` WHERE `{$min}` > 0 ORDER BY `{$min}` DESC";
  94. $oResult = mysql_query($sql);
  95. $result = mysql_fetch_assoc($oResult);
  96.  
  97. /*echo "leftover: ";
  98. var_dump($leftOver[$min]);
  99. echo "<br>";*/
  100.  
  101. /*echo "result['batch']: ";
  102. var_dump($result['batch']);
  103. echo "<br>";*/
  104.  
  105. /*echo "intval: ";
  106. var_dump(intval($leftOver[$min] / $result[$min]));
  107. echo "<br>";*/
  108.  
  109. //$ore[$result['name']] += intval($leftOver[$min] / $result['batch']);
  110. //$ore[$result['name']] += intval($leftOver[$min] / $result[$min]);
  111.  
  112. unset($leftOver[$min]);
  113. }
  114. }
  115. }
  116.  
  117.  
  118.  
  119. if (sizeof($leftOver) > 0)
  120. {
  121. self::$isLeftover = TRUE;
  122. self::$leftOver = $leftOver;
  123. }
  124.  
  125. return $ore;
  126. }
  127. }
  128.  
  129. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement