Guest User

Untitled

a guest
Nov 23rd, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.70 KB | None | 0 0
  1. package org.bukkit;
  2.  
  3. import java.util.HashMap;
  4.  
  5. public abstract class BlockType {
  6. private static BlockType[] byId = new BlockType[256];
  7. private static HashMap<String, Integer> nameToId = new HashMap<String, Integer>();
  8.  
  9. public enum Default {
  10. STONE(1),
  11. GRASS(2),
  12. DIRT(3),
  13. COBBLESTONE(4),
  14. WOOD(5),
  15. SAPLING(6),
  16. BEDROCK(7),
  17. WATER(8),
  18. STATIONARY_WATER(9),
  19. LAVA(10),
  20. STATIONARY_LAVA(11),
  21. SAND(12),
  22. GRAVEL(13),
  23. GOLD_ORE(14),
  24. IRON_ORE(15),
  25. COAL_ORE(16),
  26. LOG(17),
  27. LEAVES(18),
  28. SPONGE(19),
  29. GLASS(20),
  30. LAPIS_ORE(21),
  31. LAPIS_BLOCK(22),
  32. DISPENSER(23),
  33. SANDSTONE(24),
  34. NOTE_BLOCK(25),
  35. WOOL(35),
  36. YELLOW_FLOWER(37),
  37. RED_ROSE(38),
  38. BROWN_MUSHROOM(39),
  39. RED_MUSHROOM(40),
  40. GOLD_BLOCK(41),
  41. IRON_BLOCK(42),
  42. DOUBLE_STEP(43),
  43. STEP(44),
  44. BRICK(45),
  45. TNT(46),
  46. BOOKSHELF(47),
  47. MOSSY_COBBLESTONE(48),
  48. OBSIDIAN(49),
  49. TORCH(50),
  50. FIRE(51),
  51. MOB_SPAWNER(52),
  52. WOOD_STAIRS(53),
  53. CHEST(54),
  54. REDSTONE_WIRE(55),
  55. DIAMOND_ORE(56),
  56. DIAMOND_BLOCK(57),
  57. WORKBENCH(58),
  58. CROPS(59),
  59. SOIL(60),
  60. FURNACE(61),
  61. BURNING_FURNACE(62),
  62. SIGN_POST(63),
  63. WOODEN_DOOR(64),
  64. LADDER(65),
  65. RAILS(66),
  66. COBBLESTONE_STAIRS(67),
  67. WALL_SIGN(68),
  68. LEVER(69),
  69. STONE_PLATE(70),
  70. IRON_DOOR_BLOCK(71),
  71. WOOD_PLATE(72),
  72. REDSTONE_ORE(73),
  73. GLOWING_REDSTONE_ORE(74),
  74. REDSTONE_TORCH_OFF(75),
  75. REDSTONE_TORCH_ON(76),
  76. STONE_BUTTON(77),
  77. SNOW(78),
  78. ICE(79),
  79. SNOW_BLOCK(80),
  80. CACTUS(81),
  81. CLAY(82),
  82. SUGAR_CANE_BLOCK(83),
  83. JUKEBOX(84),
  84. FENCE(85),
  85. PUMPKIN(86),
  86. NETHERRACK(87),
  87. SOUL_SAND(88),
  88. GLOWSTONE(89),
  89. PORTAL(90),
  90. JACK_O_LANTERN(91),
  91. CAKE_BLOCK(92),
  92. DIODE_BLOCK_OFF(93),
  93. DIODE_BLOCK_ON(94),
  94. LOCKED_CHEST(95);
  95.  
  96. private int id;
  97. Default(int id) {
  98. this.id = id;
  99. }
  100.  
  101. public int getId() {
  102. return this.id;
  103. }
  104. }
  105.  
  106. protected int id;
  107. protected String name;
  108.  
  109. protected BlockType(int id, String name) {
  110. this.id = id;
  111. this.name = name;
  112. }
  113.  
  114. // Register types/aliases
  115. public static final void registerType(BlockType type) {
  116. byId.put(type.getId(), type);
  117. nameToId.put(type.getName(), type.getId());
  118. }
  119.  
  120. public static final void registerAlias(int id, String... names) {
  121. for (String name: names) {
  122. nameToId.put(name, id);
  123. }
  124. }
  125.  
  126. // Getters
  127. public static BlockType get(int id) {
  128. return byId[id];
  129. }
  130.  
  131. public static BlockType get(String name) {
  132. return get(nameToId.get(name));
  133. }
  134.  
  135. public static BlockType get(Default type) {
  136. return get(type.getId());
  137. }
  138.  
  139. // Generic accessors
  140. public String getName() {
  141. return this.name;
  142. }
  143.  
  144. public int getId() {
  145. return this.id;
  146. }
  147.  
  148. // To Be implemented
  149. public abstract String getInternalName();
  150. public abstract float getFrictionFactor();
  151. public abstract int getDurability();
  152. public abstract int getStrength();
  153. public abstract int getTextureId(int face);
  154. public abstract Material getMaterial();
  155. public abstract ItemType[] getDrops(); // perhaps ItemStack
  156. }
Add Comment
Please, Sign In to add comment