Advertisement
Guest User

Untitled

a guest
Nov 3rd, 2018
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.18 KB | None | 0 0
  1. package com.TheRPGAdventurer.ROTD.server.entity.breeds;
  2.  
  3. import java.util.Arrays;
  4. import java.util.function.Function;
  5. import java.util.function.Supplier;
  6. import java.util.stream.Collectors;
  7.  
  8. import com.google.common.collect.BiMap;
  9. import com.google.common.collect.ImmutableBiMap;
  10.  
  11. import net.minecraft.block.properties.PropertyEnum;
  12. import net.minecraft.util.IStringSerializable;
  13.  
  14. public enum EnumDragonBreed implements IStringSerializable {
  15.  
  16. AETHER(0, DragonBreedAir::new),
  17. FIRE(1, DragonBreedFire::new),
  18. FOREST(2, DragonBreedForest::new),
  19. SYLPHID(3, DragonBreedWater::new),
  20. ICE(4, DragonBreedIce::new),
  21. END(5, DragonBreedEnd::new),
  22. NETHER(6, DragonBreedNether::new),
  23. SKELETON(7, DragonBreedSkeleton::new),
  24. WITHER(8, DragonBreedWither::new),
  25. ENCHANT(9, DragonBreedEnchant::new),
  26. SUNLIGHT(10, DragonBreedSunlight::new),
  27. STORM(11, DragonBreedStorm::new),
  28. ZOMBIE(12, DragonBreedZombie::new);
  29.  
  30.  
  31. // create static bimap between enums and meta data for faster and easier
  32. // lookups
  33. public static final BiMap<EnumDragonBreed, Integer> META_MAPPING = ImmutableBiMap.copyOf(Arrays.asList(values()).stream().collect(Collectors.toMap(Function.identity(), EnumDragonBreed::getMeta)));
  34. public static final PropertyEnum<EnumDragonBreed> BREED = PropertyEnum.create("breed", EnumDragonBreed.class);
  35. private final DragonBreed breed;
  36.  
  37. // this field is used for block metadata and is technically the same as
  38. // ordinal(), but it is saved separately to make sure the values stay
  39. // constant after adding more breeds in unexpected orders
  40. private final int meta;
  41.  
  42. private EnumDragonBreed(int meta, Supplier<DragonBreed> factory) {
  43. this.breed = factory.get();
  44. this.meta = meta;
  45. }
  46.  
  47.  
  48. public DragonBreed getBreed() {
  49. return breed;
  50. }
  51.  
  52. public int getMeta() {
  53. return meta;
  54. }
  55.  
  56. @Override
  57. public String getName() {
  58. return name().toLowerCase();
  59. }
  60.  
  61. public int getNumberOfNeckSegments() {return 7;}
  62.  
  63. public int getNumberOfTailSegments() {return 12;}
  64.  
  65. public int getNumberOfWingFingers() {return 4;}
  66.  
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement