Ejemplo n.º 1
0
        public override void OnLoaded(ICoreAPI api)
        {
            base.OnLoaded(api);

            growthLightLevel             = Attributes?["growthLightLevel"] != null ? Attributes["growthLightLevel"].AsInt(7) : 7;
            growthBlockLayer             = Attributes?["growthBlockLayer"]?.AsString("l1soilwithgrass");
            tallGrassGrowthChance        = Attributes?["tallGrassGrowthChance"] != null ? Attributes["tallGrassGrowthChance"].AsFloat(0.3f) : 0.3f;
            growthChanceOnTick           = Attributes?["growthChanceOnTick"] != null ? Attributes["growthChanceOnTick"].AsFloat(0.33f) : 0.33f;
            growOnlyWhereRainfallExposed = Attributes?["growOnlyWhereRainfallExposed"] != null ? Attributes["growOnlyWhereRainfallExposed"].AsBool(false) : false;

            tallGrassCodes.Add(new AssetLocation("tallgrass-veryshort-free"));
            tallGrassCodes.Add(new AssetLocation("tallgrass-short-free"));
            tallGrassCodes.Add(new AssetLocation("tallgrass-mediumshort-free"));
            tallGrassCodes.Add(new AssetLocation("tallgrass-medium-free"));
            tallGrassCodes.Add(new AssetLocation("tallgrass-tall-free"));
            tallGrassCodes.Add(new AssetLocation("tallgrass-verytall-free"));

            if (api.Side == EnumAppSide.Server)
            {
                (api as ICoreServerAPI).Event.ServerRunPhase(EnumServerRunPhase.RunGame, () =>
                {
                    blocklayerconfig = api.ModLoader.GetModSystem <GenBlockLayers>().blockLayerConfig;
                });
            }

            chunksize = api.World.BlockAccessor.ChunkSize;
        }
Ejemplo n.º 2
0
        public void InitWorldGen()
        {
            // dominionsmod
            saltWater = api.World.GetBlock(new AssetLocation("saltwater-still-7")).Id;

            LoadGlobalConfig(api);

            IAsset           asset      = api.Assets.Get("worldgen/rockstrata.json");
            RockStrataConfig rockstrata = asset.ToObject <RockStrataConfig>();

            asset            = api.Assets.Get("worldgen/blocklayers.json");
            blockLayerConfig = asset.ToObject <BlockLayerConfig>();
            blockLayerConfig.ResolveBlockIds(api, rockstrata);

            rnd          = new LCGRandom(api.WorldManager.Seed);
            grassDensity = new ClampedSimplexNoise(new double[] { 4 }, new double[] { 0.5 }, rnd.NextInt());
            grassHeight  = new ClampedSimplexNoise(new double[] { 1.5 }, new double[] { 0.5 }, rnd.NextInt());

            mapheight = api.WorldManager.MapSizeY;
        }
Ejemplo n.º 3
0
 public BlockLayers(IWorldAccessor world, string blockLayerId)
 {
     blockLayerConfig = BlockLayerConfig.GetInstance((ICoreServerAPI)world.Api);
     blockLayer       = blockLayerConfig.GetBlockLayerById(world, blockLayerId);
     InitBlockLayers(world, blockLayer);
 }