public override void FromTreeAttributes(ITreeAttribute tree, IWorldAccessor worldForResolving)
{
base.FromTreeAttributes(tree, worldForResolving);
if (positionsCount == 0) positionsCount = tree.GetInt("count");
if (positionsCount == 0) positionsCount = 10;
if (fruitPoints == null) fruitPoints = new FruitData[positionsCount];
for (int i = 0; i < positionsCount; i++)
{
double td = tree.GetDouble("td" + i);
int var = tree.GetInt("var" + i);
int tc = tree.GetInt("tc" + i);
FruitData val = fruitPoints[i];
if (val == null)
{
val = new FruitData(-1, td, this, null);
fruitPoints[i] = val;
}
if (Api is ICoreClientAPI && val.variant >= 0) //there was an existing FruitData at this position
{
manager.RemoveFruit(fruitCodeBases[val.variant] + val.currentStage, positions[i]);
}
val.variant = var;
val.currentStage = tc;
val.transitionDate = td;
if (Api is ICoreClientAPI && val.variant >= 0 && val.currentStage > 0)
{
val.SetRandomRotation(Api.World, i, positions[i], this.Blockentity.Pos);
manager.AddFruit(new AssetLocation(fruitCodeBases[val.variant] + val.currentStage), positions[i], val);
}
}
}