@Override public IBakedModel bake(IModelState state, VertexFormat format, Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter) { ImmutableMap<ItemCameraTransforms.TransformType, TRSRTransformation> transforms = PerspectiveMapWrapper.getTransforms(state); IModelState transformState = new SimpleModelState(transforms); IBakedModel baseModelBaked = ModelLoaderRegistry.getModelOrMissing(baseModel) .bake(transformState, DefaultVertexFormats.ITEM, ModelLoader.defaultTextureGetter()); ImmutableMap.Builder<String, IBakedModel> bakedBlockBuilder = ImmutableMap.builder(); for(Map.Entry<String, ModelResourceLocation> e : blockModels.entrySet()) { IModel model = ModelLoaderRegistry.getModelOrMissing(e.getValue()); if(model != ModelLoaderRegistry.getMissingModel()) bakedBlockBuilder.put(e.getKey(), model.bake(transformState, DefaultVertexFormats.ITEM, ModelLoader.defaultTextureGetter())); } ImmutableMap.Builder<String, IBakedModel> bakedItemBuilder = ImmutableMap.builder(); for(Map.Entry<String, ModelResourceLocation> e : itemModels.entrySet()) { IModel model = ModelLoaderRegistry.getModelOrMissing(e.getValue()); if(model != ModelLoaderRegistry.getMissingModel()) bakedItemBuilder.put(e.getKey(), model.bake(transformState, DefaultVertexFormats.ITEM, ModelLoader.defaultTextureGetter())); } return new SpecialFlowerBakedModel(baseModelBaked, bakedBlockBuilder.build(), bakedItemBuilder.build(), transforms); }
private static IBakedModel getTexturedModel(IBakedModel original, ResourceLocation location, Fluid fluid) { try { IModel model = ModelLoaderRegistry.getModel(location); IModel retextured = model.retexture(ImmutableMap.of("fluid", fluid.getStill().toString())); return retextured.bake(retextured.getDefaultState(), DefaultVertexFormats.ITEM, ModelLoader.defaultTextureGetter()); } catch(Exception e) { e.printStackTrace(); return original; } }
private CompositeBakedModel getModel(IFloatingFlower.IslandType islandType, String identifier) { ModelManager modelManager = Minecraft.getMinecraft().getRenderItem().getItemModelMesher().getModelManager(); if(CACHE.contains(islandType, identifier)) { return CACHE.get(islandType, identifier); } else { IBakedModel islandModel; try { islandModel = ModelLoaderRegistry.getModel(BotaniaAPIClient.getRegisteredIslandTypeModels().get(islandType)).bake(TRSRTransformation.identity(), DefaultVertexFormats.ITEM, ModelLoader.defaultTextureGetter()); } catch (Exception e) { islandModel = modelManager.getMissingModel(); } IBakedModel flowerModel; if(identifier.startsWith(MUNDANE_PREFIX)) { int meta = Integer.parseInt(identifier.substring(identifier.indexOf(MUNDANE_PREFIX) + MUNDANE_PREFIX.length())); flowerModel = Minecraft.getMinecraft().getRenderItem().getItemModelMesher().getItemModel(new ItemStack(ModBlocks.shinyFlower, 1, meta)); } else { ItemStack stack = ItemBlockSpecialFlower.ofType(identifier); IBakedModel specialFlowerModel = Minecraft.getMinecraft().getRenderItem().getItemModelMesher().getItemModel(stack); flowerModel = specialFlowerModel.getOverrides().handleItemState(specialFlowerModel, stack, null, null); } // Enhance! CompositeBakedModel model = new CompositeBakedModel(flowerModel, islandModel); Botania.LOGGER.debug("Cached floating flower model for islandtype {} and flowertype {}", islandType, identifier); CACHE.put(islandType, identifier, model); return model; } }
private final IBakedModel defaultBake(IModel bakeable){ return bakeable.bake(ModelRotation.X0_Y0, Attributes.DEFAULT_BAKED_FORMAT, ModelLoader.defaultTextureGetter()); }
public static IBakedModel bakeModel(ResourceLocation loc) { if (bakedModels.containsKey(loc)) { return bakedModels.get(loc); } try { IModel model = ModelLoaderRegistry.getModel(loc); IBakedModel bakedModel = model.bake(TRSRTransformation.identity(), DefaultVertexFormats.BLOCK, ModelLoader.defaultTextureGetter()); bakedModels.put(loc, bakedModel); return bakedModel; // Stupid vanilla, throwing generic exceptions } catch (Exception e) { throw new ReportedException(new CrashReport("Error loading custom model " + loc, e)); } }
private static IBakedModel loadModel() { try { final IModel mod = ModelLoaderRegistry.getModel(new ResourceLocation(Constants.MOD_ID, "block/blockInfoPoster")); final IModelState state = mod.getDefaultState(); return mod.bake(state, DefaultVertexFormats.BLOCK, ModelLoader.defaultTextureGetter()); } catch (final Exception e) { Log.getLogger().error("Error loading infoPoster texture", e); } return null; }
@Override public List<BakedQuad> getQuads(@Nullable IBlockState state, @Nullable EnumFacing side, long rand) { if (state != null) { String stateString = state.toString(); IBakedModel bakedModel = cache.get(stateString); if (bakedModel == null) { TRSRTransformation transform = TRSRTransformation.from(state.getValue(BlockKitchen.FACING)); if (state.getValue(BlockKitchen.LOWERED)) { transform = transform.compose(new TRSRTransformation(new Vector3f(0f, -0.05f, 0f), null, null, null)); } bakedModel = baseModel.bake(transform, DefaultVertexFormats.BLOCK, ModelLoader.defaultTextureGetter()); cache.put(stateString, bakedModel); if (particleTexture == null) { particleTexture = bakedModel.getParticleTexture(); } } return bakedModel.getQuads(state, side, rand); } return Collections.emptyList(); }
@Nonnull @Override public IBakedModel handleItemState(@Nonnull IBakedModel originalModel, ItemStack stack, World world, EntityLivingBase entity) { ItemLeatherExosuitArmor armor = (ItemLeatherExosuitArmor) stack.getItem(); List<ResourceLocation> locations = new ArrayList<>(); locations.add(armor.getItemIconResource()); ExosuitPlate plate = armor.getPlate(stack); if (plate != null) { locations.add(UtilPlates.getIconFromPlate(plate.getIdentifier(), armor)); } LeatherExosuitItemBakedModel exosuitItemBakedModel = (LeatherExosuitItemBakedModel) originalModel; IModel processed = new LeatherExosuitItemModel(locations); String cacheKey = String.format("armor=%s,plate=%s", armor.getRegistryName(), plate); IBakedModel bakedModel = processed.bake(new SimpleModelState(exosuitItemBakedModel.getTransforms()), exosuitItemBakedModel.getFormat(), ModelLoader.defaultTextureGetter()); exosuitItemBakedModel.cacheModel(cacheKey, bakedModel); return bakedModel; } }
protected final IBakedModel bakeModel(ModelBlock model) { if (model.getElements().isEmpty()) { return null; } else { TextureAtlasSprite sprite = ModelLoader.defaultTextureGetter().apply(new ResourceLocation(model.resolveTextureName("particle"))); SimpleBakedModel.Builder simplebakedmodel$builder = (new SimpleBakedModel.Builder(model, model.createOverrides())).setTexture(sprite); for (BlockPart blockpart : model.getElements()) { for (Map.Entry<EnumFacing,BlockPartFace> entry : blockpart.mapFaces.entrySet()) { BlockPartFace blockpartface = entry.getValue(); sprite = ModelLoader.defaultTextureGetter().apply(new ResourceLocation(model.resolveTextureName(blockpartface.texture))); BakedQuad baked = manager.makeBakedQuad(blockpart, blockpartface, sprite, entry.getKey(), ModelRotation.X0_Y0, false); if (blockpartface.cullFace == null || !TRSRTransformation.isInteger(ModelRotation.X0_Y0.getMatrix())) { simplebakedmodel$builder.addGeneralQuad(baked); } else { simplebakedmodel$builder.addFaceQuad(ModelRotation.X0_Y0.rotate(blockpartface.cullFace), baked); } } } return simplebakedmodel$builder.makeBakedModel(); } }
public static void loadModel(ModelBakeEvent event, String mod, String name) { IModel model = ModelLoaderRegistry.getModelOrMissing(new ResourceLocation(mod, "block/" + name)); IBakedModel bakedModel = model.bake(model.getDefaultState(), DefaultVertexFormats.ITEM, ModelLoader.defaultTextureGetter()); event.getModelRegistry().putObject(new ModelResourceLocation(mod + ":" + name, "inventory"), bakedModel); } }
IBakedModel bakedModel = processed.bake(new SimpleModelState(exosuitItemBakedModel.getTransforms()), exosuitItemBakedModel.getFormat(), ModelLoader.defaultTextureGetter()); exosuitItemBakedModel.cacheModel(cacheKey, bakedModel);
return model.bake(model.getDefaultState(), DefaultVertexFormats.ITEM, ModelLoader.defaultTextureGetter()); return model.bake(model.getDefaultState(), DefaultVertexFormats.BLOCK, ModelLoader.defaultTextureGetter()); } catch (Throwable t) { LOGGER.error("Error occured while loading model {}", location, t);
IBakedModel bakedModel = processed.bake(new SimpleModelState(steamToolBakedModel.getTransforms()), steamToolBakedModel.getFormat(), ModelLoader.defaultTextureGetter()); steamToolBakedModel.cacheModel(mapString, bakedModel);
try { IModel model = ModelLoaderRegistry.getModel(new ResourceLocation(CookingForBlockheads.MOD_ID, "block/milk_jar_liquid")); MilkJarRenderer.modelMilkLiquid = model.bake(model.getDefaultState(), DefaultVertexFormats.BLOCK, ModelLoader.defaultTextureGetter()); SinkRenderer.modelSinkLiquid = model.bake(model.getDefaultState(), DefaultVertexFormats.BLOCK, ModelLoader.defaultTextureGetter()); OvenRenderer.modelDoor = model.bake(model.getDefaultState(), DefaultVertexFormats.BLOCK, ModelLoader.defaultTextureGetter()); OvenRenderer.modelDoorActive = model.bake(model.getDefaultState(), DefaultVertexFormats.BLOCK, ModelLoader.defaultTextureGetter()); FridgeRenderer.modelDoor = model.bake(model.getDefaultState(), DefaultVertexFormats.BLOCK, ModelLoader.defaultTextureGetter()); FridgeRenderer.modelDoorLarge = model.bake(model.getDefaultState(), DefaultVertexFormats.BLOCK, ModelLoader.defaultTextureGetter()); FridgeRenderer.modelHandle = model.bake(model.getDefaultState(), DefaultVertexFormats.BLOCK, ModelLoader.defaultTextureGetter()); FridgeRenderer.modelHandleLarge = model.bake(model.getDefaultState(), DefaultVertexFormats.BLOCK, ModelLoader.defaultTextureGetter()); FridgeRenderer.modelDoorIceUnit = model.bake(model.getDefaultState(), DefaultVertexFormats.BLOCK, ModelLoader.defaultTextureGetter()); FridgeRenderer.modelDoorIceUnitLarge = model.bake(model.getDefaultState(), DefaultVertexFormats.BLOCK, ModelLoader.defaultTextureGetter());