public static DepositGeneratorBase CreateGenerator(string code, JsonObject attributes, params object[] args) { if (!Generators.ContainsKey(code)) { return(null); } DepositGeneratorBase generator = Activator.CreateInstance(Generators[code], args) as DepositGeneratorBase; JsonUtil.Populate(attributes.Token, generator); generator.Init(); return(generator); }
public void Init(ICoreServerAPI api, LCGRandom depositRand, NormalizedSimplexNoise noiseGen) { this.api = api; InitWithoutGenerator(api); if (Generator == null) { api.World.Logger.Error("Error in deposit variant in file {0}: No generator defined! Must define a generator.", fromFile, Generator); } else { GeneratorInst = DepositGeneratorRegistry.CreateGenerator(Generator, Attributes, api, this, depositRand, noiseGen); if (GeneratorInst == null) { api.World.Logger.Error("Error in deposit variant in file {0}: No generator with code '{1}' found!", fromFile, Generator); } } if (Code == null) { api.World.Logger.Error("Error in deposit variant in file {0}: Deposit has no code! Defaulting to 'unknown'", fromFile); Code = "unknown"; } }