31 lines
		
	
	
		
			624 B
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			31 lines
		
	
	
		
			624 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								import os
							 | 
						||
| 
								 | 
							
								import bpy
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								from bpy.utils import previews
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								icons = None
							 | 
						||
| 
								 | 
							
								directory = os.path.abspath(os.path.join(__file__, '..', '..', '..', 'icons'))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def id(identifier):
							 | 
						||
| 
								 | 
							
								    return image(identifier).icon_id
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def image(identifier):
							 | 
						||
| 
								 | 
							
								    def icon(identifier):
							 | 
						||
| 
								 | 
							
								        if identifier in icons:
							 | 
						||
| 
								 | 
							
								            return icons[identifier]
							 | 
						||
| 
								 | 
							
								        return icons.load(identifier, os.path.join(directory, identifier + '.png'), 'IMAGE')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if icons:
							 | 
						||
| 
								 | 
							
								        return icon(identifier)
							 | 
						||
| 
								 | 
							
								    else:
							 | 
						||
| 
								 | 
							
								        create()
							 | 
						||
| 
								 | 
							
								        return icon(identifier)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def create():
							 | 
						||
| 
								 | 
							
								    global icons
							 | 
						||
| 
								 | 
							
								    icons = previews.new()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def remove():
							 | 
						||
| 
								 | 
							
								    previews.remove(icons)
							 |