1using System.Globalization;
23 public Dictionary<Point3, SaplingData>.ValueCollection.Enumerator
m_enumerator;
48 public override void OnBlockAdded(
int value,
int oldValue,
int x,
int y,
int z) {
52 Point =
new Point3(x, y, z),
54 MatureTime = m_subsystemGameInfo.TotalElapsedGameTime + num
59 public override void OnBlockRemoved(
int value,
int newValue,
int x,
int y,
int z) {
64 base.Load(valuesDictionary);
68 foreach (
string value
in valuesDictionary.GetValue<
ValuesDictionary>(
"Saplings").Values) {
75 valuesDictionary.SetValue(
"Saplings", valuesDictionary2);
78 valuesDictionary2.SetValue(num++.ToString(CultureInfo.InvariantCulture),
SaveSaplingData(value));
82 public virtual void Update(
float dt) {
99 string[] array = data.Split([
";"], StringSplitOptions.None);
100 if (array.Length != 3) {
101 throw new InvalidOperationException(
"Invalid sapling data string.");
111 m_stringBuilder.Length = 0;
124 int x = saplingData.
Point.
X;
125 int y = saplingData.
Point.
Y;
126 int z = saplingData.
Point.
Z;
131 if (chunkAtCell !=
null
133 && chunkAtCell2 !=
null
135 && chunkAtCell3 !=
null
137 && chunkAtCell4 !=
null
146 for (
int i = x - 1; i <= x + 1; i++) {
147 for (
int j = z - 1; j <= z + 1; j++) {
163 num2 = (num2 + 10) / 2;
193 for (
int i = 0; i < 20; i++) {
197 for (
int j = 0; j < cells.Length; j++) {
200 && (cell.X != 0 || cell.Y != 0 || cell.Z != 0)) {
201 int cellContents =
SubsystemTerrain.Terrain.GetCellContents(cell.X + x, cell.Y + y, cell.Z + z);
202 if (cellContents != 0
static int Max(int x1, int x2)
static string ConvertToString(object value)
static object ConvertFromString(Type type, string data)
virtual bool IsNonAttachable(int value)
virtual bool IsSuitableForPlants(int value, int plantValue)
static ReadOnlyList< TerrainBrush > GetTreeBrushes(TreeType treeType)
static float CalculateTreeProbability(TreeType treeType, int temperature, int humidity, int y)
SubsystemTerrain SubsystemTerrain
void RemoveSapling(Point3 point)
SubsystemGameInfo m_subsystemGameInfo
override void OnNeighborBlockChanged(int x, int y, int z, int neighborX, int neighborY, int neighborZ)
override int[] HandledBlocks
Dictionary< Point3, SaplingData > m_saplings
bool GrowTree(int x, int y, int z, TreeType treeType)
override void OnBlockAdded(int value, int oldValue, int x, int y, int z)
string SaveSaplingData(SaplingData saplingData)
override void Save(ValuesDictionary valuesDictionary)
void AddSapling(SaplingData saplingData)
SubsystemTimeOfDay m_subsystemTimeOfDay
override void Load(ValuesDictionary valuesDictionary)
override void OnBlockRemoved(int value, int newValue, int x, int y, int z)
Dictionary< Point3, SaplingData >.ValueCollection.Enumerator m_enumerator
StringBuilder m_stringBuilder
virtual void Update(float dt)
SaplingData LoadSaplingData(string data)
void MatureSapling(SaplingData saplingData)
static Func< int, int > GetTemperatureAdjustmentAtHeight
void Paint(SubsystemTerrain terrain, int x, int y, int z)
static int ExtractContents(int value)
static int MakeBlockValue(int contents)
static int ExtractData(int value)
ValuesDictionary ValuesDictionary