Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.webs.legouni_craft.lucmod;
- import java.util.Collection;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import com.google.common.base.Function;
- import com.google.common.collect.ImmutableList;
- import net.minecraft.block.state.IBlockState;
- import net.minecraft.client.Minecraft;
- import net.minecraft.client.renderer.ItemModelMesher;
- import net.minecraft.client.renderer.block.model.BakedQuad;
- import net.minecraft.client.renderer.block.model.IBakedModel;
- import net.minecraft.client.renderer.block.model.ItemCameraTransforms;
- import net.minecraft.client.renderer.block.model.ItemOverride;
- import net.minecraft.client.renderer.block.model.ItemOverrideList;
- import net.minecraft.client.renderer.texture.TextureAtlasSprite;
- import net.minecraft.client.renderer.vertex.VertexFormat;
- import net.minecraft.client.resources.IResourceManager;
- import net.minecraft.entity.EntityLivingBase;
- import net.minecraft.item.Item;
- import net.minecraft.item.ItemStack;
- import net.minecraft.util.EnumFacing;
- import net.minecraft.util.ResourceLocation;
- import net.minecraft.world.World;
- import net.minecraftforge.client.model.ICustomModelLoader;
- import net.minecraftforge.client.model.IModel;
- import net.minecraftforge.common.model.IModelState;
- import net.minecraftforge.common.model.TRSRTransformation;
- public class CustomModelLoader implements ICustomModelLoader {
- @Override
- public void onResourceManagerReload(IResourceManager resourceManager) {
- }
- @Override
- public boolean accepts(ResourceLocation modelLocation) {
- if(modelLocation.getResourcePath().equals("models/item/diamond_sword")) return true;
- //System.out.println(modelLocation.getResourcePath());
- return false;
- }
- @Override
- public IModel loadModel(ResourceLocation modelLocation) throws Exception {
- return new TestModel();
- }
- public static class TestModel implements IModel {
- @Override
- public Collection<ResourceLocation> getDependencies() {
- return ImmutableList.<ResourceLocation>of();
- }
- @Override
- public Collection<ResourceLocation> getTextures() {
- return ImmutableList.<ResourceLocation>of();
- }
- @Override
- public IBakedModel bake(IModelState state, VertexFormat format,
- Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter) {
- return new DummyBakedModel(Item.getByNameOrId("minecraft:diamond_sword"), new TestBakedModel());
- }
- @Override
- public IModelState getDefaultState() {
- return TRSRTransformation.identity();
- }
- }
- public static class DummyBakedModel implements IBakedModel {
- private Item original;
- private IBakedModel originalModel;
- private ItemOverrideList overrides;
- public DummyBakedModel(Item original, ItemOverrideList overrides){
- this.original = original;
- this.overrides = overrides;
- }
- @Override
- public List<BakedQuad> getQuads(IBlockState state, EnumFacing side, long rand) {
- checkForModelNull();
- return originalModel.getQuads(state, side, rand);
- }
- private void checkForModelNull() {
- if(originalModel != null) return;
- ItemModelMesher mesher = Minecraft.getMinecraft().getRenderItem().getItemModelMesher();
- originalModel = mesher.getItemModel(new ItemStack(original));
- }
- @Override
- public boolean isAmbientOcclusion() {
- return false;
- }
- @Override
- public boolean isGui3d() {
- return false;
- }
- @Override
- public boolean isBuiltInRenderer() {
- checkForModelNull();
- return originalModel.isBuiltInRenderer();
- }
- @Override
- public TextureAtlasSprite getParticleTexture() {
- checkForModelNull();
- return originalModel.getParticleTexture();
- }
- @SuppressWarnings("deprecation")
- @Override
- public ItemCameraTransforms getItemCameraTransforms() {
- return null;
- }
- @Override
- public ItemOverrideList getOverrides() {
- checkForModelNull();
- return overrides;
- }
- }
- public static class TestBakedModel extends ItemOverrideList{
- public TestBakedModel() {
- super(ImmutableList.<ItemOverride>of());
- }
- @Override
- public IBakedModel handleItemState(IBakedModel originalModel, ItemStack stack, World world, EntityLivingBase entity)
- {
- if(stack.getDisplayName().equals("Apple")){
- /* OBJModel model;
- try {
- model = (OBJModel) OBJLoader.INSTANCE.loadModel(new ResourceLocation("apple"));
- VertexFormat format = new VertexFormat();
- model.bake(null, format, Functions.forMap(getTextures()));
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }*/
- try {
- ItemModelMesher mesher = Minecraft.getMinecraft().getRenderItem().getItemModelMesher();
- return mesher.getItemModel(new ItemStack(Item.getByNameOrId("minecraft:apple")));
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- return originalModel;
- }
- public Map<ResourceLocation, TextureAtlasSprite> getTextures(){
- Map<ResourceLocation, TextureAtlasSprite> textures = new HashMap<ResourceLocation, TextureAtlasSprite>();
- return textures;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement