ore_test.txt 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. event.load("block_break");
  2. ore_max = 32;
  3. broken = false;
  4. ore_ores = list.new();
  5. ore_items = map.new();
  6. ore.add("minecraft:coal_ore", "minecraft:coal",1,1);
  7. ore.add("minecraft:nether_quartz_ore", "minecraft:quartz",1,3.5);
  8. ore.add("minecraft:redstone_ore", "minecraft:redstone",4.5,3);
  9. @wait
  10. wait();
  11. if(player.getName(player) == "SirTerence7"){
  12. if(list.contains(ore_ores, block_type)){
  13. if(text.contains(living.getEquip(player, "hand"), "pickaxe")){
  14. block_to_destroy = block_type;
  15. item_to_give = map.get(ore_items, block_to_destroy);
  16. ore.get(block_loc);
  17. }
  18. }
  19. }
  20. goto("wait");
  21. function ore.add(ore,item,amount,xp){
  22. temp_array = array.new(3);
  23. temp_array[0] = item;
  24. temp_array[1] = amount;
  25. temp_array[2] = xp;
  26. list.add($ore_ores, ore);
  27. map.add($ore_items, ore, temp_array);
  28. }
  29. function ore.get(block_loc){
  30. ore_counter = 0;
  31. $ore_locs = list.new();
  32. list.add($ore_locs, block_loc);
  33. while(list.getSize($ore_locs) != 0){
  34. block_loc = list.getIndex($ore_locs, 0);
  35. list.removeIndex($ore_locs, 0);
  36. ore.add_ore(loc.mod(block_loc,1,0,0));
  37. ore.add_ore(loc.mod(block_loc,-1,0,0));
  38. ore.add_ore(loc.mod(block_loc,0,1,0));
  39. ore.add_ore(loc.mod(block_loc,0,-1,0));
  40. ore.add_ore(loc.mod(block_loc,0,0,1));
  41. ore.add_ore(loc.mod(block_loc,0,0,-1));
  42. ore_counter++;
  43. if(ore_counter > $ore_max - 1 || $broken) {
  44. break;
  45. }
  46. }
  47. }
  48. function ore.add_ore(temp_loc){
  49. if(block.getType(temp_loc) == $block_to_destroy){
  50. $broken = false;
  51. list.add($ore_locs, temp_loc);
  52. block.break(temp_loc, $player);
  53. player.damageItem($player, 1);
  54. }
  55. }