public GrowDecoration(GrowDecorationParam paras)
 {
     _params            = paras;
     _params.growedTime = 0;
     _growMark          = true;
     _curDecoration     = DecorationFactory.GetDecorationInstance((DecorationType)_params.plantData.decorationType);
     (_curDecoration as DecorationRemoveBase).isGrow = true;
     _attachChunk = World.world.GetChunk((int)_params.pos.x, (int)_params.pos.y, (int)_params.pos.z);
     _curDecoration.Decorade(_attachChunk, (int)_params.loacalPos.x, (int)_params.loacalPos.y, (int)_params.loacalPos.z, _params.random);
     _growNeedTime = _params.plantData.growTime;
 }
 private void changeToNextState()
 {
     _params.growedTime = 0;
     (_curDecoration as DecorationRemoveBase).removeDecoration(_attachChunk);
     if (_params.plantData.nextId == 0)
     {
         HasActionObjectManager.Instance.plantManager.endGrow(_params.aoId);
         dispose();
         return;
     }
     _params.plantData = MTBPlantDataManager.Instance.getData(_params.plantData.nextId);
     _curDecoration    = DecorationFactory.GetDecorationInstance((DecorationType)_params.plantData.decorationType);
     _curDecoration.Decorade(_attachChunk, (int)_params.loacalPos.x, (int)_params.loacalPos.y, (int)_params.loacalPos.z, _params.random);
     _growNeedTime = DayNightTime.Instance.normalTimeConfig.daySeconds * _params.plantData.growTime;
     World.world.CheckAndRecalculateMesh((int)_params.pos.x, (int)_params.pos.y, (int)_params.pos.z, World.world.GetBlock((int)_params.pos.x, (int)_params.pos.y, (int)_params.pos.z));
 }