@startuml
skinparam backgroundcolor transparent
hide empty members
set namespaceSeparator none
class ExternalTextureSource {
+ setParameter()
}
class ExternalTextureSourceManager {
+ setExternalTextureSource()
+ setCurrentPlugin()
+ createDefinedTexture()
}
ExternalTextureSource -down-o ExternalTextureSourceManager
class ScriptTranslator {
    * Set "video" plugin active
    * Parse & set parameters
    * Create Texture
}
class Plugin_TheoraVideoSystem {
+ install()
}
object Plugins.cfg {
    Plugin=..
    Plugin=Plugin_TheoraVideoSystem
    Plugin=..
}
Plugins.cfg -- Plugin_TheoraVideoSystem
Plugin_TheoraVideoSystem -down-> ExternalTextureSourceManager
ScriptTranslator -down-> ExternalTextureSourceManager

object "Sample Material Script" as material {
texture_source video
&#123;
\tfilename test.mpeg
\tplay_mode play
\tsound_mode on
&#125;
}
material -- ScriptTranslator

@enduml 

