コード例 #1
0
        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);
        }
コード例 #2
0
        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";
            }
        }