Advertisement
Guest User

Untitled

a guest
Jan 11th, 2016
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.88 KB | None | 0 0
  1.  /** Special Item Meshers **/
  2.         // Must wrap messhers in a wrapper for now, see the MesherWrapper class definition at bottom of file
  3.  
  4.         ModelLoader.registerItemVariants(infiniteFruit,
  5.                 new ModelResourceLocation("botania:infiniteFruit", "inventory"),
  6.                 new ModelResourceLocation("botania:infiniteFruitBoot", "inventory"));
  7.         ModelLoader.setCustomMeshDefinition(infiniteFruit, MesherWrapper.of(stack ->
  8.                 ItemInfiniteFruit.isBoot(stack)
  9.                     ? new ModelResourceLocation("botania:infiniteFruitBoot", "inventory")
  10.                     : new ModelResourceLocation("botania:infiniteFruit", "inventory")));
  11.  
  12.         ModelLoader.registerItemVariants(magnetRing,
  13.                 new ModelResourceLocation("botania:magnetRingOn", "inventory"),
  14.                 new ModelResourceLocation("botania:magnetRingOff", "inventory"));
  15.         ModelLoader.setCustomMeshDefinition(magnetRing, MesherWrapper.of(stack ->
  16.                 ItemMagnetRing.getCooldown(stack) <= 0
  17.                     ? new ModelResourceLocation("botania:magnetRingOn", "inventory")
  18.                     : new ModelResourceLocation("botania:magnetRingOff", "inventory")));
  19.  
  20.         ModelLoader.registerItemVariants(magnetRingGreater,
  21.                 new ModelResourceLocation("botania:magnetRingGreaterOn", "inventory"),
  22.                 new ModelResourceLocation("botania:magnetRingGreaterOff", "inventory"));
  23.         ModelLoader.setCustomMeshDefinition(magnetRingGreater, MesherWrapper.of(stack ->
  24.                 ItemMagnetRing.getCooldown(stack) <= 0
  25.                     ? new ModelResourceLocation("botania:magnetRingGreaterOn", "inventory")
  26.                     : new ModelResourceLocation("botania:magnetRingGreaterOff", "inventory")));
  27.  
  28.         ModelLoader.registerItemVariants(manaGun,
  29.                 new ModelResourceLocation("botania:manaGun", "inventory"),
  30.                 new ModelResourceLocation("botania:manaGunClip", "inventory"),
  31.                 new ModelResourceLocation("botania:desuGun", "inventory"),
  32.                 new ModelResourceLocation("botania:desuGunClip", "inventory"));
  33.         ModelLoader.setCustomMeshDefinition(manaGun, MesherWrapper.of(stack -> {
  34.             String name = ((ItemManaGun) manaGun).isSugoiKawaiiDesuNe(stack) ? "botania:desuGun" : "botania:manaGun";
  35.             return new ModelResourceLocation(name + (ItemManaGun.hasClip(stack) ? "Clip" : ""), "inventory");
  36.         }));
  37.  
  38.         ModelLoader.registerItemVariants(tornadoRod,
  39.                 new ModelResourceLocation("botania:tornadoRod", "inventory"),
  40.                 new ModelResourceLocation("botania:tornadoRod_flying", "inventory"));
  41.         ModelLoader.setCustomMeshDefinition(tornadoRod, MesherWrapper.of(stack ->
  42.                 ((ItemTornadoRod) ModItems.tornadoRod).isFlying(stack)
  43.                     ? new ModelResourceLocation("botania:tornadoRod_flying", "inventory")
  44.                     : new ModelResourceLocation("botania:tornadoRod", "inventory")));
  45.  
  46.         ModelLoader.registerItemVariants(twigWand,
  47.                 new ModelResourceLocation("botania:twigWand", "inventory"),
  48.                 new ModelResourceLocation("botania:twigWand_bind", "inventory"));
  49.         ModelLoader.setCustomMeshDefinition(twigWand, MesherWrapper.of(stack -> {
  50.             String path = "botania:twigWand";
  51.             return new ModelResourceLocation(path + (ItemTwigWand.getBindMode(stack) ? "_bind" : ""), "inventory");
  52.         }));
  53.  
  54.         ModelLoader.registerItemVariants(manaweaveBoots,
  55.                 new ModelResourceLocation("botania:manaweaveBoots", "inventory"),
  56.                 new ModelResourceLocation("botania:manaweaveBootsHoliday", "inventory"));
  57.  
  58.         ModelLoader.setCustomMeshDefinition(manaweaveBoots, MesherWrapper.of(stack ->
  59.                 ClientProxy.jingleTheBells
  60.                     ? new ModelResourceLocation("botania:manaweaveBootsHoliday", "inventory")
  61.                     : new ModelResourceLocation("botania:manaweaveBoots", "inventory")));
  62.  
  63.         ModelLoader.registerItemVariants(manaweaveChest,
  64.                 new ModelResourceLocation("botania:manaweaveChest", "inventory"),
  65.                 new ModelResourceLocation("botania:manaweaveChestHoliday", "inventory"));
  66.  
  67.         ModelLoader.setCustomMeshDefinition(manaweaveChest, MesherWrapper.of(stack ->
  68.                 ClientProxy.jingleTheBells
  69.                     ? new ModelResourceLocation("botania:manaweaveChestHoliday", "inventory")
  70.                     : new ModelResourceLocation("botania:manaweaveChest", "inventory")));
  71.  
  72.         ModelLoader.registerItemVariants(manaweaveHelm,
  73.                 new ModelResourceLocation("botania:manaweaveHelm", "inventory"),
  74.                 new ModelResourceLocation("botania:manaweaveHelmHoliday", "inventory"));
  75.  
  76.         ModelLoader.setCustomMeshDefinition(manaweaveHelm, MesherWrapper.of(stack ->
  77.                 ClientProxy.jingleTheBells
  78.                     ? new ModelResourceLocation("botania:manaweaveHelmHoliday", "inventory")
  79.                     : new ModelResourceLocation("botania:manaweaveHelm", "inventory")));
  80.  
  81.         ModelLoader.registerItemVariants(manaweaveLegs,
  82.                 new ModelResourceLocation("botania:manaweaveLegs", "inventory"),
  83.                 new ModelResourceLocation("botania:manaweaveLegsHoliday", "inventory"));
  84.  
  85.         ModelLoader.setCustomMeshDefinition(manaweaveLegs, MesherWrapper.of(stack ->
  86.                 ClientProxy.jingleTheBells
  87.                     ? new ModelResourceLocation("botania:manaweaveLegsHoliday", "inventory")
  88.                     : new ModelResourceLocation("botania:manaweaveLegs", "inventory")));
  89.  
  90.         ModelLoader.registerItemVariants(manasteelSword,
  91.                 new ModelResourceLocation("botania:manasteelSword", "inventory"),
  92.                 new ModelResourceLocation("botania:elucidator", "inventory"));
  93.         ModelLoader.setCustomMeshDefinition(manasteelSword, MesherWrapper.of(stack ->
  94.                 "the elucidator".equals(stack.getDisplayName().toLowerCase().trim())
  95.                     ? new ModelResourceLocation("botania:elucidator", "inventory")
  96.                     : new ModelResourceLocation("botania:manasteelSword", "inventory")));
  97.  
  98.         ModelLoader.registerItemVariants(spawnerMover,
  99.                 new ModelResourceLocation("botania:spawnerMover", "inventory"),
  100.                 new ModelResourceLocation("botania:spawnerMoverFull", "inventory"));
  101.         ModelLoader.setCustomMeshDefinition(spawnerMover, MesherWrapper.of(stack -> new ModelResourceLocation("botania:spawnerMover" + (ItemSpawnerMover.hasData(stack) ? "Full" : ""), "inventory")));
  102.  
  103.         ModelLoader.registerItemVariants(terraPick,
  104.                 new ModelResourceLocation("botania:terraPick", "inventory"),
  105.                 new ModelResourceLocation("botania:terraPickEnabled", "inventory"),
  106.                 new ModelResourceLocation("botania:terraPickTipped", "inventory"),
  107.                 new ModelResourceLocation("botania:terraPickTippedEnabled", "inventory"));
  108.         ModelLoader.setCustomMeshDefinition(terraPick, MesherWrapper.of(stack -> {
  109.             String name = "botania:terraPick";
  110.             if (ItemTerraPick.isTipped(stack)) {
  111.                 name += "Tipped";
  112.             }
  113.             if (ItemTerraPick.isEnabled(stack)) {
  114.                 name += "Enabled";
  115.             }
  116.             return new ModelResourceLocation(name, "inventory");
  117.         }));
  118.  
  119.  
  120. // Shim because lambdas/method references for vanilla classes are not reobfuscated properly yet
  121.     // See https://github.com/MinecraftForge/ForgeGradle/issues/314
  122.     private interface MesherWrapper extends ItemMeshDefinition {
  123.  
  124.         static MesherWrapper of(MesherWrapper f) {
  125.             return f;
  126.         }
  127.  
  128.         ModelResourceLocation getLocation(ItemStack stack);
  129.  
  130.         @Override
  131.         default ModelResourceLocation getModelLocation(ItemStack stack) {
  132.             return getLocation(stack);
  133.         }
  134.  
  135.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement