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; } }
@Nonnull @Override @SideOnly(Side.CLIENT) public Pair<IBakedModel, Matrix4f> getModel(@Nonnull IVehicleAccess access) { return Pair.of(getMesher().getModelManager().getMissingModel(), getIdentity()); }
@Nonnull @Override @SideOnly(Side.CLIENT) public Pair<IBakedModel, Matrix4f> getModel(float delta) { return Pair.of(getMesher().getModelManager().getMissingModel(), getIdentity()); } }
@Nonnull @Override @SideOnly(Side.CLIENT) public Pair<IBakedModel, Matrix4f> getModel(@Nonnull IVehicleAccess access) { loadModelLocations(); boolean active = access.getData().getBoolean("active"); ModelManager modelManager = RenderHelpers.getMesher().getModelManager(); return Pair.of(modelManager.getModel(active ? onModel : offModel), RenderHelpers.getIdentity()); }
@Override public IBakedModel handleItemState( final IBakedModel originalModel, final ItemStack stack, final World world, final EntityLivingBase entity ) { if ( ClientSide.instance.holdingShift() ) { PrintBaked npb = cache.get( stack ); if ( npb == null ) { cache.put( stack, npb = new PrintBaked( name, item, stack ) ); } return npb; } return Minecraft.getMinecraft().getRenderItem().getItemModelMesher().getModelManager().getModel( new ModelResourceLocation( "chiselsandbits:" + name + "_written", "inventory" ) ); }
} else { GlStateManager.rotate(delta, 0f, 1f, 0f); model = getMesher().getModelManager().getMissingModel();
IBakedModel model; if (upgrade == null) { model = getMesher().getModelManager().getMissingModel(); } else { Pair<IBakedModel, Matrix4f> pair = upgrade.getModel(entity.getAccess(slot));