2 using System.Collections.Generic;
3 using System.Collections.ObjectModel;
6 using Vintagestory.API.MathTools;
11 public struct ColumnMeta
13 public Vec2i Location;
14 public float Temperature;// Temperature
15 public ushort YMax;// Y feature height
16 public Dictionary<int,uint> RockRatio;//(surface) Geographic region (rock) Ratio. [BlockID * count]
17 public float Fertility;
18 public float ForestDensity;
19 public float Rainfall;
20 public float ShrubDensity;
22 public ColumnMeta(Vec2i loc)
27 RockRatio = new Dictionary<int, uint>( 10 );
35 public class ColumnsMetadata : KeyedCollection<Vec2i, ColumnMeta>
37 private ColumnsMetadata( )
39 throw new NotSupportedException();
42 public ColumnsMetadata(Vec2i startChunkColumn)
44 North_mostChunk = startChunkColumn.Y;
45 South_mostChunk = startChunkColumn.Y;
46 East_mostChunk = startChunkColumn.X;
47 West_mostChunk = startChunkColumn.X;
50 public int North_mostChunk {
54 public int South_mostChunk {
58 public int East_mostChunk {
62 public int West_mostChunk {
66 protected override Vec2i GetKeyForItem(ColumnMeta item)
71 internal void Update(ColumnMeta metaData)
73 if (this.Contains(metaData.Location)) {
74 this.Remove(metaData.Location);
83 public new void Add(ColumnMeta newItem)
85 if (North_mostChunk > newItem.Location.Y) {
86 North_mostChunk = newItem.Location.Y;
89 if (South_mostChunk < newItem.Location.Y) {
90 South_mostChunk = newItem.Location.Y;
93 if (East_mostChunk < newItem.Location.X) {
94 East_mostChunk = newItem.Location.X;
97 if (West_mostChunk > newItem.Location.X) {
98 West_mostChunk = newItem.Location.X;