Advertisement
Guest User

Untitled

a guest
Feb 6th, 2016
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.32 KB | None | 0 0
  1. package vazkii.botania.client.model;
  2.  
  3. import com.google.common.collect.ImmutableMap;
  4. import net.minecraft.client.renderer.block.model.BakedQuad;
  5. import net.minecraft.client.renderer.block.model.ItemCameraTransforms;
  6. import net.minecraft.client.renderer.texture.TextureAtlasSprite;
  7. import net.minecraft.client.resources.model.IBakedModel;
  8. import net.minecraft.item.ItemStack;
  9. import net.minecraft.util.EnumFacing;
  10. import net.minecraft.util.ResourceLocation;
  11. import net.minecraftforge.client.model.IModelState;
  12. import net.minecraftforge.client.model.ISmartItemModel;
  13. import net.minecraftforge.client.model.animation.Animation;
  14. import net.minecraftforge.client.model.animation.Event;
  15. import net.minecraftforge.common.model.animation.IAnimationStateMachine;
  16. import org.apache.commons.lang3.tuple.Pair;
  17. import vazkii.botania.client.core.handler.ClientTickHandler;
  18.  
  19. import java.util.HashMap;
  20. import java.util.List;
  21. import java.util.Map;
  22.  
  23. public class LexiconAnimatedModel implements ISmartItemModel {
  24.  
  25. private final IBakedModel baseModel;
  26. private final Map<IModelState, IBakedModel> cache; // No need to free this, LexiconAnimatedModels are destroyed on resource reload
  27. private final IAnimationStateMachine asm;
  28.  
  29. protected LexiconAnimatedModel(IBakedModel baseModel) {
  30. this.baseModel = baseModel;
  31. this.cache = new HashMap<>();
  32. this.asm = Animation.INSTANCE.load(new ResourceLocation("botania", "lexicon_firstperson"), ImmutableMap.of());
  33. }
  34.  
  35. @Override
  36. public IBakedModel handleItemState(ItemStack stack) {
  37. float time = (ClientTickHandler.ticksInGame + ClientTickHandler.partialTicks) / 20F;
  38. Pair<IModelState, Iterable<Event>> pair = asm.apply(time);
  39. baseModel.
  40. return null;
  41. }
  42.  
  43. @Override public List<BakedQuad> getFaceQuads(EnumFacing e) { return baseModel.getFaceQuads(e); }
  44. @Override public List<BakedQuad> getGeneralQuads() { return baseModel.getGeneralQuads(); }
  45. @Override public boolean isAmbientOcclusion() { return baseModel.isAmbientOcclusion(); }
  46. @Override public boolean isGui3d() { return baseModel.isGui3d(); }
  47. @Override public boolean isBuiltInRenderer() { return baseModel.isBuiltInRenderer(); }
  48. @Override public TextureAtlasSprite getParticleTexture() { return baseModel.getParticleTexture(); }
  49.  
  50. @SuppressWarnings("deprecation")
  51. @Override public ItemCameraTransforms getItemCameraTransforms() { return baseModel.getItemCameraTransforms(); }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement