internal void Init(ICoreServerAPI 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); for (int i = 0; i < Structures.Length; i++) { LCGRandom rand = new LCGRandom(api.World.Seed + i + 512); Structures[i].Init(api, blockLayerConfig, rand); } }
public void InitWorldGen() { 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; }
/// <summary> /// Loads and caches the BlockLayerConfig if it's not already loaded. Otherwise /// returns the cached value /// </summary> /// <param name="api"></param> /// <returns></returns> public static BlockLayerConfig GetInstance(ICoreServerAPI api) { if (api.ObjectCache.ContainsKey(cacheKey)) { return(api.ObjectCache[cacheKey] as BlockLayerConfig); } else { IAsset asset = api.Assets.Get("worldgen/rockstrata.json"); RockStrataConfig rockstrata = asset.ToObject <RockStrataConfig>(); asset = api.Assets.Get("worldgen/blocklayers.json"); BlockLayerConfig blockLayerConfig = asset.ToObject <BlockLayerConfig>(); blockLayerConfig.ResolveBlockIds(api, rockstrata); api.ObjectCache[cacheKey] = blockLayerConfig; return(blockLayerConfig); } }
public void initWorldGen() { LoadGlobalConfig(api); rand = new LCGRandom(api.WorldManager.Seed - 12); searchSize = 3 * chunksize; mapOffset = chunksize; minBoundary = -chunksize + 1; maxBoundary = 2 * chunksize - 1; mapheight = api.WorldManager.MapSizeY; didCheckPosition = new bool[searchSize * searchSize]; IAsset asset = api.Assets.Get("worldgen/rockstrata.json"); RockStrataConfig rockstrata = asset.ToObject <RockStrataConfig>(); asset = api.Assets.Get("worldgen/blocklayers.json"); BlockLayerConfig blockLayerConfig = asset.ToObject <BlockLayerConfig>(); blockLayerConfig.ResolveBlockIds(api, rockstrata); lakebedLayerConfig = blockLayerConfig.LakeBedLayer; }