Seemed interesting from an old branch although I don't think this was a good idea, just an experiment that didn't work out.
This is done to match .net core's dependency injection thing IIRC, long time since this was written, longer since I looked at .net core.
I believe this was abandoned because it does not change the semantics, just the syntax, and the new syntax becomes excessively verbose.
Moreover, it might be counter productive because the fact that RandomMap is globally mutable singleton is now hidden behind a layer of indirection.
However, it makes the coupling less rigid. You don't have to define a constant identified as g_Map if the resolution of the singleton is automatic.
The rationale for not doing some Singleton type class for RandomMap was to allow other dependent placers and painters to receive the instance as a parameter. Which is the whole Injector.get thingy.
// const g_Map = new RandomMap(heightLand, tMainTerrain); // doThing(g_Map); Injector.registerService(RandomMap, heightLand, tMainTerrain); doThing(Injector.getService(RandomMap));