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