java类net.minecraft.client.renderer.block.model.ModelBlock的实例源码

ModelBakery.java 文件源码 项目:BaseClient 阅读 18 收藏 0 点赞 0 评论 0
private Set<ResourceLocation> getVariantsTextureLocations()
{
    Set<ResourceLocation> set = Sets.<ResourceLocation>newHashSet();
    List<ModelResourceLocation> list = Lists.newArrayList(this.variants.keySet());
    Collections.sort(list, new Comparator<ModelResourceLocation>()
    {
        public int compare(ModelResourceLocation p_compare_1_, ModelResourceLocation p_compare_2_)
        {
            return p_compare_1_.toString().compareTo(p_compare_2_.toString());
        }
    });

    for (ModelResourceLocation modelresourcelocation : list)
    {
        ModelBlockDefinition.Variants modelblockdefinition$variants = (ModelBlockDefinition.Variants)this.variants.get(modelresourcelocation);

        for (ModelBlockDefinition.Variant modelblockdefinition$variant : modelblockdefinition$variants.getVariants())
        {
            ModelBlock modelblock = (ModelBlock)this.models.get(modelblockdefinition$variant.getModelLocation());

            if (modelblock == null)
            {
                LOGGER.warn("Missing model for: " + modelresourcelocation);
            }
            else
            {
                set.addAll(this.getTextureLocations(modelblock));
            }
        }
    }

    set.addAll(LOCATIONS_BUILTIN_TEXTURES);
    return set;
}
ModelBakery.java 文件源码 项目:BaseClient 阅读 18 收藏 0 点赞 0 评论 0
private void loadModelsCheck()
{
    this.loadModels();

    for (ModelBlock modelblock : this.models.values())
    {
        modelblock.getParentFromMap(this.models);
    }

    ModelBlock.checkModelHierarchy(this.models);
}
ModelBakery.java 文件源码 项目:BaseClient 阅读 22 收藏 0 点赞 0 评论 0
private ResourceLocation getParentLocation(ResourceLocation p_177576_1_)
{
    for (Entry<ResourceLocation, ModelBlock> entry : this.models.entrySet())
    {
        ModelBlock modelblock = (ModelBlock)entry.getValue();

        if (modelblock != null && p_177576_1_.equals(modelblock.getParentLocation()))
        {
            return (ResourceLocation)entry.getKey();
        }
    }

    return null;
}
ModelBakery.java 文件源码 项目:BaseClient 阅读 19 收藏 0 点赞 0 评论 0
private boolean hasItemModel(ModelBlock p_177581_1_)
{
    if (p_177581_1_ == null)
    {
        return false;
    }
    else
    {
        ModelBlock modelblock = p_177581_1_.getRootModel();
        return modelblock == MODEL_GENERATED || modelblock == MODEL_COMPASS || modelblock == MODEL_CLOCK;
    }
}
ModelBakery.java 文件源码 项目:BaseClient 阅读 18 收藏 0 点赞 0 评论 0
private boolean isCustomRenderer(ModelBlock p_177587_1_)
{
    if (p_177587_1_ == null)
    {
        return false;
    }
    else
    {
        ModelBlock modelblock = p_177587_1_.getRootModel();
        return modelblock == MODEL_ENTITY;
    }
}
ModelBakery.java 文件源码 项目:BaseClient 阅读 16 收藏 0 点赞 0 评论 0
private void bakeItemModels()
{
    for (ResourceLocation resourcelocation : this.itemLocations.values())
    {
        ModelBlock modelblock = (ModelBlock)this.models.get(resourcelocation);

        if (this.hasItemModel(modelblock))
        {
            ModelBlock modelblock1 = this.makeItemModel(modelblock);

            if (modelblock1 != null)
            {
                modelblock1.name = resourcelocation.toString();
            }

            this.models.put(resourcelocation, modelblock1);
        }
        else if (this.isCustomRenderer(modelblock))
        {
            this.models.put(resourcelocation, modelblock);
        }
    }

    for (TextureAtlasSprite textureatlassprite : this.sprites.values())
    {
        if (!textureatlassprite.hasAnimationMetadata())
        {
            textureatlassprite.clearFramesTextureData();
        }
    }
}
CustomItemProperties.java 文件源码 项目:Backmemed 阅读 15 收藏 0 点赞 0 评论 0
private static IBakedModel makeBakedModel(TextureMap p_makeBakedModel_0_, ItemModelGenerator p_makeBakedModel_1_, String[] p_makeBakedModel_2_, boolean p_makeBakedModel_3_)
{
    String[] astring = new String[p_makeBakedModel_2_.length];

    for (int i = 0; i < astring.length; ++i)
    {
        String s = p_makeBakedModel_2_[i];
        astring[i] = StrUtils.removePrefix(s, "textures/");
    }

    ModelBlock modelblock = makeModelBlock(astring);
    ModelBlock modelblock1 = p_makeBakedModel_1_.makeItemModel(p_makeBakedModel_0_, modelblock);
    IBakedModel ibakedmodel = bakeModel(p_makeBakedModel_0_, modelblock1, p_makeBakedModel_3_);
    return ibakedmodel;
}
ModelLoader.java 文件源码 项目:CustomWorldGen 阅读 22 收藏 0 点赞 0 评论 0
public VanillaModelWrapper(ResourceLocation location, ModelBlock model, boolean uvlock, ModelBlockAnimation animation)
{
    this.location = location;
    this.model = model;
    this.uvlock = uvlock;
    this.animation = animation;
}
ModelLoader.java 文件源码 项目:CustomWorldGen 阅读 18 收藏 0 点赞 0 评论 0
public IBakedModel bake(IModelState state, final VertexFormat format, Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter)
{
    if(!Attributes.moreSpecific(format, Attributes.DEFAULT_BAKED_FORMAT))
    {
        throw new IllegalArgumentException("can't bake vanilla models to the format that doesn't fit into the default one: " + format);
    }
    ModelBlock model = this.model;
    if(model == null) return getMissingModel().bake(getMissingModel().getDefaultState(), format, bakedTextureGetter);

    List<TRSRTransformation> newTransforms = Lists.newArrayList();
    for(int i = 0; i < model.getElements().size(); i++)
    {
        BlockPart part = model.getElements().get(i);
        newTransforms.add(animation.getPartTransform(state, part, i));
    }

    ItemCameraTransforms transforms = model.getAllTransforms();
    Map<TransformType, TRSRTransformation> tMap = Maps.newHashMap();
    tMap.putAll(IPerspectiveAwareModel.MapWrapper.getTransforms(transforms));
    tMap.putAll(IPerspectiveAwareModel.MapWrapper.getTransforms(state));
    IModelState perState = new SimpleModelState(ImmutableMap.copyOf(tMap));

    if(hasItemModel(model))
    {
        return new ItemLayerModel(model).bake(perState, format, bakedTextureGetter);
    }
    if(isCustomRenderer(model)) return new BuiltInModel(transforms, model.createOverrides());
    return bakeNormal(model, perState, state, newTransforms, format, bakedTextureGetter, uvlock);
}
ModelLoader.java 文件源码 项目:CustomWorldGen 阅读 24 收藏 0 点赞 0 评论 0
@Override
public VanillaModelWrapper smoothLighting(boolean value)
{
    if(model.ambientOcclusion == value)
    {
        return this;
    }
    ModelBlock newModel = new ModelBlock(model.getParentLocation(), model.getElements(), model.textures, value, model.isGui3d(), model.getAllTransforms(), Lists.newArrayList(model.getOverrides()));
    newModel.parent = model.parent;
    newModel.name = model.name;
    return new VanillaModelWrapper(location, newModel, uvlock, animation);
}


问题


面经


文章

微信
公众号

扫码关注公众号