public DepositVariant Clone() { DepositVariant var = new DepositVariant() { fromFile = fromFile, Code = Code, TriesPerChunk = TriesPerChunk, Generator = Generator, WithOreMap = WithOreMap, WithBlockCallback = WithBlockCallback, Attributes = Attributes?.Clone(), Climate = Climate?.Clone(), ChildDeposits = ChildDeposits == null ? null : (DepositVariant[])ChildDeposits.Clone(), OreMapLayer = OreMapLayer, }; foreach (var val in ChildDeposits) { val.parentDeposit = var; } var.GeneratorInst = DepositGeneratorRegistry.CreateGenerator(Generator, Attributes, api, var, GeneratorInst.DepositRand, GeneratorInst.DistortNoiseGen); return(var); }
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"; } }