forked from LeenkxTeam/LNXSDK
		
	
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from enum import IntEnum
 | 
						|
 | 
						|
 | 
						|
class EmissionType(IntEnum):
 | 
						|
    NO_EMISSION = 0
 | 
						|
    """The material has no emission at all."""
 | 
						|
 | 
						|
    SHADELESS = 1
 | 
						|
    """The material is emissive and does not interact with lights/shadows."""
 | 
						|
 | 
						|
    SHADED = 2
 | 
						|
    """The material is emissive and interacts with lights/shadows."""
 | 
						|
 | 
						|
    @staticmethod
 | 
						|
    def get_effective_combination(a: 'EmissionType', b: 'EmissionType') -> 'EmissionType':
 | 
						|
        # Shaded emission always has precedence over shadeless emission
 | 
						|
        if a == EmissionType.SHADED or b == EmissionType.SHADED:
 | 
						|
            return EmissionType.SHADED
 | 
						|
 | 
						|
        if a == EmissionType.SHADELESS and b == EmissionType.SHADELESS:
 | 
						|
            return EmissionType.SHADELESS
 | 
						|
 | 
						|
        # If only one input is shadeless we still need shaded emission
 | 
						|
        if a == EmissionType.SHADELESS or b == EmissionType.SHADELESS:
 | 
						|
            return EmissionType.SHADED
 | 
						|
 | 
						|
        return EmissionType.NO_EMISSION
 | 
						|
 | 
						|
 | 
						|
data = None # ShaderData
 | 
						|
material = None
 | 
						|
nodes = None
 | 
						|
mat_users = None
 | 
						|
bind_constants = None # Merged with mat_context bind constants
 | 
						|
bind_textures = None # Merged with mat_context bind textures
 | 
						|
batch = False
 | 
						|
texture_grad = False # Sample textures using textureGrad()
 | 
						|
con_mesh = None # Mesh context
 | 
						|
uses_instancing = False  # Whether the current material has at least one user with instancing enabled
 | 
						|
emission_type = EmissionType.NO_EMISSION
 |