public static bool ServerIsWateringRequired( IWorldObject objectPlant, ICharacter character, IProtoItem protoItem, IProtoObjectPlant protoPlant, double proposedWateringDuration) { var plantPrivateState = objectPlant.GetPrivateState <PlantPrivateState>(); if (plantPrivateState.ServerTimeWateringEnds >= double.MaxValue || (proposedWateringDuration < double.MaxValue && (plantPrivateState.ServerTimeWateringEnds >= Server.Game.FrameTime + proposedWateringDuration - 60))) { // the plant is already watered enough Instance.CallClient(character, _ => _.ClientRemote_CannotWaterAlreadyWatered(protoItem)); return(false); } if (!protoPlant.ServerCanBeWatered((IStaticWorldObject)objectPlant)) { // no need to water the plant Instance.CallClient(character, _ => _.ClientRemote_CannotWaterLastHarvestOrRotten(protoItem)); return(false); } return(true); }