MeshDefinitionFix.java 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. package me.km;
  2. import net.minecraft.client.renderer.ItemMeshDefinition;
  3. import net.minecraft.client.renderer.block.model.ModelResourceLocation;
  4. import net.minecraft.item.ItemStack;
  5. import net.minecraftforge.fml.relauncher.Side;
  6. import net.minecraftforge.fml.relauncher.SideOnly;
  7. /**
  8. * A hackish adapter that allows lambdas to be used as {@link ItemMeshDefinition} implementations without breaking ForgeGradle's
  9. * reobfuscation and causing {@link AbstractMethodError}s.
  10. * <p>
  11. * Written by diesieben07 in this thread:
  12. * http://www.minecraftforge.net/forum/index.php/topic,34034.0.html
  13. *
  14. * @author diesieben07
  15. */
  16. @SideOnly(Side.CLIENT)
  17. interface MeshDefinitionFix extends ItemMeshDefinition
  18. {
  19. ModelResourceLocation getLocation(ItemStack stack);
  20. // Helper method to easily create lambda instances of this class
  21. static ItemMeshDefinition create(MeshDefinitionFix lambda)
  22. {
  23. return lambda;
  24. }
  25. @Override
  26. default ModelResourceLocation getModelLocation(ItemStack stack)
  27. {
  28. return getLocation(stack);
  29. }
  30. }