14     override typename GetInputType()
 
   22         if ( 
Class.CastTo(garden_base, target.GetObject()))
 
   27             garden_base.GetActionComponentNameList(target.GetComponentIndex(), selections);
 
   30             for (
int s = 0; s < selections.Count(); s++)
 
   32                 selection = selections[s];
 
   33                 slot = garden_base.GetSlotBySelection( selection );
 
   38             if ( slot && slot.GetPlant() )
 
   50         Slot slot = GetPlantSlot(target);
 
   54             m_Plant = PlantBase.Cast(slot.GetPlant());
 
   55             m_Text+=  
" " +  MiscGameplayFunctions.GetItemDisplayName(m_Plant.GetCropsType());
 
   60     override void CreateConditionComponents()  
 
   69         if ( 
Class.CastTo(garden_base, target.GetObject()))
 
   71             Slot slot = GetPlantSlot(target);
 
   75                 m_Plant = PlantBase.Cast(slot.GetPlant());
 
   76                 bool is_mature = m_Plant.IsMature();
 
   77                 bool is_spoiled = m_Plant.IsSpoiled();
 
   78                 bool has_crops = m_Plant.HasCrops();
 
   79                 int plant_state = m_Plant.GetPlantState();
 
   81                 if ( is_mature && has_crops )
 
   91     override void OnExecuteServer( 
ActionData action_data )
 
   95             m_Plant.Harvest( action_data.m_Player );