@startuml class Environment { + {static} getInstance() : Environment + getBlockRegistry() : Dictionary + addBlock(block:Block, existingUUID:string) : void + removeBlock(uuid:string) : void + applyChanges() : void + completeDestroyBlock(block:Block) : void + getBlock(uuid:string) : Block + clearEnvironment() : void } class "UnityEvent`1" { } MonoBehaviour <|-- Environment Environment --> "onBlockAddedEvent" "UnityEvent`1" Environment --> "onBlockRemovedEvent" "UnityEvent`1" Environment --> "onChangeEvent" UnityEvent @enduml