TerrainType changed to class instead of interface because I wanted to put a static method there