public void FromTreeAttributes(ITreeAttribute tree) { State = (EnumFruitTreeState)tree.GetInt("rootFruitTreeState", (int)EnumFruitTreeState.Empty); lastCheckAtTotalDays = tree.GetDouble("lastCheckAtTotalDays"); vernalizedHours = tree.GetDouble("vernalizedHours"); lastStateChangeTotalDays = tree.GetDouble("lastStateChangeTotalDays"); FloweringDays = tree.GetFloat("floweringDays"); FruitingDays = tree.GetFloat("fruitingDays"); RipeDays = tree.GetFloat("ripeDays"); GrowthStepDays = tree.GetFloat("growthStepDays"); RootSizeMul = tree.GetFloat("rootSizeMul"); DieBelowTemp = tree.GetFloat("dieBelowTemp"); CycleType = (EnumTreeCycleType)tree.GetInt("cycleType"); if (CycleType == EnumTreeCycleType.Deciduous) { VernalizationHours = tree.GetFloat("vernalizationHours"); VernalizationTemp = tree.GetFloat("vernalizationTemp"); } if (CycleType == EnumTreeCycleType.Evergreen) { LooseLeavesBelowTemp = tree.GetFloat("looseLeavesBelowTemp"); BlossomAtYearRel = tree.GetFloat("blossomAtYearRel"); } }
protected void RootBh_OnFruitingStateChange(EnumFruitTreeState nowState) { switch (nowState) { case EnumFruitTreeState.EnterDormancy: FoliageState = EnumFoliageState.Plain; break; case EnumFruitTreeState.Dormant: FoliageState = EnumFoliageState.DormantNoLeaves; break; case EnumFruitTreeState.Flowering: FoliageState = EnumFoliageState.Flowering; break; case EnumFruitTreeState.Fruiting: FoliageState = EnumFoliageState.Fruiting; break; case EnumFruitTreeState.Ripe: FoliageState = EnumFoliageState.Ripe; break; case EnumFruitTreeState.Empty: FoliageState = EnumFoliageState.Plain; break; case EnumFruitTreeState.Young: FoliageState = EnumFoliageState.Plain; break; case EnumFruitTreeState.Dead: FoliageState = EnumFoliageState.Dead; break; } calcFruitingSide(); MarkDirty(); }