ClientProxy.java 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. package me.km;
  2. import java.awt.Color;
  3. import me.km.blocks.ModBlocks;
  4. import me.km.blocks.cookingpot.TileEntityCookingPot;
  5. import me.km.entities.ModEntities;
  6. import me.km.items.ItemColoredSoup;
  7. import me.km.items.ItemGemStone;
  8. import me.km.items.ModItems;
  9. import me.km.items.ModelCylinder;
  10. import me.km.items.ModelHat;
  11. import me.km.networking.KeyManager;
  12. import net.minecraft.block.BlockState;
  13. import net.minecraft.client.Minecraft;
  14. import net.minecraft.client.renderer.color.BlockColors;
  15. import net.minecraft.client.renderer.color.IBlockColor;
  16. import net.minecraft.client.renderer.color.ItemColors;
  17. import net.minecraft.client.renderer.entity.model.BipedModel;
  18. import net.minecraft.item.BlockItem;
  19. import net.minecraft.item.ItemStack;
  20. import net.minecraft.util.math.BlockPos;
  21. import net.minecraftforge.api.distmarker.Dist;
  22. import net.minecraftforge.api.distmarker.OnlyIn;
  23. import net.minecraftforge.common.MinecraftForge;
  24. import net.minecraft.world.GrassColors;
  25. import net.minecraft.world.IEnviromentBlockReader;
  26. import net.minecraft.world.biome.BiomeColors;
  27. public class ClientProxy extends CommonProxy
  28. {
  29. @Override
  30. public void init()
  31. {
  32. ModEntities.initClient();
  33. MinecraftForge.EVENT_BUS.register(new ClientEvents());
  34. MinecraftForge.EVENT_BUS.register(new KeyManager());
  35. }
  36. @Override
  37. public void postInit()
  38. {
  39. BlockColors bColors = Minecraft.getInstance().getBlockColors();
  40. bColors.register((BlockState state, IEnviromentBlockReader w, BlockPos pos, int tintIndex) ->
  41. {
  42. if(w == null || pos == null)
  43. {
  44. return -16777216;
  45. }
  46. TileEntityCookingPot tile = (TileEntityCookingPot) w.getTileEntity(pos);
  47. if(tile == null)
  48. {
  49. return -16777216;
  50. }
  51. Color c = tile.getColor();
  52. return -16777216 | c.getRed() << 16 | c.getGreen() << 8 | c.getBlue();
  53. }, ModBlocks.cookingPotCopper);
  54. IBlockColor tallGrass = (BlockState state, IEnviromentBlockReader w, BlockPos pos, int tintIndex) ->
  55. {
  56. if(w != null && pos != null)
  57. {
  58. return BiomeColors.getGrassColor(w, pos);
  59. }
  60. else
  61. {
  62. return GrassColors.get(0.5D, 1.0D);
  63. }
  64. };
  65. bColors.register(tallGrass, ModBlocks.tallGrass);
  66. ItemColors iColors = Minecraft.getInstance().getItemColors();
  67. iColors.register((ItemStack stack, int tintIndex) -> tintIndex > 0 ? -1 : ItemColoredSoup.getColor(stack), ModItems.coloredSoup);
  68. iColors.register((ItemStack stack, int tintIndex) -> tintIndex > 0 ? -1 : ((ItemGemStone) stack.getItem()).getColor(stack),
  69. ModItems.gemStone, ModItems.rawGemStone, ModItems.flawlessGemStone);
  70. iColors.register((ItemStack stack, int tintIndex) ->
  71. {
  72. BlockState state = ((BlockItem) stack.getItem()).getBlock().getDefaultState();
  73. return tallGrass.getColor(state, null, null, tintIndex);
  74. }, ModBlocks.tallGrass);
  75. }
  76. @OnlyIn(Dist.CLIENT)
  77. private final static ModelHat STRAW_HAT = new ModelHat(1.0f);
  78. @OnlyIn(Dist.CLIENT)
  79. private final static ModelCylinder CYLINDER = new ModelCylinder(1.0f);
  80. @Override
  81. public BipedModel getCylinderModel()
  82. {
  83. return CYLINDER;
  84. }
  85. @Override
  86. public BipedModel getStrawHatModel()
  87. {
  88. return STRAW_HAT;
  89. }
  90. }